[cleanup] whitelist legacy feature module in wadvalidation
authorStefan Hühner <stefan.huehner@openbravo.com>
Mon, 02 May 2011 11:57:58 +0200
changeset 11820 aeb491794d7e
parent 11819 05ebdc0d568f
child 11821 dff773cd5937
[cleanup] whitelist legacy feature module in wadvalidation
- Add whitelisting feature to wad-validation (ignores all problems in a module)
- Use it for the 'legacy features' module which contains content removed from
core (unmodified) and would not pass the validation
build.xml
src-wad/src/org/openbravo/wad/validation/WADValidationResult.java
src-wad/src/org/openbravo/wad/validation/WADValidator.java
src-wad/src/org/openbravo/wad/validation/WADValidator_data.xsql
--- a/build.xml	Mon May 02 10:49:21 2011 +0200
+++ b/build.xml	Mon May 02 11:57:58 2011 +0200
@@ -648,6 +648,10 @@
     <ant dir="${base.src}" target="trl.clean" inheritAll="true" inheritRefs="true" />
   </target>
 
+  <target name="trl.remove.unused" depends="init">
+    <ant dir="${base.src}" target="trl.remove.unused" inheritAll="true" inheritRefs="true" />
+  </target>
+
   <target name="translate" depends="init">
     <ant dir="${base.src}" target="translate" inheritAll="true" inheritRefs="true" />
   </target>
