Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[wtp-dev] J2EE EMF model restructuring .. preparing for api.


After investigating the long term maintenance issues with the  EMF generation tools and our core J2EE models, I realized some changes needed to happen.
The EMF Generation tools do support a seperate java package for "internal" implementation classes, but follows a strict naming model.

For instance, currently we follow this convention:  "org.eclipse.jst.j2ee.internal.application.impl"
EMF Gen tools follow this model:   <base package name><emf package name><package suffix>
This would allow the following scheme for internal packages:   "org.eclipse.jst.j2ee.application.internal.impl"

I hate to make additional renames, but because this is only affecting "internal" packages, the impact should be not as great. - (And should be handled by "organize imports")
Any changes would mean updating our current migration scripts of course..


In addition, I had moved the EMF Package classes into internal packages, to minimize the amount of EMF related code becoming api.
I would like to move these classes back to the api packages for the following reasons:
1) The EMF Gen Tool does not support this structure, and would require additional manual steps during a model regen.
2) The J2EE Model is using EMF as its current modeling technology, and supporting Package classes are required for 1st class support of these models.  (Notification, metamodel access, etc)
3) The EMF Package class api's do not pollute the J2EE interface class api in any way, and should not prohibit a technology change in the future.

Here are the changes going into today's Integration build:

Package Changes:

org.eclipse.jst.j2ee.internal.application.impl -> org.eclipse.jst.j2ee.application.internal.impl
org.eclipse.jst.j2ee.internal.application.util -> org.eclipse.jst.j2ee.application.internal.util
org.eclipse.jst.j2ee.internal.client.impl -> org.eclipse.jst.j2ee.client.internal.impl
org.eclipse.jst.j2ee.internal.client.util -> org.eclipse.jst.j2ee.client.internal.util
org.eclipse.jst.j2ee.internal.common.impl -> org.eclipse.jst.j2ee.common.internal.impl
org.eclipse.jst.j2ee.internal.common.util -> org.eclipse.jst.j2ee.common.internal.util
org.eclipse.jst.j2ee.internal.ejb.impl -> org.eclipse.jst.j2ee.ejb.internal.impl
org.eclipse.jst.j2ee.internal.ejb.util -> org.eclipse.jst.j2ee.ejb.internal.util
org.eclipse.jst.j2ee.internal.jca.impl -> org.eclipse.jst.j2ee.jca.internal.impl
org.eclipse.jst.j2ee.internal.jca.util -> org.eclipse.jst.j2ee.jca.internal.util
org.eclipse.jst.j2ee.internal.jsp.impl -> org.eclipse.jst.j2ee.jsp.internal.impl
org.eclipse.jst.j2ee.internal.jsp.util -> org.eclipse.jst.j2ee.jsp.internal.util
org.eclipse.jst.j2ee.internal.jca.impl -> org.eclipse.jst.j2ee.jca.internal.impl
org.eclipse.jst.j2ee.internal.jca.util -> org.eclipse.jst.j2ee.jca.internal.util
org.eclipse.jst.j2ee.internal.taglib.impl -> org.eclipse.jst.j2ee.taglib.internal.impl
org.eclipse.jst.j2ee.internal.taglib.util -> org.eclipse.jst.j2ee.taglib.internal.util
org.eclipse.jst.j2ee.internal.webapplication.impl -> org.eclipse.jst.j2ee.webapplication.internal.impl
org.eclipse.jst.j2ee.internal.webapplication.util -> org.eclipse.jst.j2ee.webapplication.internal.util
org.eclipse.jst.j2ee.webservice.internal.wsclient.impl -> org.eclipse.jst.j2ee.webservice.wsclient.internal.impl
org.eclipse.jst.j2ee.webservice.internal.wsclient.util -> org.eclipse.jst.j2ee.webservice.wsclient.internal.util
org.eclipse.jst.j2ee.webservice.internal.wscommon.impl -> org.eclipse.jst.j2ee.webservice.wscommon.internal.impl
org.eclipse.jst.j2ee.webservice.internal.wscommon.util -> org.eclipse.jst.j2ee.webservice.wscommon.internal.util
org.eclipse.jst.j2ee.webservice.internal.wsdd.impl -> org.eclipse.jst.j2ee.webservice.wsdd.internal.impl
org.eclipse.jst.j2ee.webservice.internal.wsdd.util -> org.eclipse.jst.j2ee.webservice.wsdd.internal.util

The EMF "Package" interface class for each model moved to the api package.

Thanks - Chuck

Rational J2EE Tooling Team Lead
IBM Software Lab - Research Triangle Park, NC
Email:  cbridgha@xxxxxxxxxx
Phone: 919-254-1848 (T/L: 444)

Back to the top