This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 92285 - Make Java Persistence support independent of Java EE modules
Summary: Make Java Persistence support independent of Java EE modules
Alias: None
Product: javaee
Classification: Unclassified
Component: Persistence (show other bugs)
Version: 6.x
Hardware: All All
: P2 blocker (vote)
Assignee: Erno Mononen
Depends on:
Blocks: 91757
  Show dependency tree
Reported: 2007-01-11 10:35 UTC by Petr Jiricka
Modified: 2007-02-13 16:54 UTC (History)
3 users (show)

See Also:
Issue Type: TASK
Exception Reporter:

module dependencies (3.56 KB, text/plain)
2007-02-07 16:20 UTC, Erno Mononen
Friend packages (1.94 KB, text/plain)
2007-02-07 16:21 UTC, Erno Mononen
removed dependencies (2.10 KB, application/octet-stream)
2007-02-12 12:38 UTC, Erno Mononen
hidden friend packages (888 bytes, text/plain)
2007-02-12 12:38 UTC, Erno Mononen
diff of and ide/golden (26.72 KB, application/octet-stream)
2007-02-12 15:34 UTC, Erno Mononen

Note You need to log in before you can comment on or make changes to this bug.
Description Petr Jiricka 2007-01-11 10:35:03 UTC
Currently the Java Persistence support has a dependency on modules which provide
Java EE support, e.g. j2eeserver and j2ee/utilities. This dependency should be
eliminated so it is possible to distribute Java Persistence without J2EE
features, e.g. for use by Matisse.
We will probably also want to move the Java Persistence features to the ide cluster.
Comment 1 Erno Mononen 2007-02-07 15:34:18 UTC
Please review the following changes in the cluster configurations.

The JSR220 Persistence (code name base org.netbeans.modules.j2ee.persistence), 
JPA verification (code name base org.netbeans.modules.j2ee.jpa.verification) 
and Database Schema (code name base org.netbeans.modules.dbschema) modules, 
currently part of the J2EE cluster, are planned to be moved to the IDE cluster. 

The modules don't have dependencies to modules outside of the IDE cluster. The 
JSR220 Persistence and Database Schema modules define a friend API, the JPA 
Verification module does not define any API. The JSR220 Persistence module has 
5 friends, of which 4 will remain in the J2EE cluster and 1 (JPA Verification) 
is to be moved to the IDE cluster as well. The Database Schema module has 3 
friends, which are all in the J2EE cluster. All current friends of the JSR220 
Persistence and Database Schema modules are controlled by the Java EE team.

The motivation for this is that the Netbeans JPA support is needed also in Java 
SE applications and the user should not be required to install the enterprise 
cluster to be able to develop Java SE applications with JPA.
Comment 2 Erno Mononen 2007-02-07 16:20:58 UTC
Created attachment 38186 [details]
module dependencies
Comment 3 Erno Mononen 2007-02-07 16:21:49 UTC
Created attachment 38187 [details]
Friend packages
Comment 4 Jesse Glick 2007-02-09 00:01:13 UTC
That's quite a long list of friend packages, especially for inter-cluster use.
It looks like you just made nearly everything public. Please carefully review
the Javadoc for both modules to see which classes (and methods) actually need to
be exported, and move them into a slimmer set of o.n.m.*.[as]pi packages. (Take
a look at ant/freeform/nbproject/project.xml for an example of a friend API of
consciously limited size.)

Also please recheck the list of module dependencies. In particular, the runtime
dependency on the junit module from j2ee/persistence looks odd.
Comment 5 Milos Kleint 2007-02-09 07:56:20 UTC
MK1: will the use by matisse for example introduce more friend module
dependencies? will these also be controlled by j2ee team?
Comment 6 Erno Mononen 2007-02-09 08:49:18 UTC
jglick01: Agreed that the list of friend packages is rather long, I will look 
into restricting the amount of exposed packages. The dependency on the junit 
module is unnecessary, I'll remove it and check the other depencies as well.

mkleint01: You're correct that the use by Matisse will introduce another friend 
module. As far as I know, it will not be controlled by the Java EE team. Please 
note the actual API needed by Matisse is not there yet, it will be introduced 
during M8.

