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

Reply via email to