You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@beehive.apache.org by Eddie O'Neil <ek...@bea.com> on 2005/01/16 20:13:37 UTC

important: build changes

All--

   As have been discussed in the -dev list over the last few weeks, 
there are some build changes that are coming which will impact your 
local SVN trunk/ source trees.  These are now complete locally, and I'd 
like to check them into the tree on Tuesday morning.

   The changes stem from the build work that Bob started and a need / 
desire to remove Tomcat and Ant from the source tree.  The result are 
changes in two categories:

1) In SVN, removing the BEEHIVE_HOME environment variable, isolating the 
build-webapp / start / deploy calls, and fixing up compile-time and 
deploy-time dependencies on XMLBean / controls / velocity / etc.  This 
change is basically low impact on your local development environment.

2) removing Ant and Tomcat from the build.  This change is higher impact 
and requires adjusting in steps 1-5 below.

   Here's a draft of the changes needed to adjust your local build 
environment; note, this is subject to change and will be updated when 
the changes are committed to SVN.  :)  Just want to give everyone a 
general heads up on what you'll need to change locally.

   I've got a patch file I can send along if anyone is interested (it's 
not attached because of its size).

   Comments / questions welcome.

Eddie



How to adjust (draft!)
=============
1) install Tomcat 5.0.x from:

   http://jakarta.apache.org/site/binindex.cgi#tomcat

Note, Tomcat 5.5.x versions have a deployment bug that wreaks havoc with 
the NetUI DRTs, so avoid 5.5.x versions for the time being.

2) install Ant 1.6.2 from:

   http://ant.apache.org/bindownload.cgi

3) setup environment variables (via a shell script or in the system) for:

   CATALINA_HOME
   ANT_HOME

4) copy junit.jar from ${beehive.home}/trunk/external/junit/junit.jar 
into $ANT_HOME/lib

5) copy ${beehive.home}/test/conf/tomcat-users.xml to 
$CATALINA_HOME/conf.  This ensures that the manager role is defined and 
that Tomcat's Ant tasks for deploy / undeploy of webapps work.

6) ensure that $JAVA_HOME/bin and $ANT_HOME/bin are available in your 
$PATH.

There is a "check.setup" target in the trunk/build.xml file which will 
help check your environment.

Overview of the changes
=======================

- the SVN build now runs without any shell scripts or environment 
variables.  The .cmd/.sh files for the SVN and distribution builds have 
all been removed.

- the distribution build now runs without any shell scripts of 
environment variables.

- no JARs that we build or use have changed locations, so these changes 
shouldn't impact your IDE project setup.

- Tomcat and Ant have been removed from SVN and must now be installed 
locally (preferably outside of your ${beehive.home}).  I'd like to see 
the same thing happen with Axis but will leave that for the WSM devs to 
take care of.

- the top-level beehive.properties file is now gone.  This has been 
replaced with a file called "beehive-imports.xml" which is in trunk/ and 
contains a set of <path>s and <fileset>s which allows downstream build 
files to build classpaths and copy files more easily.  For example, 
previously to reference XMLBeans, one used:

   <property name="classpath" location="${xbean.jar};${jsr173.jar}..."/>

now, this is setup in beehive-imports.xml as:

     <path id="xbean.classpath">
         <fileset refid="xbean.fileset"/>
         <fileset refid="jsr173.fileset"/>
     </path>

and can be imported into a classpath as:

   <path refid="xbean.classpath"/>

This tends to make classpaths easier to manage, and everyone shares the 
same definitions.  The properties file may come back but will hopefully 
only contain properties that can be tweaked by devleopers.

- importing "beehive-imports.xml" is also the same mechanism via which 
Ant / JDK version checking is done and via which the "beehive.home" Ant 
property is set.  The "beehive.home" variable is an absolute reference 
to the trunk/ directory, but without having to set an environment 
variable.  This makes it easy to switch between Beehive trees.

- sub-project builds have been adjusted to account for the changes from 
properties to <path>s

