[ 
https://issues.apache.org/jira/browse/UIMA-5421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marshall Schor updated UIMA-5421:
---------------------------------
    Description: 
The design for the migration tool has some defects.  The main one is it should 
migrate all versions 
# the migrate from sources vs from classes should operate differently:
## sources 
##* migrate the source, no subsequent compilation; no reassembly (in Jars or 
PEARs)
##* if in a Jar or PEAR, issue message saying Jar or PEAR will need to be 
rebuilt and advising to delete the xxx_Type.java files.
## classes
##* decompile.  Always use the original byte array for decompiling (current 
impl switches to the version from the classpath). Arrange the migrate classpath 
to put any Jar or Pear-classpath in front.
##* do a compile using above modified migrate classpath (plus the uv3 core in 
front) and reassembly step (if class was found in Jars or Pears, an no compile 
errors) by copying the original assembly and updating the class part.
# change the output naming convention to support multiple compiled migrations - 
for example, having the same class inside multiple updated Jars, with obvious 
tracking between the output pathnames and the original.
# update the version of the parser and decompiler dependencies to the current 
versions
# update the documentation.
# properly handle jars containing pears, pears containing jars.
# allow no migrate classpath when migrating from classes (useful for migrating 
Pear files)
# break the compile step for a container into multiple sets of compilation 
units, if different versions exist for the same classname (otherwise get 
compiler error - duplicate definition)
# print out all compiler errors and messages

  was:
The design for the migration tool has some defects.  The main one is it should 
migrate all versions 
# the migrate from sources vs from classes should operate differently:
## sources 
##* migrate the source, no subsequent compilation; no reassembly (in Jars or 
PEARs)
##* if in a Jar or PEAR, issue message saying Jar or PEAR will need to be 
rebuilt and advising to delete the xxx_Type.java files.
## classes
##* decompile.  Always use the original byte array for decompiling (current 
impl switches to the version from the classpath). Arrange the migrate classpath 
to put any Jar or Pear-classpath in front.
##* do a compile using above modified migrate classpath (plus uv3 in front) and 
reassembly step (if class was found in Jars or Pears, an no compile errors) by 
copying the original assembly and updating the class part, including deleting 
the xxx_Type.class files.
# drop support for Jars inside Jars; only support the nesting case of Jars 
inside Pears because more general support makes the re-assembly step overly 
complex
# change the output naming convention to support multiple compiled migrations - 
for example, having the same class inside multiple updated Jars, with obvious 
tracking between the output pathnames and the original, based on a new concept 
of root-id, an incrementing int starting with 1, and suffixed with a J or P if 
for a Jar or a PEAR.
# update the version of the parser and decompiler dependencies to the current 
versions
# update the documentation.
# switch to uniform way of internally identifying artifacts - rootId + fully 
qualified class name
# properly handle jars containing pears, pears containing jars.


> uv3 migration tool design fixes
> -------------------------------
>
>                 Key: UIMA-5421
>                 URL: https://issues.apache.org/jira/browse/UIMA-5421
>             Project: UIMA
>          Issue Type: Bug
>          Components: Core Java Framework, Tools
>    Affects Versions: 3.0.0SDK-alpha02
>            Reporter: Marshall Schor
>            Assignee: Marshall Schor
>             Fix For: 3.0.0SDK-beta
>
>
> The design for the migration tool has some defects.  The main one is it 
> should migrate all versions 
> # the migrate from sources vs from classes should operate differently:
> ## sources 
> ##* migrate the source, no subsequent compilation; no reassembly (in Jars or 
> PEARs)
> ##* if in a Jar or PEAR, issue message saying Jar or PEAR will need to be 
> rebuilt and advising to delete the xxx_Type.java files.
> ## classes
> ##* decompile.  Always use the original byte array for decompiling (current 
> impl switches to the version from the classpath). Arrange the migrate 
> classpath to put any Jar or Pear-classpath in front.
> ##* do a compile using above modified migrate classpath (plus the uv3 core in 
> front) and reassembly step (if class was found in Jars or Pears, an no 
> compile errors) by copying the original assembly and updating the class part.
> # change the output naming convention to support multiple compiled migrations 
> - for example, having the same class inside multiple updated Jars, with 
> obvious tracking between the output pathnames and the original.
> # update the version of the parser and decompiler dependencies to the current 
> versions
> # update the documentation.
> # properly handle jars containing pears, pears containing jars.
> # allow no migrate classpath when migrating from classes (useful for 
> migrating Pear files)
> # break the compile step for a container into multiple sets of compilation 
> units, if different versions exist for the same classname (otherwise get 
> compiler error - duplicate definition)
> # print out all compiler errors and messages



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to