On Thu, 2007-04-05 at 09:05 -0400, David E. Jones wrote:
> So the difference between #2 and #3 in your list would be that #2  
> writes out the XML files directly, while #3 would do so through an API?

Yes, that is what I was thinking.

> 
> There is a bit of both right now in the OFBiz framework APIs. The  
> Entity Engine, for example, was at one point used with full round- 
> tripping quite a bit, but using a template to generate the XML. At  
> the time the template was a JSP, which was a pain, so now using FTL  
> would make it a lot easier and cleaner.
> 
> The general approach in the past was to keep the data in memory in  
> their natural objects, and then write templates to write XML files  
> from those objects.
> 
> This sort of API to support an IDE plugin or other tools has been  
> discussed a bit, and there are various extensions to the current code  
> you'll probably need.
> 
> In general you'll want to start with the ofbiz-component.xml files  
> (finding them through the chain of component-load.xml files, starting  
> with the one in framework/base/config). Those files have all of the  
> main resources information in them, though from a tool perspective  
> there is a lot of data to load, and a lot that references other  
> things that you'll want to keep track of for navigation aids and such.
> 
> In any case, this is something that I (and probably many others)  
> would like to see move forward, so as you run into operations you  
> need to do for getting/setting data in OFBiz, please make some noise  
> on this mailing list and we'll see who can pitch in.
> 

For option #3, could the API be called using RMI, or would it have to be
called in-process?  E.g. 

// list the components in a JFace view - can this be done via RMI?

Collection components = ComponentConfig.getAllComponents();
Iterator i = components.iterator();
while (i.hasNext()) {
ComponentConfig cc = (ComponentConfig) i.next();
    // feed into a JFace viewer 
}

> -David
> 
> 
> On Apr 5, 2007, at 4:27 AM, Christopher Snow wrote:
> 
> > I'm currently creating a basic eclipse plugin prototype of an ofbiz- 
> > ide.
> > The plugin will need to manipulate ofbiz metadata (definitions of
> > components/entity/service/etc).  The options:
> >
> > 1) ignore existing ofbiz code base and create separate plugin logic  
> > for
> > reading/writing metadata
> >
> > 2) extract the ofbiz code (Start.init(), etc) to read/write the  
> > metadata
> > without requiring ofbiz to be running so that the plugin can  
> > manipulate
> > the metadata directly using the same code that ofbiz uses for reading
> > the metadata on startup.
> >
> > 3) add an API to ofbiz for manipulating the metadata that the plugin
> > would use while ofbiz is running, e.g.
> >
> >    ComponentDef myComponent =
> >       OfbizComponent.createComponentDef(String componentName ...);
> >    EntityDef myEntity = myComponent.createEntityDef( ... );
> >    etc.
> >
> > option (1) will be the quickest to start with, but will result in a  
> > lot
> > of duplicate code if metadata such as autorelations are to be  
> > displayed
> > in the ide.
> >
> > Any comments appreciated.  Thanks in advance ...
> >
> > Chris
> >
> >
> 

Reply via email to