Hi Pierre and Everyone,

I gather you might be currently preoccupied to work on this JIRA. If my
understanding is correct, then may I suggest to close this JIRA and other
similar JIRAs and allow those interested in implementing the work to create
their own JIRAs for the following reasons:

1- It is confusing to have too many JIRAs open that no one is working on
which is likely to create duplicates.
2- I think it is fair for those who make the effort of designing,
implementing, testing and patching to have their name on the JIRA as the
Reporter as a recognition of their efforts.

Taher Alkhateeb

On Wed, Jul 27, 2016 at 6:39 PM, Taher Alkhateeb <slidingfilame...@gmail.com
> wrote:

> Would you be willing to take care of that task Pierre?
>
> On Jul 27, 2016 6:36 PM, "Pierre Smits" <pierre.sm...@gmail.com> wrote:
>
>> An issue regarding the move of data up the stack already exists:
>> https://issues.apache.org/jira/browse/OFBIZ-7016
>>
>> Best regards,
>>
>> Pierre Smits
>>
>> ORRTIZ.COM <http://www.orrtiz.com>
>> OFBiz based solutions & services
>>
>> OFBiz Extensions Marketplace
>> http://oem.ofbizci.net/oci-2/
>>
>> On Wed, Jul 27, 2016 at 5:15 PM, Jacopo Cappellato <
>> jacopo.cappell...@hotwaxsystems.com> wrote:
>>
>> > Initially ecommerce was part of the "core" applications, then it was
>> moved
>> > to specialpurpose because as it it is a "template" for the
>> implementation
>> > of an ecommerce store rather than a ready to be used application.
>> > I must admit that the same could apply to the other backend
>> applications so
>> > there is definitely a grey area...
>> > For the short term we could consider to move the demo data up the stack.
>> >
>> > Jacopo
>> >
>> > On Wed, Jul 27, 2016 at 5:10 PM, Taher Alkhateeb <
>> > slidingfilame...@gmail.com
>> > > wrote:
>> >
>> > > Hi Jacopo,
>> > >
>> > > You got it 100% right, it was indeed the ecommerce component. Wow!
>> This
>> > > means one of two things should happen, either we move ecommerce as a
>> core
>> > > application, or we untangle this mess. I'm not very familiar with the
>> > > history, is there a reason why ecommerce is a specialpurpose
>> application?
>> > > it seems to be highly integrated within the framework.
>> > >
>> > > Taher Alkhateeb
>> > >
>> > > On Wed, Jul 27, 2016 at 4:01 PM, Jacopo Cappellato <
>> > > jacopo.cappell...@hotwaxsystems.com> wrote:
>> > >
>> > > > I think that the core reason for the failure is that most of the
>> tests
>> > > need
>> > > > the demo data that is loaded with the ecommerce component; if you
>> > disable
>> > > > it the data is not loaded.
>> > > > Could you please try to enable ecommerce and run them again?
>> > > >
>> > > > Thanks,
>> > > >
>> > > > Jacopo
>> > > >
>> > > > On Wed, Jul 27, 2016 at 1:21 PM, Taher Alkhateeb <
>> > > > slidingfilame...@gmail.com
>> > > > > wrote:
>> > > >
>> > > > > Hi everyone,
>> > > > >
>> > > > > In continuation with the above discussion, I just made a little
>> > > > experiment
>> > > > > which gave me scary results. What did I do?
>> > > > >
>> > > > > 1 - Disabled all specialpurpose components (except example, to
>> make
>> > it
>> > > a
>> > > > > valid XML file) in specialpurpose/component-load.xml
>> > > > > 2 - Attempted ./gradlew cleanAll loadDefault testIntegration
>> > > > > 3 - Got 100 failing tests
>> > > > >
>> > > > > So upon investigating a little I believe these tests fail due to
>> > > multiple
>> > > > > issues:
>> > > > > - When we disable specialpurpose, the dependency graph for Jars
>> > changes
>> > > > and
>> > > > > that breaks some system behavior
>> > > > > - I suspect also some data loading is disabled which fails some of
>> > the
>> > > > > tests
>> > > > > - hidden dependencies exist from framework / applications to
>> > > > > specialpurpose.
>> > > > >
>> > > > > What does that mean? It means our framework is brittle and
>> depends on
>> > > > > specialpurpose, and without it being active the system does not
>> run
>> > > > > properly.
>> > > > >
>> > > > > If we are serious about improving the system and making it
>> modular,
>> > > then
>> > > > I
>> > > > > find it very important to start with disabling all specialpurpose
>> > > > > components or at least having a second build in buildbot for those
>> > > > > components in isolation of the framework.
>> > > > >
>> > > > > I don't think this is a luxury, I highly recommend that we stop
>> the
>> > > > > specialpurpose components from being active by default to protect
>> and
>> > > > > isolate the framework and core applications. Actually we need help
>> > from
>> > > > > everyone who is willing to help to volunteer in getting a working
>> > build
>> > > > > with tests passing while all specialpurpose components are
>> disabled.
>> > > > >
>> > > > > Taher Alkhateeb
>> > > > >
>> > > > > On Sat, Jul 23, 2016 at 10:32 PM, Jacques Le Roux <
>> > > > > jacques.le.r...@les7arts.com> wrote:
>> > > > >
>> > > > > > Hi Taher, Gil,
>> > > > > >
>> > > > > > Exactly my thoughts. Nothing (ethically and technically) should
>> > force
>> > > > an
>> > > > > > user to share his/her/its personal plugins. This assumption
>> must be
>> > > > part
>> > > > > of
>> > > > > > the specifications (assumption as in a theory)
>> > > > > >
>> > > > > > Thanks Taher!
>> > > > > >
>> > > > > >
>> > > > > >
>> > > > > > Le 23/07/2016 à 19:44, Taher Alkhateeb a écrit :
>> > > > > >
>> > > > > >> Hi Gil,
>> > > > > >>
>> > > > > >> Thank you for sharing past experiences. It seems we are
>> tackling
>> > > > > something
>> > > > > >> that was attempted multiple times before. I am a bit optimistic
>> > > though
>> > > > > >> because having the plugin system integrated into the build
>> system
>> > > is a
>> > > > > >> different approach that solves multiple problems I think.
>> > > > > >>
>> > > > > >> I would like to note that I think it is okay to use the same
>> > plugin
>> > > > > system
>> > > > > >> even for proprietary customer solutions. In fact I think
>> customers
>> > > > would
>> > > > > >> understand it more easily than the concept of hot-deploy. Even
>> if
>> > > the
>> > > > > >> solution is for one customer and not intended to be shared you
>> can
>> > > > still
>> > > > > >> have a sensible command like ./gradlew installPlugin
>> > > > > >> -PpluginName=customerPlugin -Prepository=localFileSystem.
>> > > > > >>
>> > > > > >> Having one solution instead of two solutions I think would
>> unify
>> > > > efforts
>> > > > > >> and thinking processes and terminology used. We have only one
>> way
>> > of
>> > > > > >> extending OFBiz which is called plugins, and any changes we do
>> > > happen
>> > > > in
>> > > > > >> this unified architecture.
>> > > > > >>
>> > > > > >> So ... food for thought.
>> > > > > >>
>> > > > > >> Taher Alkhateeb
>> > > > > >>
>> > > > > >> On Jul 23, 2016 7:34 PM, "gil portenseigne" <
>> > > > > gil.portensei...@nereide.fr>
>> > > > > >> wrote:
>> > > > > >>
>> > > > > >> Hi all,
>> > > > > >>>
>> > > > > >>> First, I like the idea of gradle being the plugin solution
>> > endebbed
>> > > > > >>> within
>> > > > > >>> OFBiz.
>> > > > > >>>
>> > > > > >>> This could allow OFBiz integrators to share their specific
>> > > > improvments
>> > > > > >>> with a easy to use, OOTB tool (thinking about OfbizExtra
>> addons
>> > or
>> > > > > >>> Pierre's
>> > > > > >>> OEM initiatives to name a few).
>> > > > > >>>
>> > > > > >>> Then, from what i understand about what Nicolas said, is that
>> > it'd
>> > > be
>> > > > > >>> good
>> > > > > >>> to keep hot-deploy and create-component tasks for customer
>> > > projects.
>> > > > > >>>
>> > > > > >>> Why not using plugin into customer project ? It is because
>> that
>> > is
>> > > a
>> > > > > >>> private, specific and complete new application using core and
>> > > plugin
>> > > > > >>> functionnalities. It has to be separated since it is not a
>> plugin
>> > > > (not
>> > > > > >>> intended to be shared). The plugin dependency could be solved
>> > with
>> > > a
>> > > > > >>> build.gradle within the hot-deploy component, checking the
>> > > > installation
>> > > > > >>> state of the dependent plugin (and installing if needed).
>> > > > > >>>
>> > > > > >>> And last, for your information, Nereide do not use addons
>> > anymore,
>> > > > this
>> > > > > >>> system created more problems than it helped, the original idea
>> > was
>> > > > > good,
>> > > > > >>> but some design flaws did showed up...
>> > > > > >>> Gil
>> > > > > >>>
>> > > > > >>>
>> > > > > >>>
>> > > > > >>> Le 23/07/2016 à 12:35, Jacques Le Roux a écrit :
>> > > > > >>>
>> > > > > >>>
>> > > > > >>>
>> > > > > >>> Le 22/07/2016 à 15:31, Nicolas Malin a écrit :
>> > > > > >>>
>> > > > > >>> Hi,
>> > > > > >>>
>> > > > > >>> Taher I like you proposal, and I wish to add some complement
>> :)
>> > > > > >>>
>> > > > > >>> hot-deploy is to manage specific customer site component with
>> the
>> > > > > >>> business
>> > > > > >>> logic specific to each, Apache OFBiz can help to prepare this
>> but
>> > > do
>> > > > > not
>> > > > > >>> more (I will like to have this as best practice)
>> > > > > >>>
>> > > > > >>>
>> > > > > >>> I think plugins could do that also
>> > > > > >>>
>> > > > > >>>
>> > > > > >>> I agree to add a new directory plugins and structure it for
>> the
>> > > > future
>> > > > > >>> vision :
>> > > > > >>> * add capacity to download a plugin from the asf repo
>> > > > > >>> * support extension to download from a third plateform (like
>> the
>> > > > > >>> /etc/apt/source.list on debian)
>> > > > > >>> * manage namespace and as you said dependencies. Need give
>> some
>> > > > coding
>> > > > > >>> contions
>> > > > > >>>
>> > > > > >>>
>> > > > > >>> This should be in the specifications indeed, Taher already
>> > answered
>> > > > > >>>
>> > > > > >>>
>> > > > > >>> We can create the plugins directory, and keep specialpurpose
>> on a
>> > > > first
>> > > > > >>> step and move step by step each component present.
>> > > > > >>>
>> > > > > >>>
>> > > > > >>> This is a very important point and we have to be very careful
>> > about
>> > > > the
>> > > > > >>> transition!
>> > > > > >>>
>> > > > > >>> Jacques
>> > > > > >>>
>> > > > > >>>
>> > > > > >>> I imagine a process like this :
>> > > > > >>> * ./gradlew installPlugin org.apache.ofbiz.framework.birt :
>> > > > > >>>   -> check if birt is present on the plugins directory, if not
>> > > > download
>> > > > > >>> from
>> > > > > >>>
>> > > > > >>>
>> > > > >
>> > > >
>> > >
>> >
>> svn.apache.org/repos/asf/ofbiz-pulgins/branches/relatedRelease/org/apache/ofbiz/framework/birt
>> > > > > >>>   -> enable it on component-load
>> > > > > >>>   -> compile, load init date and run init service
>> > > > > >>>
>> > > > > >>> When you run ./gradlew installAllPlugin :
>> > > > > >>> * Realize installPlugin on all know plugins, with the official
>> > > apache
>> > > > > >>> ofbiz release, only plugins present on
>> > > > > >>>
>> > > > > >>>
>> > > > >
>> > > >
>> > >
>> >
>> svn.apache.org/repos/asf/ofbiz-pulgins/branches/relatedRelease/org/apache/ofbiz/
>> > > > > >>>
>> > > > > >>> Nicolas
>> > > > > >>>
>> > > > > >>> Le 20/07/2016 à 07:29, Taher Alkhateeb a écrit :
>> > > > > >>>
>> > > > > >>> Hi Pierre, all,
>> > > > > >>>
>> > > > > >>> I think perhaps my proposal was short and therefore your
>> > > > understanding
>> > > > > of
>> > > > > >>> it is a bit different than what I had in mind. So I list below
>> > more
>> > > > > >>> specifically what I mean about each point from the ones you
>> > > mentioned
>> > > > > >>> above
>> > > > > >>> to further fine-tune the discussion.
>> > > > > >>>
>> > > > > >>> - The difference between createComponent and createPlugin is
>> that
>> > > the
>> > > > > >>> plugin resides in /plugins instead of hot-deploy and added to
>> > > > > >>> component-load.xml and also contains a build.gradle file
>> designed
>> > > > > >>> specifically for plugins. This script contains standard tasks
>> > like
>> > > > > >>> install,
>> > > > > >>> uninstall, perhaps even upgrade. The magic work for plugins
>> will
>> > be
>> > > > in
>> > > > > >>> their build scripts to integrate tightly with OFBiz.
>> > > > > >>>
>> > > > > >>> - The activate/deactivate tasks are just a little convenience
>> > tasks
>> > > > > that
>> > > > > >>> add/remove components to the component-load.xml instead of
>> > editing
>> > > it
>> > > > > by
>> > > > > >>> hand so it is just using what exists. Gradle completely
>> ignores a
>> > > > > >>> component
>> > > > > >>> if it does not exist in component-load.xml and would not even
>> > > compile
>> > > > > it.
>> > > > > >>> So you can think of this as just providing more ease to the
>> > > end-user,
>> > > > > >>> similar to your suggestion with the createComponent.
>> > > > > >>>
>> > > > > >>> - The install/uninstall tasks are not just a copy-paste of
>> > folders.
>> > > > It
>> > > > > >>> actually executes business logic (optionally) for any plugin
>> > author
>> > > > who
>> > > > > >>> wishes to execute it (by calling specific tasks in
>> build.gradle
>> > for
>> > > > > that
>> > > > > >>> plugin). For example, it might apply patches on some core
>> > > > applications
>> > > > > >>> (and
>> > > > > >>> reverse patches in case of uninstall). Now our standard
>> plugins
>> > do
>> > > > not
>> > > > > >>> touch applications or framework, but since we are introducing
>> > this
>> > > > > >>> feature
>> > > > > >>> I'm trying to also combine a unified solution for all plugins
>> > > (Apache
>> > > > > >>> supported and 3rd party). So in one shot we have both ease of
>> use
>> > > for
>> > > > > the
>> > > > > >>> existing components and at the same time a general purpose
>> plugin
>> > > > > system.
>> > > > > >>> We might even have a task like say "updatePlugin" in the
>> future
>> > and
>> > > > it
>> > > > > is
>> > > > > >>> also possible to introduce rudimentary dependency management
>> > > (Gradle
>> > > > is
>> > > > > >>> really good at this).
>> > > > > >>>
>> > > > > >>> Finally, what to do about specialpurpose is something we
>> should
>> > > > > >>> definitely
>> > > > > >>> tackle, however what I am suggesting right now is some
>> > foundational
>> > > > > work
>> > > > > >>> that gives you easy choices when you need to make them, and it
>> > has
>> > > > the
>> > > > > >>> added bonus of introducing a plugin system for OFBiz which is
>> > badly
>> > > > > >>> needed
>> > > > > >>> to protect the core framework and applications and to provide
>> an
>> > > > > >>> eco-system
>> > > > > >>> around it. I'm trying to reach a win-win solution if you will.
>> > > > > >>>
>> > > > > >>> Regards,
>> > > > > >>>
>> > > > > >>> Taher Alkhateeb
>> > > > > >>>
>> > > > > >>> On Wed, Jul 20, 2016 at 1:18 AM, Jacques Le Roux <
>> > > > > >>> jacques.le.r...@les7arts.com> wrote:
>> > > > > >>>
>> > > > > >>> Le 19/07/2016 à 22:57, Jacques Le Roux a écrit :
>> > > > > >>>
>> > > > > >>> the graph needs to be checked/amended to possibly remove
>> > components
>> > > > > >>> dependencies only introduced by the data model
>> > > > > >>>
>> > > > > >>> Sorry, I have noticed I have the bad tendency of using the
>> word
>> > > > > >>> "introduced" instead of "put" or "add" (due to "introduire"
>> false
>> > > > > friend
>> > > > > >>> in
>> > > > > >>> French) please replace for me when you see it, thanks! :)
>> > > > > >>> Here the right word would have been "due to" instead of
>> > "introduced
>> > > > by"
>> > > > > >>>
>> > > > > >>> Jacques
>> > > > > >>>
>> > > > > >>> PS: http://www.etymonline.com/index.php?term=introduction
>> > > > > >>>
>> > > > > >>>
>> > > > > >>>
>> > > > > >>>
>> > > > > >>>
>> > > > > >>>
>> > > > > >>>
>> > > > > >>>
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>>
>

Reply via email to