This solutions must be able to work with:

   - zip files
   - tar files and other zip variants (tar.gz, etc)
   - folder structures.

That will enable the adopter to use local storage, but also releases stored
in GitHub or even svn repos.

At the moment I see the use of maven repos as overkill, adding unnecessary
complexity when developing extensions. OFBiz is not that complex.. Unless
we want to have a full-fledged Eclipse-like plugin management solution from
the start. This is not low-hanging fruit, but rather something to have
later in the life-cycle of the solution maturity wise. Quick-win, at the
moment, would be that something could be retrieved from svn, github or
local folder and deployed in the hot-deploy folder.

I guess I need to see this solution in combination with an example/demo
component that requires all the elements described in the PoC and the
earlier postings in this ml.

Best regards,

Pierre Smits

ORRTIZ.COM <http://www.orrtiz.com>
OFBiz based solutions & services

OFBiz Extensions Marketplace
http://oem.ofbizci.net/oci-2/

On Sun, Aug 28, 2016 at 6:41 PM, Taher Alkhateeb <slidingfilame...@gmail.com
> wrote:

> Hi Everyone,
>
> I am very happy to announce that after a lot of research I finally have a
> little working PoC solution for the OFBiz plugin system. I believe this
> system is very simple yet very powerful with the following simple API tasks
>
> 1- ./gradlew createPlugin: creates a plugin from templates
> 2- ./gradlew installPlugin: downloads a plugin and all its dependency
> plugins from a maven repository(it could be local, remote, jcenter,
> whatever), extracts the archives, add the plugin to component-load.xml, and
> calls the install task.
> 3- ./gradlew uninstallPlugin: calls the uninstall task, removes the plugin
> from component-load.xml, and deletes the plugin (but ignores dependencies).
> 4- ./gradlew publishPlugin: create a maven compatible package that can be
> published to either a local or a remote repository.
>
> So what is very powerful about this solution? Well, you use the maven
> format for your packages, so you can host it on any maven repository
> including jcenter. Also, you have a standard way of declaring dependencies
> (pom.xml) and you pretty much gain all the benefits that comes with maven
> packages (versioning, dependencies, meta data, etc ...)
>
> The solution can be expanded later on, but I think the above provides a
> good starting point. Ideas? Feedback? Should I go ahead and fine-tune /
> share the PoC on JIRA?
>
> Regards,
>
> Taher Alkhateeb
>
> On Fri, Aug 26, 2016 at 6:17 PM, Jacques Le Roux <
> jacques.le.r...@les7arts.com> wrote:
>
> > Le 25/08/2016 à 16:39, Taher Alkhateeb a écrit :
> >
> >> Hello Everyone,
> >>
> >> I need some opinions for a PoC that I'm working on for the plugin system
> >> (OFBIZ-7972) and appreciate your help:
> >>
> >> repository design
> >> ----------------------
> >> I am thinking of just having a very simple web server denoted as a
> >> repository where the plugins are just zip or tar archives that expand to
> >> OFBiz components. For example, if the repository URL is www.example.com
> >> then the plugin could be www.example.com/plugins/Specif
> >> icPluginHere.tar.gz.
> >> It downloads to the specialpurpose (hopefully renamed to plugins) to
> >> expand
> >> and install
> >>
> >
> > I'm for removing the difference between specialpurpose and hot-deploy.
> > Why? Simplification!
> >
> > We should remove specialpurpose and rename hot-deploy into plugins.
> > This also means that we should have a Gradle task to automatically
> > download and install a plugin.
> > All current specialpurpose would become plugins available in the repo
> > easily installable using something like
> >     gradlew installPlugins plugins1Name plugins2Name etc.
> > I don't see the need to have a differentiated task to install only 1
> plugin
> >
> > The repo should be installed on the new OFBIZ-VM2
> >
> > We know that, like for the misnamed hot-deploy, installing a plugin will
> > need a restart of the OFBiz instance.
> > So this can't be dynamically done (at least for now), but need to be at
> > least automated.
> >
> > The only current issue is if we have dependencies among plugins.
> > For now we can simply documented them for users to set their own
> > component-load.xml
> >
> > BTW as a reminder, after OFBIZ-6760 we need to update
> > https://cwiki.apache.org/confluence/display/OFBIZ/Component+
> > and+Component+Set+Dependencies
> > And possibly complete the possible existing interdependencies between
> > specialpurpose components, though I can't remember any, but I feel I'm
> > wrong here.
> >
> >
> > dependencies
> >> ------------------
> >> This is a complicated subject, and there are a few ideas I have in mind:
> >> - Try to deploy the gradle project dependency model
> >>
> >
> > I'd like to know if you crossed issues with that and if yes what they
> are.
> > If it's the case can't we share the burden?
> >
> > - Alternatively write custom dependency resolution
> >>
> >
> > Please no :)
> >
> > However, this might be too complex to kickstart the project, and I think
> >> perhaps we can start without a dependency management system and
> implement
> >> it in a later stage.
> >>
> >
> > Yes why not? Baby steps for the win
> >
> > Jacques
> >
> >
> >
> >> Thank you in advance for your help and feedback.
> >>
> >> Taher Alkhateeb
> >>
> >>
> >
>

Reply via email to