You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ja...@apache.org on 2010/12/06 22:07:49 UTC
svn commit: r1042792 - in /ofbiz/trunk/framework/entity: dtd/entitymodel.xsd
src/org/ofbiz/entity/jdbc/DatabaseUtil.java
src/org/ofbiz/entity/model/ModelEntity.java
src/org/ofbiz/entity/model/ModelEntityChecker.java
Author: jaz
Date: Mon Dec 6 21:07:48 2010
New Revision: 1042792
URL: http://svn.apache.org/viewvc?rev=1042792&view=rev
Log:
implemented option to specific a specific entity should NOT be checked; no columns are to be updated and ignore any warning about fields, relations, keys, etc. This is useful when an entity is defined based on a database view; the view may not (or probably will not) appear in the table meta data and any attempt to auto-create the entity will (or should) fail.
Modified:
ofbiz/trunk/framework/entity/dtd/entitymodel.xsd
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelEntity.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelEntityChecker.java
Modified: ofbiz/trunk/framework/entity/dtd/entitymodel.xsd
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/dtd/entitymodel.xsd?rev=1042792&r1=1042791&r2=1042792&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/dtd/entitymodel.xsd (original)
+++ ofbiz/trunk/framework/entity/dtd/entitymodel.xsd Mon Dec 6 21:07:48 2010
@@ -90,6 +90,7 @@ under the License.
<xs:attribute name="enable-lock" default="false" type="boolean"/>
<xs:attribute name="no-auto-stamp" default="false" type="boolean"/>
<xs:attribute name="never-cache" default="false" type="boolean"/>
+ <xs:attribute name="never-check" default="false" type="boolean"/>
<xs:attribute name="auto-clear-cache" default="true" type="boolean"/>
<xs:attribute name="title" type="xs:string"/>
<xs:attribute name="copyright" type="xs:string"/>
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java?rev=1042792&r1=1042791&r2=1042792&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java Mon Dec 6 21:07:48 2010
@@ -205,6 +205,12 @@ public class DatabaseUtil {
String entMessage = "(" + timer.timeSinceLast() + "ms) NOT Checking #" + curEnt + "/" + totalEnt + " View Entity " + entity.getEntityName();
Debug.logVerbose(entMessage, module);
if (messages != null) messages.add(entMessage);
+ continue;
+ // if never-check is set then don't check it either
+ } else if (entity.getNeverCheck()) {
+ String entMessage = "(" + timer.timeSinceLast() + "ms) NOT Checking #" + curEnt + "/" + totalEnt + " Entity " + entity.getEntityName();
+ Debug.logVerbose(entMessage, module);
+ if (messages != null) messages.add(entMessage);
continue;
}
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelEntity.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelEntity.java?rev=1042792&r1=1042791&r2=1042792&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelEntity.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelEntity.java Mon Dec 6 21:07:48 2010
@@ -123,6 +123,7 @@ public class ModelEntity extends ModelIn
* from cache on read showing a warning messages to that effect
*/
protected boolean neverCache = false;
+ protected boolean neverCheck = false;
protected boolean autoClearCache = true;
@@ -257,6 +258,7 @@ public class ModelEntity extends ModelIn
this.doLock = UtilXml.checkBoolean(entityElement.getAttribute("enable-lock"), false);
this.noAutoStamp = UtilXml.checkBoolean(entityElement.getAttribute("no-auto-stamp"), false);
this.neverCache = UtilXml.checkBoolean(entityElement.getAttribute("never-cache"), false);
+ this.neverCheck = UtilXml.checkBoolean(entityElement.getAttribute("never-check"), false);
this.autoClearCache = UtilXml.checkBoolean(entityElement.getAttribute("auto-clear-cache"), true);
String sequenceBankSizeStr = UtilXml.checkEmpty(entityElement.getAttribute("sequence-bank-size"));
@@ -408,7 +410,20 @@ public class ModelEntity extends ModelIn
public void setNeverCache(boolean neverCache) {
this.neverCache = neverCache;
}
-
+
+ /**
+ * An indicator to specific if this entity should ignore automatic DB checks.
+ * This should be set when the entity is mapped to a database view to prevent
+ * warnings and attempts to modify the schema.
+ */
+ public boolean getNeverCheck() {
+ return neverCheck;
+ }
+
+ public void setNeverCheck(boolean neverCheck) {
+ this.neverCheck = neverCheck;
+ }
+
public boolean getAutoClearCache() {
return this.autoClearCache;
}
@@ -1410,6 +1425,10 @@ public class ModelEntity extends ModelIn
if (this.getNeverCache()) {
root.setAttribute("never-cache", "true");
}
+
+ if (this.getNeverCheck()) {
+ root.setAttribute("never-check", "true");
+ }
if (!this.getAutoClearCache()) {
root.setAttribute("auto-clear-cache", "false");
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelEntityChecker.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelEntityChecker.java?rev=1042792&r1=1042791&r2=1042792&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelEntityChecker.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelEntityChecker.java Mon Dec 6 21:07:48 2010
@@ -94,6 +94,12 @@ public class ModelEntityChecker {
if (entity.getPlainTableName() != null && reservedWords.contains(entity.getPlainTableName().toUpperCase())) {
warningList.add("[TableNameRW] Table name [" + entity.getPlainTableName() + "] of entity " + entity.getEntityName() + " is a reserved word.");
}
+
+ // don't check columns/relations/keys when never-check is set to "true"
+ if (entity.getNeverCheck()) {
+ continue;
+ }
+
TreeSet<String> ufields = new TreeSet<String>();
Iterator<ModelField> fieldIter = entity.getFieldsIterator();
while (fieldIter.hasNext()) {