|
Page Edited :
FELIX :
iPOJO Eclipse Plug-in
iPOJO Eclipse Plug-in has been edited by Clement Escoffier (Aug 07, 2007). Content:iPOJO is based on a byte code manipulation. So, it requires a different packaging process as "normal" bundle. This plug-in allow to build an "iPOJO bundle" directly from Eclipse. Moreover, by collaborating with BND (see http://www.aqute.biz/Code/Bnd InstallationThe plug-in requires Eclipse 3.3 (Europa) or higher. The plug-in can be installed from the following update site : http://clement.plop-plop.net/update/ Changelog
UsageOnce installed, create a Java project to use the plug-in. The new java project wizard appears. Enter the project name without spaces. Configure the Java project as you want. Then, right click on the new project, go inside the iPOJO sub-menu and click on "create both files". This action will create two file in your java project. The $project_name.bnd file configure BND and contains the declaration of imported, private and exported packages. The second file (metadata.xml) contains the iPOJO bundle configuration. As you create the two file, you should obtain something like : Imagine that you implement a simple component displaying each message pushed inside the OSGi™ Log Service. The following code snippet shows one possible implementation of this component : package org.apache.felix.ipojo.example.logcons;import java.text.DateFormat; import java.util.Date; import org.osgi.service.log.LogEntry; import org.osgi.service.log.LogListener; import org.osgi.service.log.LogReaderService; import org.osgi.service.log.LogService; public class LogCons implements LogListener{ private LogReaderService reader; public void start() { reader.addLogListener(this); } public void stop() { reader.removeLogListener(this); } public void logged(LogEntry entry) { Date date = new Date(entry.getTime()); String message = ""; switch(entry.getLevel()) { case LogService.LOG_DEBUG: message = "[DEBUG] " + DateFormat.getInstance().format(date) + " - " + entry.getMessage(); break; case LogService.LOG_ERROR: message = "[ERROR] " + DateFormat.getInstance().format(date) + " - " + entry.getMessage(); break; case LogService.LOG_INFO: message = "[INFO] " + DateFormat.getInstance().format(date) + " - " + entry.getMessage(); break; case LogService.LOG_WARNING: message = "[WARNING] " + DateFormat.getInstance().format(date) + " - " + entry.getMessage(); break; default: message = "[UNKNOWN] " + DateFormat.getInstance().format(date) + " - " + entry.getMessage(); break; } System.out.println(message); } } Once implemented, you need to fill out the BND file with following information: Import-Package: * Private-Package: org.apache.felix.ipojo.example.logcons Then, the metadata.xml file needs to be filled out. We declare the LogCons component type with a simple service requirement on the LogReaderService and two lifecycle callbacks. To finish, we declare an instance of this component type. <ipojo> <!-- Declare the component type for LogCons --> <component classname="org.apache.felix.ipojo.example.logcons.LogCons" name="LogCons"> <requires field="reader"/> <callback transition="validate" method="start"/> <callback transition="invalidate" method="stop"/> </component> <!-- Create a LogCons instance --> <instance component="LogCons"/> </ipojo> Once all is complete, we can build the bundle by doing a right-click on the metadata.xml file. Then go to the iPOJO sub-menu and click on Create Bundle. If all is correctly configured, the following message appears, else warnings or errors are displayed in a message box too. Your project contains now the build bundle. The bundle has the same name as your project. Plug-in optionsOn Java project
On metadata.xml file
ConclusionThis page has presented the iPOJO Eclipe plug-in. Do not hesite to send me |
Unsubscribe or edit your notifications preferences