--- a/src-wad/src/org/openbravo/wad/validation/WADValidationResult.java	Mon May 02 10:49:21 2011 +0200
+++ b/src-wad/src/org/openbravo/wad/validation/WADValidationResult.java	Mon May 02 11:57:58 2011 +0200
@@ -33,6 +33,12 @@
 class WADValidationResult {
   private static final Logger log = Logger.getLogger(WADValidationResult.class);
 
+  /*
+   * Whitelist of modules for which all validation problems will be ignored and not reported. So far
+   * only the special module "org.openbravo.deprecated.cleanupv3" is ignored.
+   */
+  private static final String[] moduleWhitelist = { "677192D0C60F411384832241227360E3" };
+
   /**
    * Types of possible WAD validations, they have an identifier and a description
    * 
@@ -71,8 +77,13 @@
    * @param warning
    *          warning message
    */
+  public void addWarning(String moduleId, String moduleName, WADValidationType validationType,
+      String warning) {
+    addToResult(moduleId, moduleName, warnings, validationType, warning);
+  }
+
   public void addWarning(WADValidationType validationType, String warning) {
-    addToResult(warnings, validationType, warning);
+    addWarning(null, null, validationType, warning);
   }
 
   /**
@@ -83,16 +94,27 @@
    * @param warning
    *          error message
    */
-  public void addError(WADValidationType validationType, String warning) {
-    addToResult(errors, validationType, warning);
+  public void addError(String moduleId, String moduleName, WADValidationType validationType,
+      String warning) {
+    addToResult(moduleId, moduleName, errors, validationType, warning);
   }
 
-  public void addModule(String moduleName) {
-    modules.add(moduleName);
-  }
+  private void addToResult(String moduleId, String moduleName,
+      Map<WADValidationType, List<String>> result, WADValidationType validationType, String msg) {
 
-  private void addToResult(Map<WADValidationType, List<String>> result,
-      WADValidationType validationType, String msg) {
+    // if not called for general error
+    if (moduleId != null && moduleName != null) {
+      // skip modules in whilelist completely
+      for (String s : moduleWhitelist) {
+        if (s.equals(moduleId)) {
+          return;
+        }
+      }
+
+      if (!modules.contains(moduleName)) {
+        modules.add(moduleName);
+      }
+    }
 
     List<String> msgList = result.get(validationType);
     if (msgList == null) {
--- a/src-wad/src/org/openbravo/wad/validation/WADValidator.java	Mon May 02 10:49:21 2011 +0200
+++ b/src-wad/src/org/openbravo/wad/validation/WADValidator.java	Mon May 02 11:57:58 2011 +0200
@@ -73,9 +73,8 @@
     try {
       WADValidatorData data[] = WADValidatorData.checkIdentifier(conn, modules, checkAll);
       for (WADValidatorData issue : data) {
-        result.addError(WADValidationType.MISSING_IDENTIFIER, "Table " + issue.objectname
-            + " has not identifier.");
-        result.addModule(issue.modulename);
+        result.addError(issue.moduleid, issue.modulename, WADValidationType.MISSING_IDENTIFIER,
+            "Table " + issue.objectname + " has not identifier.");
       }
     } catch (Exception e) {
       result.addWarning(WADValidationType.SQL,
@@ -91,16 +90,14 @@
       // Check tables without key
       WADValidatorData data[] = WADValidatorData.checkKey(conn, modules, checkAll);
       for (WADValidatorData issue : data) {
-        result.addError(WADValidationType.MISSING_KEY, "Table " + issue.objectname
-            + " has not primary key.");
-        result.addModule(issue.modulename);
+        result.addError(issue.moduleid, issue.modulename, WADValidationType.MISSING_KEY, "Table "
+            + issue.objectname + " has not primary key.");
       }
 
       data = WADValidatorData.checkMultipleKey(conn, modules, checkAll);
       for (WADValidatorData issue : data) {
-        result.addError(WADValidationType.MULTIPLE_KEYS, "Table " + issue.objectname
-            + " has more than one key column.");
-        result.addModule(issue.modulename);
+        result.addError(issue.moduleid, issue.modulename, WADValidationType.MULTIPLE_KEYS, "Table "
+            + issue.objectname + " has more than one key column.");
       }
     } catch (Exception e) {
       result.addWarning(WADValidationType.SQL,
@@ -115,14 +112,13 @@
     try {
       WADValidatorData data[] = WADValidatorData.checkModelObject(conn, modules, checkAll);
       for (WADValidatorData issue : data) {
-        result.addError(WADValidationType.MODEL_OBJECT, issue.objecttype + " " + issue.objectname
-            + " has classname: " + issue.currentvalue + ". But it should be in "
-            + issue.expectedvalue + " package.");
-        result.addModule(issue.modulename);
+        result.addError(issue.moduleid, issue.modulename, WADValidationType.MODEL_OBJECT,
+            issue.objecttype + " " + issue.objectname + " has classname: " + issue.currentvalue
+                + ". But it should be in " + issue.expectedvalue + " package.");
       }
     } catch (Exception e) {
       result.addWarning(WADValidationType.SQL,
-          "Error when executing query for validating moel object: " + e.getMessage());
+          "Error when executing query for validating model object: " + e.getMessage());
     }
   }
 
@@ -133,14 +129,13 @@
     try {
       WADValidatorData data[] = WADValidatorData.checkModelObjectMapping(conn, modules, checkAll);
       for (WADValidatorData issue : data) {
-        result.addError(WADValidationType.MODEL_OBJECT_MAPPING, issue.objecttype + " "
-            + issue.objectname + " has mapping: " + issue.currentvalue
-            + ". But it should start with /" + issue.expectedvalue + ".");
-        result.addModule(issue.modulename);
+        result.addError(issue.moduleid, issue.modulename, WADValidationType.MODEL_OBJECT_MAPPING,
+            issue.objecttype + " " + issue.objectname + " has mapping: " + issue.currentvalue
+                + ". But it should start with /" + issue.expectedvalue + ".");
       }
     } catch (Exception e) {
       result.addWarning(WADValidationType.SQL,
-          "Error when executing query for validating moel object: " + e.getMessage());
+          "Error when executing query for validating model object: " + e.getMessage());
     }
   }
 
@@ -151,14 +146,13 @@
     try {
       WADValidatorData data[] = WADValidatorData.checkColumnName(conn, modules, checkAll);
       for (WADValidatorData issue : data) {
-        result.addError(WADValidationType.COLUMN_NAME, issue.objecttype + " " + issue.objectname
-            + " has value: " + issue.currentvalue + ". But it should start with EM_"
-            + issue.expectedvalue);
-        result.addModule(issue.modulename);
+        result.addError(issue.moduleid, issue.modulename, WADValidationType.COLUMN_NAME,
+            issue.objecttype + " " + issue.objectname + " has value: " + issue.currentvalue
+                + ". But it should start with EM_" + issue.expectedvalue);
       }
     } catch (Exception e) {
       result.addWarning(WADValidationType.SQL,
-          "Error when executing query for validating moel object: " + e.getMessage());
+          "Error when executing query for validating model object: " + e.getMessage());
     }
   }
 
@@ -169,8 +163,8 @@
     try {
       WADValidatorData data[] = WADValidatorData.checkAuxiliarInput(conn, modules, checkAll);
       for (WADValidatorData issue : data) {
-        result.addError(WADValidationType.AUXILIARINPUT, issue.objectname
-            + " does not start by its module's DBPrefix: " + issue.expectedvalue);
+        result.addError(issue.moduleid, issue.modulename, WADValidationType.AUXILIARINPUT,
+            issue.objectname + " does not start by its module's DBPrefix: " + issue.expectedvalue);
       }
     } catch (Exception e) {
       result.addWarning(WADValidationType.SQL,
@@ -186,10 +180,10 @@
       WADValidatorData data[] = WADValidatorData.checkBaseReferenceWithParent(conn, modules,
           checkAll);
       for (WADValidatorData issue : data) {
-        result.addError(WADValidationType.BASEREFERENCE_WITH_PARENT, issue.objectname
-            + " base reference has parent reference " + issue.currentvalue
-            + ". Base references should not have parent reference.");
-        result.addModule(issue.modulename);
+        result.addError(issue.moduleid, issue.modulename,
+            WADValidationType.BASEREFERENCE_WITH_PARENT, issue.objectname
+                + " base reference has parent reference " + issue.currentvalue
+                + ". Base references should not have parent reference.");
       }
     } catch (Exception e) {
       result.addWarning(WADValidationType.SQL,
--- a/src-wad/src/org/openbravo/wad/validation/WADValidator_data.xsql	Mon May 02 10:49:21 2011 +0200
+++ b/src-wad/src/org/openbravo/wad/validation/WADValidator_data.xsql	Mon May 02 11:57:58 2011 +0200
@@ -22,7 +22,7 @@
   <SqlMethod name="checkIdentifier" type="preparedStatement" return="multiple">
     <Sql>
       <![CDATA[
-          select t.tablename as objectName, m.name as moduleName
+          select t.tablename as objectName, m.name as moduleName, m.ad_module_id as moduleId
           from ad_table t, ad_module m, ad_package p
          where not exists (select 1
                              from ad_column c
@@ -43,7 +43,7 @@
   <SqlMethod name="checkKey" type="preparedStatement" return="multiple">
     <Sql>
       <![CDATA[
-        select t.tablename as objectName, m.name as moduleName
+        select t.tablename as objectName, m.name as moduleName, m.ad_module_id as moduleId
           from ad_table t, ad_module m, ad_package p
          where not exists (select 1
                              from ad_column c
@@ -62,7 +62,7 @@
   <SqlMethod name="checkMultipleKey" type="preparedStatement" return="multiple">
     <Sql>
       <![CDATA[
-        select t.tablename as objectName, m.name as moduleName
+        select t.tablename as objectName, m.name as moduleName, m.ad_module_id as moduleId
           from ad_table t, ad_module m, ad_package p
          where exists (select 1
                          from ad_column c
@@ -83,35 +83,35 @@
   <SqlMethod name="checkModelObject" type="preparedStatement" return="multiple">
     <Sql>
       <![CDATA[
-        select to_char(p.name) as objectname, 'Process' as objectType, o.classname as currentvalue, m.javapackage as expectedvalue, m.name as moduleName
+        select to_char(p.name) as objectname, 'Process' as objectType, o.classname as currentvalue, m.javapackage as expectedvalue, m.name as moduleName, m.ad_module_id as moduleId
           from ad_model_object o, ad_process p, ad_module m
          where o.ad_process_id = p.ad_process_id
            and p.ad_module_id = m.ad_module_id
            and o.classname not like m.javapackage||'.%'
            and (1=1 and m.javapackage in ('1') or to_char('Y')=to_char(?))
          union
-        select to_char(f.name), 'Form' as objectType, o.classname as currentvalue, m.javapackage as expectedvalue , m.name as moduleName
+        select to_char(f.name), 'Form' as objectType, o.classname as currentvalue, m.javapackage as expectedvalue , m.name as moduleName, m.ad_module_id as moduleId
           from ad_model_object o, ad_form f, ad_module m
          where o.ad_form_id = f.ad_form_id
            and f.ad_module_id = m.ad_module_id
            and o.classname not like m.javapackage||'.%'
            and (2=2 and m.javapackage in ('2') or to_char('Y')=to_char(?))
          union
-        select to_char(c.name), 'Callout' as objectType, o.classname as currentvalue, m.javapackage as expectedvalue , m.name as moduleName
+        select to_char(c.name), 'Callout' as objectType, o.classname as currentvalue, m.javapackage as expectedvalue , m.name as moduleName, m.ad_module_id as moduleId
           from ad_model_object o, ad_callout c, ad_module m
          where o.ad_callout_id = c.ad_callout_id
            and c.ad_module_id = m.ad_module_id
            and o.classname not like m.javapackage||'.%'
            and (3=3 and m.javapackage in ('3') or to_char('Y')=to_char(?))
          union
-        select to_char(r.name), 'Reference' as objectType, o.classname as currentvalue, m.javapackage as expectedvalue , m.name as moduleName
+        select to_char(r.name), 'Reference' as objectType, o.classname as currentvalue, m.javapackage as expectedvalue , m.name as moduleName, m.ad_module_id as moduleId
           from ad_model_object o, ad_reference r, ad_module m
          where o.ad_reference_id = r.ad_reference_id
            and r.ad_module_id = m.ad_module_id
            and o.classname not like m.javapackage||'.%'
            and (4=4 and m.javapackage in ('4') or to_char('Y')=to_char(?))
          union
-        select  to_char(w.name||' >> '||t.name), 'Tab' as objectType, o.classname as currentvalue, (case when m2.ad_module_id='0' then 'org.openbravo.erpWindows.*' else 'org.openbravo.erpWindows.'||m2.javapackage||'.%' end) as expectedvalue, m.name as moduleName 
+        select  to_char(w.name||' >> '||t.name), 'Tab' as objectType, o.classname as currentvalue, (case when m2.ad_module_id='0' then 'org.openbravo.erpWindows.*' else 'org.openbravo.erpWindows.'||m2.javapackage||'.%' end) as expectedvalue, m.name as moduleName, m.ad_module_id as moduleId 
           from ad_model_object o, ad_window w, ad_tab t, ad_module m, ad_module m2
          where o.ad_tab_id = t.ad_tab_id
            and t.ad_window_id = w.ad_window_id
@@ -138,7 +138,7 @@
   <SqlMethod name="checkModelObjectMapping" type="preparedStatement" return="multiple">
     <Sql>
       <![CDATA[
-        select to_char(p.name) as objectname, 'Process' as objectType, om.mappingname as currentvalue, m.javapackage as expectedvalue , m.name as moduleName
+        select to_char(p.name) as objectname, 'Process' as objectType, om.mappingname as currentvalue, m.javapackage as expectedvalue , m.name as moduleName, m.ad_module_id as moduleId
           from ad_model_object o, ad_process p, ad_module m, ad_model_object_mapping om
          where o.ad_process_id = p.ad_process_id
            and p.ad_module_id = m.ad_module_id
@@ -148,7 +148,7 @@
            and m.ad_module_id !='0'
            and (1=1 and m.javapackage in ('1') or to_char('Y')=to_char(?))
          union
-        select to_char(f.name), 'Form' as objectType, om.mappingname as currentvalue, m.javapackage as expectedvalue , m.name as moduleName
+        select to_char(f.name), 'Form' as objectType, om.mappingname as currentvalue, m.javapackage as expectedvalue , m.name as moduleName, m.ad_module_id as moduleId
           from ad_model_object o, ad_form f, ad_module m, ad_model_object_mapping om
          where o.ad_form_id = f.ad_form_id
            and f.ad_module_id = m.ad_module_id
@@ -158,7 +158,7 @@
            and m.ad_module_id !='0'
            and (2=2 and m.javapackage in ('2') or to_char('Y')=to_char(?))
          union
-        select to_char(c.name), 'Callout' as objectType, om.mappingname as currentvalue, m.javapackage as expectedvalue , m.name as moduleName
+        select to_char(c.name), 'Callout' as objectType, om.mappingname as currentvalue, m.javapackage as expectedvalue , m.name as moduleName, m.ad_module_id as moduleId
           from ad_model_object o, ad_callout c, ad_module m, ad_model_object_mapping om
          where o.ad_callout_id = c.ad_callout_id
            and c.ad_module_id = m.ad_module_id
@@ -168,7 +168,7 @@
            and m.ad_module_id !='0'
            and (3=3 and m.javapackage in ('3') or to_char('Y')=to_char(?))
          union
-        select to_char(r.name), 'Reference' as objectType, om.mappingname as currentvalue, m.javapackage as expectedvalue , m.name as moduleName
+        select to_char(r.name), 'Reference' as objectType, om.mappingname as currentvalue, m.javapackage as expectedvalue , m.name as moduleName, m.ad_module_id as moduleId
           from ad_model_object o, ad_reference r, ad_module m, ad_model_object_mapping om
          where o.ad_reference_id = r.ad_reference_id
            and r.ad_module_id = m.ad_module_id
@@ -178,7 +178,7 @@
            and m.ad_module_id !='0'
            and (4=4 and m.javapackage in ('4') or to_char('Y')=to_char(?))
          union
-        select to_char(w.name||' >> '||t.name), 'Tab' as objectType, om.mappingname as currentvalue, m.javapackage as expectedvalue , m.name as moduleName
+        select to_char(w.name||' >> '||t.name), 'Tab' as objectType, om.mappingname as currentvalue, m.javapackage as expectedvalue , m.name as moduleName, m.ad_module_id as moduleId
           from ad_model_object o, ad_window w, ad_tab t, ad_module m, ad_model_object_mapping om
          where o.ad_tab_id = t.ad_tab_id
            and t.ad_window_id = w.ad_window_id
@@ -213,7 +213,7 @@
            (select max(name) 
               from AD_Module_DBPrefix dbp
              where dbp.AD_Module_ID = c.AD_Module_ID) as expectedvalue, 
-           m.name as moduleName
+           m.name as moduleName, m.ad_module_id as moduleId
           from ad_table t, ad_module m, ad_package p, ad_column c
          where t.ad_package_id = p.ad_package_id
            and t.ad_table_id = c.ad_table_id
@@ -234,7 +234,7 @@
         (select max(name) 
               from AD_Module_DBPrefix dbp
              where dbp.AD_Module_ID = c.AD_Module_ID) as expectedvalue, 
-        m.name as moduleName
+        m.name as moduleName, m.ad_module_id as moduleId
           from ad_table t, ad_module m, ad_package p, ad_column c
          where t.ad_package_id = p.ad_package_id
            and t.ad_table_id = c.ad_table_id
@@ -264,7 +264,7 @@
       <![CDATA[
         select i.name as objectName, (select max(name) 
                                        from AD_Module_DBPrefix p
-                                      where p.AD_Module_ID = i.AD_Module_ID) as expectedvalue
+                                      where p.AD_Module_ID = i.AD_Module_ID) as expectedvalue, m.name as moduleName, m.ad_module_id as moduleId
           from ad_auxiliarInput i, AD_Module m
          where i.ad_module_id != '0'
            and m.ad_module_id = i.ad_module_id
@@ -285,7 +285,7 @@
   <SqlMethod name="checkBaseReferenceWithParent" type="preparedStatement" return="multiple">
     <Sql>
       <![CDATA[
-        select r.name as objectName, m.name as moduleName, r2.name as currentvalue
+        select r.name as objectName, m.name as moduleName, r2.name as currentvalue, m.ad_module_id as moduleId
           from ad_reference r, ad_module m, ad_reference r2
          where r.isBaseReference = 'Y'
            and r.parentReference_ID is not null