JMakiPluginMigration
jMaki NetBeans Plug-in Plan
The document discusses the plan for migrating the jMaki plug-in code to the NetBeans Mecurial repository.
jMaki is the technology framework included in NetBeans for offering a simplified Ajax and JavaScript development environment. jMaki offers a set of widget interfaces which greatly reduce the effort needed for building Ajax enabled web pages and web applications. Up to this point, jMaki has been made available to NetBeans developers by downloading the jMaki plug-in from the NetBeans Update Center. This Update Center download is not a satisfactory solution for providing an out of box Ajax/JavaScript development environment. To provide a compelling out of box Ajax/Javascript experience, the jMaki plug-in functionality must be integrated directly into the NetBeans trunk.
Steps to integrate the jMaki plug-in into NetBeans repository
| Determine the set of dependencies for a jMaki build | Completed |
|---|---|
| Based on these, create a standalone build for the plugin which is separate from the jMaki builde. | Completed |
| Change the java paths to org.netbeans | Completed |
| Merge the jMaki plugin source code into the netbeans tree and test changes | Work in Progress |
| Working with others on Ajax/Javascript Development environment, define the correct netbeans cluster | Work In Progress |
| Migrate open source license to CDDL and GPLv2 with CPE | TBD |
| Upgrade source copyrights | TBD |
| Determine method for delivering jmaki framework artifacts to netbeans build Concepts could be similar to Wioodstock deliverables into visual web | TBD |
| jMaki wrappers need to be added to the yahoo,dojo, and other libraries that are being bundled. This would mean we need to strip some of the stuff from the existing jMaki zips and add them to the zip that is being delivered by the library managers. Only then will the same library work with or without jMaki. | These need to be extracted so that we can bundle them with the zips that are being created for library manager's consumption. There is a need to re-wire all the widgets' widget.json to use the bundled libraries APIs so the directory structures match. |
| Changes to the plugin code so that it can work with the library and the wrapper delivered by the library manager. Need to understand how this works in order to make the code changes to the plugin code. | Would need to discover and listen for library updates and be able to act accordingly. |
| Push changes into netbeans mercurial trunk | TBD |
Assumptions
- The main jMaki framework is delivered into the NetBeans jMaki module as a binary deliverable
- jMaki builds need to produce jars which can then be used to update the jMaki binaries in NetBeans
- The jMaki plug-in support is split between PHP/Ruby/HTML and Java EE. Both of these would be integrated as Netbeans.org modules. Currently they are named as jmaki.web and jmaki.javaee respectively.
Issues/Questions still to be answered
- Under what cluster should these two modules reside?
- What impact does the Library Manager functionality have on the jMaki third party libraries?
- How can the jMaki framework be updated independent of the jMaki NetBeans support?
Issues being faced during migration
Here are a list of issues that we are facing while migrating the jMaki plugin to a Netbeans.org module. This section will be updated as and when we fix these issues or encounter new ones.
| If you closed netbeans and open it again the palette doesn't show up properly... Netbeans throws missing resource exception. | Fixed. |
|---|---|
| Whenever a widget is dragged on to the editor, the taglib prefix defintion uri is generated but a red mark comes besides it and an exception is shown: Unable to read TLD "META-INF/jmaki.tld from jar file "file:/NBRepository/main/nbbuild/netbeans/visualweb2/modules/ext/ajax-wrapper-comp-1.8.0.jar":java.io.FileNotFoundException: jar:file/NBRepository/main/nbbuild/netbeans/visualweb2/modules/ext/ajax-wrapper-comp-1.8.0.jar!/ However the same error is not shown on the IDE log file and this is not hampering any functionality. The specified jar file seems to exist in the above mentioned place and accessible too. | TBD |

