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 150357

Summary: refactor most of J2SE specific code from J2EE project types back to J2SE domain
Product: java Reporter: David Konecny <dkonecny>
Component: ProjectAssignee: David Konecny <dkonecny>
Status: RESOLVED FIXED    
Severity: blocker CC: jglick, mkleint, mkubec, pjiricka, tmysik, tspiva, tzezula
Priority: P1 Keywords: API, API_REVIEW_FAST
Version: 4.x   
Hardware: All   
OS: All   
Issue Type: TASK Exception Reporter:
Attachments: java.api.common.tar.gz
J2SE project changes

Description David Konecny 2008-10-16 11:05:10 UTC
In 6.1 and 6.5 J2EE team refactored J2EE/Web project types and moved most of code which was initially copy&pasted from
J2SE project into shared friend API module j2ee.common (and eliminated about 20k lines of code).  For 7.0 we would like
to push most of this code back where it belongs - Java domain. Specifically to java.api.common which is friend API module.

The primary goal is to eliminate code duplication and diverging code and makes changes and maintenance easier in future.
Friend API contract was chosen as no stable API is going to be defined for now - classes are taken as they are from
several different places and merged into one version. API-fication can be done in next step if desired.

Attached is zipped new java.api.common module (common.classpath and common.project packages are completely new) and diff
of changes in J2SE project module. These and related changes in j2ee.common project (diff not included) eliminates
further 15k lines of code). It is not final but should give you good idea about the scope of changes. All classes added
to java.api.common are J2SE project versions of classes with slight enhancements to make them usable and customizable in
J2EE project types. These customization points are (in java.api.common module):
- ClassPathModifier.Callback
- ClassPathSupport.Callback
- ClassPathUiSupport.Callback
- LogicalViewProvider2
- CustomizerProvider2

What needs to be still done is apichanges document, @since, fix Javadoc on new customization points, increase module
versions and testing.

This is friend API contract but I'm passing it to API review to inform people about the change. Thanks for your comments
in advance. I would like to integrate this rather earlier then late if everything goes well - first half of next week.
Comment 1 David Konecny 2008-10-16 11:07:47 UTC
Created attachment 71953 [details]
java.api.common.tar.gz
Comment 2 David Konecny 2008-10-16 11:09:12 UTC
Created attachment 71954 [details]
J2SE project changes
Comment 3 Milan Kubec 2008-10-20 07:38:42 UTC
*** Issue 49649 has been marked as a duplicate of this issue. ***
Comment 4 Tomas Zezula 2008-10-22 09:03:55 UTC
Seems very promising. 
ClassPathProviderImpl: getPropertyName - is it needed to be public, propertyChange shouldn't be public.
ActionFilterNode if possible it should be package private.
AntArtifactChooser propertyChange is public. Probably other methods can be made package private.
Also since tags are missing but David already mentioned it.
My comments are TCA as this is a friend API not a public API. 
Comment 5 David Konecny 2008-10-28 04:32:27 UTC
Thanks Tomas. I implemented your suggestions, fixed all my TODO items and tested the changes. If there are some
regressions in next days/weeks please either put me on CC or assign the issue to me. Thanks.
Comment 6 David Konecny 2008-10-28 04:33:34 UTC
changeset:   105202:2c2327006724
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 07 14:07:47 2008 +1300
summary:     removing JspNameUtil which duplicated methods from Utils

changeset:   105203:cb80f5af7e4a
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 07 14:25:30 2008 +1300
summary:     merging WebProjectUtil with Utils

changeset:   105204:a9f24e4cfb36
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 07 14:35:59 2008 +1300
summary:     removing unused file - version of FileSearchUtility from j2ee.common is used instead

changeset:   105205:1e0d0dfb18e1
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 07 15:00:39 2008 +1300
summary:     EjbJarProjectUtil merged with Utils; PropertyHelper removed

changeset:   105206:14484f0a69f1
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 07 15:27:15 2008 +1300
summary:     refactoring default impl of ServerStatusProvider to j2ee.common module

changeset:   105207:8e5591b3a76a
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 07 15:56:53 2008 +1300
summary:     merge AppClientProjectUtil with Utils

changeset:   105208:7a61b4d9bfce
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 07 16:11:47 2008 +1300
summary:     for now copy&pasting main class updater from J2SE project

changeset:   105209:a85193a52ae1
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 07 16:17:10 2008 +1300
summary:     removing unused file

changeset:   105210:ed6bfd09bcd6
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 07 22:39:15 2008 +1300
summary:     refactoring Ant output filtering; adding it to web and ear

changeset:   105211:1f5235cf2010
user:        David Konecny <dkonecny@netbeans.org>
date:        Wed Oct 08 11:41:28 2008 +1300
summary:     moving BootClassPathImplementation to j2ee.common

changeset:   105212:4b8d81912431
user:        David Konecny <dkonecny@netbeans.org>
date:        Wed Oct 08 15:09:46 2008 +1300
summary:     moving SourcePathImplementation to j2ee.common

changeset:   105213:62dc55d88e04
user:        David Konecny <dkonecny@netbeans.org>
date:        Wed Oct 08 16:06:01 2008 +1300
summary:     moving SourceNodeFactory to j2ee.common

changeset:   105214:4839f35a87ad
user:        David Konecny <dkonecny@netbeans.org>
date:        Wed Oct 08 16:53:23 2008 +1300
summary:     moving SourceRootsUi to j2ee.common

