Author: gnodet Date: Mon Oct 18 12:49:22 2010 New Revision: 1023774 URL: http://svn.apache.org/viewvc?rev=1023774&view=rev Log: [KARAF-42] trim down the size of the war by using the plugin classloader to load the commands, add osgi metadata to the karaf-doc war
Modified: karaf/trunk/documentation/pom.xml karaf/trunk/tooling/cmdhelp-maven-plugin/src/main/java/org/apache/karaf/tooling/cmdhelp/CmdHelpMojo.java Modified: karaf/trunk/documentation/pom.xml URL: http://svn.apache.org/viewvc/karaf/trunk/documentation/pom.xml?rev=1023774&r1=1023773&r2=1023774&view=diff ============================================================================== --- karaf/trunk/documentation/pom.xml (original) +++ karaf/trunk/documentation/pom.xml Mon Oct 18 12:49:22 2010 @@ -86,42 +86,8 @@ <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> - <version>1.6.0</version> + <version>1.5.0</version> </dependency> - - <!-- Commands for help generation --> - <dependency> - <groupId>org.apache.karaf.shell</groupId> - <artifactId>org.apache.karaf.shell.commands</artifactId> - </dependency> - <dependency> - <groupId>org.apache.karaf.shell</groupId> - <artifactId>org.apache.karaf.shell.config</artifactId> - </dependency> - <dependency> - <groupId>org.apache.karaf.shell</groupId> - <artifactId>org.apache.karaf.shell.dev</artifactId> - </dependency> - <dependency> - <groupId>org.apache.karaf.shell</groupId> - <artifactId>org.apache.karaf.shell.log</artifactId> - </dependency> - <dependency> - <groupId>org.apache.karaf.shell</groupId> - <artifactId>org.apache.karaf.shell.osgi</artifactId> - </dependency> - <dependency> - <groupId>org.apache.karaf.shell</groupId> - <artifactId>org.apache.karaf.shell.packages</artifactId> - </dependency> - <dependency> - <groupId>org.apache.karaf.shell</groupId> - <artifactId>org.apache.karaf.shell.ssh</artifactId> - </dependency> - <dependency> - <groupId>org.apache.karaf.shell</groupId> - <artifactId>org.apache.karaf.shell.wrapper</artifactId> - </dependency> </dependencies> <build> @@ -161,9 +127,58 @@ <configuration> <format>conf</format> <targetFolder>${project.build.directory}/webapp/commands/</targetFolder> + <classLoader>plugin</classLoader> </configuration> </execution> </executions> + <dependencies> + <!-- Commands for help generation --> + <dependency> + <groupId>org.apache.karaf.shell</groupId> + <artifactId>org.apache.karaf.shell.console</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.karaf.shell</groupId> + <artifactId>org.apache.karaf.shell.commands</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.karaf.shell</groupId> + <artifactId>org.apache.karaf.shell.config</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.karaf.shell</groupId> + <artifactId>org.apache.karaf.shell.dev</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.karaf.shell</groupId> + <artifactId>org.apache.karaf.shell.log</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.karaf.shell</groupId> + <artifactId>org.apache.karaf.shell.osgi</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.karaf.shell</groupId> + <artifactId>org.apache.karaf.shell.packages</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.karaf.shell</groupId> + <artifactId>org.apache.karaf.shell.ssh</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.karaf.shell</groupId> + <artifactId>org.apache.karaf.shell.wrapper</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> </plugin> <plugin> <groupId>org.fusesource.scalate</groupId> @@ -177,7 +192,7 @@ </goals> <configuration> <warSourceDirectory>${project.build.directory}/webapp</warSourceDirectory> - </configuration> + </configuration> </execution> </executions> <dependencies> @@ -190,13 +205,16 @@ </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> + <version>2.1</version> <configuration> - <packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes> <webResources> <resource> <directory>${project.build.directory}/webapp/</directory> </resource> </webResources> + <archive> + <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> + </archive> </configuration> </plugin> <plugin> @@ -226,6 +244,42 @@ </systemProperties> </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> + <supportedProjectTypes> + <supportedProjectType>jar</supportedProjectType> + <supportedProjectType>bundle</supportedProjectType> + <supportedProjectType>war</supportedProjectType> + </supportedProjectTypes> + <instructions> + <Import-Package> + javax.servlet, + javax.servlet.http, + org.osgi.framework, + org.osgi.service.packageadmin, + org.apache.commons.logging;provider=paxlogging;resolution:=optional, + org.apache.log4j;provider=paxlogging;resolution:=optional, + org.slf4j;provider=paxlogging;resolution:=optional, + </Import-Package> + <Bundle-ClassPath>.,WEB-INF/classes</Bundle-ClassPath> + <Embed-Directory>WEB-INF/lib</Embed-Directory> + <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency> + <Embed-Transitive>true</Embed-Transitive> + <Webapp-Context>karaf-doc</Webapp-Context> + </instructions> + </configuration> + </plugin> </plugins> </build> Modified: karaf/trunk/tooling/cmdhelp-maven-plugin/src/main/java/org/apache/karaf/tooling/cmdhelp/CmdHelpMojo.java URL: http://svn.apache.org/viewvc/karaf/trunk/tooling/cmdhelp-maven-plugin/src/main/java/org/apache/karaf/tooling/cmdhelp/CmdHelpMojo.java?rev=1023774&r1=1023773&r2=1023774&view=diff ============================================================================== --- karaf/trunk/tooling/cmdhelp-maven-plugin/src/main/java/org/apache/karaf/tooling/cmdhelp/CmdHelpMojo.java (original) +++ karaf/trunk/tooling/cmdhelp-maven-plugin/src/main/java/org/apache/karaf/tooling/cmdhelp/CmdHelpMojo.java Mon Oct 18 12:49:22 2010 @@ -85,6 +85,13 @@ public class CmdHelpMojo extends Abstrac */ protected String format; + /** + * The classloader to use to load the commands + * + * @parameter default-value="project" + */ + protected String classLoader; + private static final String FORMAT_CONF = "conf"; private static final String FORMAT_DOCBX = "docbx"; @@ -96,15 +103,21 @@ public class CmdHelpMojo extends Abstrac if (!targetFolder.exists()) { targetFolder.mkdirs(); } - - List<URL> urls = new ArrayList<URL>(); - for (Object object : project.getCompileClasspathElements()) { - String path = (String) object; - urls.add(new File(path).toURI().toURL()); - } - ClassLoader loader = new URLClassLoader(urls.toArray(new URL[urls.size()]), getClass().getClassLoader()); - ClassFinder finder = new ClassFinder(loader, urls); + ClassFinder finder; + if ("project".equals(classLoader)) { + List<URL> urls = new ArrayList<URL>(); + for (Object object : project.getCompileClasspathElements()) { + String path = (String) object; + urls.add(new File(path).toURI().toURL()); + } + ClassLoader loader = new URLClassLoader(urls.toArray(new URL[urls.size()]), getClass().getClassLoader()); + finder = new ClassFinder(loader, urls); + } else if ("plugin".equals(classLoader)) { + finder = new ClassFinder(getClass().getClassLoader()); + } else { + throw new MojoFailureException("classLoader attribute must be 'project' or 'plugin'"); + } List<Class> classes = finder.findAnnotatedClasses(Command.class); if (classes.isEmpty()) { throw new MojoFailureException("No command found");