| <?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> |
| |
| <parent> |
| <groupId>org.apache</groupId> |
| <artifactId>apache</artifactId> |
| <version>17</version> |
| <relativePath></relativePath> <!-- prevent loading of ../pom.xml as the "parent" --> |
| </parent> |
| |
| <groupId>org.apache.brooklyn</groupId> |
| <artifactId>brooklyn-jsgui</artifactId> |
| <version>0.11.0-SNAPSHOT</version> <!-- BROOKLYN_VERSION --> |
| <packaging>war</packaging> |
| |
| <name>Brooklyn REST JavaScript Web GUI</name> |
| |
| <description> |
| JavaScript+HTML GUI for interacting with Brooklyn, using the REST API |
| </description> |
| |
| <scm> |
| <connection>scm:git:https://git-wip-us.apache.org/repos/asf/brooklyn-ui.git</connection> |
| <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/brooklyn-ui.git</developerConnection> |
| <url>https://git-wip-us.apache.org/repos/asf?p=brooklyn-ui.git</url> |
| <tag>HEAD</tag> |
| </scm> |
| |
| <issueManagement> |
| <system>JIRA</system> |
| <url>https://issues.apache.org/jira/browse/BROOKLYN</url> |
| </issueManagement> |
| <ciManagement> |
| <system>Jenkins</system> |
| <url>https://builds.apache.org/view/Brooklyn/job/brooklyn-ui-master/</url> |
| </ciManagement> |
| <mailingLists> |
| <mailingList> |
| <name>Brooklyn Developer List</name> |
| <subscribe>dev-subscribe@brooklyn.apache.org</subscribe> |
| <unsubscribe>dev-unsubscribe@brooklyn.apache.org</unsubscribe> |
| <post>dev@brooklyn.apache.org</post> |
| <archive> |
| http://mail-archives.apache.org/mod_mbox/brooklyn-dev/ |
| </archive> |
| </mailingList> |
| </mailingLists> |
| |
| <properties> |
| <project.build.webapp> |
| ${project.build.directory}/${project.build.finalName} |
| </project.build.webapp> |
| <nodejs.path>${project.basedir}/target/nodejs/node</nodejs.path> |
| <jasmine-maven-plugin.version>2.1</jasmine-maven-plugin.version> |
| <phantomjs.version>2.1.1</phantomjs.version> |
| <maven-dependency-plugin.version>2.8</maven-dependency-plugin.version> |
| <nodejs-maven-plugin.version>1.0.3</nodejs-maven-plugin.version> |
| <maven-war-plugin.version>2.4</maven-war-plugin.version> |
| <nodejs-maven-binaries.version>0.10.25</nodejs-maven-binaries.version> |
| <requirejs-maven-plugin.version>2.0.0</requirejs-maven-plugin.version> |
| <maven-replacer-plugin.version>1.5.2</maven-replacer-plugin.version> |
| <maven-resources-plugin.version>2.7</maven-resources-plugin.version> |
| </properties> |
| |
| <build> |
| <resources> |
| <resource> |
| <directory>${project.basedir}/src/test/resources/fixtures</directory> |
| <targetPath>${project.build.directory}/jasmine/fixtures</targetPath> |
| </resource> |
| </resources> |
| <!-- Insert special LICENSE/NOTICE into the <test-jar>/META-INF folder --> |
| <testResources> |
| <testResource> |
| <directory>${project.basedir}/src/test/resources</directory> |
| </testResource> |
| <testResource> |
| <targetPath>META-INF</targetPath> |
| <directory>${basedir}/src/test/license/files</directory> |
| </testResource> |
| </testResources> |
| <plugins> |
| <!-- require maven 3.1. jasmine will fail with cryptic error otherwise, |
| so let's make it print a nicer message if running with the wrong maven. --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>enforce-maven</id> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <configuration> |
| <rules> |
| <requireMavenVersion> |
| <version>3.1</version> |
| </requireMavenVersion> |
| </rules> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <!-- |
| run js tests with: $ mvn clean process-test-resources jasmine:test |
| run tests in the browser with: $ mvn jasmine:bdd |
| --> |
| <plugin> |
| <groupId>com.github.searls</groupId> |
| <artifactId>jasmine-maven-plugin</artifactId> |
| <version>${jasmine-maven-plugin.version}</version> |
| <executions> |
| <execution> |
| <goals> |
| <goal>test</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <!--Version of phantomjs needs to be specified for linux--> |
| <phantomjs> |
| <version>${phantomjs.version}</version> |
| <checkSystemPath>true</checkSystemPath> |
| <enforceVersion>true</enforceVersion> |
| <source>REPOSITORY</source> |
| <baseUrl/> |
| <outputDirectory>target/phantomjs</outputDirectory> |
| </phantomjs> |
| |
| <!--Uses the require.js test spec--> |
| <specRunnerTemplate>REQUIRE_JS</specRunnerTemplate> |
| <preloadSources> |
| <source>js/libs/require.js</source> |
| </preloadSources> |
| |
| <!--Sources--> |
| <jsSrcDir>${project.basedir}/src/main/webapp/assets</jsSrcDir> |
| <jsTestSrcDir>${project.basedir}/src/test/javascript/specs</jsTestSrcDir> |
| <customRunnerConfiguration> |
| ${project.basedir}/src/test/javascript/config.txt |
| </customRunnerConfiguration> |
| <!-- Makes output terser --> |
| <format>progress</format> |
| <additionalContexts> |
| <!-- If context roots start with a / the resource will be available on the server at //root. --> |
| <!-- It is an error for context roots to end with a /. --> |
| <context> |
| <contextRoot>fixtures</contextRoot> |
| <directory>${project.build.directory}/jasmine/fixtures</directory> |
| </context> |
| </additionalContexts> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-war-plugin</artifactId> |
| <version>${maven-war-plugin.version}</version> |
| <configuration> |
| <useCache>true</useCache> <!-- to prevent replaced files being overwritten --> |
| <!-- Insert special LICENSE/NOTICE into the <war>/META-INF folder --> |
| <webResources> |
| <webResource> |
| <targetPath>META-INF</targetPath> |
| <directory>${basedir}/src/main/license/files</directory> |
| </webResource> |
| </webResources> |
| <archive> |
| <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> |
| </archive> |
| </configuration> |
| </plugin> |
| <!-- Disable the automatic LICENSE/NOTICE placement from the upstream pom, because we need to include |
| bundled dependencies. See "webResources" section above for where we include the new LICENSE/NOTICE --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-remote-resources-plugin</artifactId> |
| <executions> |
| <execution> |
| <goals> |
| <goal>process</goal> |
| </goals> |
| <configuration> |
| <skip>true</skip> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.felix</groupId> |
| <artifactId>maven-bundle-plugin</artifactId> |
| <version>3.2.0</version> |
| <executions> |
| <execution> |
| <id>bundle-manifest</id> |
| <phase>process-classes</phase> |
| <goals> |
| <goal>manifest</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <supportedProjectTypes> |
| <supportedProjectType>war</supportedProjectType> |
| </supportedProjectTypes> |
| <instructions> |
| <Web-ContextPath>/</Web-ContextPath> |
| </instructions> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <executions> |
| <execution> |
| <goals> |
| <goal>test-jar</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <!-- Overrides 0.11 from parent. Remove when parent catches up. --> |
| <version>0.12</version> |
| <executions> |
| <execution> |
| <phase>verify</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <consoleOutput>true</consoleOutput> |
| <excludes combine.children="append"> |
| <!-- Exclude sandbox because not part of distribution: not in tgz, and not uploaded to maven-central --> |
| <exclude>sandbox/**</exclude> |
| <!-- Exclude release because not part of distribution: not in tgz, and not uploaded to maven-central --> |
| <exclude>release/**</exclude> |
| <exclude>README.md</exclude> |
| <exclude>.mvn/jvm.config</exclude> |
| <!-- git and IDE project files --> |
| <!-- see https://issues.apache.org/jira/browse/RAT-107 --> |
| <exclude>**/.git/**</exclude> |
| <exclude>**/.gitignore</exclude> |
| <exclude>**/.repository/**</exclude> |
| <exclude>**/.idea/**</exclude> |
| <exclude>**/*.iml</exclude> |
| <exclude>**/.classpath/**</exclude> |
| <exclude>**/.project</exclude> |
| <exclude>**/.settings/**</exclude> |
| <exclude>**/*.log</exclude> |
| <exclude>**/brooklyn*.log.*</exclude> |
| <exclude>**/target/**</exclude> |
| <!-- Exclude netbeans config files (not part of the project, but often on users' drives --> |
| <exclude>**/nbactions.xml</exclude> |
| <exclude>**/nb-configuration.xml</exclude> |
| <!-- files not requiring licence --> |
| <exclude>ignored/**</exclude> |
| <exclude>LICENSE.md</exclude> |
| <exclude>**/src/main/license/**</exclude> |
| <exclude>**/src/test/license/**</exclude> |
| <exclude>**/MANIFEST.MF</exclude> |
| <exclude>**/test-output/**</exclude> |
| |
| <!-- JavaScript & CSS code that is not copyright of Apache Foundation. It is included in NOTICE. --> |
| <exclude>**/src/main/webapp/assets/js/libs/**</exclude> |
| <exclude>**/src/build/requirejs-maven-plugin/r.js</exclude> |
| <exclude>src/main/webapp/assets/js/util/code-complete/brooklyn-yaml-completion-proposals.js</exclude> |
| <exclude>src/main/webapp/assets/js/util/code-complete/js-yaml-parser.js</exclude> |
| <exclude>src/main/webapp/assets/css/codemirror.css</exclude> |
| <exclude>src/main/webapp/assets/css/easy-autocomplete.css</exclude> |
| <exclude>src/main/webapp/assets/css/show-hint.css</exclude> |
| <exclude>src/main/webapp/assets/images/Sorting icons.psd</exclude> |
| <!-- Downloaded if missing, binary - not included in the repo --> |
| <exclude>src/main/webapp/assets/img/zeroclipboard/ZeroClipboard.swf</exclude> |
| |
| <exclude>src/test/resources/fixtures/*</exclude> |
| |
| <!-- |
| Copy of swagger-ui from https://github.com/swagger-api/swagger-ui tag::v2.1.3 |
| --> |
| <exclude>**/src/main/webapp/assets/swagger-ui/**</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| </plugins> |
| |
| <pluginManagement> |
| <plugins> |
| <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> |
| <plugin> |
| <groupId>org.eclipse.m2e</groupId> |
| <artifactId>lifecycle-mapping</artifactId> |
| <version>1.0.0</version> |
| <configuration> |
| <lifecycleMappingMetadata> |
| <pluginExecutions> |
| <pluginExecution> |
| <pluginExecutionFilter> |
| <groupId> |
| com.github.skwakman.nodejs-maven-plugin |
| </groupId> |
| <artifactId> |
| nodejs-maven-plugin |
| </artifactId> |
| <versionRange> |
| [1.0.3,) |
| </versionRange> |
| <goals> |
| <goal>extract</goal> |
| </goals> |
| </pluginExecutionFilter> |
| <action> |
| <ignore></ignore> |
| </action> |
| </pluginExecution> |
| <pluginExecution> |
| <pluginExecutionFilter> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId> |
| wagon-maven-plugin |
| </artifactId> |
| <versionRange>[1.0,)</versionRange> |
| <goals> |
| <goal>download-single</goal> |
| </goals> |
| </pluginExecutionFilter> |
| <action> |
| <ignore></ignore> |
| </action> |
| </pluginExecution> |
| </pluginExecutions> |
| </lifecycleMappingMetadata> |
| </configuration> |
| </plugin> |
| <plugin> |
| <!-- maven knows there is nothing to compile; but eclipse complains if this block is absent --> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <version>3.3</version> |
| <configuration> |
| <source>1.7</source> |
| <target>1.7</target> |
| </configuration> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| </build> |
| |
| <profiles> |
| <profile> |
| <id>nodejs-path-override</id> |
| <activation> |
| <os> |
| <family>linux</family> |
| </os> |
| </activation> |
| <properties> |
| <nodejs.path>${project.basedir}/src/build/nodejs</nodejs.path> |
| </properties> |
| <dependencies> |
| <dependency> |
| <groupId>com.github.skwakman.nodejs-maven-binaries</groupId> |
| <artifactId>nodejs-maven-binaries</artifactId> |
| <version>${nodejs-maven-binaries.version}</version> |
| <classifier>linux-x64</classifier> |
| <type>zip</type> |
| </dependency> |
| </dependencies> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <version>${maven-dependency-plugin.version}</version> |
| <executions> |
| <execution> |
| <id>unpack-nodejs64</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>unpack-dependencies</goal> |
| </goals> |
| <configuration> |
| <includeGroupIds>com.github.skwakman.nodejs-maven-binaries</includeGroupIds> |
| <includeArtifactIds>nodejs-maven-binaries</includeArtifactIds> |
| <outputDirectory> |
| ${project.basedir}/target/nodejs64/ |
| </outputDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <profile> |
| <id>Optimize resources</id> |
| <activation> |
| <property> |
| <name>!skipOptimization</name> |
| </property> |
| </activation> |
| <build> |
| <plugins> |
| <!-- Installs node.js in target/. Means we get the benefits of node's speed |
| (compared to Rhino) without having to install it manually. --> |
| <plugin> |
| <groupId>com.github.skwakman.nodejs-maven-plugin</groupId> |
| <artifactId>nodejs-maven-plugin</artifactId> |
| <version>${nodejs-maven-plugin.version}</version> |
| <executions> |
| <execution> |
| <goals> |
| <goal>extract</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <!-- target directory for node binaries --> |
| <targetDirectory>${project.basedir}/target/nodejs/</targetDirectory> |
| </configuration> |
| </plugin> |
| |
| <!-- Including the exploded goal means sources are in place ready for the replacer plugin. --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-war-plugin</artifactId> |
| <version>${maven-war-plugin.version}</version> |
| <executions> |
| <execution> |
| <id>prepare-war</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>exploded</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <!-- Runs the require.js optimizer with node to produce a single artifact. --> |
| <plugin> |
| <groupId>com.github.mcheely</groupId> |
| <artifactId>requirejs-maven-plugin</artifactId> |
| <version>${requirejs-maven-plugin.version}</version> |
| <executions> |
| <execution> |
| <id>optimize-js</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>optimize</goal> |
| </goals> |
| <configuration> |
| <configFile>${project.basedir}/src/build/optimize-js.conf.js</configFile> |
| </configuration> |
| </execution> |
| <execution> |
| <id>optimize-css</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>optimize</goal> |
| </goals> |
| <configuration> |
| <configFile>${project.basedir}/src/build/optimize-css.conf.js</configFile> |
| </configuration> |
| </execution> |
| </executions> |
| <configuration> |
| <nodeExecutable>${nodejs.path}</nodeExecutable> |
| <optimizerFile>${project.basedir}/src/build/requirejs-maven-plugin/r.js</optimizerFile> |
| <!-- Replaces Maven tokens in the build file with their values --> |
| <filterConfig>true</filterConfig> |
| </configuration> |
| </plugin> |
| |
| <!-- Modify index.html to point to the optimized resources generated above. --> |
| <plugin> |
| <groupId>com.google.code.maven-replacer-plugin</groupId> |
| <artifactId>replacer</artifactId> |
| <version>${maven-replacer-plugin.version}</version> |
| <executions> |
| <execution> |
| <id>modify-for-optimized</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>replace</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <file>${project.build.webapp}/index.html</file> |
| <replacements> |
| <replacement> |
| <token>assets/js/config.js</token> |
| <value>assets/js/gui.all.min.js</value> |
| </replacement> |
| <replacement> |
| <token>assets/css/styles.css</token> |
| <value>assets/css/styles.min.css</value> |
| </replacement> |
| <replacement> |
| <token>GIT_SHA_1</token> |
| <value>${buildNumber}</value> |
| </replacement> |
| </replacements> |
| </configuration> |
| </plugin> |
| |
| <!-- Compress the minified files. Jetty will serve the gzipped content instead. --> |
| <plugin> |
| <artifactId>maven-antrun-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>Compress resources</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>run</goal> |
| </goals> |
| <configuration> |
| <target> |
| <gzip src="${project.build.webapp}/assets/css/styles.min.css" |
| destfile="${project.build.webapp}/assets/css/styles.min.css.gz"/> |
| <gzip src="${project.build.webapp}/assets/css/brooklyn.css" |
| destfile="${project.build.webapp}/assets/css/brooklyn.css.gz"/> |
| <gzip src="${project.build.webapp}/assets/js/gui.all.min.js" |
| destfile="${project.build.webapp}/assets/js/gui.all.min.js.gz"/> |
| <gzip src="${project.build.webapp}/assets/js/libs/require.js" |
| destfile="${project.build.webapp}/assets/js/libs/require.js.gz"/> |
| </target> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <!-- see README in the directory referenced below --> |
| <id>download-zeroclipboard</id> |
| <activation> |
| <file> |
| <missing>src/main/webapp/assets/img/zeroclipboard/ZeroClipboard.swf</missing> |
| </file> |
| </activation> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>wagon-maven-plugin</artifactId> |
| <version>1.0</version> |
| <executions> |
| <execution> |
| <id>download-zeroclipboard</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>download-single</goal> |
| </goals> |
| <configuration> |
| <url>http://cdnjs.cloudflare.com</url> |
| <fromFile>/ajax/libs/zeroclipboard/1.3.5/ZeroClipboard.swf</fromFile> |
| <toDir>src/main/webapp/assets/img/zeroclipboard/</toDir> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| </profiles> |
| |
| </project> |
| |