<dependencies>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.position</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
package com.example.position;
public interface PositionService {
double getDistance(double lat1, double lon1, double lat2, double lon2);
}
package com.example.position;
import org.osgi.service.position.PositionService;
import org.osgi.util.position.Position;
public class PositionServiceImpl implements PositionService {
@Override
public double getDistance(double lat1, double lon1, double lat2, double lon2) {
Position p1 = new Position(lat1, lon1);
Position p2 = new Position(lat2, lon2);
return p1.distanceTo(p2);
}
}
package com.example.position;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
public class Activator implements BundleActivator {
private ServiceRegistration registration;
@Override
public void start(BundleContext context) throws Exception {
PositionService positionService = new PositionServiceImpl();
registration = context.registerService(PositionService.class, positionService, null);
}
@Override
public void stop(BundleContext context) throws Exception {
registration.unregister();
}
}
Bundle-Activator: com.example.position.Activator