openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Henry Lai (JIRA)" <j...@apache.org>
Subject [jira] Commented: (OPENJPA-328) PCEnhancer does not enhance classes specified in the mapping files declared in the persistence xml
Date Thu, 23 Aug 2007 02:54:30 GMT

    [ https://issues.apache.org/jira/browse/OPENJPA-328?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12522000
] 

Henry Lai commented on OPENJPA-328:
-----------------------------------

changed the persistent.xml to specify <mapping-file>orm.xml</mapping-file> instead
of <mapping-file>ptp/test/issue5/orm.xml</mapping-file>.

received the following:


0  TRACE  [main] openjpa.Runtime - Default configuration information couldn't be loaded from
any configuration provider.
15  test  TRACE  [main] openjpa.Runtime - Setting the following properties from "file:/C:/workspace/jpatest/TestOpenJPA/bin/ptp/test/issue5/persistence.xml"
into configuration: {openjpa.jdbc.SchemaFactory=native(ForeignKeys=true), openjpa.jdbc.SynchronizeMappings=buildSchema(ForeignKeys=true),
openjpa.ConnectionUserName=petclinic, openjpa.ConnectionPassword=petclinic, openjpa.Log=DefaultLevel=TRACE,
openjpa.MetaDataFactory=jpa(Resources=orm.xml), javax.persistence.provider=org.apache.openjpa.persistence.PersistenceProviderImpl,
openjpa.ConnectionURL=jdbc:oracle:thin:@localhost:1521:xe, openjpa.ConnectionDriverName=oracle.jdbc.driver.OracleDriver,
openjpa.Id=test}
62  test  INFO   [main] openjpa.Tool - No targets were given.  Running on all classes in your
persistent classes list, or all metadata files in classpath directories if you have not listed
your persistent classes.  Use -help to display tool usage information.
62  test  TRACE  [main] openjpa.MetaData - Scanning resource "orm.xml" for persistent types.
62  test  TRACE  [main] openjpa.MetaData - Scanning resource "META-INF/orm.xml" for persistent
types.
62  test  TRACE  [main] openjpa.MetaData - parsePersistentTypeNames() found [].
531  test  TRACE  [main] openjpa.MetaData - Found 0 classes with metadata in 469 milliseconds.
531  test  WARN   [main] openjpa.Tool - Found no class to enhance.
Usage: java org.apache.openjpa.enhance.PCEnhancer
	[-properties/-p <properties file or resource>]
	[-<property name> <property value>]*
	[-directory/-d <output directory>]
	[-addDefaultConstructor/-adc <true/t | false/f>]
	[-jdoEnhance/-jdo <true/t | false/f>]
	[-enforcePropertyRestrictions/-epr <true/t | false/f>]
	[-tmpClassLoader/-tcl <true/t | false/f>]
	<class name | .java file | .class file | .jdo file>+ 



Also the [previous attached file of PCEnhancer with the modified run method solved the problem
 with the mapping of mapping-file>ptp/test/issue5/orm.xml</mapping-file>

were you able to reproduce the same result?

> PCEnhancer does not enhance classes specified in the mapping files declared in the persistence
xml
> --------------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-328
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-328
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: build / infrastructure
>    Affects Versions: 1.0.0
>            Reporter: Henry Lai
>         Attachments: ptpissue5.zip
>
>
> running 
> org.apache.openjpa.enhance.PCEnhancer -p ptp/test/issue5/persistence.xml
> did not do the class file enhancement, result in The class does not have metadata - enhanced
as persistence-aware.
> The message are
> 250  test  TRACE  [main] openjpa.MetaData - Finished parsing metadata resource "file:/C:/workspace/jpatest/TestOpenJPA/bin/ptp/test/issue5/orm.xml".
> 250  test  TRACE  [main] openjpa.MetaData - Parsing class "ptp.test.issue5.T5Entity".
> 250  test  TRACE  [main] openjpa.Enhance - Enhancing type "class ptp.test.issue5.T5Entity".
> 250  test  WARN   [main] openjpa.Enhance - Type "class ptp.test.issue5.T5Entity" has
no metadata; enhancing as persistence aware. If you intended for "class ptp.test.issue5.T5Entity"
to be persistence-capable, then this means that OpenJPA could not find any metadata for "class
ptp.test.issue5.T5Entity". This can happen if the directory containing your metadata is not
in your CLASSPATH, or if your metadata files are not named properly. See the documentation
on metadata placement for more information.
> 250  test  TRACE  [main] openjpa.Tool - The class does not have metadata - enhanced as
persistence-aware.
> modify the following method of the PCEnhancer to get it to work
>     /**
>      * Enhance the given classes.
>      */
>     public static boolean run(OpenJPAConfiguration conf, String[] args,
>         Flags flags, MetaDataRepository repos, BytecodeWriter writer,
>         ClassLoader loader)
>         throws IOException {
>         if (loader == null)
>             loader = conf.getClassResolverInstance().
>                 getClassLoader(PCEnhancer.class, null);
>         if (flags.tmpClassLoader)
>             loader = new TemporaryClassLoader(loader);
>         if (repos == null) {
>             repos = conf.newMetaDataRepositoryInstance();
>             repos.setSourceMode(MetaDataRepository.MODE_META);
>         }
>         Log log = conf.getLog(OpenJPAConfiguration.LOG_TOOL);
>         Collection classes;
>         String [] persistentTypeNames = args;
>         if (args.length == 0) {
>             log.info(_loc.get("running-all-classes"));
>             classes = repos.getPersistentTypeNames(true, loader);
>             if (classes == null) {
>             	log.warn(_loc.get("no-class-to-enhance"));
>             	return false;
>             }
>             persistentTypeNames = new String [ classes.size() ];
>             classes.toArray( persistentTypeNames );
>         }
>         ClassArgParser cap = conf.getMetaDataRepositoryInstance().
>             getMetaDataFactory().newClassArgParser();
>         cap.setClassLoader(loader);
>         classes = new HashSet();
>         for (int i = 0; i < persistentTypeNames.length; i++)
>             classes.addAll(Arrays.asList(cap.parseTypes(persistentTypeNames[i])));
>         
>         
>         Project project = new Project();
>         BCClass bc;
>         PCEnhancer enhancer;
>         int status;
>         for (Iterator itr = classes.iterator(); itr.hasNext();) {
>             Object o = itr.next();
>             if (log.isTraceEnabled())
>                 log.trace(_loc.get("enhance-running", o));
>             if (o instanceof String)
>                 bc = project.loadClass((String) o);
>             else
>                 bc = project.loadClass((Class) o);
>             enhancer = new PCEnhancer(conf, bc, repos, loader);
>             if (writer != null)
>                 enhancer.setBytecodeWriter(writer);
>             enhancer.setDirectory(flags.directory);
>             enhancer.setAddDefaultConstructor(flags.addDefaultConstructor);
>             status = enhancer.run();
>             if (status == ENHANCE_NONE) {
>                 if (log.isTraceEnabled())
>                     log.trace(_loc.get("enhance-norun"));
>             } else if (status == ENHANCE_INTERFACE) {
>                 if (log.isTraceEnabled())
>                     log.trace(_loc.get("enhance-interface"));
>             } else if (status == ENHANCE_AWARE) {
>                 if (log.isTraceEnabled())
>                     log.trace(_loc.get("enhance-aware"));
>                 enhancer.record();
>             } else
>                 enhancer.record();
>             project.clear();
>         }
>         return true;
>     }

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


Mime
View raw message