[jira] [Commented] (OFBIZ-7972) Create a (PoC) plugin system for OFBiz based on Gradle

2017-01-11 Thread Taher Alkhateeb (JIRA)

[ 
https://issues.apache.org/jira/browse/OFBIZ-7972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15817967#comment-15817967
 ] 

Taher Alkhateeb commented on OFBIZ-7972:


In reference to the discussion thread in which we voted to rename 
/specialpurpose to /plugins found 
[here|http://markmail.org/message/hpyuxkmftiyn44w2] I have committed the change 
in r1778271

> Create a (PoC) plugin system for OFBiz based on Gradle
> --
>
> Key: OFBIZ-7972
> URL: https://issues.apache.org/jira/browse/OFBIZ-7972
> Project: OFBiz
>  Issue Type: Improvement
>Affects Versions: 16.11.01
>Reporter: Taher Alkhateeb
>Assignee: Taher Alkhateeb
>Priority: Minor
>  Labels: plugin, proof-of-concept, system
> Attachments: OFBIZ-7972.patch, OFBIZ-7972.patch, OFBIZ-7972.patch
>
>
> This JIRA houses the attempt to create a plugin system for OFBiz based on 
> gradle. The plugin system should have the following features:
> - It is independent of the version control system, file system, operating 
> system and any other environment tools surrounding OFBiz. Instead, it should 
> be fully integrated with OFBiz.
> - It should unify the way OFBiz is extended, both for official supported 
> plugins and for third party plugins
> - The plugin system takes advantage of the concept of a "component" in OFBiz 
> and utilize it as the building block for plugins
> - The plugin system supports the concepts of "Repository" and "Dependency 
> Management". If possible, the plugin system will utilize these concepts 
> directly from Gradle instead of writing them from scratch.
> The initial API for the plugin system will be small and expands as needed. 
> The API should include the following gradle tasks:
> - createPlugin: creates a new plugin based on templates and place it in the 
> plugins directory
> - installPlugin: Activate a plugin and run Install. Plugin must exist in 
> /specialpurpose
> - uninstallPlugin: Deactivate a plugin and run its uninstall script
> - publishPlugin: publish a plugin to local maven repository
> - pullPlugin: download a plugin with its dependencies (plugins) from a 
> repository and install them



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (OFBIZ-7972) Create a (PoC) plugin system for OFBiz based on Gradle

2016-09-15 Thread Taher Alkhateeb (JIRA)

[ 
https://issues.apache.org/jira/browse/OFBIZ-7972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15493045#comment-15493045
 ] 

Taher Alkhateeb commented on OFBIZ-7972:


First commit in r1760917 with minor modifications and fixing of typos.

> Create a (PoC) plugin system for OFBiz based on Gradle
> --
>
> Key: OFBIZ-7972
> URL: https://issues.apache.org/jira/browse/OFBIZ-7972
> Project: OFBiz
>  Issue Type: Improvement
>Affects Versions: Upcoming Branch
>Reporter: Taher Alkhateeb
>Assignee: Taher Alkhateeb
>Priority: Minor
>  Labels: plugin, proof-of-concept, system
> Attachments: OFBIZ-7972.patch, OFBIZ-7972.patch, OFBIZ-7972.patch
>
>
> This JIRA houses the attempt to create a plugin system for OFBiz based on 
> gradle. The plugin system should have the following features:
> - It is independent of the version control system, file system, operating 
> system and any other environment tools surrounding OFBiz. Instead, it should 
> be fully integrated with OFBiz.
> - It should unify the way OFBiz is extended, both for official supported 
> plugins and for third party plugins
> - The plugin system takes advantage of the concept of a "component" in OFBiz 
> and utilize it as the building block for plugins
> - The plugin system supports the concepts of "Repository" and "Dependency 
> Management". If possible, the plugin system will utilize these concepts 
> directly from Gradle instead of writing them from scratch.
> The initial API for the plugin system will be small and expands as needed. 
> The API should include the following gradle tasks:
> - createPlugin: creates a new plugin based on templates and place it in the 
> plugins directory
> - installPlugin: Activate a plugin and run Install. Plugin must exist in 
> /specialpurpose
> - uninstallPlugin: Deactivate a plugin and run its uninstall script
> - publishPlugin: publish a plugin to local maven repository
> - pullPlugin: download a plugin with its dependencies (plugins) from a 
> repository and install them



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (OFBIZ-7972) Create a (PoC) plugin system for OFBiz based on Gradle

2016-09-15 Thread Taher Alkhateeb (JIRA)

[ 
https://issues.apache.org/jira/browse/OFBIZ-7972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15492851#comment-15492851
 ] 

Taher Alkhateeb commented on OFBIZ-7972:


Hi Michael,

I thought about using these words but I think it might be misleading. the 
pullPlugin is downloading + activating + installing + doing the same for 
dependencies. The pushPlugin is packaging into POM, publishing and uploading.

So although the words are more familiar I fear people might misinterpret it and 
think if they call downloadPlugin then it would just download it when it is a 
very complex operation.

This is why I suggest to keep them as pull and push but provide a good 
explanation in the description, because you'll know that a pull is not just a 
download so you'll be careful. 

> Create a (PoC) plugin system for OFBiz based on Gradle
> --
>
> Key: OFBIZ-7972
> URL: https://issues.apache.org/jira/browse/OFBIZ-7972
> Project: OFBiz
>  Issue Type: Improvement
>Affects Versions: Upcoming Branch
>Reporter: Taher Alkhateeb
>Assignee: Taher Alkhateeb
>Priority: Minor
>  Labels: plugin, proof-of-concept, system
> Attachments: OFBIZ-7972.patch, OFBIZ-7972.patch, OFBIZ-7972.patch
>
>
> This JIRA houses the attempt to create a plugin system for OFBiz based on 
> gradle. The plugin system should have the following features:
> - It is independent of the version control system, file system, operating 
> system and any other environment tools surrounding OFBiz. Instead, it should 
> be fully integrated with OFBiz.
> - It should unify the way OFBiz is extended, both for official supported 
> plugins and for third party plugins
> - The plugin system takes advantage of the concept of a "component" in OFBiz 
> and utilize it as the building block for plugins
> - The plugin system supports the concepts of "Repository" and "Dependency 
> Management". If possible, the plugin system will utilize these concepts 
> directly from Gradle instead of writing them from scratch.
> The initial API for the plugin system will be small and expands as needed. 
> The API should include the following gradle tasks:
> - createPlugin: creates a new plugin based on templates and place it in the 
> plugins directory
> - installPlugin: Activate a plugin and run Install. Plugin must exist in 
> /specialpurpose
> - uninstallPlugin: Deactivate a plugin and run its uninstall script
> - publishPlugin: publish a plugin to local maven repository
> - pullPlugin: download a plugin with its dependencies (plugins) from a 
> repository and install them



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (OFBIZ-7972) Create a (PoC) plugin system for OFBiz based on Gradle

2016-09-15 Thread Michael Brohl (JIRA)

[ 
https://issues.apache.org/jira/browse/OFBIZ-7972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15492626#comment-15492626
 ] 

Michael Brohl commented on OFBIZ-7972:
--

That would be ok from a developers view, but maybe the users are more familiar 
with something like downloadPlugin and uploadPlugin?

> Create a (PoC) plugin system for OFBiz based on Gradle
> --
>
> Key: OFBIZ-7972
> URL: https://issues.apache.org/jira/browse/OFBIZ-7972
> Project: OFBiz
>  Issue Type: Improvement
>Affects Versions: Upcoming Branch
>Reporter: Taher Alkhateeb
>Assignee: Taher Alkhateeb
>Priority: Minor
>  Labels: plugin, proof-of-concept, system
> Attachments: OFBIZ-7972.patch, OFBIZ-7972.patch, OFBIZ-7972.patch
>
>
> This JIRA houses the attempt to create a plugin system for OFBiz based on 
> gradle. The plugin system should have the following features:
> - It is independent of the version control system, file system, operating 
> system and any other environment tools surrounding OFBiz. Instead, it should 
> be fully integrated with OFBiz.
> - It should unify the way OFBiz is extended, both for official supported 
> plugins and for third party plugins
> - The plugin system takes advantage of the concept of a "component" in OFBiz 
> and utilize it as the building block for plugins
> - The plugin system supports the concepts of "Repository" and "Dependency 
> Management". If possible, the plugin system will utilize these concepts 
> directly from Gradle instead of writing them from scratch.
> The initial API for the plugin system will be small and expands as needed. 
> The API should include the following gradle tasks:
> - createPlugin: creates a new plugin based on templates and place it in the 
> plugins directory
> - installPlugin: Activate a plugin and run Install. Plugin must exist in 
> /specialpurpose
> - uninstallPlugin: Deactivate a plugin and run its uninstall script
> - publishPlugin: publish a plugin to local maven repository
> - pullPlugin: download a plugin with its dependencies (plugins) from a 
> repository and install them



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (OFBIZ-7972) Create a (PoC) plugin system for OFBiz based on Gradle

2016-09-15 Thread Jacopo Cappellato (JIRA)

[ 
https://issues.apache.org/jira/browse/OFBIZ-7972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15492598#comment-15492598
 ] 

Jacopo Cappellato commented on OFBIZ-7972:
--

I like it.
I am looking forward at seeing this code in our repo: after that it will be 
easier to test it and paly with it and gather further feedback and enhancements 
from the community.

> Create a (PoC) plugin system for OFBiz based on Gradle
> --
>
> Key: OFBIZ-7972
> URL: https://issues.apache.org/jira/browse/OFBIZ-7972
> Project: OFBiz
>  Issue Type: Improvement
>Affects Versions: Upcoming Branch
>Reporter: Taher Alkhateeb
>Assignee: Taher Alkhateeb
>Priority: Minor
>  Labels: plugin, proof-of-concept, system
> Attachments: OFBIZ-7972.patch, OFBIZ-7972.patch, OFBIZ-7972.patch
>
>
> This JIRA houses the attempt to create a plugin system for OFBiz based on 
> gradle. The plugin system should have the following features:
> - It is independent of the version control system, file system, operating 
> system and any other environment tools surrounding OFBiz. Instead, it should 
> be fully integrated with OFBiz.
> - It should unify the way OFBiz is extended, both for official supported 
> plugins and for third party plugins
> - The plugin system takes advantage of the concept of a "component" in OFBiz 
> and utilize it as the building block for plugins
> - The plugin system supports the concepts of "Repository" and "Dependency 
> Management". If possible, the plugin system will utilize these concepts 
> directly from Gradle instead of writing them from scratch.
> The initial API for the plugin system will be small and expands as needed. 
> The API should include the following gradle tasks:
> - createPlugin: creates a new plugin based on templates and place it in the 
> plugins directory
> - installPlugin: Activate a plugin and run Install. Plugin must exist in 
> /specialpurpose
> - uninstallPlugin: Deactivate a plugin and run its uninstall script
> - publishPlugin: publish a plugin to local maven repository
> - pullPlugin: download a plugin with its dependencies (plugins) from a 
> repository and install them



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (OFBIZ-7972) Create a (PoC) plugin system for OFBiz based on Gradle

2016-09-14 Thread Taher Alkhateeb (JIRA)

[ 
https://issues.apache.org/jira/browse/OFBIZ-7972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15492497#comment-15492497
 ] 

Taher Alkhateeb commented on OFBIZ-7972:


Hi Folks, I just had a new idea before committing. I would like to rename 
publishPlugin to pushPlugin. This way we have a nice consistent naming i.e. 
pulling from or pushing to a maven Repository. WDYT

> Create a (PoC) plugin system for OFBiz based on Gradle
> --
>
> Key: OFBIZ-7972
> URL: https://issues.apache.org/jira/browse/OFBIZ-7972
> Project: OFBiz
>  Issue Type: Improvement
>Affects Versions: Upcoming Branch
>Reporter: Taher Alkhateeb
>Assignee: Taher Alkhateeb
>Priority: Minor
>  Labels: plugin, proof-of-concept, system
> Attachments: OFBIZ-7972.patch, OFBIZ-7972.patch, OFBIZ-7972.patch
>
>
> This JIRA houses the attempt to create a plugin system for OFBiz based on 
> gradle. The plugin system should have the following features:
> - It is independent of the version control system, file system, operating 
> system and any other environment tools surrounding OFBiz. Instead, it should 
> be fully integrated with OFBiz.
> - It should unify the way OFBiz is extended, both for official supported 
> plugins and for third party plugins
> - The plugin system takes advantage of the concept of a "component" in OFBiz 
> and utilize it as the building block for plugins
> - The plugin system supports the concepts of "Repository" and "Dependency 
> Management". If possible, the plugin system will utilize these concepts 
> directly from Gradle instead of writing them from scratch.
> The initial API for the plugin system will be small and expands as needed. 
> The API should include the following gradle tasks:
> - createPlugin: creates a new plugin based on templates and place it in the 
> plugins directory
> - installPlugin: Activate a plugin and run Install. Plugin must exist in 
> /specialpurpose
> - uninstallPlugin: Deactivate a plugin and run its uninstall script
> - publishPlugin: publish a plugin to local maven repository
> - pullPlugin: download a plugin with its dependencies (plugins) from a 
> repository and install them



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (OFBIZ-7972) Create a (PoC) plugin system for OFBiz based on Gradle

2016-09-14 Thread Taher Alkhateeb (JIRA)

[ 
https://issues.apache.org/jira/browse/OFBIZ-7972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15490013#comment-15490013
 ] 

Taher Alkhateeb commented on OFBIZ-7972:


Good catch Jacopo, yeah I deleted 'org.apache.ant:ant-junit4:1.9.7' as it is 
duplicated and the system works without it.

Thank you Jacopo, Michael and Gil for the vote to push the experimental code to 
Trunk. I'll wait for a while for feedback from others before proceeding.

> Create a (PoC) plugin system for OFBiz based on Gradle
> --
>
> Key: OFBIZ-7972
> URL: https://issues.apache.org/jira/browse/OFBIZ-7972
> Project: OFBiz
>  Issue Type: Improvement
>Affects Versions: Upcoming Branch
>Reporter: Taher Alkhateeb
>Assignee: Taher Alkhateeb
>Priority: Minor
>  Labels: plugin, proof-of-concept, system
> Attachments: OFBIZ-7972.patch, OFBIZ-7972.patch, OFBIZ-7972.patch
>
>
> This JIRA houses the attempt to create a plugin system for OFBiz based on 
> gradle. The plugin system should have the following features:
> - It is independent of the version control system, file system, operating 
> system and any other environment tools surrounding OFBiz. Instead, it should 
> be fully integrated with OFBiz.
> - It should unify the way OFBiz is extended, both for official supported 
> plugins and for third party plugins
> - The plugin system takes advantage of the concept of a "component" in OFBiz 
> and utilize it as the building block for plugins
> - The plugin system supports the concepts of "Repository" and "Dependency 
> Management". If possible, the plugin system will utilize these concepts 
> directly from Gradle instead of writing them from scratch.
> The initial API for the plugin system will be small and expands as needed. 
> The API should include the following gradle tasks:
> - createPlugin: creates a new plugin based on templates and place it in the 
> plugins directory
> - installPlugin: Activate a plugin and run Install. Plugin must exist in 
> /specialpurpose
> - uninstallPlugin: Deactivate a plugin and run its uninstall script
> - publishPlugin: publish a plugin to local maven repository
> - pullPlugin: download a plugin with its dependencies (plugins) from a 
> repository and install them



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (OFBIZ-7972) Create a (PoC) plugin system for OFBiz based on Gradle

2016-09-14 Thread Gil Portenseigne (JIRA)

[ 
https://issues.apache.org/jira/browse/OFBIZ-7972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15489902#comment-15489902
 ] 

Gil Portenseigne commented on OFBIZ-7972:
-

+1, no problem with removing createComponent in my opinion, since createPlugin 
do the same.

> Create a (PoC) plugin system for OFBiz based on Gradle
> --
>
> Key: OFBIZ-7972
> URL: https://issues.apache.org/jira/browse/OFBIZ-7972
> Project: OFBiz
>  Issue Type: Improvement
>Affects Versions: Upcoming Branch
>Reporter: Taher Alkhateeb
>Assignee: Taher Alkhateeb
>Priority: Minor
>  Labels: plugin, proof-of-concept, system
> Attachments: OFBIZ-7972.patch, OFBIZ-7972.patch, OFBIZ-7972.patch
>
>
> This JIRA houses the attempt to create a plugin system for OFBiz based on 
> gradle. The plugin system should have the following features:
> - It is independent of the version control system, file system, operating 
> system and any other environment tools surrounding OFBiz. Instead, it should 
> be fully integrated with OFBiz.
> - It should unify the way OFBiz is extended, both for official supported 
> plugins and for third party plugins
> - The plugin system takes advantage of the concept of a "component" in OFBiz 
> and utilize it as the building block for plugins
> - The plugin system supports the concepts of "Repository" and "Dependency 
> Management". If possible, the plugin system will utilize these concepts 
> directly from Gradle instead of writing them from scratch.
> The initial API for the plugin system will be small and expands as needed. 
> The API should include the following gradle tasks:
> - createPlugin: creates a new plugin based on templates and place it in the 
> plugins directory
> - installPlugin: Activate a plugin and run Install. Plugin must exist in 
> /specialpurpose
> - uninstallPlugin: Deactivate a plugin and run its uninstall script
> - publishPlugin: publish a plugin to local maven repository
> - pullPlugin: download a plugin with its dependencies (plugins) from a 
> repository and install them



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (OFBIZ-7972) Create a (PoC) plugin system for OFBiz based on Gradle

2016-09-14 Thread Michael Brohl (JIRA)

[ 
https://issues.apache.org/jira/browse/OFBIZ-7972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15489889#comment-15489889
 ] 

Michael Brohl commented on OFBIZ-7972:
--

+1 for putting it into trunk.

That would make it a lot easier to test & play instead of applying patches and 
reverting.

Maybe we should keep the "createComponent" task as long as it is experimental 
then?

> Create a (PoC) plugin system for OFBiz based on Gradle
> --
>
> Key: OFBIZ-7972
> URL: https://issues.apache.org/jira/browse/OFBIZ-7972
> Project: OFBiz
>  Issue Type: Improvement
>Affects Versions: Upcoming Branch
>Reporter: Taher Alkhateeb
>Assignee: Taher Alkhateeb
>Priority: Minor
>  Labels: plugin, proof-of-concept, system
> Attachments: OFBIZ-7972.patch, OFBIZ-7972.patch, OFBIZ-7972.patch
>
>
> This JIRA houses the attempt to create a plugin system for OFBiz based on 
> gradle. The plugin system should have the following features:
> - It is independent of the version control system, file system, operating 
> system and any other environment tools surrounding OFBiz. Instead, it should 
> be fully integrated with OFBiz.
> - It should unify the way OFBiz is extended, both for official supported 
> plugins and for third party plugins
> - The plugin system takes advantage of the concept of a "component" in OFBiz 
> and utilize it as the building block for plugins
> - The plugin system supports the concepts of "Repository" and "Dependency 
> Management". If possible, the plugin system will utilize these concepts 
> directly from Gradle instead of writing them from scratch.
> The initial API for the plugin system will be small and expands as needed. 
> The API should include the following gradle tasks:
> - createPlugin: creates a new plugin based on templates and place it in the 
> plugins directory
> - installPlugin: Activate a plugin and run Install. Plugin must exist in 
> /specialpurpose
> - uninstallPlugin: Deactivate a plugin and run its uninstall script
> - publishPlugin: publish a plugin to local maven repository
> - pullPlugin: download a plugin with its dependencies (plugins) from a 
> repository and install them



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (OFBIZ-7972) Create a (PoC) plugin system for OFBiz based on Gradle

2016-09-14 Thread Jacopo Cappellato (JIRA)

[ 
https://issues.apache.org/jira/browse/OFBIZ-7972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15489882#comment-15489882
 ] 

Jacopo Cappellato commented on OFBIZ-7972:
--

It looks a great start to me.

One minor question: are both entries required?
{code}
+junitReport 'org.apache.ant:ant-junit:1.9.7'
+junitReport 'org.apache.ant:ant-junit4:1.9.7'
{code}

I have voted for this ticket and I would be in favor of committing it into 
trunk, maybe mentioning (at the beginning of the README file) that is 
experimental.


> Create a (PoC) plugin system for OFBiz based on Gradle
> --
>
> Key: OFBIZ-7972
> URL: https://issues.apache.org/jira/browse/OFBIZ-7972
> Project: OFBiz
>  Issue Type: Improvement
>Affects Versions: Upcoming Branch
>Reporter: Taher Alkhateeb
>Assignee: Taher Alkhateeb
>Priority: Minor
>  Labels: plugin, proof-of-concept, system
> Attachments: OFBIZ-7972.patch, OFBIZ-7972.patch, OFBIZ-7972.patch
>
>
> This JIRA houses the attempt to create a plugin system for OFBiz based on 
> gradle. The plugin system should have the following features:
> - It is independent of the version control system, file system, operating 
> system and any other environment tools surrounding OFBiz. Instead, it should 
> be fully integrated with OFBiz.
> - It should unify the way OFBiz is extended, both for official supported 
> plugins and for third party plugins
> - The plugin system takes advantage of the concept of a "component" in OFBiz 
> and utilize it as the building block for plugins
> - The plugin system supports the concepts of "Repository" and "Dependency 
> Management". If possible, the plugin system will utilize these concepts 
> directly from Gradle instead of writing them from scratch.
> The initial API for the plugin system will be small and expands as needed. 
> The API should include the following gradle tasks:
> - createPlugin: creates a new plugin based on templates and place it in the 
> plugins directory
> - installPlugin: Activate a plugin and run Install. Plugin must exist in 
> /specialpurpose
> - uninstallPlugin: Deactivate a plugin and run its uninstall script
> - publishPlugin: publish a plugin to local maven repository
> - pullPlugin: download a plugin with its dependencies (plugins) from a 
> repository and install them



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (OFBIZ-7972) Create a (PoC) plugin system for OFBiz based on Gradle

2016-09-13 Thread Taher Alkhateeb (JIRA)

[ 
https://issues.apache.org/jira/browse/OFBIZ-7972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15489589#comment-15489589
 ] 

Taher Alkhateeb commented on OFBIZ-7972:


Hi Michael, thank you for the help, I will update the patch soon with your 
feedback as well as that of Gil's

You asked me a difficult question on versioning which I was thinking about a 
lot. In my current design I made OFBiz plugins themselves versioned using 
[Semantic Versioning 2.0.0|http://semver.org/] and you can have a very complex 
dependency tree with versions without a problem and it will all be resolved 
automatically. This is just good old maven combined with the power of Gradle 
that makes this whole system seamless.

OFBiz itself, however, is not versioned, so I do not have at the moment a 
solution to say that this plugin only works with OFBiz 16 and that plugin works 
with 15 and so on. The reasons for this problem:
- There is no file in OFBiz that tells us what is the current version of OFBiz
- Using subversion to keep track of versions in my opinion is a bad idea 
because it makes the solution brittle and dependent on tools instead of being 
part of the OFBiz solution. If we switch the version control system in the 
future then our solution breaks down.
- What about trunk? It's hard to make plugins dependent on trunk because trunk 
is this constantly changing thing.

So, I have no clear solution in my mind at the moment, but I am sharing my 
ideas to brainstorm together

> Create a (PoC) plugin system for OFBiz based on Gradle
> --
>
> Key: OFBIZ-7972
> URL: https://issues.apache.org/jira/browse/OFBIZ-7972
> Project: OFBiz
>  Issue Type: Improvement
>Affects Versions: Upcoming Branch
>Reporter: Taher Alkhateeb
>Assignee: Taher Alkhateeb
>Priority: Minor
>  Labels: plugin, proof-of-concept, system
> Attachments: OFBIZ-7972.patch
>
>
> This JIRA houses the attempt to create a plugin system for OFBiz based on 
> gradle. The plugin system should have the following features:
> - It is independent of the version control system, file system, operating 
> system and any other environment tools surrounding OFBiz. Instead, it should 
> be fully integrated with OFBiz.
> - It should unify the way OFBiz is extended, both for official supported 
> plugins and for third party plugins
> - The plugin system takes advantage of the concept of a "component" in OFBiz 
> and utilize it as the building block for plugins
> - The plugin system supports the concepts of "Repository" and "Dependency 
> Management". If possible, the plugin system will utilize these concepts 
> directly from Gradle instead of writing them from scratch.
> The initial API for the plugin system will be small and expands as needed. 
> The API should include the following gradle tasks:
> - createPlugin: creates a new plugin based on templates and place it in the 
> plugins directory
> - installPlugin: Activate a plugin and run Install. Plugin must exist in 
> /specialpurpose
> - uninstallPlugin: Deactivate a plugin and run its uninstall script
> - publishPlugin: publish a plugin to local maven repository
> - pullPlugin: download a plugin with its dependencies (plugins) from a 
> repository and install them



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (OFBIZ-7972) Create a (PoC) plugin system for OFBiz based on Gradle

2016-09-13 Thread Michael Brohl (JIRA)

[ 
https://issues.apache.org/jira/browse/OFBIZ-7972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15488572#comment-15488572
 ] 

Michael Brohl commented on OFBIZ-7972:
--

Hi Taher,

many thanks for your efforts! I have tested all described steps and everything 
worked very well.
Great documentation apart from the quirks already mentioned.

I would also be in favor of a removePlugin task that does uninstall and delete. 
I'd suggest to rename the existing removePlugin to deactivatePlugin, this would 
better describe what the task really does.

One idea comes to mind: is it planned to have some version checking mechanism? 
If I want to pull/install a remote plugin it would be nice if the installer 
would check if the plugin is compatible with the base system.

I will play with the plugin system in the next days and report any findings or 
ideas.

Thanks for your great work!

> Create a (PoC) plugin system for OFBiz based on Gradle
> --
>
> Key: OFBIZ-7972
> URL: https://issues.apache.org/jira/browse/OFBIZ-7972
> Project: OFBiz
>  Issue Type: Improvement
>Affects Versions: Upcoming Branch
>Reporter: Taher Alkhateeb
>Assignee: Taher Alkhateeb
>Priority: Minor
>  Labels: plugin, proof-of-concept, system
> Attachments: OFBIZ-7972.patch
>
>
> This JIRA houses the attempt to create a plugin system for OFBiz based on 
> gradle. The plugin system should have the following features:
> - It is independent of the version control system, file system, operating 
> system and any other environment tools surrounding OFBiz. Instead, it should 
> be fully integrated with OFBiz.
> - It should unify the way OFBiz is extended, both for official supported 
> plugins and for third party plugins
> - The plugin system takes advantage of the concept of a "component" in OFBiz 
> and utilize it as the building block for plugins
> - The plugin system supports the concepts of "Repository" and "Dependency 
> Management". If possible, the plugin system will utilize these concepts 
> directly from Gradle instead of writing them from scratch.
> The initial API for the plugin system will be small and expands as needed. 
> The API should include the following gradle tasks:
> - createPlugin: creates a new plugin based on templates and place it in the 
> plugins directory
> - installPlugin: Activate a plugin and run Install. Plugin must exist in 
> /specialpurpose
> - uninstallPlugin: Deactivate a plugin and run its uninstall script
> - publishPlugin: publish a plugin to local maven repository
> - pullPlugin: download a plugin with its dependencies (plugins) from a 
> repository and install them



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (OFBIZ-7972) Create a (PoC) plugin system for OFBiz based on Gradle

2016-09-13 Thread Gil Portenseigne (JIRA)

[ 
https://issues.apache.org/jira/browse/OFBIZ-7972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15488461#comment-15488461
 ] 

Gil Portenseigne commented on OFBIZ-7972:
-

Another thing i didn't react to when coding createComponent task was done is to 
have resourceName capitalised if not given in tasks parameters, to avoid 
myComponentScreens.xml instead of MyComponentScreens.xml...

> Create a (PoC) plugin system for OFBiz based on Gradle
> --
>
> Key: OFBIZ-7972
> URL: https://issues.apache.org/jira/browse/OFBIZ-7972
> Project: OFBiz
>  Issue Type: Improvement
>Affects Versions: Upcoming Branch
>Reporter: Taher Alkhateeb
>Assignee: Taher Alkhateeb
>Priority: Minor
>  Labels: plugin, proof-of-concept, system
> Attachments: OFBIZ-7972.patch
>
>
> This JIRA houses the attempt to create a plugin system for OFBiz based on 
> gradle. The plugin system should have the following features:
> - It is independent of the version control system, file system, operating 
> system and any other environment tools surrounding OFBiz. Instead, it should 
> be fully integrated with OFBiz.
> - It should unify the way OFBiz is extended, both for official supported 
> plugins and for third party plugins
> - The plugin system takes advantage of the concept of a "component" in OFBiz 
> and utilize it as the building block for plugins
> - The plugin system supports the concepts of "Repository" and "Dependency 
> Management". If possible, the plugin system will utilize these concepts 
> directly from Gradle instead of writing them from scratch.
> The initial API for the plugin system will be small and expands as needed. 
> The API should include the following gradle tasks:
> - createPlugin: creates a new plugin based on templates and place it in the 
> plugins directory
> - installPlugin: Activate a plugin and run Install. Plugin must exist in 
> /specialpurpose
> - uninstallPlugin: Deactivate a plugin and run its uninstall script
> - publishPlugin: publish a plugin to local maven repository
> - pullPlugin: download a plugin with its dependencies (plugins) from a 
> repository and install them



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (OFBIZ-7972) Create a (PoC) plugin system for OFBiz based on Gradle

2016-09-13 Thread Taher Alkhateeb (JIRA)

[ 
https://issues.apache.org/jira/browse/OFBIZ-7972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15488344#comment-15488344
 ] 

Taher Alkhateeb commented on OFBIZ-7972:


Hi Gil, thank you :) I hesitated in making the uninstallPlugin task delete the 
folder, and I like your idea of remove plugin being equal to uninstall+delete. 
Maybe we should call it deletePlugin because there is a function in the script 
called removePlugin that removes it from component-load.xml.

I also discovered a few more typos in README.md so I'll fix those in addition 
to the copy-paste one you caught. I'll patch again soon.

There is a lot more to discuss but I'll wait for you to explore some more. 
Thank you for all the help.

> Create a (PoC) plugin system for OFBiz based on Gradle
> --
>
> Key: OFBIZ-7972
> URL: https://issues.apache.org/jira/browse/OFBIZ-7972
> Project: OFBiz
>  Issue Type: Improvement
>Affects Versions: Upcoming Branch
>Reporter: Taher Alkhateeb
>Assignee: Taher Alkhateeb
>  Labels: plugin, proof-of-concept, system
> Attachments: OFBIZ-7972.patch
>
>
> This JIRA houses the attempt to create a plugin system for OFBiz based on 
> gradle. The plugin system should have the following features:
> - It is independent of the version control system, file system, operating 
> system and any other environment tools surrounding OFBiz. Instead, it should 
> be fully integrated with OFBiz.
> - It should unify the way OFBiz is extended, both for official supported 
> plugins and for third party plugins
> - The plugin system takes advantage of the concept of a "component" in OFBiz 
> and utilize it as the building block for plugins
> - The plugin system supports the concepts of "Repository" and "Dependency 
> Management". If possible, the plugin system will utilize these concepts 
> directly from Gradle instead of writing them from scratch.
> The initial API for the plugin system will be small and expands as needed. 
> The API should include the following gradle tasks:
> - createPlugin: creates a new plugin based on templates and place it in the 
> plugins directory
> - installPlugin: Activate a plugin and run Install. Plugin must exist in 
> /specialpurpose
> - uninstallPlugin: Deactivate a plugin and run its uninstall script
> - publishPlugin: publish a plugin to local maven repository
> - pullPlugin: download a plugin with its dependencies (plugins) from a 
> repository and install them



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (OFBIZ-7972) Create a (PoC) plugin system for OFBiz based on Gradle

2016-09-13 Thread Gil Portenseigne (JIRA)

[ 
https://issues.apache.org/jira/browse/OFBIZ-7972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15488309#comment-15488309
 ] 

Gil Portenseigne commented on OFBIZ-7972:
-

Hi Taher, great job so far, 
I did easily managed to create my own plugin, publish it to my local repos, 
uninstall it and pull it from my local repo.

The README is pretty clear (only copy/paste issue line 496).

I feel that a removePlugin that will be a shortcut to uninstallPlugin + rm -Rf 
speciapurpose/myPluginId, could be good. But while writing it, i'm not sure 
about me yet... Food for thought :)

