|
- <!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
- (<A href="mailto:siberski@kbs.uni-hannover.de">
- siberski@kbs.uni-hannover.de</A> )
- <LI>Christoph Wilhelms
- (<A href="mailto:christoph.wilhelms@impress.com">
- christoph.wilhelms@impress.com</A>)</LI></UL>
- Version 1.2 - 2001/06/14<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">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:
- <servername>:<port no>).<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></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">name of the requested version</TD>
- <td valign="top" align="middle">yes</TD></TR>
- </TABLE>
-
- <h3>Example</H3>
- <pre><vajload remote="localhost:32767">
- <vajproject name="My Testcases" version="1.7beta"/>
- <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="index.html#fileset">
- 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:
- <servername>:<port no>).<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></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">vajProject</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:
- <servername>:<port no>).<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></TABLE>
-
- <h3>Parameters specified as nested elements</H3>
-
- <h4>fileset</H4>
- A <A href="index.html#fileset">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>At the moment the installation has it's rough edges. If something
- described below doesn't work for You, it's probably not Your fault
- but incomplete/wrong instructions. In this case, please contact one
- of the <A href="#authors">authors</A>.</P>
- <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>install the Visual Age IDE Tools (via File->Quick
- Start-> Add feature->'IBM IDE Utility class libraries'
- <li>import an appropriate XML parser to VAJ (we use Xerces
- 1.2.0 and are happy with it). Unfortunately the XML parser delivered with VAJ
- (in the project 'IBM XML Parser for Java') doesn't work with Ant. You have to
- remove that project (temporarily) from the workspace before importing another
- XML implementation.
-
- <li>import the Ant sources <STRONG>and </STRONG> resources into VAJ.
- <li>Create the directory <CODE>
- C:\IBMVJava\ide\tools\org-apache-tools-ant</CODE>.
- <li>export the Ant and XML parser class and resource files
- into this directory. Be sure to select class files <STRONG>and</STRONG>
- resources. Sources don't have to
- be exported. Some optional tasks have errors and can't be exported when You
- don't have the necessary packages in Your workspace (e.g. junit task, ejbc
- task). If You need this tasks either import these packages into VAJ, too, or
- copy the .class files directly from the binary distribution.
- <li>copy <CODE>default.ini</CODE> (in <CODE>
- jakarta-ant\src\...\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. Now You can
- remove Ant and the imported XML parser from Your workspace (and optionally add
- the IBM parser again). </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> </PRE></PRE></TD></TR></TABLE>
- <LI>export the following classes from the package
- <CODE>org.apache.tools.ant</CODE>
- to <CODE>C:\IBMVJava\ide\tools\com-ibm-ivj-toolserver\servlets\</CODE>:<BR>
- <CODE>BuildException<BR>
- DirectoryScanner<BR>
- FileScanner<BR>
- Location</CODE>
- <LI>export the following classes from the package
- <CODE>org.apache.tools.ant.taksdefs.optional.ide</CODE>
- to <CODE>C:\IBMVJava\ide\tools\com-ibm-ivj-toolserver\servlets\</CODE>:<BR>
- <CODE>VAJUtil<BR>
- VAJExportServlet<BR>
- VAJImportServlet<BR>
- VAJLoadServlet<BR>
- VAJLocalUtil<BR>
- VAJProjectDescription<BR>
- VAJToolsServlet<BR>
- VAJWorkspaceScanner</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: 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></TABLE>
- <hr>
- <center>Copyright &#copy 2001,2002 Apache Software
- Foundation. All rights Reserved.</CENTER>
- </body>
- </html>
|