[overlord-issues] [JBoss JIRA] (SRAMP-488) Use the maven-bundle-plugin in WAR projects

Brett Meyer (JIRA) issues at jboss.org
Wed Jul 2 10:03:24 EDT 2014


    [ https://issues.jboss.org/browse/SRAMP-488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12981444#comment-12981444 ] 

Brett Meyer commented on SRAMP-488:
-----------------------------------

Close SRAMP-412, since you were more detailed in this one ;)

> Use the maven-bundle-plugin in WAR projects
> -------------------------------------------
>
>                 Key: SRAMP-488
>                 URL: https://issues.jboss.org/browse/SRAMP-488
>             Project: S-RAMP
>          Issue Type: Task
>      Security Level: Public(Everyone can see) 
>            Reporter: Eric Wittmann
>            Assignee: Brett Meyer
>             Fix For: 0.6.0
>
>
> Right now in our WAR projects we are using the war plugin to configure the manifest for osgi.  Instead we should use the bundle plugin.  
> Links:
> https://ops4j1.jira.com/wiki/display/paxweb/OSGi-fy+your+WAR
> https://ops4j1.jira.com/wiki/display/ops4j/Getting+the+benefits+of+maven-bundle-plugin+in+other+project+types
> Here is an example of using it in overlord-commons-idp:
> {code}
> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
>   <modelVersion>4.0.0</modelVersion>
>   <parent>
>     <groupId>org.overlord</groupId>
>     <artifactId>overlord-commons</artifactId>
>     <version>2.0.3-SNAPSHOT</version>
>   </parent>
>   <artifactId>overlord-commons-idp</artifactId>
>   <packaging>war</packaging>
>   <name>Overlord Commons: IDP</name>
>   <description>An identity provider using PicketLink SAML.</description>
>   <dependencies>
>     <!-- Third Party Dependencies -->
>     <dependency>
>       <groupId>org.picketlink</groupId>
>       <artifactId>picketlink-federation</artifactId>
>     </dependency>
>     <dependency>
>       <groupId>org.picketbox</groupId>
>       <artifactId>picketbox</artifactId>
>     </dependency>
>     <dependency>
>       <groupId>org.picketlink</groupId>
>       <artifactId>picketlink-federation</artifactId>
>     </dependency>
>     <dependency>
>       <groupId>org.jboss.logging</groupId>
>       <artifactId>jboss-logging</artifactId>
>     </dependency>
>     <dependency>
>       <groupId>${project.groupId}</groupId>
>       <artifactId>overlord-commons-auth</artifactId>
>     </dependency>
>     <dependency>
>       <groupId>${project.groupId}</groupId>
>       <artifactId>overlord-commons-auth-jboss7</artifactId>
>     </dependency>
>     <dependency>
>       <groupId>${project.groupId}</groupId>
>       <artifactId>overlord-commons-auth-jetty8</artifactId>
>     </dependency>
>     <dependency>
>       <groupId>${project.groupId}</groupId>
>       <artifactId>overlord-commons-auth-tomcat7</artifactId>
>     </dependency>
>     <!-- Provided Dependencies -->
>     <dependency>
>       <groupId>org.jboss.spec.javax.servlet</groupId>
>       <artifactId>jboss-servlet-api_3.0_spec</artifactId>
>       <scope>provided</scope>
>     </dependency>
>   </dependencies>
>   <build>
>     <plugins>
>       <plugin>
>         <groupId>org.codehaus.mojo</groupId>
>         <artifactId>build-helper-maven-plugin</artifactId>
>         <executions>
>           <execution>
>             <id>regex-property</id>
>             <goals>
>               <goal>regex-property</goal>
>             </goals>
>             <configuration>
>               <name>project.version.osgi</name>
>               <value>${project.version}</value>
>               <regex>-SNAPSHOT</regex>
>               <replacement>.Snapshot</replacement>
>               <failIfNoMatch>false</failIfNoMatch>
>             </configuration>
>           </execution>
>         </executions>
>       </plugin>
>       <!-- <plugin> -->
>       <!--   <artifactId>maven-war-plugin</artifactId> -->
>       <!--   <configuration> -->
>       <!--     <failOnMissingWebXml>false</failOnMissingWebXml> -->
>       <!--     <warName>${project.artifactId}</warName> -->
>       <!--     <attachClasses>true</attachClasses> -->
>       <!--     <classesClassifier>classes</classesClassifier> -->
>       <!--     <archive> -->
>       <!--       <manifestEntries> -->
>       <!--         <Bundle-ManifestVersion>2</Bundle-ManifestVersion> -->
>       <!--         <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> -->
>       <!--         <Bundle-Version>${project.version.osgi}</Bundle-Version> -->
>       <!--         <Web-ContextPath>/overlord-idp</Web-ContextPath> -->
>       <!--         <Webapp-Context>/overlord-idp</Webapp-Context> -->
>       <!--         <Import-Package>org.apache.log4j,javax.servlet, javax.servlet.http,javax.security.auth.login,javax.xml.stream,javax.xml.stream.events,javax.xml.namespace,javax.xml.transform,javax.xml.transform.dom,javax.xml.transform.stream,javax.xml.parsers,javax.xml.datatype,javax.xml.crypto,javax.xml.crypto.dsig,javax.xml.bind,org.apache.karaf.jaas.boot.principal,org.eclipse.jetty.plus.jaas,org.xml.sax,org.w3c.dom,org.w3c.dom.ls,org.overlord.commons.auth.util,org.picketlink.identity.federation.core.interfaces -->
>       <!--         </Import-Package> -->
>       <!--         <Bundle-ClassPath>.,WEB-INF/classes,WEB-INF/lib/commons-logging-${version.commons-logging}.jar,WEB-INF/lib/jboss-logging-${version.org.jboss.logging}.jar,WEB-INF/lib/jbossxacml-2.0.8.Final.jar,WEB-INF/lib/picketbox-${picketbox.version}.jar,WEB-INF/lib/picketlink-common-${picketlink.version}.jar,WEB-INF/lib/picketlink-config-${picketlink.version}.jar,WEB-INF/lib/picketlink-federation-${picketlink.version}.jar,WEB-INF/lib/picketlink-idm-api-${picketlink.version}.jar,WEB-INF/lib/picketlink-idm-impl-${picketlink.version}.jar,WEB-INF/lib/xmlsec-1.5.1.jar -->
>       <!--         </Bundle-ClassPath> -->
>       <!--       </manifestEntries> -->
>       <!--     </archive> -->
>       <!--   </configuration> -->
>       <!-- </plugin> -->
>       <plugin>
>           <artifactId>maven-war-plugin</artifactId>
>           <configuration>
>               <archive>
>                   <!-- add the generated manifest to the war -->
>                   <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
>               </archive>
>           </configuration>
>       </plugin>
>       <plugin>
>           <groupId>org.apache.felix</groupId>
>           <artifactId>maven-bundle-plugin</artifactId>
>           <executions>
>               <execution>
>                   <id>bundle-manifest</id>
>                   <phase>process-classes</phase>
>                   <goals>
>                       <goal>manifest</goal>
>                   </goals>
>               </execution>
>           </executions>
>           <configuration>
>               <failOnMissingWebXml>false</failOnMissingWebXml> -->
>               <warName>${project.artifactId}</warName>
>               <attachClasses>true</attachClasses>
>               <classesClassifier>classes</classesClassifier>
>               <instructions>
>                   <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
>                   <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
>                   <Bundle-Version>${project.version.osgi}</Bundle-Version>
>                   <Web-ContextPath>/overlord-idp</Web-ContextPath>
>                   <Webapp-Context>/overlord-idp</Webapp-Context>
>                   <Import-Package>org.apache.log4j,javax.servlet, javax.servlet.http,javax.security.auth.login,javax.xml.stream,javax.xml.stream.events,javax.xml.namespace,javax.xml.transform,javax.xml.transform.dom,javax.xml.transform.stream,javax.xml.parsers,javax.xml.datatype,javax.xml.crypto,javax.xml.crypto.dsig,javax.xml.bind,org.apache.karaf.jaas.boot.principal,org.eclipse.jetty.plus.jaas,org.xml.sax,org.w3c.dom,org.w3c.dom.ls,org.overlord.commons.auth.util,org.picketlink.identity.federation.core.interfaces
>                   </Import-Package>
>                   <Bundle-ClassPath>.,WEB-INF/classes,WEB-INF/lib/commons-logging-${version.commons-logging}.jar,WEB-INF/lib/jboss-logging-${version.org.jboss.logging}.jar,WEB-INF/lib/jbossxacml-2.0.8.Final.jar,WEB-INF/lib/picketbox-${picketbox.version}.jar,WEB-INF/lib/picketlink-common-${picketlink.version}.jar,WEB-INF/lib/picketlink-config-${picketlink.version}.jar,WEB-INF/lib/picketlink-federation-${picketlink.version}.jar,WEB-INF/lib/picketlink-idm-api-${picketlink.version}.jar,WEB-INF/lib/picketlink-idm-impl-${picketlink.version}.jar,WEB-INF/lib/xmlsec-1.5.1.jar
>                   </Bundle-ClassPath>
>               </instructions>
>           </configuration>
>       </plugin>
>     </plugins>
>   </build>
> </project>
> {code}



--
This message was sent by Atlassian JIRA
(v6.2.6#6264)


More information about the overlord-issues mailing list