changeset:   105215:04c1eb4c7e33
user:        David Konecny <dkonecny@netbeans.org>
date:        Wed Oct 08 17:11:22 2008 +1300
summary:     moving FolderList to j2ee.common

changeset:   105216:892f1d1fa8d6
user:        David Konecny <dkonecny@netbeans.org>
date:        Fri Oct 10 14:56:51 2008 +1300
summary:     use J2SE's ClassPathProviderImpl (for now copied to j2ee.common)

changeset:   105217:7cb5b02bf767
user:        David Konecny <dkonecny@netbeans.org>
date:        Mon Oct 13 15:03:43 2008 +1300
summary:     removing pointless registration - EAR does not have anything to compile

changeset:   105218:b4d903d9cd56
user:        David Konecny <dkonecny@netbeans.org>
date:        Mon Oct 13 16:29:45 2008 +1300
summary:     adding BinaryForSourceQueryImpl to java.api.common

changeset:   105219:d132dcb983f8
user:        David Konecny <dkonecny@netbeans.org>
date:        Mon Oct 13 16:37:48 2008 +1300
summary:     move j2ee.common.AbstractProjectAntLogger to java.api.common.ProjectAntLogger

changeset:   105220:3b88821e7b6a
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 14 11:13:02 2008 +1300
summary:     fixing compilation error - BinaryForSourceQueryImpl is  now private in java.api.common

changeset:   105221:8208d75543a0
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 14 11:17:18 2008 +1300
summary:     let's redo classpath package; I will remove all files first; make it public package

changeset:   105222:0aa31d41810f
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 14 11:20:42 2008 +1300
summary:     merging all impls of BootClassPathImplementation into one

changeset:   105223:f786282cc2e1
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 14 13:28:26 2008 +1300
summary:     merging SourcePathImplementations into one; adding ClassPathSupport as API entry point

changeset:   105224:a8d015aa3bc5
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 14 13:41:27 2008 +1300
summary:     updating getRunTimeClasspath based on discussion with Tomas Zezula

changeset:   105225:4bea276d5073
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 14 13:50:39 2008 +1300
summary:     too many ClassPathSupport classes - use different name

changeset:   105226:17231ac7a6df
user:        David Konecny <dkonecny@netbeans.org>
date:        Wed Oct 15 10:23:43 2008 +1300
summary:     moving ClassPathSupport from j2ee.common to java.api.common

changeset:   105227:d6cc1f98a1d9
user:        David Konecny <dkonecny@netbeans.org>
date:        Wed Oct 15 15:27:52 2008 +1300
summary:     moving ClassPathUiSupport, EditMediator and ClassPathListCellRenderer and associated classes to java.api.common

changeset:   105228:5af91e08b3e2
user:        David Konecny <dkonecny@netbeans.org>
date:        Wed Oct 15 15:34:33 2008 +1300
summary:     migrate to java.api.common; following classes were removed: ClassPathSupport, ClassPathUiSupport,
J2SEClassPathUi and AntArtifactChooser

changeset:   105229:c8023491c14a
user:        David Konecny <dkonecny@netbeans.org>
date:        Thu Oct 16 15:29:15 2008 +1300
summary:     moving all remaining Java stuff from j2ee.common to java.api.common and updating it to match latest
versions from j2seproject

changeset:   105230:dc4a13e19320
user:        David Konecny <dkonecny@netbeans.org>
date:        Thu Oct 16 15:30:29 2008 +1300
summary:     forgot to commit changes in this file

changeset:   105231:9d88722830fc
user:        David Konecny <dkonecny@netbeans.org>
date:        Thu Oct 16 15:45:10 2008 +1300
summary:     updating layers to new node provider

changeset:   105232:63a277b8ed93
user:        David Konecny <dkonecny@netbeans.org>
date:        Thu Oct 16 15:45:52 2008 +1300
summary:     updating J2SE project to use java.api.common

changeset:   106246:2b8d72b12282
user:        David Konecny <dkonecny@netbeans.org>
date:        Mon Oct 20 12:02:53 2008 +1300
summary:     #149267:IDE deadlock when invoking popup menu in editor right after the startup.

changeset:   106247:a01817c3bcf1
user:        David Konecny <dkonecny@netbeans.org>
date:        Mon Oct 20 13:41:38 2008 +1300
summary:     callback is optional

changeset:   106248:09b74e8fcb83
user:        David Konecny <dkonecny@netbeans.org>
date:        Mon Oct 20 14:29:10 2008 +1300
summary:     making unit tests compilable again

changeset:   106747:db857dda986e
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 28 13:35:08 2008 +1300
summary:     API cleanup, javadoc fixes, adding since tag and increasing module versions

changeset:   106748:aa06084673a5
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 28 13:38:44 2008 +1300
summary:     version update

changeset:   106749:38dab50acbf1
user:        David Konecny <dkonecny@netbeans.org>
date:        Tue Oct 28 15:31:04 2008 +1300
summary:     javadoc
Comment 7 Quality Engineering 2008-11-11 05:05:40 UTC
Integrated into 'main-golden', will be available in build *200811110201* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main/rev/59576fc3ac24
User: David Konecny <dkonecny@netbeans.org>
Log: #150357 - fixing regression introduced  by refactorings done in issue 150357
Comment 8 Jesse Glick 2010-05-04 22:57:16 UTC
*** Bug 49650 has been marked as a duplicate of this bug. ***