import javax.ws.rs.*;
import javax.ws.rs.core.*;
import org.osgi.service.component.annotations.*;
@Component(service = HelloResource.class)
@Path("/hello")
public class HelloResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return "Hello, world!";
}
}
<dependencies>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi.core</artifactId>
<version>7.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.annotations</artifactId>
<version>1.14.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.ds-annotations</artifactId>
<version>1.2.14</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.1.1</version>
</dependency>
</dependencies>
Bundle-SymbolicName: com.example.hello
Bundle-Activator: com.example.hello.Activator
Import-Package: javax.ws.rs;version="[2.1,3)"
Require-Capability: osgi.extender;filter:="(&(osgi.extender=osgi.rest)(version>=1.0.0)(!(version>=2.0.0)))"
import org.osgi.framework.*;
import org.osgi.service.component.annotations.*;
@Component
public class Activator implements BundleActivator {
private ServiceRegistration<?> registration;
public void start(BundleContext bundleContext) {
registration = bundleContext.registerService(Application.class, new HelloApplication(), null);
}
public void stop(BundleContext bundleContext) {
registration.unregister();
}
}
import javax.ws.rs.core.*;
import java.util.*;
public class HelloApplication extends Application {
public Set<Class<?>> getClasses() {
Set<Class<?>> classes = new HashSet<>();
classes.add(HelloResource.class);
return classes;
}
}