details:   /erp/devel/pi/rev/bd3fb77fe92d
changeset: 11332:bd3fb77fe92d
user:      Asier Lostalé <asier.lostale <at> openbravo.com>
date:      Tue Mar 22 10:46:43 2011 +0100
summary:   Allow inconsistent depencies when installing/updating through obx

  In this way it will be possible to do obx upgrades setting minor dependency
  from v3 template to core.

details:   /erp/devel/pi/rev/8343759379cd
changeset: 11333:8343759379cd
user:      Asier Lostalé <asier.lostale <at> openbravo.com>
date:      Tue Mar 22 11:03:01 2011 +0100
summary:   Dependency from v3 template to core is MINOR enforcement

diffstat:

 modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml | 
  2 +-
 src-db/database/sourcedata/AD_MESSAGE.xml                                    | 
 11 ++
 src-db/database/sourcedata/AD_TEXTINTERFACES.xml                             | 
 22 ++++
 src/org/openbravo/erpCommon/ad_forms/ModuleManagement.java                   | 
 17 +++-
 src/org/openbravo/erpCommon/ad_forms/ModuleManagement_InstallLocal.html      | 
  5 +-
 src/org/openbravo/erpCommon/ad_forms/ModuleManagement_InstallP1.html         | 
  9 +-
 src/org/openbravo/erpCommon/modules/ImportModule.java                        | 
  8 +
 src/org/openbravo/erpCommon/modules/VersionUtility.java                      | 
 49 ++-------
 src/org/openbravo/erpCommon/modules/VersionUtility_data.xsql                 | 
 32 ++++--
 9 files changed, 101 insertions(+), 54 deletions(-)

diffs (truncated from 352 to 300 lines):

diff -r c4e1d4214951 -r 8343759379cd 
modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml
--- 
a/modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml  
    Mon Mar 21 16:31:37 2011 +0100
+++ 
b/modules/org.openbravo.v3/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml  
    Tue Mar 22 11:03:01 2011 +0100
@@ -66,7 +66,7 @@
 <!--A32F3279B3374FC0A6CFEA2368BB7053-->  
<STARTVERSION><![CDATA[3.0.11317]]></STARTVERSION>
 <!--A32F3279B3374FC0A6CFEA2368BB7053-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--A32F3279B3374FC0A6CFEA2368BB7053-->  
<DEPENDANT_MODULE_NAME><![CDATA[Core]]></DEPENDANT_MODULE_NAME>
-<!--A32F3279B3374FC0A6CFEA2368BB7053-->  
<DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
+<!--A32F3279B3374FC0A6CFEA2368BB7053-->  
<DEPENDENCY_ENFORCEMENT><![CDATA[MINOR]]></DEPENDENCY_ENFORCEMENT>
 <!--A32F3279B3374FC0A6CFEA2368BB7053-->  
<USER_EDITABLE_ENFORCEMENT><![CDATA[N]]></USER_EDITABLE_ENFORCEMENT>
 <!--A32F3279B3374FC0A6CFEA2368BB7053--></AD_MODULE_DEPENDENCY>
 
diff -r c4e1d4214951 -r 8343759379cd src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml Mon Mar 21 16:31:37 2011 +0100
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml Tue Mar 22 11:03:01 2011 +0100
@@ -34347,4 +34347,15 @@
 <!--FF8080812EA11CED012EA1CCB28700F0-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
 <!--FF8080812EA11CED012EA1CCB28700F0--></AD_MESSAGE>
 
+<!--FF8081812EDCCB27012EDCD3F897000A--><AD_MESSAGE>
+<!--FF8081812EDCCB27012EDCD3F897000A-->  
<AD_MESSAGE_ID><![CDATA[FF8081812EDCCB27012EDCD3F897000A]]></AD_MESSAGE_ID>
+<!--FF8081812EDCCB27012EDCD3F897000A-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FF8081812EDCCB27012EDCD3F897000A-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FF8081812EDCCB27012EDCD3F897000A-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FF8081812EDCCB27012EDCD3F897000A-->  
<VALUE><![CDATA[DependenciesNotSatisfied]]></VALUE>
+<!--FF8081812EDCCB27012EDCD3F897000A-->  <MSGTEXT><![CDATA[Dependencies for 
the modules you are trying to install/update are not satisfied]]></MSGTEXT>
+<!--FF8081812EDCCB27012EDCD3F897000A-->  <MSGTYPE><![CDATA[W]]></MSGTYPE>
+<!--FF8081812EDCCB27012EDCD3F897000A-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--FF8081812EDCCB27012EDCD3F897000A--></AD_MESSAGE>
+
 </data>
