Le 28/04/2015 16:42, Adam Heath a écrit :
On 04/28/2015 03:39 AM, David E. Jones wrote:
+1 - with the clarification that to me "begin replacing" implies a PoC effort
in a branch.
I just saw this thread and need a little time to think over the best approach,
but off the top of my head it would look something like:
- add the moqui-framework-<version>.jar file and all dependent jars to a component directory under ofbiz/framework (these could go in the base or
common components, but might be best separate for clarity); if needed update jars currently used in OFBiz where an older version is used (don't
know if this is the case for any, mention for the sake of completeness)
There are 2 separate items in this bullet point. I'll talk about the second,
updating jar versions.
HAHAHAHAHAHAHA!
I have discovered that ofbiz is using hc.apache.org(HttpClient), and commons-httpclient. The former is the newer, rewritten, rearchitected,
replacement for the latter.
hc.apache.org(HttpClient) was introduced with https://issues.apache.org/jira/browse/OFBIZ-3180. I also created
https://issues.apache.org/jira/browse/OFBIZ-4430
Never got a chance to seriously work on it
The rest of the versioned jars are just as bad.
Which ones?
Jacques
- add a Moqui runtime directory somewhere in the OFBiz directory tree (Moqui uses this for various things); this would contain the Moqui tools
components (with the Tools and System apps) so we have a UI to look at Moqui internals, OFBiz data, etc
Do each of the separate moqui sub-tools need their own runtime folder? How difficult would it be to have $OFBIZ_HOME/runtime/$tool1,
runtime/$tool2, etc?
- either in the Moqui runtime directory or as an OFBiz component add a "webroot" webapp; Moqui is designed to run in a single webapp, and I'd
recommend this be separate from the existing OFBiz webapps for now; when this webapp loads it will init the Moqui ExecutionContextFactory, when it
shuts down it will destroy it
Wait. The webapp initializes the context factory? There isn't a separate way to do this? Does that mean Moqui is tied to a webapp? What kind of
webapp? I hope it isn't servlets.
You mention it as weboot. Does that mean it runs at the root of the webserver?
This might be a noob question.
- because initializing Moqui when the webroot webapp starts may not be adequate, make sure the Moqui static init stuff is in place and working (in
the Moqui.java class)
Ah. So that means that means that moqui-component needs a container
definition. Ignore the above then.
I have never liked that ofbiz startup delays initialization of certain components until they are magically called from some random bit of java code,
aka, the web container starting up.
- run my little templates to transform current OFBiz data model XML files into Moqui ones and put those in a Moqui component in the Moqui runtime
directory
Sorry for the noob question, but does that mean that both ofbiz entityengine
and moqui could talk to the same database backend(s), at the same time?
This would be a basic PoC to get Moqui running inside OFBiz, and then we could start the real PoC of either a "thunk" layer as Adrian proposed,
probably accessing the statically initialized Moqui ExecutionContextFactory since most OFBiz framework classes are statically initialized, or using
the more dynamic initialization through the Moqui webroot webapp.
Actually, a bit simpler, would be to just see if moqui can be added to the classpath, and loaded, before translating any datamodels. Once that is
done, then have a method that translates the model definitions dynamically at load time, so that they are always kept in sync.
Once this has proven, then that dynamic translation can be removed, and the
output of it can become the new static definition of the model.
The reason I suggest this way, is so that hot-deploy components(or other file modifications) that alter the entity definitions
dynamically(extends-entity, whole new entity definitions) can also work transparently.
For those who want a brief introduction to some of the differences between OFBiz Framework and Moqui Framework, see the "OFBiz: How does it compare
to Moqui?" section at:
http://www.moqui.org/framework/index.html
That is an older document and isn't meant to be any sort of exhaustive list of the features of Moqui versus the features of OFBiz Framework, but
gives a general idea about how some of the similar tools are different.
For those who want to dive a bit deeper the Tutorial may be helpful:
http://www.moqui.org/framework/docs/Tutorial.html
For those who want to dive in neck deep the "Making Apps with Moqui" book is the more exhaustive reference to Moqui (though about 8 months old now
and there are many new features, summarized in the ReleaseNotes.txt file for those curious):
http://www.moqui.org/MakingAppsWithMoqui-1.0.pdf
https://github.com/moqui/moqui/blob/master/ReleaseNotes.txt
I would be happy to participate in this effort... if nothing else should be an
interesting technical diversion.
-David