You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pp...@apache.org on 2006/08/24 01:45:44 UTC
svn commit: r434251 - in /incubator/openjpa/trunk/openjpa-jdbc/src/main:
java/org/apache/openjpa/jdbc/meta/MappingTool.java
resources/org/apache/openjpa/jdbc/meta/localizer.properties
Author: ppoddar
Date: Wed Aug 23 16:45:42 2006
New Revision: 434251
URL: http://svn.apache.org/viewvc?rev=434251&view=rev
Log:
MappingTool modified to ignore persistence-aware classes
Modified:
incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java
incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/localizer.properties
Modified: incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java?rev=434251&r1=434250&r2=434251&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java (original)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingTool.java Wed Aug 23 16:45:42 2006
@@ -51,14 +51,7 @@
import org.apache.openjpa.lib.util.Localizer;
import org.apache.openjpa.lib.util.Options;
import org.apache.openjpa.lib.util.Services;
-import org.apache.openjpa.meta.ClassMetaData;
-import org.apache.openjpa.meta.FieldMetaData;
-import org.apache.openjpa.meta.JavaTypes;
-import org.apache.openjpa.meta.MetaDataFactory;
-import org.apache.openjpa.meta.MetaDataModes;
-import org.apache.openjpa.meta.QueryMetaData;
-import org.apache.openjpa.meta.SequenceMetaData;
-import org.apache.openjpa.meta.ValueStrategies;
+import org.apache.openjpa.meta.*;
import org.apache.openjpa.util.GeneralException;
import org.apache.openjpa.util.InternalException;
import org.apache.openjpa.util.MetaDataException;
@@ -643,9 +636,7 @@
_flush = true;
_flushSchema = true;
- MappingRepository repos = getRepository();
- repos.setStrategyInstaller(new MappingStrategyInstaller(repos));
- repos.getMapping(cls, null, true);
+ getMapping(cls);
}
/**
@@ -682,9 +673,7 @@
_flush = true;
_flushSchema = true;
- MappingRepository repos = getRepository();
- repos.setStrategyInstaller(new RefreshStrategyInstaller(repos));
- repos.getMapping(cls, null, true);
+ getMapping(cls);
}
/**
@@ -696,9 +685,7 @@
_flushSchema = !SCHEMA_ACTION_NONE.equals(_schemaAction)
&& !SchemaTool.ACTION_ADD.equals(_schemaAction);
- MappingRepository repos = getRepository();
- repos.setStrategyInstaller(new RuntimeStrategyInstaller(repos));
- repos.getMapping(cls, null, true);
+ getMapping(cls);
}
/**
@@ -709,9 +696,8 @@
return;
_flushSchema = true;
- MappingRepository repos = getRepository();
- repos.setStrategyInstaller(new RuntimeStrategyInstaller(repos));
- repos.getMapping(cls, null, true);
+ if (!getMapping(cls))
+ return;
// set any logical pks to non-logical so they get flushed
Schema[] schemas = _schema.getSchemas();
@@ -732,6 +718,33 @@
}
/**
+ * Gets mapping for the given class.
+ * If the repository does not contain metadata for the class and raises
+ * a non-fatal exception on lookup, the exception is swallowed with a
+ * warning message, as the class is likely to be a persistence-aware class.
+ *
+ * @param cls a class to be mapped
+ *
+ * @return true if the mapping of the class is found, false otherwise.
+ */
+ boolean getMapping(Class cls) {
+ MappingRepository repos = getRepository();
+ repos.setStrategyInstaller(new RuntimeStrategyInstaller(repos));
+ try {
+ repos.getMapping(cls, null, true);
+ } catch (MetaDataException mex) {
+ if (!mex.isFatal()) {
+ if (_log != null && _log.isWarnEnabled()) {
+ _log.warn(_loc.get("no-mapping-aware",cls));
+ }
+ return false;
+ } else {
+ throw mex;
+ }
+ }
+ return true;
+ }
+ /**
* Drop mapping for given class.
*/
private void drop(Class cls) {
@@ -980,6 +993,9 @@
parsed = classParser.parseTypes(args[i]);
classes.addAll(Arrays.asList(parsed));
}
+ PersistenceAwareClass[] pawares = conf.getMappingRepositoryInstance().getPersistenceAwareClasses();
+ for (int i=0; i<pawares.length; i++)
+ classes.remove(pawares[i].getDescribedType());
}
Class[] act = (Class[]) classes.toArray(new Class[classes.size()]);
Modified: incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/localizer.properties
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/localizer.properties?rev=434251&r1=434250&r2=434251&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/localizer.properties (original)
+++ incubator/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/meta/localizer.properties Wed Aug 23 16:45:42 2006
@@ -9,6 +9,8 @@
bad-equiv-field: Cannot use "{0}" as the mapped-by value for a field in "{1}". \
The target-field "{2}" for column "{3}" is mapped to multiple columns.
no-mapping: No mapping information found for type "{0}".
+no-mapping-aware: No mapping information found for type "{0}". Assuming to be \
+ persistence-aware.
bad-mapped-by: Collection field "{0}" declares that it is mapped by "{1}", but \
this is not a valid inverse relation.
no-targetfield: Some of the columns on "{0}" are missing target field \