- Java Development Kit (JDK)
- Apache Maven
<dependencies>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.ipojo</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
package com.example;
import org.apache.felix.ipojo.annotations.Component;
@Component
public class MyComponent {
// Component logic here
}
package com.example;
import org.apache.felix.ipojo.annotations.Handler;
@Handler(name = "my-handler")
public class MyHandler {
// Handler logic here
}
package com.example;
import org.apache.felix.ipojo.ComponentFactory;
import org.apache.felix.ipojo.ServiceContext;
import org.apache.felix.ipojo.architecture.HandlerDescription;
import org.apache.felix.ipojo.architecture.InstanceDescription;
import org.apache.felix.ipojo.architecture.PropertyDescription;
import org.apache.felix.ipojo.metadata.Element;
public class App {
public static void main(String[] args) {
// Application logic here
}
}
mvn clean package
<ipojo xmlns="http://felix.apache.org/ipojo/v1.12.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://felix.apache.org/ipojo/v1.12.1 http://felix.apache.org/ipojo/schemas/core-1.12.1.xsd">
<components>
<component className="com.example.MyComponent"/>
</components>
<handlers>
<handler name="my-handler" className="com.example.MyHandler"/>
</handlers>
</ipojo>
java -jar ipojo.jar <jar-file>