diff -r c4e1d4214951 -r 8343759379cd 
src-db/database/sourcedata/AD_TEXTINTERFACES.xml
--- a/src-db/database/sourcedata/AD_TEXTINTERFACES.xml  Mon Mar 21 16:31:37 
2011 +0100
+++ b/src-db/database/sourcedata/AD_TEXTINTERFACES.xml  Tue Mar 22 11:03:01 
2011 +0100
@@ -21960,6 +21960,28 @@
 <!--9F0C2175AC6145B49570E24110762368-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
 <!--9F0C2175AC6145B49570E24110762368--></AD_TEXTINTERFACES>
 
+<!--9F0EC49B722D9932E040A8C021013095--><AD_TEXTINTERFACES>
+<!--9F0EC49B722D9932E040A8C021013095-->  
<AD_TEXTINTERFACES_ID><![CDATA[9F0EC49B722D9932E040A8C021013095]]></AD_TEXTINTERFACES_ID>
+<!--9F0EC49B722D9932E040A8C021013095-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--9F0EC49B722D9932E040A8C021013095-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--9F0EC49B722D9932E040A8C021013095-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--9F0EC49B722D9932E040A8C021013095-->  <TEXT><![CDATA[With the modules 
selected to install/update dependencies are not satisfied.]]></TEXT>
+<!--9F0EC49B722D9932E040A8C021013095-->  
<FILENAME><![CDATA[/org/openbravo/erpCommon/ad_forms/ModuleManagement_InstallP1.html]]></FILENAME>
+<!--9F0EC49B722D9932E040A8C021013095-->  <ISUSED><![CDATA[Y]]></ISUSED>
+<!--9F0EC49B722D9932E040A8C021013095-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--9F0EC49B722D9932E040A8C021013095--></AD_TEXTINTERFACES>
+
+<!--9F0EC49B72309932E040A8C021013095--><AD_TEXTINTERFACES>
+<!--9F0EC49B72309932E040A8C021013095-->  
<AD_TEXTINTERFACES_ID><![CDATA[9F0EC49B72309932E040A8C021013095]]></AD_TEXTINTERFACES_ID>
+<!--9F0EC49B72309932E040A8C021013095-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--9F0EC49B72309932E040A8C021013095-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--9F0EC49B72309932E040A8C021013095-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--9F0EC49B72309932E040A8C021013095-->  <TEXT><![CDATA[  You can continue 
with this installation and fix this problem later by installing missing 
dependencies.]]></TEXT>
+<!--9F0EC49B72309932E040A8C021013095-->  
<FILENAME><![CDATA[/org/openbravo/erpCommon/ad_forms/ModuleManagement_InstallP1.html]]></FILENAME>
+<!--9F0EC49B72309932E040A8C021013095-->  <ISUSED><![CDATA[Y]]></ISUSED>
+<!--9F0EC49B72309932E040A8C021013095-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--9F0EC49B72309932E040A8C021013095--></AD_TEXTINTERFACES>
+
 <!--A25FFD50C924486E93F3A39A593C5C20--><AD_TEXTINTERFACES>
 <!--A25FFD50C924486E93F3A39A593C5C20-->  
<AD_TEXTINTERFACES_ID><![CDATA[A25FFD50C924486E93F3A39A593C5C20]]></AD_TEXTINTERFACES_ID>
 <!--A25FFD50C924486E93F3A39A593C5C20-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r c4e1d4214951 -r 8343759379cd 
src/org/openbravo/erpCommon/ad_forms/ModuleManagement.java
--- a/src/org/openbravo/erpCommon/ad_forms/ModuleManagement.java        Mon Mar 
21 16:31:37 2011 +0100
+++ b/src/org/openbravo/erpCommon/ad_forms/ModuleManagement.java        Tue Mar 
22 11:03:01 2011 +0100
@@ -639,7 +639,7 @@
       VariablesSecureApp vars, String recordId, boolean islocal, InputStream 
obx,
       String[] updateModules, HashMap<String, String> maturityLevels) throws 
IOException,
       ServletException {
-    final String discard[] = { "", "", "", "", "", "", "warnMaturity", "" };
+    final String discard[] = { "", "", "", "", "", "", "warnMaturity", "", 
"missingDeps" };
     Module module = null;
 
     // Remote installation is only allowed for heartbeat enabled instances
@@ -702,7 +702,10 @@
         check = im.checkDependenciesFile(obx);
       }
 
