Date: 2004-12-16T11:54:10
Editor: SteveHanson <[EMAIL PROTECTED]>
Wiki: Apache Beehive Wiki
Page: Distribution Structure
URL: http://wiki.apache.org/beehive/Distribution Structure
no comment
Change Log:
------------------------------------------------------------------------------
@@ -7,18 +7,21 @@
== Distribution Build Details ==
+You must have Apache Forrest installed to run distribution-related targets.
See $BEEHIVE_HOME/BUILDING.txt for instructions on installing Apache Forrest.
+
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 and samples
builds. Distinct from '''deploy''' so the development cycle of '''clean
deploy''' won't be impacted.
* '''build.dist.zip''': creates a .zip distribution archive in
{{{$BEEHIVE_HOME/build/jars}}} from the exploded distribution in
{{{$BEEHIVE_HOME/build/dist}}}.
* '''build.dist.tgz''': creates a .tar.gz distribution archive in
{{{$BEEHIVE_HOME/build/jars}}} from the exploded distribution in
{{{$BEEHIVE_HOME/build/dist}}}.
* '''build.dist.archives''': creates all distribution archives (.zip,
.tar.gz, etc).
- * '''build.dist.docs''': creates an exploded documentation distribution
rooted in {{{$BEEHIVE_HOME/build/dist-docs}}}. Depends on Beehive docs build.
- * '''build.dist.docs.jar''': creates a documentation distribution archive in
{{{$BEEHIVE_HOME/build/jars}}} from the exploded distribution in
{{{$BEEHIVE_HOME/build/dist-docs}}}
+ * '''build.dist.docs''': creates an exploded documentation distribution
rooted in {{{$BEEHIVE_HOME/build/dist/apache-beehive-[version]/docs}}}.
Depends on Beehive docs build.
+ * '''build.dist.docs.jar''': creates a documentation distribution archive in
{{{$BEEHIVE_HOME/build/jars}}} from the exploded distribution in
{{{$BEEHIVE_HOME/build/dist/apache-beehive-[version]/docs}}}
* '''test.dist''': runs simple validation tests on the distribution in
{{{$BEEHIVE_HOME/build/dist}}}. These tests are written and executed from the
perspective of a user of the distribution (ie, they spawn a clean shell w/ no
Beehive developer related settings).
* '''clean''': deletes the build/ directory, including distributions
(exploded and archived).
JAR building targets incorporate the value of the {{{beehive.version}}}
property into the name of the created JARs. Set this when calling ant in order
to produce a distribution w/ the appropriate version #.
+
== Distribution Structure ==
A Beehive distribution has the following structure:
@@ -27,6 +30,8 @@
ant/
buildWebapp.xml
...
+ docs/
+ ...
lib/
common/
apache-xbean.jar
@@ -64,14 +69,14 @@
=== Distribution Content Description ===
* beehiveUser.cmd sets up the user's Beehive environment. Users need to
modify it as part of setting up their Beehive installation to point at e.g.
where they installed tomcat, ant and the jdk.
- * 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. Global properties
for these build files are defined in the top-level beehive.properties file.
+ * 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. Global properties
for these build files are defined in the top-level beehive.properties file.
* 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.
- * the samples/ directory will contain the samples that we decide should be
distributed with the runtime, both overall samples (like the petstore) and
component specific sammples (like the WSM Address Book and the Database
control).
+ * the samples/ directory will contain the samples that we decide should be
distributed with the runtime, both overall samples (like the petstore) and
component specific samples (like the WSM Address Book and the Database control).
=== What's NOT in a Distribution? ===
@@ -82,4 +87,24 @@
== Distribution Documentation Directory Structure ==
-'''''TBD'''''
+The documentation is organized as an HTML web site.
+{{{
+ docs/
+ apidocs/
+ classref_controls/
+ classref_pageflows/
+ classref_wsm/
+ taglib/
+ controls/
+ images/
+ pageflow/
+ wsm/
+ index.html
+ index.pdf
+ ...
+}}}
+
+ * The {{{apidocs}}} directory contains Javadoc API references for each
sub-project.
+ * The {{{controls}}}, {{{pageflows}}}, and {{{wsm}}} directories contain user
guides for each sub-project.
+ * {{{index.html}}} is the home page for the documentation web site.
+ * Each HTML file has a corresponding PDF file (e.g., index.html/index.pdf).