Re: Java module separations

Rochelle Raccah <[email protected]> Mon, 12 May 2003 12:01:05 -0700
Newsgroups gmane.comp.java.netbeans.modules.projects.devel
Message-ID <[email protected]>
I'm not sure if this still exists in projects, but where would the new
incarnation of data loader, data object, nodes, etc. be?

Thanks,
Rochelle

Vitezslav Stejskal wrote:
> 
> Hi people,
> 
> we are thinking about the way how to split the code in java module(s)
> into more manageable pieces reflecting the logical structure of features
> provided by the module. The goals which we would like to achieve by the
> separation are:
> 
> - separate independent pieces of code
> - clean up the APIs and SPIs by removing inappropriate dependencies
> - make hard to mess up things again in the future
> - allow modules building on top of java APIs to pick up only those
> pieces which they are interested in
> - improve the understandability of the code and lower the maintenance costs
> 
> Let me outline the suggested set of modules and briefly describe the
> functionality covered by them. Some modules listed below already exist
> others will be created.
> 
> * java - This module provides integration of all the services and
> functions provided by other modules in the Netbeans IDE. It has no API
> nor SPI, but a lot of GUI.
> 
> * java/api - This is the basic java API module. Now it contains all the
> java APIs mixed together, but they should be separated from there. It
> will contain only the ClassPath API because of keeping the backward
> compatibility with Netbeans 3.4/3.5.
> 
> * java/platform - This module will contain the generic support for java
> platforms, mostly the API and SPI for maintaining platforms registry,
> definition of platform services, etc.
> 
> * java/j2se - This is the implementation of J2SE platform support
> including services like compilation, execution, etc.
> 
> * java/projects - The projects support for java developement. It will
> contain things like JavaProject, CompilationUnit, ProjectPath, etc.
> 
> * java/editor - The java editor kit.
> 
> * java/completion - The java editor code completion support.
> 
> * java/srcmodel - Java Source Hierarchy
> 
> The intermodule depenencies are shown on the graph below, it doesn't
> show dependencies on Open API and other external modules. Modules are
> grouped to two groups - projects dependent and projects independent.
> 
> * projects independent:
> java/api
> java/platform depend on java/api
> java/j2se depends on java/api, java/platform
> 
> * projects dependent
> java/projects depends on java/api, java/platform
> java/srcmodel depends on java/projects
> java/completion depends on java/api, java/projects, java/srcmodel
> java/editor depends on java/completion, java/api, java/projects,
> java/srcmodel
> java depends on all other modules
> 
> This is the first sketch and details are very likely to change when we
> will proceed with implementation.
> 
> Any comments, suggestions?
> -vita
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]