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 195074

Summary: Javeleon support
Product: platform Reporter: Jesse Glick <jglick>
Component: Module SystemAssignee: Jesse Glick <jglick>
Status: RESOLVED FIXED    
Severity: normal CC: anebuzelsky, gregersen, jtulach
Priority: P1    
Version: 7.0   
Hardware: All   
OS: All   
URL: http://hg.netbeans.org/core-main/rev/df90568b07a5
Issue Type: ENHANCEMENT Exception Reporter:
Bug Depends on: 196192, 196239, 196240, 213539    
Bug Blocks:    

Description Jesse Glick 2011-02-04 18:04:56 UTC
Support for http://javeleon.org/ in NB 7.0 without runtime patching of the module system. URL gives currently proposed patch.
Comment 1 Jesse Glick 2011-02-04 18:26:38 UTC
To test, install the 1.2.1 version of Javeleon (bundled w/ NB IDE integration) from http://javeleon.org/nightly-build/ and then:

1. Make a platform app, specifying as the target platform a NB build from this branch.

2. Enable Javeleon from context menu.

3. You may need to add =noPatch to the ${javeleon.jar} in private.properties.

4. Add some module with some functionality, or two, etc.

5. Run app. Check functionality.

6. Make changes to source code of a module, and select Reload in Target Platform.

You should see live changes to behavior of existing objects.
Comment 2 Jaroslav Tulach 2011-02-04 18:30:00 UTC
Y01 (tca) AbstractOneModuleClassLoader could be non abstract (probably called BaseModuleClassLoader). Then you could remove JaveleonModuleClassLoader

Y02 (tca) I'd isolate the Javeleon specific code more using code injection[1]. It seems to me it is currently spread in way to many files. 

[1] http://wiki.apidesign.org/wiki/Code_Injection
Comment 3 Jesse Glick 2011-02-04 18:59:06 UTC
By the way I am making various incremental changes in the branch, so to see the current diff, run: hg di -r 'ancestor(default,javeleon):javeleon'
Comment 4 Jesse Glick 2011-03-02 22:21:06 UTC
(In reply to comment #2)
> Y01 (tca) AbstractOneModuleClassLoader could be non abstract (probably called
> BaseModuleClassLoader). Then you could remove JaveleonModuleClassLoader

Actually I simplified things further so that StandardModule and OneModuleClassLoader are mostly untouched.

> Y02 (tca) I'd isolate the Javeleon specific code more using code injection.

Would be a good goal for the future, I think. In the short term this would probably actually make the patch bigger and harder to review. Can probably wait until after 7.0.
Comment 5 Jesse Glick 2011-03-03 14:57:14 UTC
core-main #752afbf7a327
Comment 6 Quality Engineering 2011-03-04 05:41:29 UTC
Integrated into 'main-golden', will be available in build *201103040000* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main/rev/752afbf7a327
User: Jesse Glick <jglick@netbeans.org>
Log: #195074: integrated Javeleon support.