[ 
https://issues.apache.org/jira/browse/JDO-591?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12650018#action_12650018
 ] 

Andy Jefferson commented on JDO-591:
------------------------------------

The only problem with Ilan's chaining of class addition is that the requirement 
to enhance a class in-memory (supplied via bytes) would then not have a way of 
returning the updated bytes. So what we could do is have
addPersistenceUnit(...);
addClasses(...);
addFiles(...);
enhance();

and
byte[] enhanceClass(String className, byte[] bytes);

as distinct operations.

Also propose a way of validating the enhancement state of classes, to work off 
the classes defined by the same add chaining mechanism above, then :-
validate();

Validation errors should be thrown as a nested set of JDOEnhanceException, one 
per class with errors.

The enhanceXXX()/validate() method(s) don't currently return any feedback on 
the number of classes enhanced. Change the return type to int to be the number 
of classes enhanced ?

> Enhancer Invocation API
> -----------------------
>
>                 Key: JDO-591
>                 URL: https://issues.apache.org/jira/browse/JDO-591
>             Project: JDO
>          Issue Type: New Feature
>          Components: api2
>            Reporter: Andy Jefferson
>            Assignee: Andy Jefferson
>             Fix For: JDO 2 maintenance release 3
>
>         Attachments: jdoenhancer-2.patch
>
>
> Having a standard interface to invoke the enhancer makes a lot of sense so we 
> can have interchangeability of enhancers (for implementations that support 
> BinaryCompatibility). 
> A start point (for discussions) could be
> java -cp classpath  {enhancer-class} [options] [jdo-files] [class-files]
>     where options can be
>         -persistenceUnit persistence-unit-name : Name of a "persistence-unit" 
> to enhance the classes for
>         -d target-dir-name : Write the enhanced classes to the specified 
> directory
>         -checkonly : Just check the classes for enhancement status
>         -v : verbose output
> This then allows enhancement of the specified classes, or the classes defined 
> by the specified JDO files, or the classes defined by the specified 
> persistence-unit.
> What other control would people like to see ? 

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

Reply via email to