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 - Javeleon support
Summary: Javeleon support
Status: RESOLVED FIXED
Alias: None
Product: platform
Classification: Unclassified
Component: Module System (show other bugs)
Version: 7.0
Hardware: All All
: P1 normal (vote)
Assignee: Jesse Glick
URL: http://hg.netbeans.org/core-main/rev/...
Keywords:
Depends on: 196192 196239 196240 213539
Blocks:
  Show dependency tree
 
Reported: 2011-02-04 18:04 UTC by Jesse Glick
Modified: 2012-06-12 15:32 UTC (History)
3 users (show)

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.