These for basic test feedback, I continue my tests !

> Create a (PoC) plugin system for OFBiz based on Gradle
> --
>
> Key: OFBIZ-7972
> URL: https://issues.apache.org/jira/browse/OFBIZ-7972
> Project: OFBiz
>  Issue Type: Improvement
>Affects Versions: Upcoming Branch
>Reporter: Taher Alkhateeb
>Assignee: Taher Alkhateeb
>  Labels: plugin, proof-of-concept, system
> Attachments: OFBIZ-7972.patch
>
>
> This JIRA houses the attempt to create a plugin system for OFBiz based on 
> gradle. The plugin system should have the following features:
> - It is independent of the version control system, file system, operating 
> system and any other environment tools surrounding OFBiz. Instead, it should 
> be fully integrated with OFBiz.
> - It should unify the way OFBiz is extended, both for official supported 
> plugins and for third party plugins
> - The plugin system takes advantage of the concept of a "component" in OFBiz 
> and utilize it as the building block for plugins
> - The plugin system supports the concepts of "Repository" and "Dependency 
> Management". If possible, the plugin system will utilize these concepts 
> directly from Gradle instead of writing them from scratch.
> The initial API for the plugin system will be small and expands as needed. 
> The API should include the following gradle tasks:
> - createPlugin: creates a new plugin based on templates and place it in the 
> plugins directory
> - installPlugin: Activate a plugin and run Install. Plugin must exist in 
> /specialpurpose
> - uninstallPlugin: Deactivate a plugin and run its uninstall script
> - publishPlugin: publish a plugin to local maven repository
> - pullPlugin: download a plugin with its dependencies (plugins) from a 
> repository and install them



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (OFBIZ-7972) Create a (PoC) plugin system for OFBiz based on Gradle

