Using assembly components to modularize assembly dependencies - https://issues.apache.org/jira/browse/AIRAVATA-1697
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/a893d86b Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/a893d86b Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/a893d86b Branch: refs/heads/master Commit: a893d86b5a1e9c9bd37ce89c35938a682a406562 Parents: 1b84883 Author: Suresh Marru <[email protected]> Authored: Tue May 12 16:57:20 2015 -0400 Committer: Suresh Marru <[email protected]> Committed: Tue May 12 16:57:20 2015 -0400 ---------------------------------------------------------------------- airavata-api/airavata-api-server/pom.xml | 6 - modules/distribution/new-dist/pom.xml | 156 ++ .../src/main/assembly/api-server-assembly.xml | 180 ++ .../src/main/assembly/api-server-component.xml | 33 + .../new-dist/src/main/assembly/src-assembly.xml | 75 + .../new-dist/src/main/resources/INSTALL | 30 + .../new-dist/src/main/resources/LICENSE | 2387 ++++++++++++++++++ .../new-dist/src/main/resources/NOTICE | 163 ++ .../new-dist/src/main/resources/README | 145 ++ .../src/main/resources/bin/airavata-server.bat | 55 + .../src/main/resources/bin/airavata-server.sh | 118 + .../new-dist/src/main/resources/bin/derby.sh | 23 + .../new-dist/src/main/resources/bin/logo.txt | 34 + .../new-dist/src/main/resources/bin/setenv.bat | 43 + .../new-dist/src/main/resources/bin/setenv.sh | 77 + .../src/main/resources/bin/startNetworkServer | 189 ++ .../main/resources/samples/registerSample.sh | 25 + .../src/main/resources/samples/scripts/add.sh | 21 + .../src/main/resources/samples/scripts/echo.sh | 22 + .../main/resources/samples/scripts/multiply.sh | 22 + .../main/resources/samples/scripts/subtract.sh | 22 + modules/distribution/pom.xml | 1 + 22 files changed, 3821 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/a893d86b/airavata-api/airavata-api-server/pom.xml ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-api-server/pom.xml b/airavata-api/airavata-api-server/pom.xml index 56e8361..df87344 100644 --- a/airavata-api/airavata-api-server/pom.xml +++ b/airavata-api/airavata-api-server/pom.xml @@ -81,12 +81,6 @@ <artifactId>slf4j-log4j12</artifactId> <version>${org.slf4j.version}</version> </dependency> - <!--<!– zookeeper dependencies –>--> - <!--<dependency>--> - <!--<groupId>org.apache.zookeeper</groupId>--> - <!--<artifactId>zookeeper</artifactId>--> - <!--<version>3.4.0</version>--> - <!--</dependency>--> </dependencies> http://git-wip-us.apache.org/repos/asf/airavata/blob/a893d86b/modules/distribution/new-dist/pom.xml ---------------------------------------------------------------------- diff --git a/modules/distribution/new-dist/pom.xml b/modules/distribution/new-dist/pom.xml new file mode 100644 index 0000000..0d95484 --- /dev/null +++ b/modules/distribution/new-dist/pom.xml @@ -0,0 +1,156 @@ +<?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"> + <parent> + <groupId>org.apache.airavata</groupId> + <artifactId>distribution</artifactId> + <version>0.15-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <modelVersion>4.0.0</modelVersion> + <artifactId>apache-airavata-new-distribution</artifactId> + <name>Apache Airavata Distribution</name> + <packaging>pom</packaging> + <url>http://airavata.apache.org/</url> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <version>2.8</version> + <executions> + <execution> + <id>unpack</id> + <phase>compile</phase> + <goals> + <goal>unpack</goal> + </goals> + <configuration> + <artifactItems> + <artifactItem> + <groupId>org.apache.airavata</groupId> + <artifactId>airavata-server-configuration</artifactId> + <version>${project.version}</version> + <type>jar</type> + </artifactItem> + </artifactItems> + <outputDirectory>${project.build.directory}/conf</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.codehaus.gmaven</groupId> + <artifactId>gmaven-plugin</artifactId> + <version>1.4</version> + <executions> + <execution> + <id>generate-timestamp</id> + <phase>package</phase> + <goals> + <goal>execute</goal> + </goals> + <configuration> + <source> + import java.util.Date + import java.text.MessageFormat + project.properties['buildTimestamp'] = + MessageFormat.format("{0,date,dd-MM-yyyy}", new + Date()) + </source> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-assembly-plugin</artifactId> + <executions> + <execution> + <id>distribution-package</id> + <phase>package</phase> + <goals> + <goal>single</goal> + </goals> + <configuration> + <finalName>${archieve.name}-${project.version}</finalName> + <descriptors> + <descriptor>src/main/assembly/api-server-assembly.xml</descriptor> + <descriptor>src/main/assembly/src-assembly.xml</descriptor> + </descriptors> + <attach>false</attach> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <version>1.7</version> + <executions> + <execution> + <id>attach-artifacts</id> + <phase>package</phase> + <goals> + <goal>attach-artifact</goal> + </goals> + <configuration> + <artifacts> + <artifact> + <file>${airavata.bin.zip}</file> + <type>zip</type> + <classifier>bin</classifier> + </artifact> + <artifact> + <file>${airavata.bin.tar.gz}</file> + <type>tar.gz</type> + <classifier>bin</classifier> + </artifact> + </artifacts> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>org.apache.airavata</groupId> + <artifactId>airavata-standalone-server</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.airavata</groupId> + <artifactId>airavata-api-server</artifactId> + <version>${project.version}</version> + </dependency> + + </dependencies> + + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <archieve.name>apache-airavata-server</archieve.name> + <airavata.dist.name>${archieve.name}-${project.version}</airavata.dist.name> + <airavata.work.dir>${project.build.directory}/tests/${airavata.dist.name}</airavata.work.dir> + <airavata.bin.zip>${project.build.directory}/${airavata.dist.name}-bin.zip</airavata.bin.zip> + <airavata.bin.tar.gz>${project.build.directory}/${airavata.dist.name}-bin.tar.gz</airavata.bin.tar.gz> + </properties> +</project> http://git-wip-us.apache.org/repos/asf/airavata/blob/a893d86b/modules/distribution/new-dist/src/main/assembly/api-server-assembly.xml ---------------------------------------------------------------------- diff --git a/modules/distribution/new-dist/src/main/assembly/api-server-assembly.xml b/modules/distribution/new-dist/src/main/assembly/api-server-assembly.xml new file mode 100644 index 0000000..1607799 --- /dev/null +++ b/modules/distribution/new-dist/src/main/assembly/api-server-assembly.xml @@ -0,0 +1,180 @@ +<!--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. --> + +<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> + + <id>bin</id> + <includeBaseDirectory>true</includeBaseDirectory> + <baseDirectory>${archieve.name}-${version}</baseDirectory> + <formats> + <format>tar.gz</format> + <format>zip</format> + </formats> + + <fileSets> + + <!-- ********************** copy release notes files ********************** --> + <fileSet> + <directory>../../../</directory> + <outputDirectory>.</outputDirectory> + <includes> + <include>RELEASE_NOTES</include> + </includes> + </fileSet> + <!-- ********************** copy licenses, readme etc. ********************** --> + <fileSet> + <directory>src/main/resources/</directory> + <outputDirectory>.</outputDirectory> + <includes> + <include>LICENSE</include> + <include>NOTICE</include> + <include>README</include> + <include>INSTALL</include> + </includes> + </fileSet> + + <!-- ********************** copy database scripts ********************** --> + <fileSet> + <directory>../../ws-messenger/messagebroker/src/main/resources/database_scripts + </directory> + <outputDirectory>bin/database_scripts + </outputDirectory> + <includes> + <include>*sql*</include> + </includes> + </fileSet> + <fileSet> + <directory>../../ws-messenger/messagebox/src/main/resources/database_scripts + </directory> + <outputDirectory>bin/database_scripts + </outputDirectory> + <includes> + <include>*sql*</include> + </includes> + </fileSet> + <fileSet> + <directory>../../registry/airavata-jpa-registry/src/main/resources + </directory> + <outputDirectory>bin/database_scripts + </outputDirectory> + <includes> + <include>*sql*</include> + </includes> + </fileSet> + <fileSet> + <directory>../../app-catalog/app-catalog-data/src/main/resources + </directory> + <outputDirectory>bin/database_scripts + </outputDirectory> + <includes> + <include>*sql*</include> + </includes> + </fileSet> + <fileSet> + <directory>src/main/resources/bin</directory> + <outputDirectory>bin</outputDirectory> + <fileMode>777</fileMode> + <includes> + <include>*.sh</include> + <include>*.bat</include> + <include>logo.txt</include> + <include>startNetworkServer</include> + </includes> + </fileSet> + <fileSet> + <directory>src/main/resources/samples</directory> + <outputDirectory>samples</outputDirectory> + <fileMode>777</fileMode> + <includes> + <include>*.sh</include> + <include>**/*.sh</include> + </includes> + </fileSet> + <fileSet> + <directory>${project.build.directory}/conf</directory> + <outputDirectory>bin</outputDirectory> + <includes> + <include>airavata-server.properties</include> + <include>zoo.cfg</include> + <include>registry.properties</include> + <include>log4j.properties</include> + <include>host.xml</include> + <include>persistence.xml</include> + <include>provenance.sql</include> + <include>gfac-config.xml</include> + <include>PBSTemplate.xslt</include> + <include>SLURMTemplate.xslt</include> + <include>LSFTemplate.xslt</include> + <include>SGETemplate.xslt</include> + <include>gsissh.properties</include> + </includes> + </fileSet> + + <!-- ********************** Copy Axis2 startup scripts to stand alone server + ********************** --> + <fileSet> + <directory>src/main/resources/axis2-standalone-bin</directory> + <outputDirectory>bin</outputDirectory> + <fileMode>777</fileMode> + <includes> + <include>*.sh</include> + <include>*.bat</include> + </includes> + </fileSet> + + <fileSet> + <directory>src/main/resources/conf</directory> + <outputDirectory>bin</outputDirectory> + <includes> + <include>**/*</include> + </includes> + </fileSet> + + <!-- ********************** Copy samples ********************** --> + <fileSet> + <directory>${project.build.directory}/samples/applications + </directory> + <outputDirectory>samples</outputDirectory> + <includes> + <include>*.sh</include> + <include>*.bat</include> + </includes> + </fileSet> + + </fileSets> + + <componentDescriptors> + <componentDescriptor>src/assembly/api-server-component.xml</componentDescriptor> + </componentDescriptors> + + <dependencySets> + <dependencySet> + <outputDirectory>lib</outputDirectory> + <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping> + <includes> + <include>org.apache.derby:derby:jar</include> + <include>org.apache.derby:derbytools:jar</include> + <include>org.apache.derby:derbynet:jar</include> + <include>org.apache.derby:derbyclient:jar</include> + </includes> + </dependencySet> + <dependencySet> + <outputDirectory>lib</outputDirectory> + <includes> + <include>*:*:jar</include> + </includes> + </dependencySet> + + </dependencySets> + +</assembly> http://git-wip-us.apache.org/repos/asf/airavata/blob/a893d86b/modules/distribution/new-dist/src/main/assembly/api-server-component.xml ---------------------------------------------------------------------- diff --git a/modules/distribution/new-dist/src/main/assembly/api-server-component.xml b/modules/distribution/new-dist/src/main/assembly/api-server-component.xml new file mode 100644 index 0000000..199e321 --- /dev/null +++ b/modules/distribution/new-dist/src/main/assembly/api-server-component.xml @@ -0,0 +1,33 @@ +<?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. +--> +<component xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/component/1.1.2" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/component/1.1.2 http://maven.apache.org/xsd/component-1.1.2.xsd"> + + <dependencySets> + <dependencySet> + <outputDirectory>/lib</outputDirectory> + <includes> + <!--<include>application:logging</include>--> + <!--<include>application:core</include>--> + <!--<include>application:utils</include>--> + </includes> + </dependencySet> + </dependencySets> + +</component> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/a893d86b/modules/distribution/new-dist/src/main/assembly/src-assembly.xml ---------------------------------------------------------------------- diff --git a/modules/distribution/new-dist/src/main/assembly/src-assembly.xml b/modules/distribution/new-dist/src/main/assembly/src-assembly.xml new file mode 100644 index 0000000..6a093ed --- /dev/null +++ b/modules/distribution/new-dist/src/main/assembly/src-assembly.xml @@ -0,0 +1,75 @@ +<!--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. + --> + +<assembly> + <id>src</id> + <includeBaseDirectory>true</includeBaseDirectory> + <baseDirectory>${archieve.name}-${version}</baseDirectory> + <formats> + <format>tar.gz</format> + <format>zip</format> + </formats> + + <fileSets> + <fileSet> + <directory>../..</directory> + <outputDirectory></outputDirectory> + <includes> + <include>NOTICE</include> + <include>LICENSE</include> + <include>README</include> + <include>RELEASE_NOTES</include> + <include>DISCLAIMER</include> + <include>INSTALL</include> + </includes> + <filtered>true</filtered> + </fileSet> + <fileSet> + <directory>../..</directory> + <outputDirectory></outputDirectory> + <useDefaultExcludes>true</useDefaultExcludes> + <includes> + <include>pom.xml</include> + <include>modules/**</include> + <include>samples/**</include> + </includes> + + <excludes> + <!-- Exclusions from org.apache.resources:apache-source-release-assembly-descriptor. + Note that they assume that all sources are located under an "src" directory. This + is not the case for Axis2, which doesn't use the standard Maven 2 conventions. + Thus we may still encounter some issues here. --> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/).*${project.build.directory}.*]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?maven-eclipse\.xml]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.project]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.classpath]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.iws]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.ipr]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.iml]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.settings(/.*)?]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.externalToolBuilders(/.*)?]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.deployables(/.*)?]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.wtpmodules(/.*)?]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?cobertura\.ser]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?pom\.xml\.releaseBackup]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?release\.properties]</exclude> + </excludes> + + </fileSet> + </fileSets> +</assembly> http://git-wip-us.apache.org/repos/asf/airavata/blob/a893d86b/modules/distribution/new-dist/src/main/resources/INSTALL ---------------------------------------------------------------------- diff --git a/modules/distribution/new-dist/src/main/resources/INSTALL b/modules/distribution/new-dist/src/main/resources/INSTALL new file mode 100644 index 0000000..53d0550 --- /dev/null +++ b/modules/distribution/new-dist/src/main/resources/INSTALL @@ -0,0 +1,30 @@ +Installing Apache Airavata 0.14 +------------------------------- + +Prerequisites +------------- +Java 1.5 or later +Maven (tested on v 3.0.2) + +Build Apache Airavata from Source +--------------------------------- +* Unzip/untar the source file or clone from git. +* cd to project folder and type + $ mvn clean install + Note: in order to skip tests use the command + $ mvn clean install -Dmaven.test.skip=true +* Alternatively, all compressed binary distributions can be found at <PROJECT DIR>/modules/distribution/release/target/release-artifacts + +Running Tests +------------- +* Unit tests & integrations tests will run while Apache Airavata is built from source (without "-Dmaven.test.skip=true"). +* To run the test samples + - You can find the binary distributions at <PROJECT DIR>/modules/distribution/release/target/release-artifacts or from + the Apache Airavata download site. + - Extract the binary distributions and once the binary is unzipped, instructions to run the tests should be followed + from README files found within. + +Tutorials +---------- +The airavata website has instructions for basic tutorials: +* Describing and executing applications using Airavata - follow "XBAYA Quick-Start Tutorial" tutorial at https://cwiki.apache.org/confluence/display/AIRAVATA/XBAYA+Quick-Start+Tutorial \ No newline at end of file
