Great, I'll continue discussion over there referring to this conversation.

On Thu, Jul 28, 2016 at 10:03 AM, Sharan Foga <sharan.f...@gmail.com> wrote:

> Hi
>
> If we are talking about Jira and ways to handle or improve it for the
> project then I did start a discussion thread a few days ago (link below)
>
>
> https://lists.apache.org/thread.html/61d310a85759c89ca2aa2a18bdca945a9868caf5a1bff2fb72a774d8@%3Cdev.ofbiz.apache.org%3E
>
> It might be good to take this suggestion into that thread rather than
> start an off-topic discussion here.
>
> Thanks
> Sharan
>
>
> On 28/07/16 08:54, Taher Alkhateeb wrote:
>
>> 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