-      if (check) { // dependencies are statisfied, show modules to install
+      if (islocal || check) {
+        // dependencies are satisfied or local installation, show modules to 
install. If local
+        // installation and dependencies are not ok show warning.
+
         // installOrig includes also the module to install
         final Module[] installOrig = im.getModulesToInstall();
 
@@ -797,7 +800,14 @@
           } else {
             message.setMessage(message.getMessage() + "\n");
           }
+
           message.setMessage(message.getMessage() + 
additionalMsg.getMessage());
+          if (!check) {
+            discard[8] = ""; // show missing dependencies message
+            message.setType("Warning");
+            message.setTitle(Utility
+                .messageBD(this, "DependenciesNotSatisfied", 
vars.getLanguage()));
+          }
         }
 
       } else { // Dependencies not satisfied, do not show continue button
@@ -1190,6 +1200,9 @@
 
       }
     } else {
+      if (!im.isChecked()) {
+        im.setForce(true);
+      }
       selected = installOrig;
     }
 
diff -r c4e1d4214951 -r 8343759379cd 
src/org/openbravo/erpCommon/ad_forms/ModuleManagement_InstallLocal.html
--- a/src/org/openbravo/erpCommon/ad_forms/ModuleManagement_InstallLocal.html   
Mon Mar 21 16:31:37 2011 +0100
+++ b/src/org/openbravo/erpCommon/ad_forms/ModuleManagement_InstallLocal.html   
Tue Mar 22 11:03:01 2011 +0100
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2008-2010 Openbravo SLU 
+ * All portions are Copyright (C) 2008-2011 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -53,6 +53,7 @@
     if ((frmMain.inpFile.value==null || frmMain.inpFile.value=="")){
       setWindowElementFocus(frmMain.inpFile);
       showJSMessage(7);
+      setProcessingMode('popup', false);
       return false;
     }
     return true;
@@ -264,7 +265,7 @@
                   <button type="button" 
                     id="buttonOK" 
                     class="ButtonLink" 
-                    onclick="submitCommandForm('INSTALLFILE', true, null, 
'ModuleManagement.html', '_self', null, false);return false;" 
+                    onclick="setProcessingMode('popup', true); 
submitCommandForm('INSTALLFILE', true, null, 'ModuleManagement.html', '_self', 
null, false);return false;" 
                     onfocus="buttonEvent('onfocus', this); 
window.status='Continue'; return true;" 
                     onblur="buttonEvent('onblur', this);" 
                     onkeyup="buttonEvent('onkeyup', this);" 
diff -r c4e1d4214951 -r 8343759379cd 
src/org/openbravo/erpCommon/ad_forms/ModuleManagement_InstallP1.html
--- a/src/org/openbravo/erpCommon/ad_forms/ModuleManagement_InstallP1.html      
Mon Mar 21 16:31:37 2011 +0100
+++ b/src/org/openbravo/erpCommon/ad_forms/ModuleManagement_InstallP1.html      
Tue Mar 22 11:03:01 2011 +0100
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2008-2010 Openbravo SLU 
+ * All portions are Copyright (C) 2008-2011 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -217,7 +217,12 @@
             
             <tr>
               <td class="PlainText_normal" colspan="4" style="padding: 0 0 10 
0; text-align: left;">
-                <span>Do you want to continue installing the following 
module(s)?</span></td>
+                <span>
+                    <p id="missingDeps"><b>With the modules selected to 
install/update dependencies are not satisfied.</b>&nbsp;
+                       You can continue with this installation and fix this 
problem later by installing missing dependencies.</p><br/>
+                    <p>Do you want to continue installing the following 
module(s)?</p>
+                </span>
+              </td>
             </tr>
             <tr>
               <td colspan="4" style="padding: 0 0 0 0;">
diff -r c4e1d4214951 -r 8343759379cd 
src/org/openbravo/erpCommon/modules/ImportModule.java
--- a/src/org/openbravo/erpCommon/modules/ImportModule.java     Mon Mar 21 
16:31:37 2011 +0100
+++ b/src/org/openbravo/erpCommon/modules/ImportModule.java     Tue Mar 22 
11:03:01 2011 +0100
@@ -1851,4 +1851,12 @@
     return remoteModule;
   }
 
+  public boolean isChecked() {
+    return checked;
+  }
+
+  public void setForce(boolean force) {
+    this.force = force;
+  }
+
 }
diff -r c4e1d4214951 -r 8343759379cd 
src/org/openbravo/erpCommon/modules/VersionUtility.java
--- a/src/org/openbravo/erpCommon/modules/VersionUtility.java   Mon Mar 21 
16:31:37 2011 +0100
+++ b/src/org/openbravo/erpCommon/modules/VersionUtility.java   Tue Mar 22 
11:03:01 2011 +0100
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2008-2010 Openbravo SLU 
+ * All portions are Copyright (C) 2008-2011 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -326,12 +326,12 @@
     VersionUtilityData[] data = VersionUtilityData.readModules(pool);
     HashMap<String, Mod> modules = new HashMap<String, Mod>();
     for (int i = 0; i < data.length; i++) {
-      if (!isInList(data[i].adModuleId, modulesToMerge)) {
+      if (!isInList(data[i].adModuleId, modulesToMerge) && 
!modules.containsKey(data[i].adModuleId)) {
         Mod mod = new Mod();
         mod.modId = data[i].adModuleId;
         mod.name = data[i].name;
         mod.type = data[i].type;
-        mod.versions = fillVersions(data[i], mod);
+        mod.versions = fillVersions(data[i], mod, 
"Y".equals(data[i].installed));
         modules.put(data[i].adModuleId, mod);
       }
     }
@@ -353,8 +353,8 @@
     return false;
   }
 
