That could probably be done :)

The problem with downloading Tomcat is I would have to hardcode the exact mirror to use, as I don't know about a download url that would perform automatic mirror selection as SourceForge does.

Maybe a distro is available in some maven repository - haven't found that yet ...


On Fri, Feb 18, 2011 at 5:21 PM, Julien Viet <julien@julienviet.com> wrote:
what if you also add the feature to automatically download for all servers and not only JBoss AS ?


On Feb 18, 2011, at 5:00 PM, Marko Strukelj wrote:


1) README.txt in portal-parent is a bit outdated. I've put together a proposal for a new one [1]. I've tested the instructions with empty local repo. 

2) Also, I propose we remove packaging/profiles.xml, as it's not maven 3 compatible, and move properties definitions to packaging/pom.xml.

3) Also, we should move arguments checking (maven-enforcer-plugin) into portal-parent pom.xml so that when I do: 'mvn clean install -Ppkg-jbossas5' I'm immediately notified about a missing -Dexo.projects.directory.dependencies.

4) Then there was suggestion by Nick to also document and properly handle 'gatein.working.dir' property which he's been relying on.
I suggest moving it from packaging/pkg/pom.xml to packaging/pom.xml together with the rest of properties (those currently in profiles.xml).

5) And, Chris suggested to put some kind of short help message at the beginning of the build (like echo ...) that would list example command lines for all the packaging options, to make it super user-friendly for users.




[1]


Prerequisites
==========

- Java Development Kit 1.6
- Recent Subversion client
- Recent Maven 3 (or Maven 2.2.1)


Build instructions
=============

1) Configure maven repositories:

Create file settings.xml in $HOME/.m2  (%HOMEPATH%\.m2 on Windows) with the following content:

<settings>
 <profiles>
   <profile>
     <id>jboss-public-repository</id>
     <repositories>
       <repository>
         <id>jboss-public-repository-group</id>
         <name>JBoss Public Maven Repository Group</name>
         <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
         <layout>default</layout>
         <releases>
           <enabled>true</enabled>
           <updatePolicy>never</updatePolicy>
         </releases>
         <snapshots>
           <enabled>true</enabled>
           <updatePolicy>never</updatePolicy>
         </snapshots>
       </repository>
     </repositories>
     <pluginRepositories>
       <pluginRepository>
         <id>jboss-public-repository-group</id>
         <name>JBoss Public Maven Repository Group</name>
         <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
         <layout>default</layout>
         <releases>
           <enabled>true</enabled>
           <updatePolicy>never</updatePolicy>
         </releases>
         <snapshots>
           <enabled>true</enabled>
           <updatePolicy>never</updatePolicy>
         </snapshots>
       </pluginRepository>
     </pluginRepositories>
   </profile>

   <profile>
     <id>exo-public-repository</id>
     <repositories>
       <repository>
         <id>exo-public-repository-group</id>
         <name>eXo Public Maven Repository Group</name>
         <url>http://repository.exoplatform.org/content/groups/public</url>
         <layout>default</layout>
         <releases>
           <enabled>true</enabled>
           <updatePolicy>never</updatePolicy>
         </releases>
         <snapshots>
           <enabled>true</enabled>
           <updatePolicy>never</updatePolicy>
         </snapshots>
       </repository>
     </repositories>
     <pluginRepositories>
       <pluginRepository>
         <id>exo-public-repository-group</id>
         <name>eXo Public Maven Repository Group</name>
         <url>http://repository.exoplatform.org/content/groups/public</url>
         <layout>default</layout>
         <releases>
           <enabled>true</enabled>
           <updatePolicy>never</updatePolicy>
         </releases>
         <snapshots>
           <enabled>true</enabled>
           <updatePolicy>never</updatePolicy>
         </snapshots>
       </pluginRepository>
     </pluginRepositories>
   </profile>
 </profiles>

 <activeProfiles>
   <activeProfile>jboss-public-repository</activeProfile>
   <activeProfile>exo-public-repository</activeProfile>
 </activeProfiles>
</settings>


2) Check out gatein-portal

svn co http://anonsvn.jboss.org/repos/gatein/portal/trunk gatein-portal
cd gatein-portal


3) Prepare containers to use for packaging

Create a directory on your disk that will contain specific released versions of JBoss-AS, Tomcat, Jetty, or some other container, used as a template for GateIn packaging.

Let’s refer to this directory as CONTAINERS_DIR.


4) Build and package gatein-portal

GateIn can be packaged with different web / application servers. The specific container to use is selected by using an appropriate profile.


Packaging with JBoss-AS-5.1.0.GA
----------------------------------------------------

If you don’t have an existing JBoss-AS distribution, tell the build to automatically download it for you.
Issue the following command:

mvn clean install -Ppkg-jbossas5,download -Dexo.projects.directory.dependencies=$CONTAINERS_DIR


If you have an already downloaded JBoss-AS-5.1.0.GA distribution from jboss.org, unpack it into CONTAINERS_DIR directory so that you get CONTAINERS_DIR/jboss-5.1.0.GA directory.
Issue the following command:

mvn clean install -Ppkg-jbossas5 -Dexo.projects.directory.dependencies=$CONTAINERS_DIR

The packaged GateIn is available in packaging/jboss-as5/pkg/target/jboss.


Packaging with JBoss-AS-6.0.0.Final
----------------------------------------------------

If you don’t have an existing JBoss-AS distribution, tell the build to automatically download it for you.
Issue the following command:

mvn clean install -Ppkg-jbossas6,download -Dexo.projects.directory.dependencies=$CONTAINERS_DIR


If you have an already downloaded JBoss-AS-6.0.0.Final distribution from jboss.org, unpack it into CONTAINERS_DIR directory so that you get CONTAINERS_DIR/jboss-6.0.0.Final directory.
Issue the following command:

mvn clean install -Ppkg-jbossas6 -Dexo.projects.directory.dependencies=$CONTAINERS_DIR

The packaged GateIn is available in packaging/jboss-as6/pkg/target/jboss.


Packaging with Tomcat 6.x.x
----------------------------------------------------

Download latest Tomcat 6.x.x distribution from tomcat.apache.org, and unpack it into CONTAINERS_DIR directory so that you get CONTAINERS_DIR/apache-tomcat-6.x.x directory.
Issue the following command:

mvn clean install -Ppkg-tomcat -Dexo.projects.directory.dependencies=$CONTAINERS_DIR -Dexo.projects.app.tomcat.version=apache-tomcat-6.x.x

The packaged GateIn is available in packaging/tomcat/pkg/tc6/target/tomcat6.


Packaging with Tomcat 7.x.x
----------------------------------------------------

Download latest Tomcat 7.x.x distribution from tomcat.apache.org, and unpack it into CONTAINERS_DIR directory so that you get CONTAINERS_DIR/apache-tomcat-7.x.x directory.
Issue the following command:

mvn clean install -Ppkg-tomcat7 -Dexo.projects.directory.dependencies=$CONTAINERS_DIR -Dexo.projects.app.tomcat7.version=apache-tomcat-7.x.x

The packaged GateIn is available in packaging/tomcat/pkg/tc7/target/tomcat7.

(eof)



- marko


_______________________________________________
gatein-dev mailing list
gatein-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/gatein-dev