- the targets to start / stop an app container and deploy / undeploy / 
redeploy have been hidden behind a set of <macrodef>s in 
beehive-imports.xml.  In SVN, all downstream clients of these macros 
simply call <start-server> to start some configured server.  Tomcat is 
setup as the default server, and the start / stop / deploy / undeploy / 
redeploy targets are implemented in ant/tomcat-imports.xml.  Bryan, this 
would be a good place to plug-in JOnAS.  Would be great to see the same 
of WSM / Axis.

- the distribution is now container agnostic and doesn't ship anything 
related to Tomcat.  As a default, the webapp build assumes that 
$CATALINA_HOME is available in order to pickup the Servlet / JSP 
classpaths.  Just took a stab at this, I expect that we'll discuss 
further in the future.

- the webapp build files from ${beehive.home}/test/ant have moved to 
${beehive.home}/ant so that they are in the same place in SVN and in the 
distribution.

- the webapp build files have been restructured slightly to provide Ant 
macros for compiling controls, JWSs, and JPFs.

What works
==========

- controls / wsm / netui DRTs
- "build.dist"
- "test.dist"
- doc builds
- running NetUI tests against the distribution

What is undone
==============

- Ensure that the controls perf infrastructure to run with the new system
- Ensuring that all of the /samples builds work correctly.  This seems 
like it can be fixed after the fact
- Ensuring that the app container plug-points in the build are 100% 
capable of accepting another container.  They're a good start, but it'd 
be great to add SVN support for JOnAS or Geronimo.
- Fixing any of your local Ant builds / other things that exist outside 
of the tree

Example environment init script (note, no BEEHIVE_HOME)
===============================
@ECHO OFF

set JAVA_HOME=d:\dev\src\build\jdk1.5.0
set MAVEN_HOME=d:\java\maven-1.0.1
set FORREST_HOME=d:\java\apache-forrest-0.6\src\core
set JSF_HOME=d:\java\jsf-1_1
set CATALINA_HOME=d:\java\jakarta-tomcat-5.0.25
set ANT_HOME=d:\java\apache-ant-1.6.2

set SVN_EDITOR=notepad

set 
PATH=%PATH%;%MAVEN_HOME%\bin;%FORREST_HOME%\bin;%JAVA_HOME%\bin;%ANT_HOME%\bin

Re: important: build changes

Posted by Bryan Che <bc...@redhat.com>.
Sounds good to me--looking forward to the changes.

Bryan

