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/GMOxDOC30/quick-start-fast-and-easy-development.html
5-minute Tutorial using GEP:                http://cwiki.apache.org/GMOxDOC30/5-minute-tutorial-on-enterprise-application-development-with-eclipse-and-geronimo.html


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

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

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

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

   -- 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.6.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 3.0 Milestone 1

2. Support Eclipse Halios, WTP 3.2 and Java EE 6 facet

3. Support OSGI application programming tools



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

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


Bug Fixed and New Features
--------------------------

GERONIMODEVTOOLS-652    Can't see icon for GEP in about dialog when install GEP in deployable mode
GERONIMODEVTOOLS-651    No deployment plan can be generated with 3.0 M1
GERONIMODEVTOOLS-650    The sections of server editor page "overview" cann't display
GERONIMODEVTOOLS-647	Synchronize dependency version with Geronimo 3.0 M1
GERONIMODEVTOOLS-646	Upgrade to eclipse Helios
GERONIMODEVTOOLS-643	Refactor GEP 3.0 code to decouple various server adapters
GERONIMODEVTOOLS-641	To release GEP with maven release plugin
GERONIMODEVTOOLS-640	Support Eclipse 3.6 (and latest versions of WTP, etc.)
GERONIMODEVTOOLS-639	Enhance GEP to support Geronimo 3.0 server
GERONIMODEVTOOLS-621	Extend new Aries tooling to provide new OSGi PDE enhancements specific to Geronimo runtime
GERONIMODEVTOOLS-614	Support free (not open-source) Aries tooling
GERONIMODEVTOOLS-606	Support Eclipse Halios
GERONIMODEVTOOLS-605	Generate classes with JAXB from new schema files for Java EE6
GERONIMODEVTOOLS-604	Upgrade to eclipse 3.5.2
GERONIMODEVTOOLS-603	Make Geronimo 3.0 server runnable with GEP


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

@version $Rev: 894783 $ $Date: 2009-12-31 14:21:08 +0800 (Thu, 31 Dec 2009) $