Thanks for the comments so far.
Comment 7 Erno Mononen 2007-02-12 12:38:15 UTC
Created attachment 38363 [details]
removed dependencies
Comment 8 Erno Mononen 2007-02-12 12:38:56 UTC
Created attachment 38364 [details]
hidden friend packages
Comment 9 Erno Mononen 2007-02-12 12:40:38 UTC
I've removed unnecessary dependencies and hidden three of the previously 
exposed friend packages, though I understand that there still are more packages 
exposed than should. I hope to further address this when implementing the API 
for Matisse, and there will be another API review when that is done (should 
happen before M8). If there are no objections, I will proceed with this today 
Comment 10 Jaroslav Tulach 2007-02-12 12:56:48 UTC
Y01 I hope no external library is going to be added into ide cluster.
Y02 Why cannot I verify that in a diff before integration?
Comment 11 Erno Mononen 2007-02-12 13:45:59 UTC
YO1: In fact, one external module needs to be added, namely the Toplink module 
(j2ee/toplinklib). It is a wrapper module for the JPA reference implementation. 
Is that enough, or would you need more info on that?

Y02: I will prepare a diff. 
Comment 12 Jaroslav Tulach 2007-02-12 13:57:23 UTC
Re: toplink. Yes, that sounds relatively fine - I hope it is an opensource 
project, part of GlassFish - I need URL for sources of the version that you 
are using.

Re: toplink2. It is part of the module that provides some functionality 
(dialogs, actions, integration with j2se)? Shall not that library be useful as 
a library of its own? If so, it might be better to have it as standalone 
library in libs. That leads me to a question:

Y03 Any public packages exposed to external world? javax.persistance?
Comment 13 Erno Mononen 2007-02-12 14:49:13 UTC
Regarding the version of Toplink, we use the version from GlassFish V1 UR1 
(Petr J, could you please verify this?). The URL to sources is https:// .

Re. functionality: The only functionality that the Toplink module provides is 
the registration of the library in the library manager. If there is a better 
way to do it, please let us know.

YO3: The module does not expose any packages. 
Comment 14 Erno Mononen 2007-02-12 15:34:49 UTC
Created attachment 38382 [details]
diff of and ide/golden
Comment 15 Petr Jiricka 2007-02-12 15:46:32 UTC
> (Petr J, could you please verify this?)

Right, we currently use the UR1 version. Of course, this may change before NB 6 FCS.
Comment 16 Erno Mononen 2007-02-12 21:51:06 UTC
Thanks for the review. I'm sorry for the hastened process, time was running out 
to get this done for M7 - it dawned on me a bit late that this should be done 
by latest today. I hope the concerns expressed here have been adequately 
addressed, if not, well, nothing irreversible has been done.
Comment 17 Erno Mononen 2007-02-13 11:40:54 UTC
Done in trunk.

Checking in ide/golden/friend-packages.txt;
/cvs/ide/golden/friend-packages.txt,v  <--  friend-packages.txt
new revision: 1.106; previous revision: 1.105
Checking in ide/golden/cluster-deps.txt;
/cvs/ide/golden/cluster-deps.txt,v  <--  cluster-deps.txt
new revision: 1.77; previous revision: 1.76
Checking in ide/golden/files-layout.txt;
/cvs/ide/golden/files-layout.txt,v  <--  files-layout.txt
new revision: 1.208; previous revision: 1.207
Checking in ide/golden/cluster-impl-deps.txt;
/cvs/ide/golden/cluster-impl-deps.txt,v  <--  cluster-impl-deps.txt
new revision: 1.16; previous revision: 1.15
Checking in ide/golden/group-friend-packages.txt;
/cvs/ide/golden/group-friend-packages.txt,v  <--  group-friend-packages.txt
new revision: 1.39; previous revision: 1.38
Checking in ide/golden/impl-deps.txt;
/cvs/ide/golden/impl-deps.txt,v  <--  impl-deps.txt
new revision: 1.73; previous revision: 1.72
Checking in ide/golden/modules.txt;
/cvs/ide/golden/modules.txt,v  <--  modules.txt
new revision: 1.112; previous revision: 1.111
Checking in ide/golden/deps.txt;
/cvs/ide/golden/deps.txt,v  <--  deps.txt
new revision: 1.454; previous revision: 1.453
Checking in nbbuild/;
/cvs/nbbuild/,v  <--
new revision: 1.187; previous revision: 1.186
Comment 18 Jesse Glick 2007-02-13 16:54:52 UTC
Thanks for dealing with the JNLP build, too! Beat me to it. :-)