Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Httpcomponents Wiki" 
for change notification.

The following page has been changed by OlegKalnichevski:
http://wiki.apache.org/HttpComponents/HttpComponentsAndOSGi

------------------------------------------------------------------------------
- #pragma section-numbers off
+ See [https://issues.apache.org/jira/browse/HTTPCORE-125]
  
- = OSGi-Enabling HttpComponents =
- 
- OSGi bundles are JARs with additional metadata that allows for easy 
deployment of
- the bundles in OSGi frameworks, such as Apache Felix or Eclipse Equinox. 
Since the
- difference is only the metadata, we should be looking into generating OSGi 
bundles
- instead of plain JARs for the HttpComponents. This page is meant for 
recording ideas
- and progress
- 
- == Tools ==
- 
- The tool of choice for a Maven 2 based project at Apache is the
- [http://felix.apache.org/site/maven-bundle-plugin-bnd.html 
maven-bundle-plugin]
- maintained by the Apache Felix team.
- That plugin creates complete OSGi bundles, not just the additional metadata.
- As such, it would have to replace the currently used maven-jar-plugin for our 
release builds.
- The maven-jar-plugin is specified in the component's parent POM, applicable 
for all modules in all components.
- 
- Alternatively, it is possible to manually define the metadata in pom.xml 
instead of generating it.
- See [:OSGiMetaData] for an example.
- (One advantage of this approach is that the manifest is then much easier to 
read).
- 
- == Plan ==
- 
- Start with !HttpCore-main, as it has no dependencies beyond plain Java.
- Put the maven-bundle-plugin into the module POM.
- The Commons folks have figured out a second way to use the bundle plugin.
- Instead of changing the bundling from jar to bundle and letting the bundle 
plugin
- assemble the jar file, it is possible to only create the MANIFEST with the
- OSGi specific metadata but continue to use the regular jar plugin for 
bundling.
- [[BR]]
- Try both options and check the output carefully:
-  * Are all classes in the bundle?
-  * Are all non-classes (properties files) in the bundle?
-  * Is the metadata for the bundle correct? (version, symbolic name, package 
lists)
- Compare the effort for the maven-bundle-plugin with the (non-)effort for the 
maven-jar-plugin.
- The bundle plugin calls a separate tool and is therefore not as tightly 
integrated with Maven 2.
- 
- If the approach is feasible, move on to HttpNIO.
- Consider moving the maven-bundle-plugin definition to the component POM.
- Switch the release assembly from the plain JAR to the OSGi bundle,
- or add the generated MANIFEST by default to the jar plugin.
- [[BR]]
- If the approach is not feasible, consider working with the Felix team
- to improve the plugin integration.
- 
- 
- == Status ==
- 
- not yet started
- 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to