Eddie O'Neil wrote:
> All--
> 
>   As have been discussed in the -dev list over the last few weeks, there 
> are some build changes that are coming which will impact your local SVN 
> trunk/ source trees.  These are now complete locally, and I'd like to 
> check them into the tree on Tuesday morning.
> 
>   The changes stem from the build work that Bob started and a need / 
> desire to remove Tomcat and Ant from the source tree.  The result are 
> changes in two categories:
> 
> 1) In SVN, removing the BEEHIVE_HOME environment variable, isolating the 
> build-webapp / start / deploy calls, and fixing up compile-time and 
> deploy-time dependencies on XMLBean / controls / velocity / etc.  This 
> change is basically low impact on your local development environment.
> 
> 2) removing Ant and Tomcat from the build.  This change is higher impact 
> and requires adjusting in steps 1-5 below.
> 
>   Here's a draft of the changes needed to adjust your local build 
> environment; note, this is subject to change and will be updated when 
> the changes are committed to SVN.  :)  Just want to give everyone a 
> general heads up on what you'll need to change locally.
> 
>   I've got a patch file I can send along if anyone is interested (it's 
> not attached because of its size).
> 
>   Comments / questions welcome.
> 
> Eddie
> 
> 
> 
> How to adjust (draft!)
> =============
> 1) install Tomcat 5.0.x from:
> 
>   http://jakarta.apache.org/site/binindex.cgi#tomcat
> 
> Note, Tomcat 5.5.x versions have a deployment bug that wreaks havoc with 
> the NetUI DRTs, so avoid 5.5.x versions for the time being.
> 
> 2) install Ant 1.6.2 from:
> 
>   http://ant.apache.org/bindownload.cgi
> 
> 3) setup environment variables (via a shell script or in the system) for:
> 
>   CATALINA_HOME
>   ANT_HOME
> 
> 4) copy junit.jar from ${beehive.home}/trunk/external/junit/junit.jar 
> into $ANT_HOME/lib
> 
> 5) copy ${beehive.home}/test/conf/tomcat-users.xml to 
> $CATALINA_HOME/conf.  This ensures that the manager role is defined and 
> that Tomcat's Ant tasks for deploy / undeploy of webapps work.
> 
> 6) ensure that $JAVA_HOME/bin and $ANT_HOME/bin are available in your 
> $PATH.
> 
> There is a "check.setup" target in the trunk/build.xml file which will 
> help check your environment.
> 
> Overview of the changes
> =======================
> 
> - the SVN build now runs without any shell scripts or environment 
> variables.  The .cmd/.sh files for the SVN and distribution builds have 
> all been removed.
> 
> - the distribution build now runs without any shell scripts of 
> environment variables.
> 
> - no JARs that we build or use have changed locations, so these changes 
> shouldn't impact your IDE project setup.
> 
> - Tomcat and Ant have been removed from SVN and must now be installed 
> locally (preferably outside of your ${beehive.home}).  I'd like to see 
> the same thing happen with Axis but will leave that for the WSM devs to 
> take care of.
> 
> - the top-level beehive.properties file is now gone.  This has been 
> replaced with a file called "beehive-imports.xml" which is in trunk/ and 
> contains a set of <path>s and <fileset>s which allows downstream build 
> files to build classpaths and copy files more easily.  For example, 
> previously to reference XMLBeans, one used:
> 
>   <property name="classpath" location="${xbean.jar};${jsr173.jar}..."/>
> 
> now, this is setup in beehive-imports.xml as:
> 
>     <path id="xbean.classpath">
>         <fileset refid="xbean.fileset"/>
>         <fileset refid="jsr173.fileset"/>
>     </path>
> 
> and can be imported into a classpath as:
> 
>   <path refid="xbean.classpath"/>
> 
> This tends to make classpaths easier to manage, and everyone shares the 
> same definitions.  The properties file may come back but will hopefully 
> only contain properties that can be tweaked by devleopers.
> 
> - importing "beehive-imports.xml" is also the same mechanism via which 
> Ant / JDK version checking is done and via which the "beehive.home" Ant 
> property is set.  The "beehive.home" variable is an absolute reference 
> to the trunk/ directory, but without having to set an environment 
> variable.  This makes it easy to switch between Beehive trees.
> 
> - sub-project builds have been adjusted to account for the changes from 
> properties to <path>s
> 
> - the targets to start / stop an app container and deploy / undeploy / 
> redeploy have been hidden behind a set of <macrodef>s in 
> beehive-imports.xml.  In SVN, all downstream clients of these macros 
> simply call <start-server> to start some configured server.  Tomcat is 
> setup as the default server, and the start / stop / deploy / undeploy / 
> redeploy targets are implemented in ant/tomcat-imports.xml.  Bryan, this 
> would be a good place to plug-in JOnAS.  Would be great to see the same 
> of WSM / Axis.
> 
> - the distribution is now container agnostic and doesn't ship anything 
> related to Tomcat.  As a default, the webapp build assumes that 
> $CATALINA_HOME is available in order to pickup the Servlet / JSP 
> classpaths.  Just took a stab at this, I expect that we'll discuss 
> further in the future.
> 
> - the webapp build files from ${beehive.home}/test/ant have moved to 
> ${beehive.home}/ant so that they are in the same place in SVN and in the 
> distribution.
> 
> - the webapp build files have been restructured slightly to provide Ant 
> macros for compiling controls, JWSs, and JPFs.
> 
> What works
> ==========
> 
> - controls / wsm / netui DRTs
> - "build.dist"
> - "test.dist"
> - doc builds
> - running NetUI tests against the distribution
> 
> What is undone
> ==============
> 
> - Ensure that the controls perf infrastructure to run with the new system
> - Ensuring that all of the /samples builds work correctly.  This seems 
> like it can be fixed after the fact
> - Ensuring that the app container plug-points in the build are 100% 
> capable of accepting another container.  They're a good start, but it'd 
> be great to add SVN support for JOnAS or Geronimo.
> - Fixing any of your local Ant builds / other things that exist outside 
> of the tree
> 
> Example environment init script (note, no BEEHIVE_HOME)
> ===============================
> @ECHO OFF
> 
> set JAVA_HOME=d:\dev\src\build\jdk1.5.0
> set MAVEN_HOME=d:\java\maven-1.0.1
> set FORREST_HOME=d:\java\apache-forrest-0.6\src\core
> set JSF_HOME=d:\java\jsf-1_1
> set CATALINA_HOME=d:\java\jakarta-tomcat-5.0.25
> set ANT_HOME=d:\java\apache-ant-1.6.2
> 
> set SVN_EDITOR=notepad
> 
> set 
> PATH=%PATH%;%MAVEN_HOME%\bin;%FORREST_HOME%\bin;%JAVA_HOME%\bin;%ANT_HOME%\bin 
> 

