[
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.