[jira] Commented: (MSANDBOX-51) Rewrite Plexus Utils classes at the ASF from scratch

2011-11-01 Thread Mark Struberg (JIRA)

[ 
https://jira.codehaus.org/browse/MSANDBOX-51?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=282507#comment-282507
 ] 

Mark Struberg commented on MSANDBOX-51:
---

patch applied, thanks James and Michael!

> Rewrite Plexus Utils classes at the ASF from scratch
> 
>
> Key: MSANDBOX-51
> URL: https://jira.codehaus.org/browse/MSANDBOX-51
> Project: Maven 2.x Sandbox
>  Issue Type: New Feature
>Reporter: Mark Struberg
> Attachments: diff.txt, plexus-utils-tck.patch, plexus-utils-tck.patch
>
>
> plexus-utils are 85% written by ASF committers, but we still don't have a IP 
> cleared history.
> For cleaning this up we aim to rewrite those classes from scratch in ASF 
> maven sandbox.
> The strategy is the following:
> 1. create unit tests for the existing plexus classes
> 2. create a new implementation from scratch
> 3. the new implementation must be a binary API compatible drop-in replacement

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (MSANDBOX-51) Rewrite Plexus Utils classes at the ASF from scratch

2011-10-08 Thread James Mark Saunders (JIRA)

[ 
https://jira.codehaus.org/browse/MSANDBOX-51?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=280889#comment-280889
 ] 

James Mark Saunders commented on MSANDBOX-51:
-

Hi Mark,

I have created a test for the SelectorUtils class.
I enclose the svn diff as requested.

> Rewrite Plexus Utils classes at the ASF from scratch
> 
>
> Key: MSANDBOX-51
> URL: https://jira.codehaus.org/browse/MSANDBOX-51
> Project: Maven 2.x Sandbox
>  Issue Type: New Feature
>Reporter: Mark Struberg
>
> plexus-utils are 85% written by ASF committers, but we still don't have a IP 
> cleared history.
> For cleaning this up we aim to rewrite those classes from scratch in ASF 
> maven sandbox.
> The strategy is the following:
> 1. create unit tests for the existing plexus classes
> 2. create a new implementation from scratch
> 3. the new implementation must be a binary API compatible drop-in replacement

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (MSANDBOX-51) Rewrite Plexus Utils classes at the ASF from scratch

2011-08-15 Thread Mark Struberg (JIRA)

[ 
https://jira.codehaus.org/browse/MSANDBOX-51?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=275846#comment-275846
 ] 

Mark Struberg commented on MSANDBOX-51:
---

I think I've touched 5 classes yet and 4 of them are clearly forked from ASF 
projects and still 90% of that code remaining.

Check this locations for obvious hits:
* http://maven.apache.org/maven-1.x/xref/org/apache/maven/util/
* 
http://svn.apache.org/repos/asf/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/
* 
http://svn.apache.org/repos/asf/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/condition/
* 
http://svn.apache.org/repos/asf/commons/proper/exec/trunk/src/main/java/org/apache/commons/exec/

Of coure, sometimes you also have to grab back into the CVS archive. A good 
indicator is the @author tag. Commons dropped that around 2004, but 
plexus-utils most times still have them. An example: All classes with @author 
Stefan Bodewig are most certainly 1:1 forks from Ant.


> Rewrite Plexus Utils classes at the ASF from scratch
> 
>
> Key: MSANDBOX-51
> URL: https://jira.codehaus.org/browse/MSANDBOX-51
> Project: Maven 2.x Sandbox
>  Issue Type: New Feature
>Reporter: Mark Struberg
>
> plexus-utils are 85% written by ASF committers, but we still don't have a IP 
> cleared history.
> For cleaning this up we aim to rewrite those classes from scratch in ASF 
> maven sandbox.
> The strategy is the following:
> 1. create unit tests for the existing plexus classes
> 2. create a new implementation from scratch
> 3. the new implementation must be a binary API compatible drop-in replacement

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (MSANDBOX-51) Rewrite Plexus Utils classes at the ASF from scratch

2011-08-15 Thread Brett Porter (JIRA)

[ 
https://jira.codehaus.org/browse/MSANDBOX-51?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=275845#comment-275845
 ] 

Brett Porter commented on MSANDBOX-51:
--

right, if there are originals in the ASF SVN we can certainly copy that across 
(probably with history) - but I'm suggesting it should be an exceptional case. 
I don't think Maven wants to take on maintaining any of this code unless we've 
exhausted any other options.

