|
- <!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta http-equiv="Content-Language" content="en-us">
- <title>Visual Age for Java Tasks and Plugin User Manual</title>
- </head>
- <body>
-
- <H1>Visual Age for Java Tasks and Plugin User Manual</H1>
- <a name="authors"></A>by<UL>
- <LI>Wolf Siberski
- (siberski at kbs.uni-hannover.de)
- <LI>Christoph Wilhelms
- (christoph.wilhelms at tui.de)</LI>
- <LI>Martin Landers
- (martin.landers at bea.de)</LI>
- <LI>François Rey
- (francois dot rey at capco dot com)</LI></UL>
- Version 1.2.1 - 2003/01/16<br>
- <hr>
- <h2>Table of Contents</H2>
- <ul>
- <li><A href="#introduction">Introduction</A>
- <li><A href="#tasks">The Tasks</A><A href="#introduction"></A>
- <ul>
- <li><A href="#vajload">VAJLoad</A>
- <li><A href="#vajexport">VAJExport</A>
- <li><A href="#vajimport">VAJImport</A></LI></UL>
- <li><A href="#sample_buildfile">A sample build file</A><br>
- <li><A href="#plugin">The Plugin</A>
- <ul>
- <li><A href="#installation">Installation</A>
- <li><A href="#usage">Usage</A> </LI></UL>
- <li><A href="#faq">Frequently Asked Questions</A>
- <li><A href="#va_versions">Visual Age Versions</A>
- <li><A href="#history">History</A><A href="#history"></A> </LI></UL>
-
- <hr>
- <h2><a name="introduction"></A>Introduction</H2>
- <P>Visual Age for Java is a great Java IDE, but it lacks
- decent build support; for creating deliveries. On the other hand, Ant supports
- the build process very good, but is (at least at the moment) command line based.
- So we decided to write some tasks to access the VAJ repository and a small
- visual Ant frontend to make running Ant from VAJ possible. We use the Tool API
- to integrate Ant in VisualAge for Java. In combination with the VAJ tasks
- (vajload, vajexport, vajimport) you can load defined versions of projects
- into your workspace, export the source code, compile it with an external
- compiler and build a jar without leaving the IDE. Of course compile messages are
- viewed in a logging window. Concluding: This tool provides decent deployment
- support VAJ has not (out of the box).</P>
- <H3>What's new</H3>
- <table cellpadding="2" cellspacing="2" border="0" width="500">
- <tr valign="top">
- <td valign="top">2003/01/16</TD>
- <td valign="top">
- <UL>
- <LI>Now works outside of VAJ.
- <LI>Added attribute haltonerror, "*" and "**" version qualifiers.
- <LI>Amended documentation (this file) accordingly.
- </LI></UL></TD></TR>
- <tr valign="top">
- <td valign="top">2001/06/14</TD>
- <td valign="top">
- <UL>
- <LI>Now all tasks can access VAJ via 'Remote Access
- To Tool API'. Therefore builds containing VAJ tasks can also be executed
- from the command line (Kudos to Glenn McAllister for describing the
- concept and providing source code at
- <A href="http://www7.software.ibm.com/vad.nsf/Data/Document4366">
- http://www7.software.ibm.com/vad.nsf/Data/Document4366</A>.
-
- <LI>It is possible to cancel a running build
- executed from the plugin
- <LI>Improved error handling in the plugin. Now all
- errors should show up either in the log window or in the
- console.</LI></UL></TD></TR></TABLE>
-
- <h2><a name="tasks"></A>The Tasks</H2>
- At the moment there are three tasks which help integrating the VAJ repository
- contents into an external build process:
-
- <table cellpadding="2" cellspacing="2" border="0" width="500">
-
- <tr valign="top">
- <td valign="top"><A href="#vajload">VAJLoad</A><br></TD>
- <td valign="top"> loads specified versions into the workspace<br></TD></TR>
- <tr valign="top">
- <td valign="top"><A href="#vajexport">VAJExport</A><br></TD>
- <td valign="top"> exports specified packages into the file system<br></TD></TR>
- <tr valign="top">
- <td valign="top"><A href="#vajimport">VAJImport</A><br></TD>
- <td valign="top"> imports specified files into the workspace<br></TD></TR></TABLE>
- <P>These tasks are described in detail below.</P>
-
-
- <hr>
-
- <P></P>
- <h2><a name="vajload"></A>VAJLoad</H2>
- <h3>Description:</H3>
- <p>Loads a specified VAJ project version into the
- workspace.</P>
-
- <h3>Parameters</H3>
-
- <table border="1" cellpadding="2" cellspacing="0">
- <tr>
- <td valign="top"><b>Attribute</B></TD>
- <td valign="top"><b>Description</B></TD>
- <td align="middle" valign="top"><b>Required</B></TD></TR>
- <tr>
- <td valign="top">remote</TD>
- <td valign="top">
- <P>name and port of a remote tool server. (format:
- <code><servername></code>:<code><port no></code>).<BR>If this
- attribute is set, the tasks will be executed on the specified tool
- server. </P></TD>
- <td valign="top" align="middle">no</TD></TR>
- <tr>
- <td valign="top">haltonerror</B></TD>
- <td valign="top">
- <P>Stop the build process if an error occurs,
- (default: "yes")</P></TD>
- <td align="middle" valign="top">no</TD></TR></TABLE>
-
- <h3>Parameters specified as nested elements</H3>
- <h4>vajproject</H4>
- <table border="1" cellpadding="2" cellspacing="0">
-
- <tr>
- <td valign="top"><b>Attribute</B></TD>
- <td valign="top"><b>Description</B></TD>
- <td align="middle" valign="top"><b>Required</B></TD></TR>
- <tr>
- <td valign="top">name</TD>
- <td valign="top">name of the VAJ project to load into
- the workspace</TD>
- <td valign="top" align="middle">yes</TD></TR>
- <tr>
- <td valign="top">version</TD>
- <td valign="top"><P>name of the requested version,
- or one of the special qualifiers "*" or "**"<BR>
- "*" loads the latest <b>versioned</b> edition of the project<BR>
- "**" will load the latest version (including open editions)</P></TD>
- <td valign="top" align="middle">yes</TD></TR>
- </TABLE>
-
- <h3>Example</H3>
- <pre><vajload remote="localhost:32767">
- <vajproject name="My App" version="*"/>
- <vajproject name="My Testcases" version="**"/>
- <vajproject name="JUnit" version="3.2"/>
- </vajload>
- </PRE>
-
- <hr>
- <h2><a name="vajexport"></A>VAJExport</H2>
-
- <h3>Description:</H3>
- <p>Exports Java source files, class files and/or resources from the workspace
- to the file system. Exports can be specified by giving the VAJ project
- name and package name(s). This works very similar to
- <A href="../CoreTypes/fileset.html">FileSets</A>. </P>
-
- <h3>Parameters</H3>
- <table border="1" cellpadding="2" cellspacing="0">
-
- <tr>
- <td valign="top"><b>Attribute</B></TD>
- <td valign="top"><b>Description</B></TD>
- <td align="middle" valign="top"><b>Required</B></TD></TR>
- <tr>
- <td valign="top">destdir</TD>
- <td valign="top">location to store the exported
- files</TD>
- <td valign="top" align="middle">yes</TD></TR>
- <tr>
- <td valign="top">exportSources</TD>
- <td valign="top">export source files (default:
- "yes")</TD>
- <td valign="top" align="middle">no</TD></TR>
- <tr valign="top">
- <td valign="top">exportResources</TD>
- <td valign="top">export resource files (default:
- "yes")</TD>
- <td valign="top" align="middle">no</TD></TR>
- <tr valign="top">
- <td valign="top">exportClasses</TD>
- <td valign="top">export class files (default: "no")</TD>
- <td valign="top" align="middle">no</TD></TR>
- <tr valign="top">
- <td valign="top">exportDebugInfo</TD>
- <td valign="top">include debug info in exported class
- files (default: "no")</TD>
- <td valign="top" align="middle">no</TD></TR>
- <TR>
- <TD vAlign=top>defaultexcludes</TD>
- <TD vAlign=top>
- <P>use default excludes when exporting (default: "yes").<BR>Default excludes are: IBM*/**, Java
- class libraries/**, Sun class libraries*/**, JSP Page Compile Generated
- Code/**, VisualAge*/** </P></TD>
- <TD vAlign=top align="middle">no</TD></TR>
- <tr valign="top">
- <td valign="top">overwrite</TD>
- <td valign="top"> overwrite existing files (default:
- "yes")</TD>
- <td valign="top" align="middle">no</TD></TR>
- <tr>
- <td valign="top">remote</TD>
- <td valign="top">
- <P>name and port of a remote tool server. (format:
- <code><servername></code>:<code><port no></code>).<BR>If this
- attribute is set, the tasks will be executed on the specified tool
- server. </P></TD>
- <td valign="top" align="middle">no</TD></TR>
- <tr>
- <td valign="top">haltonerror</B></TD>
- <td valign="top">
- <P>Stop the build process if an error occurs,
- (default: "yes")</P></TD>
- <td align="middle" valign="top">no</TD></TR></TABLE>
-
- <h3>Parameters specified as nested elements</H3>
-
- <h4>include</H4>
- specifies the packages to include into the export
-
- <table border="1" cellpadding="2" cellspacing="0">
-
- <tr>
- <td valign="top"><b>Attribute</B></TD>
- <td valign="top"><b>Description</B></TD>
- <td align="middle" valign="top"><b>Required</B></TD></TR>
- <tr>
- <td valign="top">name</TD>
- <td valign="top">name of the VAJ project and package to export.<br>
- The first element of the name must be the project name, <br>
- then the package name elements
- separated by '/'.</TD>
- <td valign="top">yes</TD></TR></TABLE>
-
- <h4>exclude</H4>
- specifies the packages to exclude from the export<br>
-
- <table border="1" cellpadding="2" cellspacing="0">
-
- <tr>
- <td valign="top"><b>Attribute</B></TD>
- <td valign="top"><b>Description</B></TD>
- <td align="middle" valign="top"><b>Required</B></TD></TR>
- <tr>
- <td valign="top">name</TD>
- <td valign="top">name of the VAJ project/package not to
- export</TD>
- <td valign="top" align="middle">yes</TD></TR></TABLE>
-
- <h3>Example</H3>
- <pre><vajexport destdir="${src.dir}" exportResources="no">
- <include name="MyProject/**"/>
- <exclude name="MyProject/test/**"/>
- </vajexport>
- </PRE>
- This example exports all packages in the VAJ project 'MyProject', except
- packages starting with 'test'.
- <h3>Default Excludes</H3>
- The default excludes are:<br>
- <pre> IBM*/**
- Java class libraries/**
- Sun class libraries*/**
- JSP Page Compile Generated Code/**
- VisualAge*/**
- </PRE>
- <hr>
- <h2><a name="vajimport"></A>VAJImport</H2>
-
- <h3>Description:</H3>
- <p>Imports Java source files, class files and/or resources
- from the file system into VAJ. These imports can be specified with a fileset.
- </P>
- <h3>Parameters</H3>
- <table border="1" cellpadding="2" cellspacing="0">
-
- <tr>
- <td valign="top"><b>Attribute</B></TD>
- <td valign="top"><b>Description</B></TD>
- <td align="middle" valign="top"><b>Required</B></TD></TR>
- <tr>
- <td valign="top">project</TD>
- <td valign="top">imported files are added to this VAJ
- project</TD>
- <td valign="top" align="middle">yes</TD></TR>
- <tr>
- <td valign="top">importSources</TD>
- <td valign="top">import source files (default:
- "yes")</TD>
- <td valign="top" align="middle">no</TD></TR>
- <tr valign="top">
- <td valign="top">importResources</TD>
- <td valign="top">import resource files (default:
- "yes")</TD>
- <td valign="top" align="middle">no</TD></TR>
- <tr valign="top">
- <td valign="top">importClasses</TD>
- <td valign="top">import class files (default: "no")</TD>
- <td valign="top" align="middle">no</TD></TR>
- <tr>
- <td valign="top">remote</TD>
- <td valign="top">
- <P>name and port of a remote tool server. (format:
- <code><servername></code>:<code><port no></code>).<BR>If this
- attribute is set, the tasks will be executed on the specified tool
- server. </P></TD>
- <td valign="top" align="middle">no</TD></TR>
- <tr>
- <td valign="top">haltonerror</B></TD>
- <td valign="top">
- <P>Stop the build process if an error occurs,
- (default: "yes")</P></TD>
- <td align="middle" valign="top">no</TD></TR></TABLE>
-
- <h3>Parameters specified as nested elements</H3>
-
- <h4>fileset</H4>
- A <A href="../CoreTypes/fileset.html">FileSet</A> specifies the files to import.
-
- <h3>Example</H3>
- <pre><vajimport project="Test" importClasses="true">
- <fileset dir="${import.dir}">
- <include name="com/sample/**/*.class"/>
- <exclude name="com/sample/test/**"/>
- </fileset>
- </vajimport>
- </PRE>
- This example imports all class files in the directory ${import.dir}/com/sample
- excluding those in the subdirectory test<br>
-
- <hr>
- <h2><a name="sample_buildfile"></A>The
- Plugin</H2>
- The tasks are usable within VAJ by running the
- org.apache.tools.ant.Main class, but this is
- quite inconvenient. Therefore a small GUI is
- provided which allows selecting a build file
- and executing its targets. This Plugin is accessible
- from the VAJ Tools menu (see <A href="#usage">Usage</A>).
-
- <hr>
- <h2><a name="installation"></A>Installation</H2>
- <p>We assume <CODE>C:\IBMVJava</CODE> as VAJ
- install directory. If You have installed it elsewhere, adapt the pathes below.
- <h3>Plugin</H3>
- <ul>
- <li>Create the directory <CODE>
- C:\IBMVJava\ide\tools\org-apache-tools-ant</CODE>.
- <li>Expand in that directory all the jars contained in the <code>lib</CODE>
- directory of your Ant installation.
- <li>copy <CODE>default.ini</CODE> (in <CODE>
- org\apache\tools\ant\taskdefs\optional\ide</CODE>) to <CODE>
- C:\IBMVJava\ide\tools\org-apache-tools-ant\default.ini</CODE>.
-
- <li>if you want to access this help from the Workbench, create the
- directory <CODE> C:\IBMVJava\ide\tools\org-apache-tools-ant\doc</CODE>
- and copy the files <CODE>VAJAntTool.html</CODE>,
- <CODE>toolmenu.gif</CODE> and <CODE>
- anttool1.gif</CODE> to it.
- <li>VAJ has to be restarted to recognize the new tool.
- <li>Now if You open the context menu of a project, You should see the entry
- 'Ant Build' in the Tools submenu (see <A href="#usage">Usage</A>).
- <li>Make sure the tool works as expected. </LI></UL>
- <h3>Servlets for Remote Tool Access</H3>
- <UL>
- <LI>
- For
- a good introduction into the VAJ Remote Tool Access see the
- great introduction from Glenn McAllister at
- <A href="http://www7.software.ibm.com/vad.nsf/Data/Document4366">
- http://www7.software.ibm.com/vad.nsf/Data/Document4366</A>. It
- is highly recommended to read this article before doing the installation (to
- understand what you do :-) ).
- <LI>insert the following lines into
- <code>C:\IBMVJava\ide\tools\com-ibm-ivj-toolserver\servlets\servlet.properties</CODE>.
- Typically this file is empty. If not, be careful not to delete the other lines.
- <table cellpadding="0" cellspacing="0" border="0" width="500">
- <tr valign="top">
- <td valign="top">
- <PRE>servlet.vajload.code=org.apache.tools.ant.taskdefs.optional.ide.VAJLoadServlet
- servlet.vajexport.code=org.apache.tools.ant.taskdefs.optional.ide.VAJExportServlet
- servlet.vajimport.code=org.apache.tools.ant.taskdefs.optional.ide.VAJImportServletName<PRE>
- </TD></TR></TABLE>
- <LI>Expand the Ant libraries (<code>ant.jar</CODE> and <code>optional.jar</CODE>
- contained in the <code>lib</CODE> directory of your Ant installation) to the directory
- <code>C:\IBMVJava\ide\tools\com-ibm-ivj-toolserver\servlets\</CODE>.
- <LI>configure the Remote Access (via
- Window->Options..., then choose 'Remote Access To Tool API') as shown in
- the following picture:</LI></UL>
- <P align=center><IMG height=645 alt="" src="remacc.gif"
- width=587 border=0 ></P>
- <P>Now you should be able to execute VAJ Tasks from the
- command line.</P>
-
- <hr>
- <h2><a name="usage"></A>Usage</H2>
- <H3>Plugin</H3>
- <P>
- When the tool is installed correctly and your Ant build
- file is configured, it is really easy to use.<br>
- Go to your Workbench, select the project you want to deploy and
- open its context menu. In the submenu <i>Tools</I> you should find
- the new entry <i>Ant Build</I>. Klick it to start the tool! </P>
-
- <center><IMG height=246 src="toolmenu.gif" width=393 border=0></CENTER>
- After a short time this frame should pop up:
- <center><IMG height=241 alt=""
- src="anttool1.gif"
- width=389 border=0></CENTER>
- This frame contains the following elements:
- <ul>
- <li>A menubar with some options described later
- <li>The name of your selected VAJ project
- <li>An entry field for the Ant XML buildfile with a browse
- [...] button. The full qualified filename, including the directory is needed
- here.
- <li>A list with tasks specified in the buildfile. Until your first save of
- the build info (described later), this list will be empty. When loading
- a build file by the ( <EM>Re)Load </EM> button, this list
- is filled with all tasks which have a description attribute. The
- task you select in this list will be executed when pressing the
- <EM>Execute </EM> button.
- <li>A pulldown box for specifying the log level.
- <li>Four buttons. Two of them I have already
- described. The other are the <EM>Stop</EM> button to cancel a running build
- and the third one is just the <EM>Close</EM> button to exit our small tool!
- <li>Note that the build is canceled on the next console
- output after pressing the <EM>Stop</EM> button, not
- directly after pressing it.</LI></UL>
- <P>
- After you have set up your buildprocess you might find it useful
- to save the data you've just entered, so we implemented an option to
- save it to the repository into your selected project. Make sure that you
- have an open edition of your project before selecting
- <i>Save
- BuildInfo To Repository</I> from the <i>File</I> menu.
- Now your information is saved to this edition of your project and will
- be loaded automatically the next time you start <i>Ant Build</I>.<br>
- If you have closed the log window accidentally, it can be reopened
- with the <i>Log</I> item in the <i>File</I> menu, and if you want to
- know who developed this, just select <i>About</I> in the <i>Help</I> menu. </P>
- <H3>Servlets for Remote Tool Access</H3>
- <P>With the servlets installed and the remote access
- running you can use Ant from the command line without any restrictions. Just
- make sure the remote attribute in your build file is set correctly.</P>
- <hr>
- <h2><a name="faq"></A>Frequently Asked
- Questions</H2>
- <P><STRONG>Q: If I try to load a build
- file, I get the error "Can't load default task list". Why?</STRONG><br>
- A: Ant not only contains class files, but also resource
- files. This messsage appears if the file
- <BR>.../org/apache/tools/ant/taskdefs/defaults.properties is
- missing. Make sure that you import/export not only java/class files, but also
- all resource files when importing/exporting Ant.</P>
- <P><STRONG>Q: If I try to re-load a build
- file, I get the error "XML parser factory has not been configured correctly". Why?</STRONG><br>
- A: Make sure the META-INF/services directory of the <code>xercesImpl.jar</CODE> has also been expanded
- into the <CODE>C:\IBMVJava\ide\tools\org-apache-tools-ant</CODE> directory.</P>
- <P><STRONG>Q: I want to load, export
- and build more then one Visual Age project to one jar! How to?</STRONG><br>
- A: The VA tasks are able to load and export several
- Projects all at once. You can choose whatever project you like for storing the
- tool information, it doesn't really matter </P>
- <p><STRONG>Q: When I load my build
- file, the list of targets is empty. Why?</STRONG><br>
- A: You
- need to add the optional "description" parameter to the targets you want to come
- up in the list. Then reload the build file in the "ant build" tool. We chose to
- display only targets with description to allow the build file developer to
- distinguish between targets for end users and helper targets. </P>
- <p><STRONG>Q: Is there a sample build
- file available? </STRONG><br>
- A: Now you can find an <A href="#sample_buildfile">example</A> in this manual </P>
- <p><STRONG>Q: Why does it export my
- entire workspace when I've already implicitly selected a project when starting
- the Tool?</STRONG><br>
- A: This selection does not carry into
- the buildfile you are using. Set the Project name at the beginning of the
- "includes" parameter. </P>
- <p><STRONG>Q: When I import Ant into
- my Workspace, I get Problems reported. Can I ignore them?</STRONG><br>
- A: It depends on the problems reported, and what you want to do with Ant.
- Problems you can't ignore:
- <ul>
- <li>Classes from javax.xml.parser missing - install a compatible parser
- (see <A href="#installation">installation</A>)
- <li>Classes from com.ibm.ivj.util missing - install the Visual Age IDE
- Utility feature (see <A href="#installation">installation</A>).
- <li>Errors in optional tasks you use within your build
- file</LI></UL>
- <br>
-
- <p><STRONG>Q: I want to use the same
- buildfile both within Visual Age and from the command line using my regular Ant
- environment. What do I need to be aware of?</STRONG><br>
- A:
- You have to specifie a remote server via the 'remote' attribute. Otherwise the
- three Visual Age tasks won't work when executing Ant from the command line. </P>
-
- <p><STRONG>Q: I can export packages
- from project 'ABC', but not from project 'XYZ'! Why?</STRONG><br>
- A: Common reasons are:</P>
- <UL>
- <li>The project is excluded by the default excludes (see
- attribute 'defaultexcludes' of VAJExport)
- <li>When looking at the project in the workspace, it is
- often difficult to distinguish between project name and version name (e.g. as
- in 'My GUI Components Java 2 3.5'). Check if you have the right project name
- by switching off the version name display temporarilly.</LI></UL>
- <p><STRONG>Q: How do I control the
- import/export of sourcefiles, compiled files and project resources
- explicity?</STRONG><br>
- A: Via the Boolean values
- exportClasses (default false) exportSources (default true) and exportResources
- (default true). In some situations, Resources are not exported correctly without
- this being explicity set. VAJ doesn't export resources correctly if a package
- contains only resources (see below).</P>
- <hr>
- <h2><a name="known_problems"></A>Known
- Problems</H2>
- <ul>
- <li>Exporting a package containing just resources doesn't
- work. This is a VAJ Tool API bug. Workaround: create a dummy class and set
- 'exportSources' to false. </LI></UL>
- <hr>
-
- <h2><a name="va_versions"></A>VisualAge
- for Java Versions</H2>
- This tool integration has been tested with versions 3.02 and 3.5
- of VisualAge for Java. It should run with the 2.x Versions, too, but
- we didn't try. The graphical user interface is built with AWT so it is
- JDK independent by now.
- <hr>
-
- <h2><a name="history"></A>History</H2>
- <table cellpadding="2" cellspacing="2" border="1" width="400">
- <tr valign="top">
- <td valign="top">1.0</TD>
- <td valign="top">2000/09/11</TD>
- <td valign="top">Initial Version</TD></TR>
- <TR>
- <TD vAlign=top>1.1</TD>
- <TD vAlign=top>2001/02/14</TD>
- <TD vAlign=top>Added Task documentation and more FAQs
- (thanks to Richard Bourke for the FAQ additions) </TD></TR>
- <tr valign="top">
- <td valign="top">1.2</TD>
- <td valign="top">2001/07/02</TD>
- <td valign="top">
- <P>Added documentation of new remote feature.<BR>Minor corrections.</P></TD></TR>
- <tr valign="top">
- <td valign="top">1.2.1</TD>
- <td valign="top">2003/01/16</TD>
- <td valign="top">
- <P>Added documentation for haltonerror, "*" and "**" version qualifiers.</P></TD></TR></TABLE>
- <hr>
- <center>Copyright © 2001-2004 The Apache Software
- Foundation. All rights Reserved.</CENTER>
- </body>
- </html>
|