Here is the sequence as I understand it.

Ofbiz first loads: ./framework/base/config/component-load.xml, which has:

    <load-components parent-directory="framework"/>
    <load-components parent-directory="themes"/>
    <load-components parent-directory="applications"/>
    <load-components parent-directory="specialpurpose"/>
    <load-components parent-directory="hot-deploy"/>

That is the INITIAL sequence.  It takes the first one (framework), and
looks for component-load.xml... i.e:

./framework/component-load.xml

Reads it, gets the "order" for all framework items... Example:

    <load-component component-location="base"/>
    <load-component component-location="entity"/>
    <load-component component-location="security"/>
    <load-component component-location="datafile"/>
    <load-component component-location="minilang"/>
    <load-component component-location="common"/>
    <load-component component-location="service"/>
    <load-component component-location="catalina"/>
    <load-component component-location="entityext"/>
    <load-component component-location="webapp"/>
    <load-component component-location="widget"/>
    <load-component component-location="testtools"/>
    <load-component component-location="webtools"/>
    <load-component component-location="images"/>

THAT is the order, in framework, that data is loaded.

Then, for EACH of the above items in framework (i.e. "base), in sequence,
reads "ofbiz-component.xml"... Example:

framework/common/ofbiz-component.xml

Then, if ofbiz-component.xml has "reader-name(s)" entries, as below:

    <entity-resource type="model" reader-name="main" loader="main"
location="entitydef/entitymodel.xml"/>
    <entity-resource type="data" reader-name="seed" loader="main"
location="data/CommonSecurityPermissionSeedData.xml"/>

Ofbiz will load the data, as specified by the reader-name, as specified on
your ant/gradlew command line.  By default, the reader-name(s) are "demo",
"main", "seed", and "seed-initial".

You can (and should) create your OWN "reader-name(s)" for your own
particular purpose, but that should ONLY be done in "hot-deploy", which is
the absolute LAST item in:

./framework/base/config/component-load.xml

Don't try to mess with ANY of these default ordered items.  There are
dependencies to be followed, and errors will surely follow.

What you probably want to do (like everyone else does), is load:

./ant load-readers "-Ddata-readers=seed,seed-initial" (or the equivalent
gradlew command)

Which creates a boot-strapped ofbiz... Operational, but empty... Waiting
for customization.

Create a sub-directory in "hot-deploy", place your custom data there, and
load in YOUR sequence, as defined in:

hot-deploy/mydata/ofbiz-component.xml

That is how everyone loads custom data after seed,seed-initial.



On Tue, Jan 16, 2018 at 12:17 PM, Taher Alkhateeb <
slidingfilame...@gmail.com> wrote:

> Okay so the order of loading data is by component and reader type.
> Component loading order is determined in the related XML files and reader
> loading is defined as per the entityengine configuration loading order
> which goes from seed all the way to ext-demo as I remember it. Now if you
> want to go beyond that (it would be strange if you want to know the exact
> file-by-file sequence) then you'll need to investigate.
>
> You know it would be easier instead of me answering you piece by piece to
> actually explain your problem because there might be solutions. If not,
> then please go ahead and read the code at the EntityDataLoadContainer.java
> and best of luck.
>
> On Jan 16, 2018 10:20 PM, <stim...@comcast.net> wrote:
>
> The trouble with that is I'm interested in dumping the logic of how the
> load order is determined specifically with the loadDefault. If there were a
> command such as "./gradlew --explain loadDefault", where it verbosely named
> which file is chosen, what kind of sorting is used, and what it was doing
> with each, then this would work. This is why I wanted to see the code
> actually step through loadDefault...I want to know how it actually makes
> the choices, and perhaps write something to help with generation/load of my
> own test cases (I'm hoping to actually learn something).
>
> ----- Original Message -----From: Taher Alkhateeb <
> slidingfilame...@gmail.com>To: user@ofbiz.apache.orgSent: Tue, 16 Jan 2018
> 18:50:59 -0000 (UTC)Subject: Re: loadDefault Source Code
>
> Okay so in this case my recommendation is to skip looking at the sourcecode
> and instead learn the syntax for loading data. ./gradlew "ofbiz--help" and
> README.md are good sources for that. There you will find plentyof options
> for loading data including specifying readers, components,files,
> directories etc ...
>
> On Jan 16, 2018 9:15 PM, <stim...@comcast.net> wrote:
>
> > I am interested in how the list of files is chosen, along with the rules>
> for order of choosing. I am thinking of custom loading for my own testing,>
> but mostly I just feel I need to better understand what the "All" of>
> "loadAll" is.>> ----- Original Message -----From: Jacques Le Roux <>
> jacques.le.r...@les7arts.com>To: user@ofbiz.apache.orgSent: Tue, 16 Jan>
> 2018 07:11:45 -0000 (UTC)Subject: Re: loadDefault Source Code>> I agree,
> maybe you can try starting from ContainerLoader.java>> Jacques>> Le
> 16/01/2018 &agrave; 07:48, Taher Alkhateeb a &eacute;crit :>> loadDefault
> translates to loading all data sets (seed,seed-initial,>> demo,ext, etc
> ...)>> The code for that is big and scattered in many> different places
> because a> lot of things happen during data load (SAX> parser, DOM
> modeling, DB> translations, and a lot more). So it depends on> what you are
> looking for> and perhaps more importantly, why>> On Jan 16,> 2018 4:05 AM,
> <
> stim...@comcast.net> wrote:>>> Hi,>>>> I guess what I> should do is
> rephrase...if I wanted to run this under a>> debugger and get> a stack
> frame (which I'm not actually set up to do), where>> would I find> the
> source code which specifically understands which XML files>> to read> and
> load for loadDefault? The build.gradle is more of a declaration>> and> not
> so much the actual source code, and I'm more of a C++ guy (I do ok>>> with
> Java, but I don't know the web toolkits and APIs).>>>> ----- Original>
> Message -----From: gil portenseigne <>> gil.portensei...@nereide.fr>To:>
> user@ofbiz.apache.orgSent: Mon, 15 Jan>> 2018 08:10:30 -0000>
> (UTC)Subject:
> Re: loadDefault Source Code>>>> Hello,>>>> You will find> loadDefault task
> implementation within the file build.gradle>> at OFBiz> root directory.
> (see line 320)>>>> Regards,>>>> Gil>>>> On 14/01/2018> 22:18,
> stim...@comcast.net wrote:> This is probably a naive>> question,> but on
> 16.11.04 I am searching for the actual code which runs for>> the>
> "loadDefault" part of:> ./gradlew loadDefault> > I'm looking for what I>>>
> might edit to create my own version of loadDefault after observing what>
> the>> existing loadDefault actually executes. I see some shell scripts>
> passing>> this on, and suspect this is part of one of the jar files, but>
> was unable>> to find the actual code.> > Thanks!>>>>>>
>

Reply via email to