Re: important: build changes

Posted by Eddie O'Neil <ek...@bea.com>.
All--

   Just to give everyone the heads up -- the build changes will go into 
the tree in the next hour or two.

   Send questions / comments / flames my way.  :)

   Thanks!

Eddie



Eddie O'Neil wrote:
> All--
> 
>   As have been discussed in the -dev list over the last few weeks, there 
> are some build changes that are coming which will impact your local SVN 
> trunk/ source trees.  These are now complete locally, and I'd like to 
> check them into the tree on Tuesday morning.
> 
>   The changes stem from the build work that Bob started and a need / 
> desire to remove Tomcat and Ant from the source tree.  The result are 
> changes in two categories:
> 
> 1) In SVN, removing the BEEHIVE_HOME environment variable, isolating the 
> build-webapp / start / deploy calls, and fixing up compile-time and 
> deploy-time dependencies on XMLBean / controls / velocity / etc.  This 
> change is basically low impact on your local development environment.
> 
> 2) removing Ant and Tomcat from the build.  This change is higher impact 
> and requires adjusting in steps 1-5 below.
> 
>   Here's a draft of the changes needed to adjust your local build 
> environment; note, this is subject to change and will be updated when 
> the changes are committed to SVN.  :)  Just want to give everyone a 
> general heads up on what you'll need to change locally.
> 
>   I've got a patch file I can send along if anyone is interested (it's 
> not attached because of its size).
> 
>   Comments / questions welcome.
> 
> Eddie
> 
> 
> 
> How to adjust (draft!)
> =============
> 1) install Tomcat 5.0.x from:
> 
>   http://jakarta.apache.org/site/binindex.cgi#tomcat
> 
> Note, Tomcat 5.5.x versions have a deployment bug that wreaks havoc with 
> the NetUI DRTs, so avoid 5.5.x versions for the time being.
> 
> 2) install Ant 1.6.2 from:
> 
>   http://ant.apache.org/bindownload.cgi
> 
> 3) setup environment variables (via a shell script or in the system) for:
> 
>   CATALINA_HOME
>   ANT_HOME
> 
> 4) copy junit.jar from ${beehive.home}/trunk/external/junit/junit.jar 
> into $ANT_HOME/lib
> 
> 5) copy ${beehive.home}/test/conf/tomcat-users.xml to 
> $CATALINA_HOME/conf.  This ensures that the manager role is defined and 
> that Tomcat's Ant tasks for deploy / undeploy of webapps work.
> 
> 6) ensure that $JAVA_HOME/bin and $ANT_HOME/bin are available in your 
> $PATH.
> 
> There is a "check.setup" target in the trunk/build.xml file which will 
> help check your environment.
> 
> Overview of the changes
> =======================
> 
> - the SVN build now runs without any shell scripts or environment 
> variables.  The .cmd/.sh files for the SVN and distribution builds have 
> all been removed.
> 
> - the distribution build now runs without any shell scripts of 
> environment variables.
> 
> - no JARs that we build or use have changed locations, so these changes 
> shouldn't impact your IDE project setup.
> 
> - Tomcat and Ant have been removed from SVN and must now be installed 
> locally (preferably outside of your ${beehive.home}).  I'd like to see 
> the same thing happen with Axis but will leave that for the WSM devs to 
> take care of.
> 
> - the top-level beehive.properties file is now gone.  This has been 
> replaced with a file called "beehive-imports.xml" which is in trunk/ and 
> contains a set of <path>s and <fileset>s which allows downstream build 
> files to build classpaths and copy files more easily.  For example, 
> previously to reference XMLBeans, one used:
> 
>   <property name="classpath" location="${xbean.jar};${jsr173.jar}..."/>
> 
> now, this is setup in beehive-imports.xml as:
> 
>     <path id="xbean.classpath">
>         <fileset refid="xbean.fileset"/>
>         <fileset refid="jsr173.fileset"/>
>     </path>
> 
> and can be imported into a classpath as:
> 
>   <path refid="xbean.classpath"/>
> 
> This tends to make classpaths easier to manage, and everyone shares the 
> same definitions.  The properties file may come back but will hopefully 
> only contain properties that can be tweaked by devleopers.
> 
> - importing "beehive-imports.xml" is also the same mechanism via which 
> Ant / JDK version checking is done and via which the "beehive.home" Ant 
> property is set.  The "beehive.home" variable is an absolute reference 
> to the trunk/ directory, but without having to set an environment 
> variable.  This makes it easy to switch between Beehive trees.
> 
> - sub-project builds have been adjusted to account for the changes from 
> properties to <path>s
> 
> - the targets to start / stop an app container and deploy / undeploy / 
> redeploy have been hidden behind a set of <macrodef>s in 
> beehive-imports.xml.  In SVN, all downstream clients of these macros 
> simply call <start-server> to start some configured server.  Tomcat is 
> setup as the default server, and the start / stop / deploy / undeploy / 
> redeploy targets are implemented in ant/tomcat-imports.xml.  Bryan, this 
> would be a good place to plug-in JOnAS.  Would be great to see the same 
> of WSM / Axis.
> 
> - the distribution is now container agnostic and doesn't ship anything 
> related to Tomcat.  As a default, the webapp build assumes that 
> $CATALINA_HOME is available in order to pickup the Servlet / JSP 
> classpaths.  Just took a stab at this, I expect that we'll discuss 
> further in the future.
> 
> - the webapp build files from ${beehive.home}/test/ant have moved to 
> ${beehive.home}/ant so that they are in the same place in SVN and in the 
> distribution.
> 
> - the webapp build files have been restructured slightly to provide Ant 
> macros for compiling controls, JWSs, and JPFs.
> 
> What works
> ==========
> 
> - controls / wsm / netui DRTs
> - "build.dist"
> - "test.dist"
> - doc builds
> - running NetUI tests against the distribution
> 
> What is undone
> ==============
> 
> - Ensure that the controls perf infrastructure to run with the new system
> - Ensuring that all of the /samples builds work correctly.  This seems 
> like it can be fixed after the fact
> - Ensuring that the app container plug-points in the build are 100% 
> capable of accepting another container.  They're a good start, but it'd 
> be great to add SVN support for JOnAS or Geronimo.
> - Fixing any of your local Ant builds / other things that exist outside 
> of the tree
> 
> Example environment init script (note, no BEEHIVE_HOME)
> ===============================
> @ECHO OFF
> 
> set JAVA_HOME=d:\dev\src\build\jdk1.5.0
> set MAVEN_HOME=d:\java\maven-1.0.1
> set FORREST_HOME=d:\java\apache-forrest-0.6\src\core
> set JSF_HOME=d:\java\jsf-1_1
> set CATALINA_HOME=d:\java\jakarta-tomcat-5.0.25
> set ANT_HOME=d:\java\apache-ant-1.6.2
> 
> set SVN_EDITOR=notepad
> 
> set 
> PATH=%PATH%;%MAVEN_HOME%\bin;%FORREST_HOME%\bin;%JAVA_HOME%\bin;%ANT_HOME%\bin 
> 
>