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 > > > > >