From fcd6548344aa3f590435beff55530cfdb6983588 Mon Sep 17 00:00:00 2001
From: Stefan Bodewig 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). These tasks are described in detail below. Loads a specified VAJ project version into the workspace. none Loads a specified VAJ project version into the
+workspace. name and port of a remote tool server. (format:
+ <servername>:<port no>). name and port of a remote tool server. (format:
+ <servername>:<port no>). 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
-FileSets. Visual Age for Java Tasks and Plugin User Manual
- by
-
-Version 1.1 - 2001/02/14
+Visual Age for Java Tasks and Plugin User Manual
+ by
+
+Version 1.2 - 2001/06/14
-Table of Contents
+Table of Contents
-
+
-
-
+
+
+
-Introduction
-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 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).
-
-The Tasks
+Introduction
+What's new
+
+
+
+
+ 2001/06/14
+
+
+
The Tasks
At the moment there are three tasks which help integrating the VAJ repository
contents into an external build process:
-
-
-These tasks are described in detail below.
+
+
-
- VAJLoad
-
- loads specified versions into the workspace
-
-
-
- VAJExport
-
- exports specified packages into the file system
-
-
-
-
-VAJImport
-
- imports specified files into the workspace
-
-
+
+ VAJLoad
+ loads specified versions into the workspace
+
+ VAJExport
+ exports specified packages into the file system
+
+VAJImport
+ imports specified files into the workspace
-VAJLoad
-Description:
-Parameters
-VAJLoad
+Description:
+Parameters
-Parameters specified as nested elements
-vajproject
-
+
+
-
+ Attribute
- Description
- Required
- Attribute
+ Description
+ Required
+
+ remote
+
+
+
If this
+ attribute is set, the tasks will be executed on the specified tool
+ server. no Parameters specified as nested elements
+vajproject
+
+
-
-
-
+ name
- name of the VAJ project to load into the workspace
- yes
- Attribute
+ Description
+ Required
-
-
-
-version
- name of the requested version
- yes
- Example
-
-<vajload>
- <vajproject name="My Testcases" version="1.7beta" />
- <vajproject name="JUnit" version="3.2" />
+
name
+ name of the VAJ project to load into
+ the workspace
+ yes
+
+
+ version
+ name of the requested version
+ yes
+
+
+remote
+
+
+
If this
+ attribute is set, the tasks will be executed on the specified tool
+ server. no Example
+<vajload remote="localhost:32767">
+ <vajproject name="My Testcases" version="1.7beta"/>
+ <vajproject name="JUnit" version="3.2" />
</vajload>
-
+
-VAJExport
+VAJExport
-Description:
+Description:
Attribute | -Description | -Required | -Attribute | +Description | +Required |
destdir | -location to store the exported files | -yes | -destdir | +location to store the exported +files | +yes |
exportSources | -export source files (default: "yes") | -no | -
exportResources | -export resource files (default: "yes") | -no | -
exportClasses | -export class files (default: "no") | -no | -
exportDebugInfo | -include debug info in exported - class files (default: "no") | -no | -
defaultexcludes | -use default excludes when exporting (default: "yes") | -no | -
use default excludes when exporting (default: "yes").
Default excludes are: IBM*/**, Java
+ class libraries/**, Sun class libraries*/**, JSP Page Compile Generated
+ Code/**, VisualAge*/**
name and port of a remote tool server. (format:
+ <servername>:<port no>).
If this
+ attribute is set, the tasks will be executed on the specified tool
+ server.
Attribute | -Description | -Required | -Attribute | +Description | +Required |
name | -name of the VAJ project and package to export. + | name | +name of the VAJ project and package to export. The first element of the name must be the project name, - then the package name elements separated by '/'. |
- yes | -
Attribute | -Description | -Required | -Attribute | +Description | +Required |
name | -name of the VAJ project/package not to export | -yes | -
-<vajexport destdir="${src.dir}" exportResources="no"> - <include name="MyProject/**"/> - <exclude name="MyProject/test/**"/> +This example exports all packages in the VAJ project 'MyProject', except packages starting with 'test'. -name +name of the VAJ project/package not to + export +yes + +Example
+<vajexport destdir="${src.dir}" exportResources="no"> + <include name="MyProject/**"/> + <exclude name="MyProject/test/**"/> </vajexport> -+
- IBM*/** +IBM*/** Java class libraries/** Sun class libraries*/** JSP Page Compile Generated Code/** - VisualAge*/** -+ VisualAge*/** +
Imports Java source files, class files and/or resources from the file -system into VAJ. These imports can be specified with a fileset.
-Imports Java source files, class files and/or resources +from the file system into VAJ. These imports can be specified with a fileset. +
+Attribute | +Description | +Required |
Attribute | -Description | -Required | -vajProject | +imported files are added to this VAJ + project | +yes |
vajProject | -imported files are added to this VAJ project | -yes | -importSources | +export source files (default: +"yes") | +no | +
importResources | +export resource files (default: + "yes") | +no |
importClasses | +export class files (default: "no") | +no |
importSources | -export source files (default: "yes") | -no | -
importResources | -export resource files (default: "yes") | -no | -
importClasses | -export class files (default: "no") | -no | -
-<vajimport project="Test" importClasses="true"> +This example imports all class files in the directory ${import.dir}/com/sample excluding those in the subdirectory testremote ++ +name and port of a remote tool server. (format: + <servername>:<port no>).
If this + attribute is set, the tasks will be executed on the specified tool + server.no + +Parameters specified as nested elements
+ +fileset
+A FileSet specifies the files to import. + +Example
+<vajimport project="Test" importClasses="true"> <fileset dir="${import.dir}"> <include name="com/sample/**/*.class"/> - <exclude name="com/sample/test/**"/> + <exclude name="com/sample/test/**"/> </fileset> </vajimport> -+
-<?xml version="1.0"?> -<!-- ======================================================================= --> -<!-- Builds a binary distribution of the VAJ Ant Plugin --> -<!-- ======================================================================= --> -<project name="anttool" default="buildall" basedir="c:\temp\anttool"> - - <property name="src.dir" value="${basedir}/src"/> - <property name="zip.dir" value="${basedir}/dist"/> - <property name="build.classes" value="${basedir}/classes"/> - - <!-- location of the unzipped Ant source distribution --> - <property name="antdistribution.dir" value="u:\ant-1.3beta1"/> - - <!-- VAJ install dir --> - <property name="vaj.dir" value="C:\IBMVJava2"/> - - <path id="classpath"> - <pathelement location="${src.dir}"/> - <pathelement location="${vaj.dir}\IDE\project_resources\IBM IDE Utility class libraries" /> - <pathelement location="${build.classes}"/> - </path> - - - <!-- =================================================================== --> - <!-- Load Projects into Workspace --> - <!-- =================================================================== --> - <target name="load" description="load projects"> - <vajload> - <project name="Ant" version="1.3"/> - <project name="Apache Oro RegExp" version="2.0.1"/> - </vajload> - </target> - - - <!-- =================================================================== --> - <!-- Creates the build dirs --> - <!-- =================================================================== --> - <target name="preparedirs"> - <mkdir dir="${basedir}"/> - <mkdir dir="${src.dir}"/> - <mkdir dir="${zip.dir}"/> - <mkdir dir="${build.classes}"/> - </target> - - - <!-- =================================================================== --> - <!-- Export from VA --> - <!-- =================================================================== --> - <target name="export" depends="preparedirs" description="export projects"> - <mkdir dir="${src.dir}"/> - <!-- Export all Ant sources except optional tasks and the Oro sources --> - <vajexport destdir="${src.dir}"> - <include name="Ant/**"/> - <exclude name="Ant/**/optional/**"/> - <exclude name="Ant/org/apache/tools/ant/gui/**"/> - <include name="Apache Oro*/**"/> - </vajexport> - <!-- Export selected optional tasks --> - <vajexport destdir="${src.dir}"> - <include name="Ant/org/apache/tools/ant/taskdefs/optional/ide/**"/> - </vajexport> - </target> - - <!-- =================================================================== --> - <!-- Unzip necessary libraries --> - <!-- =================================================================== --> - <target name="expand"> - <mkdir dir="${build.classes}"/> - <unzip src="${antdistribution.dir}\lib\crimson.jar" - dest="${build.classes}" - /> - <unzip src="${antdistribution.dir}\lib\jaxp.jar" - dest="${build.classes}" - /> - <delete dir="${build.classes}\META-INF" /> - </target> - - <!-- =================================================================== --> - <!-- Compile the source code --> - <!-- =================================================================== --> - <target name="compile" depends="expand" description="compile java sources"> - <mkdir dir="${build.classes}"/> - <javac srcdir="${src.dir}" - destdir="${build.classes}" - debug="on" - deprecation="off" - optimize="on" > - <classpath refid="classpath" /> - <include name="org/apache/**"/> - <exclude name="**/JakartaRegexpMatcher.java"/> - </javac> - </target> - - <!-- =================================================================== --> - <!-- Copy resources and zip everything together --> - <!-- =================================================================== --> - <target name="zip" depends="compile" description="creates zip distribution"> - <copy todir="${build.classes}"> - <fileset dir="${src.dir}"> - <include name="org/apache/**"/> - <exclude name="**/*.java"/> - </fileset> - </copy> - <mkdir dir="${build.classes}/doc"/> - <copy todir="${build.classes}/doc" overwrite="yes"> - <fileset dir="${antdistribution.dir}/docs"> - <include name="VAJAnttool.html, toolmenu.gif, anttool1.gif"/> - </fileset> - </copy> - <copy file="${antdistribution.dir}/src/main/org/apache/tools/ant/taskdefs/optional/ide/default.ini" todir="${build.classes}" overwrite="yes"/> - <mkdir dir="${zip.dir}"/> - <zip basedir="${build.classes}" zipfile="${zip.dir}/anttool.zip" /> - </target> - - <!-- =================================================================== --> - <!-- Cleans source and class dirs --> - <!-- =================================================================== --> - <target name="clean" depends="preparedirs" description="removes all files from src and build tree"> - <delete> - <fileset dir="${src.dir}"/> - </delete> - <delete> - <fileset dir="${build.classes}"/> - </delete> - <delete> - <fileset dir="${zip.dir}"/> - </delete> - </target> - - <!-- =================================================================== --> - <!-- Cleans the build dir, loads required project versions, exports, --> - <!-- compiles and zips the Plugin --> - <!-- =================================================================== --> - <target name="buildall" depends="clean, load, export, zip" description="build all"> - </target> -</project> -- -
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 authors. -We assume C:\IBMVJava as VAJ install -directory. If You have installed it elsewhere, adapt the pathes below. -Execute following steps to get the PlugIn up and running: +of the authors.
+We assume C:\IBMVJava
as VAJ
+install directory. If You have installed it elsewhere, adapt the pathes below.
+
+ C:\IBMVJava\ide\tools\org-apache-tools-ant
.
+ default.ini
(in
+ jakarta-ant\src\...\taskdefs\optional\ide
) to
+ C:\IBMVJava\ide\tools\org-apache-tools-ant\default.ini
.
+
C:\IBMVJava\ide\tools\org-apache-tools-ant\doc
+ and copy the files VAJAntTool.html
,
+ toolmenu.gif
and
+ anttool1.gif
to it.
+ C:\IBMVJava\ide\tools\com-ibm-ivj-toolserver\servlets\servlet.properties
.
+ Typically this file is empty. If not, be careful not to delete the other lines.
+
+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 |
org.apache.tools.ant
+ to C:\IBMVJava\ide\tools\com-ibm-ivj-toolserver\servlets\
:BuildException
+ DirectoryScanner
+ FileScanner
+ Location
+ org.apache.tools.ant.taksdefs.optional.ide
+ to C:\IBMVJava\ide\tools\com-ibm-ivj-toolserver\servlets\
:VAJUtil
+ VAJExportServlet
+ VAJImportServlet
+ VAJLoadServlet
+ VAJLocalUtil
+ VAJProjectDescription
+ VAJToolsServlet
+ VAJWorkspaceScanner
+ Now you should be able to execute VAJ Tasks from the +command line.
+ When the tool is installed correctly and your Ant build
file is configured, it is really easy to use.
Go to your Workbench, select the project you want to deploy and
-open its context menu. In the submenu Tools you should find
-the new entry Ant Build. Klick it to start the tool!
+open its context menu. In the submenu Tools you should find
+the new entry Ant Build. Klick it to start the tool!
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
-Save BuildInfo To Repository from the File menu.
+Save
+BuildInfo To Repository from the File menu.
Now your information is saved to this edition of your project and will
-be loaded automatically the next time you start Ant Build.
+be loaded automatically the next time you start Ant Build.
If you have closed the log window accidentally, it can be reopened
-with the Log item in the File menu, and if you want to
-know who developed this, just select About in the Help menu.
+with the Log item in the File menu, and if you want to
+know who developed this, just select About in the Help menu.
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.
Q: I want to load, export and build more then one Visual Age project
-to one jar! How to?
-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
-
Q: When I load my build file, the list of targets is empty. Why?
-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.
-
Q: Is there a sample build file available?
-A: Now You can find an example in this manual
-
Q: Why does it export my entire workspace when I've already implicitly
-selected a project when starting the Tool?
-A: This selection does not carry into the buildfile you are using. Set the
-Project name at the beginning of the "includes" parameter.
-
Q: When I import Ant into my Workspace, I get Problems reported. Can I
-ignore them?
+
Q: If I try to load a build
+file, I get the error "Can't load default task list". Why?
+A: Ant not only contains class files, but also resource
+files. This messsage appears if the file
+
.../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.
Q: I want to load, export
+and build more then one Visual Age project to one jar! How to?
+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
Q: When I load my build
+file, the list of targets is empty. Why?
+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.
Q: Is there a sample build
+file available?
+A: Now you can find an example in this manual
Q: Why does it export my
+entire workspace when I've already implicitly selected a project when starting
+the Tool?
+A: This selection does not carry into
+the buildfile you are using. Set the Project name at the beginning of the
+"includes" parameter.
Q: When I import Ant into
+my Workspace, I get Problems reported. Can I ignore them?
A: It depends on the problems reported, and what you want to do with Ant.
-Problems you can't ignore:
Q: Why is the task name vajload when the class is called VAJLoadProjects?
-A: At the moment this task can load only project versions. This is reflected
-by the class name. It may be extended to load package and class versions,
-too, and we didn't want to let these extensions affect the build files. Therefore
-we chose the more general name vajload as task name.
-
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?
-A: The three Visual Age Tasks won't work when executing Ant from the command
-line.
-
Q: How do I control the import/export of sourcefiles, compiled files and
-project resources explicity?
-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.
-
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?
+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.
Q: I can export packages
+from project 'ABC', but not from project 'XYZ'! Why?
+A: Common reasons are:
Q: How do I control the
+import/export of sourcefiles, compiled files and project resources
+explicity?
+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).
1.0 | -2000/09/11 | -Initial Version | -
1.1 | -2001/02/14 | -Added Task documentation and more FAQs (thanks to - Richard Bourke for the FAQ additions) - | -
Added documentation of new remote feature.
Minor corrections.