You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Scott Carey (JIRA)" <ji...@apache.org> on 2011/01/18 21:49:43 UTC

[jira] Created: (AVRO-737) Java: Improve correlation between packages and modules

Java: Improve correlation between packages and modules
------------------------------------------------------

                 Key: AVRO-737
                 URL: https://issues.apache.org/jira/browse/AVRO-737
             Project: Avro
          Issue Type: Sub-task
          Components: java
            Reporter: Scott Carey
            Assignee: Scott Carey
             Fix For: 1.5.0


Several packages have classes from multiple modules in the new layout.

In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.

For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.

This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12986673#action_12986673 ] 

Scott Carey commented on AVRO-737:
----------------------------------

Odd.

OK, so avro/pom.xml creates its tests jar  (avro.jar, classifier: tests) with:

{code:xml}
<plugin>
        <!-- in addition to the usual jar artifact, create a -tests.jar that contains our test classes.
             this allows downstream dependencies in the build to use test utility classes. -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>test-jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
{code}

The jar builds and appears in avro/target as  avro-1.5.0-SNAPSHOT-tests.jar.

Perhaps the problem is what is noted at the bottom of this page:
http://maven.apache.org/guides/mini/guide-attached-tests.html
{quote}
Note that previous editions of this guide suggested to use <classifier>tests</classifier> instead of <type>test-jar</type>. While this currently works for some cases, it does not properly work during a reactor build of the test JAR module and any consumer if a lifecycle phase prior to install is invoked. In such a scenario, Maven will not resolve the test JAR from the output of the reactor build but from the local/remote repository. 
{quote}

Does it work if you change the ipc dependency on avro-test from <classifier>tests</classifier> to <type>test-jar<type> ?  or potentially adding that to tools?  I'll have time to experiment with that later today.





> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, migrate_avro_packages.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12987867#action_12987867 ] 

Scott Carey commented on AVRO-737:
----------------------------------

This has been committed.


> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, AVRO-737.v4.patch, AVRO-737.v5.patch, migrate_avro_packages.sh, migrate_avro_packages.v4.sh, migrate_avro_packages.v5.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Issue Comment Edited: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12986224#action_12986224 ] 

Scott Carey edited comment on AVRO-737 at 1/25/11 12:08 AM:
------------------------------------------------------------

New patch and migrate_avro_packages.sh script.

First run the script, then the (v3) patch.

      was (Author: scott_carey):
    New patch and migrate_avro_packages.sh script.

First run the script, then the patch.
  
> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, migrate_avro_packages.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12987147#action_12987147 ] 

Scott Carey commented on AVRO-737:
----------------------------------

I found the issue.  It is in the remote-resources-plugin that we inherit from Apache that automatically takes care of placing the apache license in all the jars.

I filed a bug on it:
http://jira.codehaus.org/browse/MRRESOURCES-53

There is a workaround for us I believe.   I'll submit a new patch later today.



> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, migrate_avro_packages.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Holger Hoffstätte (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12986618#action_12986618 ] 

Holger Hoffstätte commented on AVRO-737:
----------------------------------------

Scott, I use 3.0.2 and my own personal nexus instance, but that had nothing to do with the problem as everything was local. As I said, tools tries to use the avro-tests.jar but as far as I can tell this is not yet declared anywhere. I did full clean installs and always skip tests by default etc. (not a mvn newbie :)
I don't have access to the machine right now but will take another look tomorrow. If this works for everyone else just commit & I'll continue to track/report against svn trunk.


> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, migrate_avro_packages.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Holger Hoffstätte (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12986302#action_12986302 ] 

Holger Hoffstätte commented on AVRO-737:
----------------------------------------

Got v3 to run & apply on Windows; no changes necessary except for renaming the script to .bat. Regular commandline GNU patch wouldn't eat the patch file, but TortoiseSVN liked it and everything worked/built. Nice! The changes are pretty much exactly what I had in mind, thanks a lot. This will be very helpful going forwards.

One addition to the first block of instructions in the script:

svn mv lang/java/avro/src/main/java/org/apache/avro/ipc/package.html lang/java/ipc/src/main/java/org/apache/avro/ipc/

to move the lonely package.html file across projects.

I did get a build/install error with the tools project but couldn't really find what was wrong. Might try again later.



> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, migrate_avro_packages.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Doug Cutting (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12983918#action_12983918 ] 

Doug Cutting commented on AVRO-737:
-----------------------------------

There shouldn't be a problem moving tool implementations to the tools module, since the tools module depends on every other module.  There could be issues if a Tool depends on a non-public API, that that would be a bug anyway, I think.

> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12985907#action_12985907 ] 

Scott Carey commented on AVRO-737:
----------------------------------

I'm going to have to provide a shell script to run before the patch.   The last few steps rearranged packages rather than just moving files.  It will be a bash script, but a windows user should be able to convert it easily to '.cmd' since it should only have svn commands and some basic file ops.

> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Holger Hoffstätte (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12986814#action_12986814 ] 

Holger Hoffstätte commented on AVRO-737:
----------------------------------------

Scott: I thought something was wrong since I've used attached test jars in the past just fine. Just found this: http://jira.codehaus.org/browse/MJAR-138


> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, migrate_avro_packages.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Scott Carey updated AVRO-737:
-----------------------------

    Attachment: migrate_avro_packages.v4.sh
                AVRO-737.v4.patch

New script and patch that avoids using test-jar artifacts.

Other issues caused by test-jar artifacts will be addressed in AVRO-716.   

> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, AVRO-737.v4.patch, migrate_avro_packages.sh, migrate_avro_packages.v4.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Scott Carey updated AVRO-737:
-----------------------------

    Attachment: AVRO-737.v1.patch

patch that applies the 'easy' changes noted above. 

> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12983911#action_12983911 ] 

Scott Carey commented on AVRO-737:
----------------------------------

Ah, yes AvroRemoteException.   
I was afraid to move it because doing so changed the generated method signatures.  If we're already going to change that, then I'll move it to o.a.a.util or o.a.a.  If so, we should fix AVRO-732 for 1.5.0 as well.

Several classes implement Tool that are not in the Tools package.  I assume that we will have use cases in the future for Tool classes that don't reside in avro-tools.  I did not investigate whether the ones already defined in other projects can be moved easily.

> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Doug Cutting (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12987741#action_12987741 ] 

Doug Cutting commented on AVRO-737:
-----------------------------------

+1

> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, AVRO-737.v4.patch, AVRO-737.v5.patch, migrate_avro_packages.sh, migrate_avro_packages.v4.sh, migrate_avro_packages.v5.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Scott Carey updated AVRO-737:
-----------------------------

    Attachment: AVRO-737.v3.patch
                migrate_avro_packages.sh

New patch and migrate_avro_packages.sh script.

First run the script, then the patch.

> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, migrate_avro_packages.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12987188#action_12987188 ] 

Scott Carey commented on AVRO-737:
----------------------------------

Disabling the plugin is not an option, it creates DEPENDENCY, LICENCE, and NOTICE files for every jar, as required by Apache.

I'm going to back out the changes that remove the duplicated test classes for now.  After that bug is fixed, we can use test-jar artifacts.  Not ideal, but I can't find any other way and I've spent a lot of time on this.

> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, migrate_avro_packages.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12986596#action_12986596 ] 

Scott Carey commented on AVRO-737:
----------------------------------

@Holger

What maven version are you using?

Try 'mvn install -DskipTests -U'  which will force an update of your local repo and do a full build and install of libraries to your local repo. 

If you still have problems, make sure your settings.xml (local maven configuration) is not directing you to a corporate maven repository that potentially is blocking certain libraries or failing to proxy others. 

@Doug
I will commit this patch.  There may subsequently be some trivial changes to move dangling folders or package.html files.  If there are, I'll have a second patch since those changes should be trivial to review alone.


> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, migrate_avro_packages.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12986755#action_12986755 ] 

Scott Carey commented on AVRO-737:
----------------------------------

Holger,

I can reproduce your problem by deleting org/apache/avro from my local repo and doing 'clean compile'.   'clean test' or 'clean install' works.    Changing the dependency from <classifier>tests</classifier> to <type>test-jar</type> does not seem to help.

Even though the test scope dependency is not needed for 'compile' it is searching for it and fails when it is not found.

A possible solution is to re-map the test-compile portion in the avro project to occur in the compile phase.  That should attatch the test stuff to the reactor eariler.

> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, migrate_avro_packages.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12983487#action_12983487 ] 

Scott Carey commented on AVRO-737:
----------------------------------

There are a few tricky parts:


* AvroRuntimeException.
If we move this into org.apache.avro.util, it changes the signature of the network protocols.  I'm  not sure what the impact of this is, but it may not be acceptable.
The alternative is to move it from the avro project to the ipc project.  If we do that we have to change several other classes, or move them to ipc.  I'm not familiar enough with ipc to know which way is best, or if we are stuck.

* mapred.tether generated classes. 
We currently generate these in the ipc project.  Perhaps they should be generated in mapred instead.  Otherwise they would need to move to something like o.a.a.ipc.mapred.tether.

* Tool.java
org.apache.avro.tool.Tool is defined in the avro project, but only implemented in the tools project.  Perhaps we should move it to o.a.a.tool.api, or move all tools in the tools project somewhere else.  We need to keep this interface in the root project so that all tools don't have to reside in the tools project.


Easy changes, if we're OK with the package movement:
* ByteBufferInputStream and ByteBufferOutputStream moved from o.a.a.ipc to o.a.a.util
* SpecificCompiler SchemaTask and ProtocolTask moved from o.a.a.specific  to o.a.a.specific.compiler ; associated tests as well
* ReflectRequestor and ReflectResponder moved from o.a.a.reflect to o.a.a.ipc.reflect
* SpecificRequestor and SpecificResponder moved from o.a.a.specific to o.a.a.ipc.specific
* GenericRequestor and GenericResponder moved from o.a.a.generic to o.a.a.ipc.generic






> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Doug Cutting (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12986546#action_12986546 ] 

Doug Cutting commented on AVRO-737:
-----------------------------------

This patch looks good and passes test for me.  Thanks Scott!  +1

> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, migrate_avro_packages.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Doug Cutting (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12989339#comment-12989339 ] 

Doug Cutting commented on AVRO-737:
-----------------------------------

Resolved in http://svn.apache.org/viewvc?view=revision&revision=1064397

> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, AVRO-737.v4.patch, AVRO-737.v5.patch, migrate_avro_packages.sh, migrate_avro_packages.v4.sh, migrate_avro_packages.v5.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

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

        

[jira] Updated: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Scott Carey updated AVRO-737:
-----------------------------

    Resolution: Fixed
        Status: Resolved  (was: Patch Available)

> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, AVRO-737.v4.patch, AVRO-737.v5.patch, migrate_avro_packages.sh, migrate_avro_packages.v4.sh, migrate_avro_packages.v5.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Scott Carey updated AVRO-737:
-----------------------------

    Status: Patch Available  (was: Open)

AVRO-737.v2.patch

> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12986799#action_12986799 ] 

Scott Carey commented on AVRO-737:
----------------------------------

It appears that this is a bug in Maven.  The test-jar test dependency is resolved mistakenly during the compile phase rather than the test-compile phase.  It isn't possible to move the test compilation up in the lifecycle without a lot of work because the phases between compile and test-compile do things like configure the classpath and filter files.   

The workaround is to use 'test-compile' instead of 'compile' when the test artifact has not been installed to the local repo.

If there are suggestions for a better work-around I'd love to hear it.  We could go back to copying those test classes across projects but I'd rather not.  

> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, migrate_avro_packages.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12983946#action_12983946 ] 

Scott Carey commented on AVRO-737:
----------------------------------


bq. There could be issues if a Tool depends on a non-public API, that that would be a bug anyway, I think. 

Good point.  The only case this wouldn't be true would be if the tool was only for tests.  But we could make a clone Tool interface for tests if we wanted to.   

I'll move them to the tools package/module.

> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12986833#action_12986833 ] 

Scott Carey commented on AVRO-737:
----------------------------------

Big clue:

If you break the inheritance from the apache parent pom, it works.

So, one of the cascaded dependencies from that is breaking it.



> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, migrate_avro_packages.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Holger Hoffstätte (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12985736#action_12985736 ] 

Holger Hoffstätte commented on AVRO-737:
----------------------------------------

This sounds great but I haven't been able to cleanly apply the v2 patch on top of trunk, no matter how hard I tried. Suggestions?


> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Holger Hoffstätte (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12986313#action_12986313 ] 

Holger Hoffstätte commented on AVRO-737:
----------------------------------------

The remaining problem is that the avro:test-jar is not yet found for assembling tools:

[ERROR] Failed to execute goal on project avro-tools: Could not resolve dependencies for project org.apache.avro:avro-tools:jar:1.5.0-SNAPSHOT: Failure to find org.apache.avro:avro:jar:tests:1.5.0-SNAPSHOT in http://tux:8080/nexus/content/groups/public was cached in the local repository, resolution will not be reattempted until the update interval of nexus has elapsed or updates are forced -> [Help 1]

There is no avro:avro-tests.jar created yet. Doing so manually will create the jar, but it will then not be seen or installed during the install phase since it is not declared anywhere.


> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, migrate_avro_packages.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Scott Carey updated AVRO-737:
-----------------------------

    Attachment: migrate_avro_packages.v5.sh
                AVRO-737.v5.patch

I believe this is the last patch version.  I have tested it several times.

There are minor differences from the last one:

* This includes the changes to CHANGES.txt
* The ipc.mapred.tether generated classes are now in mapred.tether inside of the avro-mapred project.

I'll commit this after confirmation that this works.  The CHANGES.txt message for this change is:

{noformat}
    AVRO-716. Java: Improve correlation between packages and modules.
    Each module introduced by AVRO-647 now exclusively provides 
    different java packages.  This required moving several classes
    around into new packages and will therefore require users to
    change their package imports when upgrading to Avro 1.5.0.
    Summary of changes:
    * AvroRemoteException has moved to org.apache.avro
    * ByteBufferInputStream and ByteBufferInputStream have moved 
      to org.apache.avro.util
    * InduceSchemaTool has moved to org.apache.avro.tools
    * SpecificCompiler, SchemaTask, and ProtocolTask have moved 
      to org.apache.avro.compiler.specific
    * The Idl compiler has moved to org.apache.avro.compiler.idl
    * ReflectRequestor and ReflectResponder have moved to
      org.apache.avro.ipc.reflect
    * GenericRequestor and GenericResponder have moved to
      org.apache.avro.ipc.generic
    * SpecificRequestor and SpecificResponder have moved to
      org.apache.avro.ipc.specific
    (scottcarey)
{noformat}

> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch, AVRO-737.v3.patch, AVRO-737.v4.patch, AVRO-737.v5.patch, migrate_avro_packages.sh, migrate_avro_packages.v4.sh, migrate_avro_packages.v5.sh
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Scott Carey (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Scott Carey updated AVRO-737:
-----------------------------

    Attachment: AVRO-737.v2.patch

Updated patch includes the prior changes plus: 

* AvroRemoteException is now in o.a.a.   Generated signatures in protocols include this change.  (address AVRO-732 separately after)
* mapred.tether generated classes now in ipc.mapred.tether.
* Tool.java and all Tool classes now in tools project, in o.a.a.tool

I took the opportunity to do one more package reorg:
create o.a.a.compiler
move o.a.a.idl and o.a.a.specific.compiler inside of here.

The end result is a good one, and was easier than I thought it would be ---

* avro-ipc.jar exclusively contains o.a.a.ipc.** packages
* avro-tools.jar exclusively contains o.a.a.tool.** packages
* avro-mapred.jar exclusively contains o.a.a.mapred.** packages
* avro-maven-plugin.jar exclusively contains o.a.a.mojo.** packages
* avro-compiler.jar exclusively contains o.a.a.compiler.** packages
* avro.jar contains all the other stuff -- util, tools, o.a.a, file, generic, specific, reflect, io

There is work to do to refactor the test side of things to work similarly.  I That is going to be more difficult and require some maven pom.xml changes, but will be worthwhile.  Right now we don't unit test the compiler completely until ipc, but ipc requires the compiler to generate sources.  So if there is a bug in the compiler that makes code generation fail you can't test it!



> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch, AVRO-737.v2.patch
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AVRO-737) Java: Improve correlation between packages and modules

Posted by "Doug Cutting (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AVRO-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12983900#action_12983900 ] 

Doug Cutting commented on AVRO-737:
-----------------------------------

The patch looks fine.  +1

What's the motivation for moving AvroRuntimeException?  Did you mean AvroRemoteException?  If so, then AVRO-732 would remove that from generated method signatures.

+1 for moving the tether generated classes into the mapred module.

As for tools, why not just move the Tool interface and all implementations to the tool module?

> Java: Improve correlation between packages and modules
> ------------------------------------------------------
>
>                 Key: AVRO-737
>                 URL: https://issues.apache.org/jira/browse/AVRO-737
>             Project: Avro
>          Issue Type: Sub-task
>          Components: java
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>             Fix For: 1.5.0
>
>         Attachments: AVRO-737.v1.patch
>
>
> Several packages have classes from multiple modules in the new layout.
> In general, we should avoid this.  Ideally, o.a.a.ipc would only exist in the avro-ipc.jar for example.
> For 1.5.0, I'd like to move the easy stuff around to better correlate packages with modules.
> This will cause API changes we need to document.  Unfortunately, moving classes around is not something you can do gradually.  Ideally these are isolated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.