blob: f67b72cef36c733f600db8dd934e4e7600bb68df [file] [log] [blame]
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>brooklyn-archetype-quickstart</artifactId>
<packaging>maven-archetype</packaging>
<name>Brooklyn Quick-Start Project Archetype</name>
<description>
This project defines an archetype for creating new projects which consume brooklyn,
including an example application and an example new entity type,
able to build an OSGi JAR and a binary assembly, with logging and READMEs.
</description>
<parent>
<groupId>org.apache.brooklyn</groupId>
<artifactId>brooklyn-parent</artifactId>
<version>0.8.0-incubating</version> <!-- BROOKLYN_VERSION -->
<relativePath>../../../parent/pom.xml</relativePath>
</parent>
<build>
<plugins>
<plugin>
<artifactId>maven-archetype-plugin</artifactId>
<!-- all we want to do is skip _integration tests_ when skipTests is set, not other phases;
but for some reason this seems to do it, and it still builds the archetype (!?).
whereas setting skip inside the integration-test execution goal does NOT work.
TODO promote to root pom.xml when we better understand why
-->
<configuration>
<skip>${skipTests}</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>src/test/resources/projects/integration-test-1/reference</directory>
<includes><include>**/*</include></includes>
</fileset>
<fileset>
<directory>src/main/resources/archetype-resources/</directory>
<includes><include>**/*</include></includes>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>maven-replacer-plugin</artifactId>
<executions>
<execution>
<id>copy-brooklyn-sample-to-integration-test-reference</id>
<phase>clean</phase>
<goals> <goal>replace</goal> </goals>
<configuration>
<basedir>${basedir}/src/brooklyn-sample</basedir>
<outputBasedir>${basedir}</outputBasedir>
<outputDir>src/test/resources/projects/integration-test-1/reference</outputDir>
<includes> <include>**</include> </includes>
<excludes>
<exclude>.*</exclude>
<exclude>.*/**</exclude>
<exclude>target/**</exclude>
<exclude>*.log</exclude>
</excludes>
<replacements />
</configuration>
</execution>
<!-- would be nice to reduce the repetion below, but don't see how;
have tried with valueTokenMap but it must lie beneath basedir;
and tried with {input,output}FilePattern but that doesn't apply to dirs -->
<execution>
<!-- copy creating variables and unpackaged, for src/main/java -->
<id>copy-brooklyn-sample-to-archetype-src-main-java</id>
<phase>clean</phase>
<goals> <goal>replace</goal> </goals>
<configuration>
<basedir>${basedir}/src/brooklyn-sample/src/main/java/com/acme/sample/brooklyn</basedir>
<outputBasedir>${basedir}</outputBasedir>
<outputDir>src/main/resources/archetype-resources/src/main/java</outputDir>
<includes> <include>**/*</include> </includes>
<replacements>
<replacement> <token>brooklyn-sample</token> <value>\$\{artifactId}</value> </replacement>
<replacement> <token>com\.acme\.sample\.brooklyn</token> <value>\$\{package}</value> </replacement>
<replacement> <token>com/acme/sample/brooklyn</token> <value>\$\{packageInPathFormat}</value> </replacement>
<replacement> <token>com\.acme\.sample</token> <value>\$\{groupId}</value> </replacement>
<replacement> <token>0.1.0-SNAPSHOT</token> <value>\$\{version}</value> </replacement>
</replacements>
</configuration>
</execution>
<execution>
<!-- copy creating variables and unpackaged, for src/test/java -->
<id>copy-brooklyn-sample-to-archetype-src-test-java</id>
<phase>clean</phase>
<goals> <goal>replace</goal> </goals>
<configuration>
<basedir>${basedir}/src/brooklyn-sample/src/test/java/com/acme/sample/brooklyn</basedir>
<outputBasedir>${basedir}</outputBasedir>
<outputDir>src/main/resources/archetype-resources/src/test/java</outputDir>
<includes> <include>**/*</include> </includes>
<replacements>
<replacement> <token>brooklyn-sample</token> <value>\$\{artifactId}</value> </replacement>
<replacement> <token>com\.acme\.sample\.brooklyn</token> <value>\$\{package}</value> </replacement>
<replacement> <token>com/acme/sample/brooklyn</token> <value>\$\{packageInPathFormat}</value> </replacement>
<replacement> <token>com\.acme\.sample</token> <value>\$\{groupId}</value> </replacement>
<replacement> <token>0.1.0-SNAPSHOT</token> <value>\$\{version}</value> </replacement>
</replacements>
</configuration>
</execution>
<execution>
<!-- copy creating variables, for all other places -->
<id>copy-brooklyn-sample-to-archetype-resources</id>
<phase>clean</phase>
<goals> <goal>replace</goal> </goals>
<configuration>
<basedir>${basedir}/src/brooklyn-sample/</basedir>
<outputBasedir>${basedir}</outputBasedir>
<outputDir>src/main/resources/archetype-resources/</outputDir>
<includes> <include>**/*</include> </includes>
<excludes>
<exclude>src/main/java/**</exclude>
<exclude>src/test/java/**</exclude>
<exclude>target/**</exclude>
<exclude>test-output/**</exclude>
<exclude>.*</exclude>
<exclude>**/*.png</exclude>
<exclude>.*/**</exclude>
<exclude>*.log</exclude>
<exclude>**/*.sh</exclude>
</excludes>
<replacements>
<!-- special chars in velocity have to be escaped.
fortunately we only use fairly simple examples so we don't need to solve the general case! -->
<!-- escaping # is ugly -->
<replacement> <token>(#+)</token> <value>#set\(\$H='$1'\)\${H}</value> </replacement>
<!-- and escaping $ doesn't even seem to work; perhaps an old version of velocity in use?
(however velocity ignores $ except for variables which are defined, so we're okay)
<replacement> <token>\$</token> <value>\\\$</value> </replacement>
-->
<replacement> <token>brooklyn-sample</token> <value>\$\{artifactId}</value> </replacement>
<replacement> <token>com\.acme\.sample\.brooklyn</token> <value>\$\{package}</value> </replacement>
<replacement> <token>com/acme/sample/brooklyn</token> <value>\$\{packageInPathFormat}</value> </replacement>
<replacement> <token>com\.acme\.sample</token> <value>\$\{groupId}</value> </replacement>
<replacement> <token>0.1.0-SNAPSHOT</token> <value>\$\{version}</value> </replacement>
</replacements>
</configuration>
</execution>
<execution>
<!-- copy creating variables, for all other places -->
<id>copy-brooklyn-sample-to-archetype-resources-binary</id>
<phase>clean</phase>
<goals> <goal>replace</goal> </goals>
<configuration>
<basedir>${basedir}/src/brooklyn-sample/</basedir>
<outputBasedir>${basedir}</outputBasedir>
<outputDir>src/main/resources/archetype-resources/</outputDir>
<includes>
<include>**/*.png</include>
<include>**/*.sh</include>
</includes>
<excludes>
<exclude>target/**</exclude>
<exclude>test-output/**</exclude>
<exclude>.*</exclude>
<exclude>.*/**</exclude>
</excludes>
<!-- no replacements for binary (put one just so we can use this plugin for consistency) -->
<replacements><replacement> <token>NONCE_123456789XYZ</token> <value>NONCE_123456789XYZ</value> </replacement></replacements>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<configuration>
<excludes combine.children="append">
<!--
The maven archetype are files "without any degree of creativity". They are intended
purely as a template to generate a new project for a user, where upon the user can
write their code within this new project.
The exclusions seem to need to include code that is auto-generated during a test run.
-->
<exclude>**/src/main/resources/archetype-resources/**/*</exclude>
<exclude>**/src/test/resources/projects/integration-test-1/goal.txt</exclude>
<exclude>**/src/test/resources/projects/integration-test-1/reference/**/*</exclude>
<exclude>**/src/main/java/sample/**/*Sample*.java</exclude>
<exclude>**/src/main/resources/logback-custom.xml</exclude>
<exclude>**/src/brooklyn-sample/README.md</exclude>
<exclude>**/src/brooklyn-sample/pom.xml</exclude>
<exclude>**/src/brooklyn-sample/src/main/assembly/files/conf/*</exclude>
<exclude>**/src/brooklyn-sample/src/main/java/**/*.java</exclude>
<exclude>**/src/brooklyn-sample/src/main/resources/logback-custom.xml</exclude>
<exclude>**/src/brooklyn-sample/src/test/java/**/*.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>