...
The example application is a very simple drawing program that effectively functions identically whether using services/extensions or running embedded. The application, called the host, defines a SimpleShape
service/extension that it uses to draw shapes. Different implementations of the SimpleShape
can be created to allow the application to draw different shapes. Each shape service/extension has name and icon service properties that the application uses for handling the services. Available shapes are displayed in the applications tool bar. To draw a shape, click on its button in the tool bar and then click in the drawing canvas. Shapes cannot be resized, but they can be dragged around. When new shape services/extensions appear they are automatically added to the tool bar and they are automatically removed when the shape services/extensions disappear. Closing the applications window causes the framework and the JVM to shut down. The following is a screen shot of the application.
...
Service-Based Application on top of the Framework
Currently, the service-based example application is only available in our SVN repository. There are four separate projects that comprise the application, which can be found here:
...
The host bundle from the previous section also implements the embedded, service-based approach. The host bundle also provides activator has a static main()
method which that creates an embedded instance of Felix and loads the shape service bundles. The shape service implementations are the same for both bundle-based and stand-alone applications in this case. To execute the stand-alone application, issue the following command:
...
Extender-Based Application on top of the Framework
Currently, the extender-based example application is only available in our SVN repository. There are four separate projects that comprise the application, which can be found here:
No Format |
---|
http://svn.apache.org/repos/asf/felix/trunk/examples/extenderbased.host
http://svn.apache.org/repos/asf/felix/trunk/examples/extenderbased.circle
http://svn.apache.org/repos/asf/felix/trunk/examples/extenderbased.square
http://svn.apache.org/repos/asf/felix/trunk/examples/extenderbased.triangle
|
Check out each project using an appropriate SVN command, such as:
No Format |
---|
svn co http://svn.apache.org/repos/asf/felix/trunk/examples/extenderbased.host
|
Once you have the projects checked out you can go into each sub-directory and build it using Maven; this assumes you have Maven properly installed. To build, simply perform the following in each project directory:
No Format |
---|
mvn clean install
|
Once you have built the projects, start Felix and then install/start the resulting bundle from the target/
directory of each project directory.
Examine the source code to understand the details of the approach. In the future this documentation will hopefully be expanded to described more detailsComing soon...
Extender-Based Application embedding the Framework
The host bundle from the previous section also implements the embedded, extender-based approach. The host bundle activator has a static main()
method that creates an embedded instance of Felix and loads the shape extension bundles. The shape extension implementations are the same for both bundle-based and stand-alone applications in this case. To execute the stand-alone application, issue the following command:
No Format |
---|
java -jar target/extenderbased.host-1.0.0.jar
|
To successfully execute the stand-alone version of the application, you must be in the "extenderbased.host" project directory when issuing the above command and you must have already built all of the other projects (i.e., circle, square, triangle).
Examine the source code to understand the details of the approach. In the future this documentation will hopefully be expanded to described more detailsComing soon...