Are there any other cases at the moment that are copied / rewritten instead of 
bridged to existing code?

> Rewrite Plexus Utils classes at the ASF from scratch
> 
>
> Key: MSANDBOX-51
> URL: https://jira.codehaus.org/browse/MSANDBOX-51
> Project: Maven 2.x Sandbox
>  Issue Type: New Feature
>Reporter: Mark Struberg
>
> plexus-utils are 85% written by ASF committers, but we still don't have a IP 
> cleared history.
> For cleaning this up we aim to rewrite those classes from scratch in ASF 
> maven sandbox.
> The strategy is the following:
> 1. create unit tests for the existing plexus classes
> 2. create a new implementation from scratch
> 3. the new implementation must be a binary API compatible drop-in replacement

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (MSANDBOX-51) Rewrite Plexus Utils classes at the ASF from scratch

2011-08-15 Thread Mark Struberg (JIRA)

[ 
https://jira.codehaus.org/browse/MSANDBOX-51?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=275842#comment-275842
 ] 

Mark Struberg commented on MSANDBOX-51:
---

The problem with Os.java is that plexus-utils got forked off a very old version 
of ant. The Ant version has much improved yet and got the fields made private, 
etc. So it's not really easy to just bridge.

If possible, then we should use commons projects and bridge over to them. I'll 
try to look at the Os.java from commons.

My main 'aha-effect' was that most of the plexus-utils classes are only wrongly 
declared (C) The Codehaus. This really got only very lately replaced the 
original '(c) Apache Software Foundation' as most classes are forks from:

 * Ant
 * commons
 * Velocity
 * Anakia
 * maven-utils-1.x

And as such it's legally and also politically no problem to just take the 
sources back to the ASF SVN and we are _not_ forced to rewrite everything from 
scratch without looking at the original sources.


> Rewrite Plexus Utils classes at the ASF from scratch
> 
>
> Key: MSANDBOX-51
> URL: https://jira.codehaus.org/browse/MSANDBOX-51
> Project: Maven 2.x Sandbox
>  Issue Type: New Feature
>Reporter: Mark Struberg
>
> plexus-utils are 85% written by ASF committers, but we still don't have a IP 
> cleared history.
> For cleaning this up we aim to rewrite those classes from scratch in ASF 
> maven sandbox.
> The strategy is the following:
> 1. create unit tests for the existing plexus classes
> 2. create a new implementation from scratch
> 3. the new implementation must be a binary API compatible drop-in replacement

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (MSANDBOX-51) Rewrite Plexus Utils classes at the ASF from scratch

2011-08-14 Thread Brett Porter (JIRA)

[ 
https://jira.codehaus.org/browse/MSANDBOX-51?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=275837#comment-275837
 ] 

Brett Porter commented on MSANDBOX-51:
--

I think it is important to avoid forking anything, unless we expect to maintain 
it going forward. In the case of this class, it might be better to bridge to 
commons-exec: 
http://svn.apache.org/viewvc/commons/proper/exec/trunk/src/main/java/org/apache/commons/exec/OS.java?revision=672325&view=markup,
 or Ant itself (we can use shade to reduce the impact of the dependency tree).

> Rewrite Plexus Utils classes at the ASF from scratch
> 
>
> Key: MSANDBOX-51
> URL: https://jira.codehaus.org/browse/MSANDBOX-51
> Project: Maven 2.x Sandbox
>  Issue Type: New Feature
>Reporter: Mark Struberg
>
> plexus-utils are 85% written by ASF committers, but we still don't have a IP 
> cleared history.
> For cleaning this up we aim to rewrite those classes from scratch in ASF 
> maven sandbox.
> The strategy is the following:
> 1. create unit tests for the existing plexus classes
> 2. create a new implementation from scratch
> 3. the new implementation must be a binary API compatible drop-in replacement

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (MSANDBOX-51) Rewrite Plexus Utils classes at the ASF from scratch

2011-08-12 Thread Mark Struberg (JIRA)

[ 
https://jira.codehaus.org/browse/MSANDBOX-51?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=275655#comment-275655
 ] 

Mark Struberg commented on MSANDBOX-51:
---

Yes, there are classes which are currently in Ant and in commons and mostly 
maintained by the same committers.

What I wanted to make clear is that quite a lot of the plexus-utils project is 
just a copy (+singular modifications) of ASF internal projects. So there is not 
much IP issue with those classes.