-  static private HashMap<String, Ver> fillVersions(VersionUtilityData data, 
Mod mod)
-      throws ServletException {
+  static private HashMap<String, Ver> fillVersions(VersionUtilityData data, 
Mod mod,
+      boolean installed) throws ServletException {
     /** fill Ver objects from database */
     /**
      * all information needed for modules are stored in ad_module, 
ad_module_dependency
@@ -364,8 +364,8 @@
     if (data != null) {
       Ver ver = new Ver();
       ver.version = data.version;
-      ver.dependencies = fillDependencies(mod.modId);
-      ver.includes = fillIncludes(mod.modId);
+      ver.dependencies = fillDependencies(mod.modId, false, installed);
+      ver.includes = fillDependencies(mod.modId, true, installed);
       hashVer.put(ver.version, ver);
 
       /** in the local database there is only one version by module */
@@ -376,37 +376,16 @@
     return hashVer;
   }
 
-  static private HashMap<String, Dep> fillDependencies(String modID) throws 
ServletException {
+  static private HashMap<String, Dep> fillDependencies(String modID, boolean 
include,
+      boolean installed) throws ServletException {
     /** fill Dep objects from database */
-    VersionUtilityData[] data = VersionUtilityData.readDependencies(pool, 
modID);
-    HashMap<String, Dep> hashDep = new HashMap<String, Dep>();
-    for (int i = 0; i < data.length; i++) {
-      Dep dep = new Dep();
-      dep.depId = data[i].adModuleDependencyId;
-      dep.minVer = data[i].startversion;
-      dep.maxVer = data[i].endversion;
-      dep.modId = data[i].adDependentModuleId;
-      dep.modName = data[i].dependantModuleName;
 
-      // set enforcement
-      if ("Y".equals(data[i].userEditableEnforcement) && 
data[i].instanceEnforcement != null
-          && !data[i].instanceEnforcement.isEmpty()) {
-        dep.enforcement = data[i].instanceEnforcement;
-      } else {
-        dep.enforcement = data[i].dependencyEnforcement;
-        if (dep.enforcement == null || dep.enforcement.isEmpty()) {
-          dep.enforcement = "MAJOR";
-        }
-      }
-
-      hashDep.put(data[i].adModuleDependencyId, dep);
+    VersionUtilityData[] data;
+    if (installed) {
+      data = VersionUtilityData.readDependencies(pool, modID, include ? "Y" : 
"N");
+    } else {
+      data = VersionUtilityData.readDependenciesToInstall(pool, modID, include 
? "Y" : "N");
     }
-    return hashDep;
-  }
-
-  static private HashMap<String, Dep> fillIncludes(String modID) throws 
ServletException {
-    /** fill Dep objects from database */
-    VersionUtilityData[] data = VersionUtilityData.readIncludes(pool, modID);
     HashMap<String, Dep> hashDep = new HashMap<String, Dep>();
     for (int i = 0; i < data.length; i++) {
       Dep dep = new Dep();
diff -r c4e1d4214951 -r 8343759379cd 
src/org/openbravo/erpCommon/modules/VersionUtility_data.xsql
--- a/src/org/openbravo/erpCommon/modules/VersionUtility_data.xsql      Mon Mar 
21 16:31:37 2011 +0100
+++ b/src/org/openbravo/erpCommon/modules/VersionUtility_data.xsql      Tue Mar 
22 11:03:01 2011 +0100
@@ -12,7 +12,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2008-2010 Openbravo SLU 
+ * All portions are Copyright (C) 2008-2011 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -26,7 +26,7 @@
       <Sql>
         select '' as ad_module_id, '' as name, '' as version, '' as type,
           '' as ad_module_dependency_id, '' as ad_dependent_module_id, '' as 
dependant_module_name, '' as startVersion, '' as endVersion,
-          '' as dependency_enforcement, '' as user_editable_enforcement, '' as 
instance_enforcement
+          '' as dependency_enforcement, '' as user_editable_enforcement, '' as 
instance_enforcement, '' as installed
         from dual
       </Sql>
    </SqlMethod>
@@ -34,11 +34,12 @@
    <SqlMethod name="readModules" type="preparedStatement" return="multiple">

------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software 
be a part of the solution? Download the Intel(R) Manageability Checker 
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to