Date: 2004-10-20T00:37:13
   Editor: KenTam <[EMAIL PROTECTED]>
   Wiki: Apache Beehive Wiki
   Page: Distribution Structure
   URL: http://wiki.apache.org/beehive/Distribution Structure

   no comment

New Page:

##language:en
#pragma section-numbers off

= Beehive Distribution Specification =

This proposal considers only one type of distribution -- that which includes 
docs, samples, template projects, and runtime bits but no servers on which to 
run a Beehive application.  One can envision having other distribution formats 
that include only the runtime JARs or a "heavy" distribution that includes all 
of the distribution plus Ant / Axis / Tomcat / etc.

== Distribution Build ==

The following top-level ant targets are relevant to building a distribution:
 * '''build.dist''': creates an exploded distribution rooted in 
{{{$BEEHIVE_HOME/build/dist}}}.  Depends on Beehive platform code, docs and 
samples builds.  Distinct from '''deploy''' so the development cycle of 
'''clean deploy''' won't be impacted.
 * '''build.dist.jar''': creates a distribution archive in 
{{{$BEEHIVE_HOME/build/jars}}} from the exploded distribution in 
{{{$BEEHIVE_HOME/build/dist}}}.
 * '''clean''': deletes the build/ directory, including distributions (exploded 
and archived).

== Distribution Directory Structure ==

The following structure is built under build/dist:

{{{
   ant/
      buildWebappCore.xml
      tomcat/
          deployWebapp.xml
      ...
   docs/
      <exploded Beehive doc / Javadoc>
   lib/
      common/
          apache-xbean.jar
          log4j-1.2.8.jar
          ...
      controls/
           runtime/
               controls.jar
               ...
      netui/
           struts.jar
           beehive-netui-pageflow.jar
           ...
      wsm/
           wsm.jar
   samples/
      <exploded Controls / WSM / NetUI samples>
   templates/
      netui-blank.war
      wsm-blank.war
      controls-blank.jar
   README.txt
   LICENSE.txt
   INSTALL.txt
   NOTICE.txt
}}}

=== Descriptions of the sub-directories ===

 * the ant/ directory contains the build files for compiling various Beehive 
enabled projects.  For example, a skeleton webapp build file would be included 
that has targets to build / clean a Beehive-enabled web project.  There would 
also be Ant targets to help (un|re)deploying a webapp on Tomcat and a target to 
obtain a copy of the NetUI runtime.  In general, the build files would contain 
the core tasks needed to build / clean each project type and would be 
structured such that they could be called directly or included in 
project-specific build files using the Ant 1.6 <import> tag.
 * the lib/ directory contains the runtime bits divided by sub-component. This 
breakdown helps developers understand which runtime pieces are used by each of 
WSM, Controls, and NetUI.
 * the lib/common/ directory contains the runtime bits that are shared between 
two or more sub-projects.  Currently, this includes XMLBeans and Log4J.
 * the lib/controls/ directory contains the controls.jar and related Velocity 
JARs; the latter are used at build time
 * the lib/netui/ directory contains the NetUI JPF runtime, compiler, tag 
libraries, skeleton config files, and the Struts / Commons JARs
 * the lib/wsm/ directory contains wsm.jar and any related runtime JARs
 * the templates/ directory contains project templates for the various Beehive 
components including a WSM enabled webapp, a controls JAR project, and a NetUI 
/ Controls / XMLBeans enabled webapp.  These can be unzipped and used as a 
starting point for building Beehive projects and should ship compiled such that 
they can be dropped into a container and run when possible.
 * the docs/ directory will contain Beehive documentation and API Javadoc
 * the samples/ directory will contain the samples that we decide should be 
distributed with the runtime

Reply via email to