| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <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/maven-v4_0_0.xsd"> |
| |
| <modelVersion>4.0.0</modelVersion> |
| |
| <parent> |
| <groupId>org.apache.activemq</groupId> |
| <artifactId>artemis-hawtio-pom</artifactId> |
| <version>2.5.0-SNAPSHOT</version> |
| </parent> |
| |
| <artifactId>artemis-plugin</artifactId> |
| <name>ActiveMQ Artemis HawtIO Plugin</name> |
| |
| <!-- hawtio plugins are almost always war files --> |
| <packaging>war</packaging> |
| |
| <properties> |
| <activemq.basedir>${project.basedir}/../..</activemq.basedir> |
| |
| <!-- filtered plugin properties, we don't define plugin-scripts here |
| as we build that dynamically using maven-antrun-plugin below. --> |
| <!-- plugin-context is what context this plugin will handle requests on |
| in the application server --> |
| <plugin-context>/artemis-plugin</plugin-context> |
| |
| <!-- plugin-name is the name of our plugin, affects the name used for |
| the plugin's mbean --> |
| <plugin-name>${project.artifactId}</plugin-name> |
| |
| <!-- plugin-domain is currently unused, we just define it to an empty |
| string --> |
| <plugin-domain /> |
| |
| <!-- this lets this plugin deploy nicely into karaf, these get used |
| for the ImportPackage directive for maven-bundle-plugin --> |
| <osgi.import> |
| javax.servlet, |
| *;resolution:=optional |
| </osgi.import> |
| |
| <webapp-dir>${project.artifactId}-${project.version}</webapp-dir> |
| <webapp-outdir>${basedir}/target/${webapp-dir}</webapp-outdir> |
| <schema-outdir>${basedir}/src/main/webapp/lib</schema-outdir> |
| <appjs-outfile>${webapp-outdir}/app/app.js</appjs-outfile> |
| |
| </properties> |
| |
| <dependencies> |
| |
| <!-- we only need to embed this dependency in the war, this contains |
| a nice helper class that our plugin can use to export it's plugin |
| mbean --> |
| <dependency> |
| <groupId>io.hawt</groupId> |
| <artifactId>hawtio-plugin-mbean</artifactId> |
| </dependency> |
| |
| <!-- servlet API is provided by the container --> |
| <dependency> |
| <groupId>javax.servlet</groupId> |
| <artifactId>servlet-api</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| |
| <!-- logging --> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-log4j12</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>log4j</groupId> |
| <artifactId>log4j</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| |
| </dependencies> |
| |
| |
| <build> |
| |
| <!-- we want to ensure src/main/resources/WEB-INF/web.xml is being filtered |
| so that it picks up all of our javascript files --> |
| <resources> |
| <resource> |
| <directory>src/main/resources</directory> |
| <filtering>true</filtering> |
| <includes> |
| <include>**/*.xml</include> |
| </includes> |
| </resource> |
| </resources> |
| |
| <plugins> |
| |
| <!-- We use maven-antrun-plugin to build up a list of |
| javascript files for our plugin mbean, this means |
| it needs to run before the maven-resources-plugin |
| copies and filters the web.xml, since for this |
| example we use contextParam settings to configure |
| our plugin mbean --> |
| |
| <plugin> |
| <artifactId>maven-antrun-plugin</artifactId> |
| <version>${maven-antrun-plugin-version}</version> |
| <executions> |
| |
| <execution> |
| <!-- we run this early in the build process before |
| maven-resources-plugin is run. We're exporting the |
| plugin-scripts property from here, so we need to |
| use maven-antrun-plugin 1.6 or up --> |
| <id>generate-sources</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>run</goal> |
| </goals> |
| <configuration> |
| <target> |
| <echo>Building plugin javascript file list</echo> |
| <!-- javascript-files will contain all of the javascript in |
| our project --> |
| <fileset id="javascript-files" dir="${basedir}/src/main/webapp"> |
| <include name="**/*.js" /> |
| </fileset> |
| <!-- we need to strip out the top level path which is |
| our source directory and be sure to change the directory |
| separators to forward slashes --> |
| <pathconvert pathsep="," dirsep="/" property="plugin-scripts" refid="javascript-files"> |
| <map from="${basedir}/src/main/webapp/" to="" /> |
| </pathconvert> |
| <echo>Files: ${plugin-scripts}</echo> |
| |
| </target> |
| <!-- this exports plugin-scripts to the maven build, without |
| this line ${plugin-scripts} in the web.xml file won't be |
| replaced --> |
| <exportAntProperties>true</exportAntProperties> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <artifactId>maven-resources-plugin</artifactId> |
| <version>${maven-resources-plugin-version}</version> |
| <executions> |
| <execution> |
| <!-- defining this maven plugin in the same phase as the |
| maven-antrun-plugin but *after* we've configured the |
| maven-antrun-plugin ensures we filter resources *after* |
| we've discovered the plugin .js files. --> |
| <id>copy-resources</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>resources</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <!-- maven-bundle-plugin config, needed to make this war |
| deployable in karaf, defines the context that this bundle |
| should handle requests on --> |
| <plugin> |
| <groupId>org.apache.felix</groupId> |
| <artifactId>maven-bundle-plugin</artifactId> |
| <version>${maven-bundle-plugin-version}</version> |
| <executions> |
| <execution> |
| <id>bundle-manifest</id> |
| <phase>process-classes</phase> |
| <goals> |
| <goal>manifest</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <manifestLocation>${webapp-outdir}/META-INF</manifestLocation> |
| <supportedProjectTypes> |
| <supportedProjectType>jar</supportedProjectType> |
| <supportedProjectType>bundle</supportedProjectType> |
| <supportedProjectType>war</supportedProjectType> |
| </supportedProjectTypes> |
| <instructions> |
| <Webapp-Context>${plugin-context}</Webapp-Context> |
| <Web-ContextPath>${plugin-context}</Web-ContextPath> |
| |
| <Embed-Directory>WEB-INF/lib</Embed-Directory> |
| <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency> |
| <Embed-Transitive>true</Embed-Transitive> |
| |
| <Export-Package>${osgi.export}</Export-Package> |
| <Import-Package>${osgi.import}</Import-Package> |
| <DynamicImport-Package>${osgi.dynamic}</DynamicImport-Package> |
| <Private-Package>${osgi.private.pkg}</Private-Package> |
| |
| <Bundle-ClassPath>.,WEB-INF/classes</Bundle-ClassPath> |
| |
| <Bundle-Name>${project.description}</Bundle-Name> |
| <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName> |
| <Implementation-Title>HawtIO</Implementation-Title> |
| <Implementation-Version>${project.version}</Implementation-Version> |
| </instructions> |
| </configuration> |
| </plugin> |
| |
| <!-- We define the maven-war-plugin here and make sure it uses |
| the manifest file generated by the maven-bundle-plugin. We |
| also ensure it picks up our filtered web.xml and not the one |
| in src/main/resources --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-war-plugin</artifactId> |
| <version>${war-plugin-version}</version> |
| <configuration> |
| <outputFileNameMapping>@{artifactId}@-@{baseVersion}@@{dashClassifier?}@.@{extension}@</outputFileNameMapping> |
| <packagingExcludes>**/classes/OSGI-INF/**</packagingExcludes> |
| <failOnMissingWebXml>false</failOnMissingWebXml> |
| <archive> |
| <manifestFile>${webapp-outdir}/META-INF/MANIFEST.MF</manifestFile> |
| </archive> |
| <webResources> |
| <resource> |
| <filtering>true</filtering> |
| <directory>src/main/resources</directory> |
| <includes> |
| <include>**/*.*</include> |
| </includes> |
| <excludes> |
| <exclude>log4j.properties</exclude> |
| </excludes> |
| </resource> |
| </webResources> |
| </configuration> |
| </plugin> |
| |
| </plugins> |
| </build> |
| |
| </project> |