Release Notes -- Apache Geronimo Eclipse Plugin -- Version ${pom.version} -- ${buildNumber}


Helpful URLs
------------
Geronimo Devtools:                          http://geronimo.apache.org/development-tools.html
Geronimo Eclipse Update Site:               http://www.apache.org/dist/geronimo/eclipse/updates
Bug Tracking:                               http://issues.apache.org/jira/browse/GERONIMODEVTOOLS
Quick start - fast and easy development:    http://cwiki.apache.org/GMOxDOC22/quick-start-fast-and-easy-development.html
5-minute Tutorial using GEP:                http://cwiki.apache.org/GMOxDOC22/5-minute-tutorial-on-enterprise-application-development-with-eclipse-and-geronimo.html


System Requirements
-------------------
1. Java J2SE 1.5.0 or greater, and a platform that supports it

2. Eclipse IDE for Java EE Developers (Galileo or Helios), which is platform-specific

   -- Get Eclipse from http://www.eclipse.org/downloads/

3. Geronimo server (1.1.x, 2.0.x, 2.1.x or 2.2.x)

   -- Get a Geronimo server from http://geronimo.apache.org/downloads.html



Notes
-----
You will likely need to increase the default setting for maximum PermGen size
for your Eclipse installation (especially for Sun's JDK 1.5.0_x on the Windows
platform) to prevent "java.lang.OutOfMemoryError: PermGen" errors. From the
command line you can use:

        eclipse -vmargs -Xms128m -Xmx512m -XX:MaxPermSize=128m

Or you can edit your eclipse.ini file. An example is shown below but remember
that each argument has to be on seperate lines:

        -vmargs
        -Xms128m
        -Xmx512m
        -XX:MaxPermSize=128m



Geronimo Eclipse Plugin Version ${pom.version} Enhancements
--------------------------------------------------
1. Support Geronimo Server 2.2.1

2. Support Geronimo Server 2.1.7

3. Support Eclipse Helios



Installation Instructions
-------------------------

See http://cwiki.apache.org/GMOxDOC22/installing-geronimo-eclipse-plugin.html


Bug Fixed and New Features
--------------------------
GERONIMODEVTOOLS-283 improve implementation to avoid possible failure with JDK6
GERONIMODEVTOOLS-600 221 now branch can build with 64-bit jdk
GERONIMODEVTOOLS-604 update eclipse to 3.5.2
GERONIMODEVTOOLS-607 correct jstl lib path for v2.2 adapter
GERONIMODEVTOOLS-608 reduce time-consuming in DependencyHelper with cache
GERONIMODEVTOOLS-641 add configuration for maven release plugin in 2.2 branch
GERONIMODEVTOOLS-644 Refactor code for Geronimo 2.2.x branch
GERONIMODEVTOOLS-646 Upgrade to eclipse Helios for branches 2.2
GERONIMODEVTOOLS-648 Source release assembly contains temporary files generated in build process
GERONIMODEVTOOLS-660 Add new schema geronimo-jaspi.xsd into GEP
GERONIMODEVTOOLS-661 Create JAXB model for geronimo-jaspi.xsd
GERONIMODEVTOOLS-663 Remove duplicated License and Notice files in each jar when we issue "mvn release:prepare"
GERONIMODEVTOOLS-673 Don't download TPTP runtime
GERONIMODEVTOOLS-678 Can not install GEP in RAD SE v8.0
GERONIMODEVTOOLS-681 GEP branch 22 build failure because of missing tptp packages 
GERONIMODEVTOOLS-682 Upgrade Geronimo server support to 2.1.7 in GEP branch 22
GERONIMODEVTOOLS-685 Can not build GEP2.2.1 testsuit successfully
GERONIMODEVTOOLS-688 Synchronize GEP dependency per Server dependency list
GERONIMODEVTOOLS-689 NullPointerException when publishing with Geronimo Eclipse Plugin
GERONIMODEVTOOLS-690 NullpointerException occurs if one adds a "Utility Project" to the EAR
GERONIMODEVTOOLS-691 GEP ui shows "%serverEditorPluginPage" instead of "Plugin"
GERONIMODEVTOOLS-692 Can not build GEP on Mac


Release Notes -- Apache Geronimo Eclipse Plugin -- Version ${pom.version} -- ${buildNumber}

@version $Rev: 897145 $ $Date: 2010-01-08 17:38:07 +0800 (Fri, 08 Jan 2010) $