> Rewrite Plexus Utils classes at the ASF from scratch
> 
>
> Key: MSANDBOX-51
> URL: https://jira.codehaus.org/browse/MSANDBOX-51
> Project: Maven 2.x Sandbox
>  Issue Type: New Feature
>Reporter: Mark Struberg
>
> plexus-utils are 85% written by ASF committers, but we still don't have a IP 
> cleared history.
> For cleaning this up we aim to rewrite those classes from scratch in ASF 
> maven sandbox.
> The strategy is the following:
> 1. create unit tests for the existing plexus classes
> 2. create a new implementation from scratch
> 3. the new implementation must be a binary API compatible drop-in replacement

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (MSANDBOX-51) Rewrite Plexus Utils classes at the ASF from scratch

2011-08-11 Thread Brett Porter (JIRA)

[ 
https://jira.codehaus.org/browse/MSANDBOX-51?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=275636#comment-275636
 ] 

Brett Porter commented on MSANDBOX-51:
--

I thought it was largely delegating to commons? In most cases, they also have 
the same ancestry but have been improved more significantly since.

> Rewrite Plexus Utils classes at the ASF from scratch
> 
>
> Key: MSANDBOX-51
> URL: https://jira.codehaus.org/browse/MSANDBOX-51
> Project: Maven 2.x Sandbox
>  Issue Type: New Feature
>Reporter: Mark Struberg
>
> plexus-utils are 85% written by ASF committers, but we still don't have a IP 
> cleared history.
> For cleaning this up we aim to rewrite those classes from scratch in ASF 
> maven sandbox.
> The strategy is the following:
> 1. create unit tests for the existing plexus classes
> 2. create a new implementation from scratch
> 3. the new implementation must be a binary API compatible drop-in replacement

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (MSANDBOX-51) Rewrite Plexus Utils classes at the ASF from scratch

2011-08-11 Thread Mark Struberg (JIRA)

[ 
https://jira.codehaus.org/browse/MSANDBOX-51?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=275542#comment-275542
 ] 

Mark Struberg commented on MSANDBOX-51:
---

After talking with Stefan Bodewig (which shows up as @author in lots of the 
sources) and other commons guys I found out that a good part of the 
plexus-utils sources originally did came from ant. They then got pulled over to 
Avalon and plexus took them either from there or directly from Ant.

> Rewrite Plexus Utils classes at the ASF from scratch
> 
>
> Key: MSANDBOX-51
> URL: https://jira.codehaus.org/browse/MSANDBOX-51
> Project: Maven 2.x Sandbox
>  Issue Type: New Feature
>Reporter: Mark Struberg
>
> plexus-utils are 85% written by ASF committers, but we still don't have a IP 
> cleared history.
> For cleaning this up we aim to rewrite those classes from scratch in ASF 
> maven sandbox.
> The strategy is the following:
> 1. create unit tests for the existing plexus classes
> 2. create a new implementation from scratch
> 3. the new implementation must be a binary API compatible drop-in replacement

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (MSANDBOX-51) Rewrite Plexus Utils classes at the ASF from scratch

2011-08-10 Thread Mark Struberg (JIRA)

[ 
https://jira.codehaus.org/browse/MSANDBOX-51?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=275495#comment-275495
 ] 

Mark Struberg commented on MSANDBOX-51:
---

It seems that a big part of the plexus code is actually coming from the Apache 
Avalon project and only got copied over.
Some classes, like Os.java are almost 1:1 copies of ASF originated sources!.

To reduce the amount of work, it is suggested to take the ASF original code, 
copy it over to our new sandbox project and apply the maven codestyle.

The code needs proper testing of course to ensure that there has no 
incompatibility been introduced.

> Rewrite Plexus Utils classes at the ASF from scratch
> 
>
> Key: MSANDBOX-51
> URL: https://jira.codehaus.org/browse/MSANDBOX-51
> Project: Maven 2.x Sandbox
>  Issue Type: New Feature
>Reporter: Mark Struberg
>
> plexus-utils are 85% written by ASF committers, but we still don't have a IP 
> cleared history.
> For cleaning this up we aim to rewrite those classes from scratch in ASF 
> maven sandbox.
> The strategy is the following:
> 1. create unit tests for the existing plexus classes
> 2. create a new implementation from scratch
> 3. the new implementation must be a binary API compatible drop-in replacement

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira