[hibernate-commits] Hibernate SVN: r18824 - in jpamodelgen/trunk/src: main/docbook/en-US/images and 9 other directories.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Wed Feb 17 20:07:47 EST 2010
Author: hardy.ferentschik
Date: 2010-02-17 20:07:46 -0500 (Wed, 17 Feb 2010)
New Revision: 18824
Added:
jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/util/FileTimeStampChecker.java
Modified:
jpamodelgen/trunk/src/main/docbook/en-US/images/eclipse-annotation-processor-config.png
jpamodelgen/trunk/src/main/docbook/en-US/images/idea-annotation-processor-config.png
jpamodelgen/trunk/src/main/docbook/en-US/master.xml
jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/AccessTypeInformation.java
jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/Context.java
jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/JPAMetaModelEntityProcessor.java
jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/MetaModelGenerationException.java
jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/Version.java
jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/util/Constants.java
jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/util/StringUtil.java
jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/xml/XmlMetaEmbeddable.java
jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/xml/XmlMetaEntity.java
jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/xml/XmlParser.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/arraytype/TemperatureSamples.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/generics/Child.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/generics/Parent.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/Car.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/Coordinates.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/Insurance.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/Location.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/MixedConfigurationTest.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/RentalCar.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/RentalCompany.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/Truck.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/Vehicle.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/ZeroCoordinates.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/rawtypes/DeskWithRawType.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/rawtypes/EmployeeWithRawType.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/rawtypes/RawTypesTest.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/util/CompilationTest.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/xmlmapped/Boy.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/xmlmapped/FakeHero.java
jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/xmlmapped/Superhero.java
Log:
METAGEN-24 - Create a mechanism to check whether xml files have changed
Modified: jpamodelgen/trunk/src/main/docbook/en-US/images/eclipse-annotation-processor-config.png
===================================================================
(Binary files differ)
Modified: jpamodelgen/trunk/src/main/docbook/en-US/images/idea-annotation-processor-config.png
===================================================================
(Binary files differ)
Modified: jpamodelgen/trunk/src/main/docbook/en-US/master.xml
===================================================================
--- jpamodelgen/trunk/src/main/docbook/en-US/master.xml 2010-02-17 21:07:42 UTC (rev 18823)
+++ jpamodelgen/trunk/src/main/docbook/en-US/master.xml 2010-02-18 01:07:46 UTC (rev 18824)
@@ -92,7 +92,7 @@
<example id="criteria-example" label="">
<title>Example of typesafe query using the metamodel class
- <classname>Order_</classname> </title>
+ <classname>Order_</classname></title>
<programlisting>CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Order> cq = cb.createQuery(Order.class);
@@ -109,7 +109,7 @@
url="http://jcp.org/en/jsr/detail?id=317">JPA 2 specification</ulink>
and its definition is included for completeness in the following
paragraphs . Feel free to skip ahead to <xref linkend="chapter-usage" />
- if you are not interested into the gory details. </para>
+ if you are not interested into the gory details.</para>
<para>The annotation processor produces for every managed class in the
persistence unit a metamodel class based on these rules:</para>
@@ -188,8 +188,8 @@
<chapter id="chapter-usage">
<title>Usage</title>
- <para> The jar file for the annotation processor can be found in the
- <ulink url="http://repository.jboss.com/">JBoss Maven repository</ulink>
+ <para>The jar file for the annotation processor can be found in the <ulink
+ url="http://repository.jboss.com/">JBoss Maven repository</ulink>
under:</para>
<example id="maven-dependency" label="">
@@ -233,7 +233,7 @@
url="http://ant.apache.org/manual/CoreTasks/javac.html">Ant Javac
Task</ulink> can be configured to just run annotation
processing.<example id="javac-task-example">
- <title>Ant Javac Task configuration </title>
+ <title>Ant Javac Task configuration</title>
<programlisting><javac srcdir="${src.dir}"
destdir="${target.dir}"
@@ -407,7 +407,12 @@
<section>
<title>NetBeans</title>
- <para>TODO</para>
+ <para>Netbeans support for annotation processors is at the time of
+ this wrinting still in the making. Refer to NetBeans issues <ulink
+ url="http://www.netbeans.org/issues/show_bug.cgi?id=111065">111065</ulink>,
+ <ulink
+ url="http://www.netbeans.org/issues/show_bug.cgi?id=111293">111293</ulink>
+ and <ulink url="???">111294</ulink>.</para>
</section>
</section>
@@ -455,6 +460,22 @@
mapping file names. Even when this option is specified
<filename>/META-INF/orm.xml</filename> is implicit.</entry>
</row>
+
+ <row>
+ <entry>lazyXmlParsing</entry>
+
+ <entry>Possible values are <literal>true</literal> or
+ <literal>false</literal>. If set to <literal>true</literal>
+ the annotation processor tries to determine whether any of the
+ xml files has changed between invocations and if unchanged
+ skips the xml parsing. This feature is experimental and
+ contains the risk of wron results in some cases of mixed mode
+ configurations. To determine wether a file has been modified a
+ temporary file
+ <filename>Hibernate-Static-Metamodel-Generator.tmp</filename>
+ is used. This file gets created in the
+ <literal>java.io.tmpdir</literal> directory.</entry>
+ </row>
</tbody>
</tgroup>
</table></para>
Property changes on: jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/AccessTypeInformation.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/Context.java
===================================================================
--- jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/Context.java 2010-02-17 21:07:42 UTC (rev 18823)
+++ jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/Context.java 2010-02-18 01:07:46 UTC (rev 18824)
@@ -56,6 +56,7 @@
private final ProcessingEnvironment pe;
private final boolean logDebug;
+ private final boolean lazyXmlParsing;
private final String persistenceXmlLocation;
private final List<String> ormXmlFiles;
@@ -90,6 +91,7 @@
ormXmlFiles = Collections.emptyList();
}
+ lazyXmlParsing = Boolean.parseBoolean( pe.getOptions().get( JPAMetaModelEntityProcessor.LAZY_XML_PARSING ) );
logDebug = Boolean.parseBoolean( pe.getOptions().get( JPAMetaModelEntityProcessor.DEBUG_OPTION ) );
}
@@ -125,8 +127,8 @@
return metaEntities.values();
}
- public void addMetaEntity(String fcqn, MetaEntity metaEntity) {
- metaEntities.put( fcqn, metaEntity );
+ public void addMetaEntity(String fqcn, MetaEntity metaEntity) {
+ metaEntities.put( fqcn, metaEntity );
}
public boolean containsMetaEmbeddable(String fqcn) {
@@ -181,12 +183,17 @@
this.persistenceUnitDefaultAccessType = persistenceUnitDefaultAccessType;
}
+ public boolean doLazyXmlParsing() {
+ return lazyXmlParsing;
+ }
+
@Override
public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append( "Context" );
sb.append( "{accessTypeInformation=" ).append( accessTypeInformation );
sb.append( ", logDebug=" ).append( logDebug );
+ sb.append( ", lazyXmlParsing=" ).append( lazyXmlParsing );
sb.append( ", isPersistenceUnitCompletelyXmlConfigured=" ).append( isPersistenceUnitCompletelyXmlConfigured );
sb.append( ", ormXmlFiles=" ).append( ormXmlFiles );
sb.append( ", persistenceXmlLocation='" ).append( persistenceXmlLocation ).append( '\'' );
Modified: jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/JPAMetaModelEntityProcessor.java
===================================================================
--- jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/JPAMetaModelEntityProcessor.java 2010-02-17 21:07:42 UTC (rev 18823)
+++ jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/JPAMetaModelEntityProcessor.java 2010-02-18 01:07:46 UTC (rev 18824)
@@ -64,16 +64,22 @@
@SupportedOptions({
JPAMetaModelEntityProcessor.DEBUG_OPTION,
JPAMetaModelEntityProcessor.PERSISTENCE_XML_OPTION,
- JPAMetaModelEntityProcessor.ORM_XML_OPTION
+ JPAMetaModelEntityProcessor.ORM_XML_OPTION,
+ JPAMetaModelEntityProcessor.FULLY_ANNOTATION_CONFIGURED_OPTION,
+ JPAMetaModelEntityProcessor.LAZY_XML_PARSING
})
public class JPAMetaModelEntityProcessor extends AbstractProcessor {
public static final String DEBUG_OPTION = "debug";
public static final String PERSISTENCE_XML_OPTION = "persistenceXml";
public static final String ORM_XML_OPTION = "ormXmlList";
+ public static final String FULLY_ANNOTATION_CONFIGURED_OPTION = "fullyAnnotationConfigured";
+ public static final String LAZY_XML_PARSING = "lazyXmlParsing";
+
private static final Boolean ALLOW_OTHER_PROCESSORS_TO_CLAIM_ANNOTATIONS = Boolean.FALSE;
private boolean xmlProcessed = false;
private Context context;
+ private boolean fullyAnnotationConfigured = false;
public void init(ProcessingEnvironment env) {
super.init( env );
@@ -81,12 +87,13 @@
context.logMessage(
Diagnostic.Kind.NOTE, "Hibernate JPA 2 Static-Metamodel Generator " + Version.getVersionString()
);
+
+ String tmp = env.getOptions().get( JPAMetaModelEntityProcessor.FULLY_ANNOTATION_CONFIGURED_OPTION );
+ fullyAnnotationConfigured = Boolean.parseBoolean( tmp );
}
@Override
- public boolean process(final Set<? extends TypeElement> annotations,
- final RoundEnvironment roundEnvironment) {
-
+ public boolean process(final Set<? extends TypeElement> annotations, final RoundEnvironment roundEnvironment) {
if ( roundEnvironment.processingOver() ) {
context.logMessage( Diagnostic.Kind.OTHER, "Last processing round." );
createMetaModelClasses();
@@ -94,7 +101,7 @@
return ALLOW_OTHER_PROCESSORS_TO_CLAIM_ANNOTATIONS;
}
- if ( !xmlProcessed ) {
+ if ( !fullyAnnotationConfigured && !xmlProcessed ) {
XmlParser parser = new XmlParser( context );
parser.parseXml();
xmlProcessed = true;
@@ -156,7 +163,7 @@
for ( Element subElement : ElementFilter.fieldsIn( entity.getTypeElement().getEnclosedElements() ) ) {
TypeMirror mirror = subElement.asType();
if ( !TypeKind.DECLARED.equals( mirror.getKind() ) ) {
- continue;
+ continue;
}
boolean contains = mirror.accept( visitor, subElement );
if ( contains ) {
Property changes on: jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/MetaModelGenerationException.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/Version.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/util/Constants.java
___________________________________________________________________
Name: svn:keywords
+ Id
Added: jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/util/FileTimeStampChecker.java
===================================================================
--- jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/util/FileTimeStampChecker.java (rev 0)
+++ jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/util/FileTimeStampChecker.java 2010-02-18 01:07:46 UTC (rev 18824)
@@ -0,0 +1,73 @@
+// $Id:$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2009, Red Hat, Inc. and/or its affiliates, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.jpamodelgen.util;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Hardy Ferentschik
+ */
+public class FileTimeStampChecker implements Serializable {
+
+
+ Map<String, Long> lastModifiedCache;
+
+ public FileTimeStampChecker() {
+ lastModifiedCache = new HashMap<String, Long>();
+ }
+
+ public void add(String fileName, Long lastModified) {
+ lastModifiedCache.put( fileName, lastModified );
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if ( this == o ) {
+ return true;
+ }
+ if ( o == null || getClass() != o.getClass() ) {
+ return false;
+ }
+
+ FileTimeStampChecker that = ( FileTimeStampChecker ) o;
+
+ if ( !lastModifiedCache.equals( that.lastModifiedCache ) ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return lastModifiedCache.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder();
+ sb.append( "FileTimeStampChecker" );
+ sb.append( "{lastModifiedCache=" ).append( lastModifiedCache );
+ sb.append( '}' );
+ return sb.toString();
+ }
+}
+
+
Property changes on: jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/util/FileTimeStampChecker.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/util/StringUtil.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/xml/XmlMetaEmbeddable.java
===================================================================
--- jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/xml/XmlMetaEmbeddable.java 2010-02-17 21:07:42 UTC (rev 18823)
+++ jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/xml/XmlMetaEmbeddable.java 2010-02-18 01:07:46 UTC (rev 18824)
@@ -1,4 +1,4 @@
-// $Id: XmlMetaEntity.java 18753 2010-02-09 21:29:34Z hardy.ferentschik $
+// $Id$
/*
* JBoss, Home of Professional Open Source
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
Property changes on: jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/xml/XmlMetaEmbeddable.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/xml/XmlMetaEntity.java
===================================================================
--- jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/xml/XmlMetaEntity.java 2010-02-17 21:07:42 UTC (rev 18823)
+++ jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/xml/XmlMetaEntity.java 2010-02-18 01:07:46 UTC (rev 18824)
@@ -360,6 +360,9 @@
}
private void parseEmbeddableAttributes(EmbeddableAttributes attributes) {
+ if ( attributes == null ) {
+ return;
+ }
for ( Basic basic : attributes.getBasic() ) {
parseBasic( basic );
}
Modified: jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/xml/XmlParser.java
===================================================================
--- jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/xml/XmlParser.java 2010-02-17 21:07:42 UTC (rev 18823)
+++ jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/xml/XmlParser.java 2010-02-18 01:07:46 UTC (rev 18824)
@@ -17,8 +17,15 @@
*/
package org.hibernate.jpamodelgen.xml;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutput;
+import java.io.ObjectOutputStream;
+import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
@@ -40,6 +47,7 @@
import org.hibernate.jpamodelgen.AccessTypeInformation;
import org.hibernate.jpamodelgen.Context;
import org.hibernate.jpamodelgen.util.Constants;
+import org.hibernate.jpamodelgen.util.FileTimeStampChecker;
import org.hibernate.jpamodelgen.util.StringUtil;
import org.hibernate.jpamodelgen.util.TypeUtils;
import org.hibernate.jpamodelgen.xml.jaxb.Entity;
@@ -56,6 +64,7 @@
private static final String ORM_XML = "/META-INF/orm.xml";
private static final String PERSISTENCE_XML_XSD = "persistence_2_0.xsd";
private static final String ORM_XSD = "orm_2_0.xsd";
+ private static final String SERIALIZATION_FILE_NAME = "Hibernate-Static-Metamodel-Generator.tmp";
private Context context;
private List<EntityMappings> entityMappings;
@@ -66,7 +75,13 @@
}
public void parseXml() {
- collectAllEntityMappings();
+ Collection<String> mappingFileNames = determineMappingFileNames();
+
+ if ( context.doLazyXmlParsing() && mappingFilesUnchanged( mappingFileNames ) ) {
+ return;
+ }
+
+ loadEntityMappings( mappingFileNames );
determineDefaultAccessTypeAndMetaCompleteness();
determineXmlAccessTypes();
if ( !context.isPersistenceUnitCompletelyXmlConfigured() ) {
@@ -83,37 +98,109 @@
}
}
- private void collectAllEntityMappings() {
+ private Collection<String> determineMappingFileNames() {
+ Collection<String> mappingFileNames = new ArrayList<String>();
+
Persistence persistence = parseXml(
context.getPersistenceXmlLocation(), Persistence.class, PERSISTENCE_XML_XSD
);
if ( persistence != null ) {
List<Persistence.PersistenceUnit> persistenceUnits = persistence.getPersistenceUnit();
for ( Persistence.PersistenceUnit unit : persistenceUnits ) {
- List<String> mappingFiles = unit.getMappingFile();
- for ( String mappingFile : mappingFiles ) {
- loadEntityMappings( mappingFile );
- }
+ mappingFileNames.addAll( unit.getMappingFile() );
}
}
// /META-INF/orm.xml is implicit
- loadEntityMappings( ORM_XML );
+ mappingFileNames.add( ORM_XML );
// not really part of the official spec, but the processor allows to specify mapping files directly as
// command line options
- for ( String optionalOrmFiles : context.getOrmXmlFiles() ) {
- loadEntityMappings( optionalOrmFiles );
+ mappingFileNames.addAll( context.getOrmXmlFiles() );
+ return mappingFileNames;
+ }
+
+ private void loadEntityMappings(Collection<String> mappingFileNames) {
+ for ( String mappingFile : mappingFileNames ) {
+ EntityMappings mapping = parseXml( mappingFile, EntityMappings.class, ORM_XSD );
+ if ( mapping != null ) {
+ entityMappings.add( mapping );
+ }
}
}
- private void loadEntityMappings(String resource) {
- EntityMappings mapping = parseXml( resource, EntityMappings.class, ORM_XSD );
- if ( mapping != null ) {
- entityMappings.add( mapping );
+ private boolean mappingFilesUnchanged(Collection<String> mappingFileNames) {
+ boolean mappingFilesUnchanged = false;
+ FileTimeStampChecker fileStampCheck = new FileTimeStampChecker();
+ for ( String mappingFile : mappingFileNames ) {
+ try {
+ URL url = this.getClass().getResource( mappingFile );
+ if ( url == null ) {
+ continue;
+ }
+ File file = new File( url.toURI() );
+ context.logMessage( Diagnostic.Kind.OTHER, "Check file " + mappingFile );
+ if ( file.exists() ) {
+ fileStampCheck.add( mappingFile, file.lastModified() );
+ }
+ }
+ catch ( URISyntaxException e ) {
+ // in doubt return false
+ return false;
+ }
}
+
+ FileTimeStampChecker serializedTimeStampCheck = loadTimeStampCache();
+ if ( serializedTimeStampCheck.equals( fileStampCheck ) ) {
+ context.logMessage( Diagnostic.Kind.OTHER, "XML parsing will be skipped due to unchanged xml files" );
+ mappingFilesUnchanged = true;
+ }
+ else {
+ saveTimeStampCache( fileStampCheck );
+ }
+
+ return mappingFilesUnchanged;
}
+ private void saveTimeStampCache(FileTimeStampChecker fileStampCheck) {
+ try {
+ File file = getSerializationTmpFile();
+ ObjectOutput out = new ObjectOutputStream( new FileOutputStream( file ) );
+ out.writeObject( fileStampCheck );
+ out.close();
+ context.logMessage(
+ Diagnostic.Kind.OTHER, "Serialized " + fileStampCheck + " into " + file.getAbsolutePath()
+ );
+ }
+ catch ( IOException e ) {
+ // ignore - if the serialization failed we just have to keep parsing the xml
+ context.logMessage( Diagnostic.Kind.OTHER, "Error serializing " + fileStampCheck );
+ }
+ }
+
+ private File getSerializationTmpFile() {
+ File tmpDir = new File( System.getProperty( "java.io.tmpdir" ) );
+ return new File( tmpDir, SERIALIZATION_FILE_NAME );
+ }
+
+ private FileTimeStampChecker loadTimeStampCache() {
+ FileTimeStampChecker serializedTimeStampCheck = new FileTimeStampChecker();
+ File file = null;
+ try {
+ file = getSerializationTmpFile();
+ if ( file.exists() ) {
+ ObjectInputStream in = new ObjectInputStream( new FileInputStream( file ) );
+ serializedTimeStampCheck = ( FileTimeStampChecker ) in.readObject();
+ in.close();
+ }
+ }
+ catch ( Exception e ) {
+ // ignore - if the de-serialization failed we just have to keep parsing the xml
+ context.logMessage( Diagnostic.Kind.OTHER, "Error de-serializing " + file );
+ }
+ return serializedTimeStampCheck;
+ }
+
private void parseEntities(Collection<Entity> entities, String defaultPackageName) {
for ( Entity entity : entities ) {
String fqcn = StringUtil.determineFullyQualifiedClassName( defaultPackageName, entity.getClazz() );
@@ -254,7 +341,6 @@
private InputStream getInputStreamForResource(String resource) {
String pkg = getPackage( resource );
String name = getRelativeName( resource );
- context.logMessage( Diagnostic.Kind.OTHER, "Reading resource " + resource );
InputStream ormStream;
try {
FileObject fileObject = context.getProcessingEnvironment()
Property changes on: jpamodelgen/trunk/src/main/java/org/hibernate/jpamodelgen/xml/XmlParser.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/arraytype/TemperatureSamples.java
===================================================================
--- jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/arraytype/TemperatureSamples.java 2010-02-17 21:07:42 UTC (rev 18823)
+++ jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/arraytype/TemperatureSamples.java 2010-02-18 01:07:46 UTC (rev 18824)
@@ -1,4 +1,4 @@
-// $Id: Image.java 17903 2009-11-04 13:22:37Z hardy.ferentschik $
+// $Id$
/*
* JBoss, Home of Professional Open Source
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/arraytype/TemperatureSamples.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/generics/Child.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/generics/Parent.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/Car.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/Coordinates.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/Insurance.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/Location.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/MixedConfigurationTest.java
===================================================================
--- jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/MixedConfigurationTest.java 2010-02-17 21:07:42 UTC (rev 18823)
+++ jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/MixedConfigurationTest.java 2010-02-18 01:07:46 UTC (rev 18824)
@@ -1,4 +1,4 @@
-// $Id: MixedModeMappingTest.java 18683 2010-02-02 21:51:40Z hardy.ferentschik $
+// $Id$
/*
* JBoss, Home of Professional Open Source
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/MixedConfigurationTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/RentalCar.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/RentalCompany.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/Truck.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/Vehicle.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/mixedmode/ZeroCoordinates.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/rawtypes/DeskWithRawType.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/rawtypes/EmployeeWithRawType.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/rawtypes/RawTypesTest.java
===================================================================
--- jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/rawtypes/RawTypesTest.java 2010-02-17 21:07:42 UTC (rev 18823)
+++ jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/rawtypes/RawTypesTest.java 2010-02-18 01:07:46 UTC (rev 18824)
@@ -1,4 +1,4 @@
-// $Id: RawTypesTest.java 18664 2010-01-28 16:56:51Z hardy.ferentschik $
+// $Id$
/*
* JBoss, Home of Professional Open Source
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/rawtypes/RawTypesTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/util/CompilationTest.java
===================================================================
--- jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/util/CompilationTest.java 2010-02-17 21:07:42 UTC (rev 18823)
+++ jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/util/CompilationTest.java 2010-02-18 01:07:46 UTC (rev 18824)
@@ -132,7 +132,6 @@
builder.append( entry.getValue() );
options.add( builder.toString() );
}
- options.add( "-Adebug=true" );
return options;
}
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/xmlmapped/Boy.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/xmlmapped/FakeHero.java
___________________________________________________________________
Name: svn:keywords
+ Id
Property changes on: jpamodelgen/trunk/src/test/java/org/hibernate/jpamodelgen/test/xmlmapped/Superhero.java
___________________________________________________________________
Name: svn:keywords
+ Id
More information about the hibernate-commits
mailing list