2016-08-29 Thread Taher Alkhateeb (JIRA)

[ 
https://issues.apache.org/jira/browse/OFBIZ-7972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15445394#comment-15445394
 ] 

Taher Alkhateeb commented on OFBIZ-7972:


I made a comment on the ML in a new design utilizing maven in [this 
thread|http://markmail.org/message/j64vdoh2sbisuunh]

Also, [this github repo|https://github.com/bintray/bintray-examples] contains 
useful resources on publishing to bintray (jcenter)

> Create a (PoC) plugin system for OFBiz based on Gradle
> --
>
> Key: OFBIZ-7972
> URL: https://issues.apache.org/jira/browse/OFBIZ-7972
> Project: OFBiz
>  Issue Type: Improvement
>Affects Versions: Upcoming Branch
>Reporter: Taher Alkhateeb
>Assignee: Taher Alkhateeb
>  Labels: plugin, proof-of-concept, system
>
> This JIRA houses the attempt to create a plugin system for OFBiz based on 
> gradle. The plugin system should have the following features:
> - It is independent of the version control system, file system, operating 
> system and any other environment tools surrounding OFBiz. Instead, it should 
> be fully integrated with OFBiz.
> - It should unify the way OFBiz is extended, both for official supported 
> plugins and for third party plugins
> - The plugin system takes advantage of the concept of a "component" in OFBiz 
> and utilize it as the building block for plugins
> - The plugin system supports the concepts of "Repository" and "Dependency 
> Management". If possible, the plugin system will utilize these concepts 
> directly from Gradle instead of writing them from scratch.
> The initial API for the plugin system will be small and expands as needed. 
> The API should include the following gradle tasks:
> - createPlugin: creates a new plugin based on templates and place it in the 
> plugins directory
> - activatePlugin: Make an inactive plugin active (compile and start with the 
> system).
> - deactivatePlugin: Make an active plugin inactive (does not compile nor 
> start with the system)
> - installPlugin: either install an existing plugin in the filesystem, or 
> download and install the plugin from a remote repository. Installation 
> happens by running the install script which is designed by the plugin author. 
> By default installPlugin also activates the plugin.
> - uninstallPlugin: Uninstall an already installed plugin by running its 
> uninstall script. By default uninstallPlugin also deactivates the plugin, but 
> does not delete it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)