details:   /erp/devel/pi-cr/rev/62b529cd0a89
changeset: 7112:62b529cd0a89
user:      Asier Lostalé <asier.lostale <at> openbravo.com>
date:      Mon Apr 19 13:46:07 2010 +0200
summary:   [cr] Send complete local info
  Send complete local info to CR about installed modules, including 
dependencied. These
  dependencies will be taken into account when checking consinstency in CR or 
scanning
  for updates.

details:   /erp/devel/pi-cr/rev/de11ebd82086
changeset: 7113:de11ebd82086
user:      Asier Lostalé <asier.lostale <at> openbravo.com>
date:      Mon Apr 19 17:23:09 2010 +0200
summary:   [cr] Handle of accurate dependencies

diffstat:

 src-db/database/model/tables/AD_MODULE_DEPENDENCY.xml        |   4 +
 src-db/database/sourcedata/AD_COLUMN.xml                     |  33 +++++
 src-db/database/sourcedata/AD_ELEMENT.xml                    |  14 ++
 src-db/database/sourcedata/AD_FIELD.xml                      |  74 +++++++++++-
 src/org/openbravo/erpCommon/modules/ImportModule.java        |  68 ++++++++--
 src/org/openbravo/erpCommon/modules/VersionUtility.java      |  47 ++++++-
 src/org/openbravo/erpCommon/modules/VersionUtility_data.xsql |   8 +-
 7 files changed, 216 insertions(+), 32 deletions(-)

diffs (truncated from 398 to 300 lines):

diff -r 1133b8a877a3 -r de11ebd82086 
src-db/database/model/tables/AD_MODULE_DEPENDENCY.xml
--- a/src-db/database/model/tables/AD_MODULE_DEPENDENCY.xml     Thu Apr 22 
10:10:10 2010 +0530
+++ b/src-db/database/model/tables/AD_MODULE_DEPENDENCY.xml     Mon Apr 19 
17:23:09 2010 +0200
@@ -57,6 +57,10 @@
         <default/>
         <onCreateDefault/>
       </column>
+      <column name="ISACCURATE" primaryKey="false" required="true" type="CHAR" 
size="1" autoIncrement="false">
+        <default><![CDATA[N]]></default>
+        <onCreateDefault/>
+      </column>
       <foreign-key foreignTable="AD_CLIENT" 
name="AD_MODULE_DEPENDENCY_AD_CLIENT">
         <reference local="AD_CLIENT_ID" foreign="AD_CLIENT_ID"/>
       </foreign-key>
diff -r 1133b8a877a3 -r de11ebd82086 src-db/database/sourcedata/AD_COLUMN.xml
--- a/src-db/database/sourcedata/AD_COLUMN.xml  Thu Apr 22 10:10:10 2010 +0530
+++ b/src-db/database/sourcedata/AD_COLUMN.xml  Mon Apr 19 17:23:09 2010 +0200
@@ -291933,6 +291933,39 @@
 <!--84BE5A55A365CEFEE040007F01000402-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
 <!--84BE5A55A365CEFEE040007F01000402--></AD_COLUMN>
 
+<!--84980294DCCC3B41E040007F010116AF--><AD_COLUMN>
+<!--84980294DCCC3B41E040007F010116AF-->  
<AD_COLUMN_ID><![CDATA[84980294DCCC3B41E040007F010116AF]]></AD_COLUMN_ID>
+<!--84980294DCCC3B41E040007F010116AF-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--84980294DCCC3B41E040007F010116AF-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--84980294DCCC3B41E040007F010116AF-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--84980294DCCC3B41E040007F010116AF-->  <NAME><![CDATA[Accurate]]></NAME>
+<!--84980294DCCC3B41E040007F010116AF-->  <DESCRIPTION><![CDATA[Accurate 
dependency]]></DESCRIPTION>
+<!--84980294DCCC3B41E040007F010116AF-->  <HELP><![CDATA[An accurate dependency 
defines the dependency in the exact version, including minor version. If an 
accurate dependency does not have "last version", the module will be compatible 
only with the given version, if it has "last version" it will be compatible 
with all version between these two minor versions.
+When the dependency is not accurate, minor version is only taken into account 
for "first version", but it is not relevant for "version to", where it is not 
taken into account,. being compatible with all minor versions in the given 
major version. In case "last version" is not present, the compatibility is for 
all minor version of the given major version starting from the given minor 
version.]]></HELP>
+<!--84980294DCCC3B41E040007F010116AF-->  
<COLUMNNAME><![CDATA[IsAccurate]]></COLUMNNAME>
+<!--84980294DCCC3B41E040007F010116AF-->  
<AD_TABLE_ID><![CDATA[55EA8703587B40C1A05D225FBEE8C7FE]]></AD_TABLE_ID>
+<!--84980294DCCC3B41E040007F010116AF-->  
<AD_REFERENCE_ID><![CDATA[20]]></AD_REFERENCE_ID>
+<!--84980294DCCC3B41E040007F010116AF-->  
<FIELDLENGTH><![CDATA[1]]></FIELDLENGTH>
+<!--84980294DCCC3B41E040007F010116AF-->  
<DEFAULTVALUE><![CDATA[N]]></DEFAULTVALUE>
+<!--84980294DCCC3B41E040007F010116AF-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--84980294DCCC3B41E040007F010116AF-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--84980294DCCC3B41E040007F010116AF-->  
<ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--84980294DCCC3B41E040007F010116AF-->  
<ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--84980294DCCC3B41E040007F010116AF-->  
<ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--84980294DCCC3B41E040007F010116AF-->  <SEQNO><![CDATA[170]]></SEQNO>
+<!--84980294DCCC3B41E040007F010116AF-->  
<ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--84980294DCCC3B41E040007F010116AF-->  
<ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--84980294DCCC3B41E040007F010116AF-->  
<ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--84980294DCCC3B41E040007F010116AF-->  
<AD_ELEMENT_ID><![CDATA[849816796AF49CB2E040007F010116C4]]></AD_ELEMENT_ID>
+<!--84980294DCCC3B41E040007F010116AF-->  
<ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--84980294DCCC3B41E040007F010116AF-->  
<ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--84980294DCCC3B41E040007F010116AF-->  
<ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--84980294DCCC3B41E040007F010116AF-->  
<DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--84980294DCCC3B41E040007F010116AF-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--84980294DCCC3B41E040007F010116AF-->  <POSITION><![CDATA[15]]></POSITION>
+<!--84980294DCCC3B41E040007F010116AF-->  
<ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--84980294DCCC3B41E040007F010116AF--></AD_COLUMN>
+
 <!--8672E2CEC4B143EDA3FD16235CE39FF3--><AD_COLUMN>
 <!--8672E2CEC4B143EDA3FD16235CE39FF3-->  
<AD_COLUMN_ID><![CDATA[8672E2CEC4B143EDA3FD16235CE39FF3]]></AD_COLUMN_ID>
 <!--8672E2CEC4B143EDA3FD16235CE39FF3-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r 1133b8a877a3 -r de11ebd82086 src-db/database/sourcedata/AD_ELEMENT.xml
--- a/src-db/database/sourcedata/AD_ELEMENT.xml Thu Apr 22 10:10:10 2010 +0530
+++ b/src-db/database/sourcedata/AD_ELEMENT.xml Mon Apr 19 17:23:09 2010 +0200
@@ -26194,6 +26194,20 @@
 <!--84BE5B4B939FBA28E040007F0100040B-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
 <!--84BE5B4B939FBA28E040007F0100040B--></AD_ELEMENT>
 
+<!--849816796AF49CB2E040007F010116C4--><AD_ELEMENT>
+<!--849816796AF49CB2E040007F010116C4-->  
<AD_ELEMENT_ID><![CDATA[849816796AF49CB2E040007F010116C4]]></AD_ELEMENT_ID>
+<!--849816796AF49CB2E040007F010116C4-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--849816796AF49CB2E040007F010116C4-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--849816796AF49CB2E040007F010116C4-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--849816796AF49CB2E040007F010116C4-->  
<COLUMNNAME><![CDATA[IsAccurate]]></COLUMNNAME>
+<!--849816796AF49CB2E040007F010116C4-->  <NAME><![CDATA[Accurate]]></NAME>
+<!--849816796AF49CB2E040007F010116C4-->  
<PRINTNAME><![CDATA[Accurate]]></PRINTNAME>
+<!--849816796AF49CB2E040007F010116C4-->  <DESCRIPTION><![CDATA[Accurate 
dependency]]></DESCRIPTION>
+<!--849816796AF49CB2E040007F010116C4-->  <HELP><![CDATA[An accurate dependency 
defines the dependency in the exact version, including minor version. If an 
accurate dependency does not have "last version", the module will be compatible 
only with the given version, if it has "last version" it will be compatible 
with all version between these two minor versions.
+When the dependency is not accurate, minor version is only taken into account 
for "first version", but it is not relevant for "version to", where it is not 
taken into account,. being compatible with all minor versions in the given 
major version. In case "last version" is not present, the compatibility is for 
all minor version of the given major version starting from the given minor 
version.]]></HELP>
+<!--849816796AF49CB2E040007F010116C4-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--849816796AF49CB2E040007F010116C4--></AD_ELEMENT>
+
 <!--8CF76E08562A480D96D45C04F42D095E--><AD_ELEMENT>
 <!--8CF76E08562A480D96D45C04F42D095E-->  
<AD_ELEMENT_ID><![CDATA[8CF76E08562A480D96D45C04F42D095E]]></AD_ELEMENT_ID>
 <!--8CF76E08562A480D96D45C04F42D095E-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r 1133b8a877a3 -r de11ebd82086 src-db/database/sourcedata/AD_FIELD.xml
--- a/src-db/database/sourcedata/AD_FIELD.xml   Thu Apr 22 10:10:10 2010 +0530
+++ b/src-db/database/sourcedata/AD_FIELD.xml   Mon Apr 19 17:23:09 2010 +0200
@@ -186770,7 +186770,7 @@
 <!--56ED00EFD852E6E9E040007F01003348-->  
<ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
 <!--56ED00EFD852E6E9E040007F01003348-->  
<DISPLAYLENGTH><![CDATA[10]]></DISPLAYLENGTH>
 <!--56ED00EFD852E6E9E040007F01003348-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
-<!--56ED00EFD852E6E9E040007F01003348-->  <SEQNO><![CDATA[70]]></SEQNO>
+<!--56ED00EFD852E6E9E040007F01003348-->  <SEQNO><![CDATA[80]]></SEQNO>
 <!--56ED00EFD852E6E9E040007F01003348-->  <ISSAMELINE><![CDATA[Y]]></ISSAMELINE>
 <!--56ED00EFD852E6E9E040007F01003348-->  
<ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
 <!--56ED00EFD852E6E9E040007F01003348-->  
<ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
@@ -186841,7 +186841,7 @@
 <!--56ED00EFD855E6E9E040007F01003348-->  
<ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
 <!--56ED00EFD855E6E9E040007F01003348-->  
<DISPLAYLENGTH><![CDATA[10]]></DISPLAYLENGTH>
 <!--56ED00EFD855E6E9E040007F01003348-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
-<!--56ED00EFD855E6E9E040007F01003348-->  <SEQNO><![CDATA[60]]></SEQNO>
+<!--56ED00EFD855E6E9E040007F01003348-->  <SEQNO><![CDATA[70]]></SEQNO>
 <!--56ED00EFD855E6E9E040007F01003348-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
 <!--56ED00EFD855E6E9E040007F01003348-->  
<ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
 <!--56ED00EFD855E6E9E040007F01003348-->  
<ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
@@ -199274,6 +199274,76 @@
 <!--856994A07DE44AA98782D7FA58A8FF75-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
 <!--856994A07DE44AA98782D7FA58A8FF75--></AD_FIELD>
 
+<!--849816796AF79CB2E040007F010116C4--><AD_FIELD>
+<!--849816796AF79CB2E040007F010116C4-->  
<AD_FIELD_ID><![CDATA[849816796AF79CB2E040007F010116C4]]></AD_FIELD_ID>
+<!--849816796AF79CB2E040007F010116C4-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--849816796AF79CB2E040007F010116C4-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--849816796AF79CB2E040007F010116C4-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--849816796AF79CB2E040007F010116C4-->  <NAME><![CDATA[Dependant Module 
Name]]></NAME>
+<!--849816796AF79CB2E040007F010116C4-->  <DESCRIPTION><![CDATA[Name of the 
dependent module]]></DESCRIPTION>
+<!--849816796AF79CB2E040007F010116C4-->  <HELP><![CDATA[The name of the 
dependent module is stored here because the dependent module can have been 
removed. In that case it is still relevant to show the module name to detect a 
broken dependency. ]]></HELP>
+<!--849816796AF79CB2E040007F010116C4-->  
<ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--849816796AF79CB2E040007F010116C4-->  
<AD_TAB_ID><![CDATA[134DE6BD8CD34FDFB6DC940BF857BC25]]></AD_TAB_ID>
+<!--849816796AF79CB2E040007F010116C4-->  
<AD_COLUMN_ID><![CDATA[9D18FD9BDA284EF190AAE3C3F73E3338]]></AD_COLUMN_ID>
+<!--849816796AF79CB2E040007F010116C4-->  
<ISDISPLAYED><![CDATA[N]]></ISDISPLAYED>
+<!--849816796AF79CB2E040007F010116C4-->  
<DISPLAYLENGTH><![CDATA[60]]></DISPLAYLENGTH>
+<!--849816796AF79CB2E040007F010116C4-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--849816796AF79CB2E040007F010116C4-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--849816796AF79CB2E040007F010116C4-->  
<ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--849816796AF79CB2E040007F010116C4-->  
<ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--849816796AF79CB2E040007F010116C4-->  
<SHOWINRELATION><![CDATA[Y]]></SHOWINRELATION>
+<!--849816796AF79CB2E040007F010116C4-->  
<ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--849816796AF79CB2E040007F010116C4-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--849816796AF79CB2E040007F010116C4--></AD_FIELD>
+
+<!--849816796AF89CB2E040007F010116C4--><AD_FIELD>
+<!--849816796AF89CB2E040007F010116C4-->  
<AD_FIELD_ID><![CDATA[849816796AF89CB2E040007F010116C4]]></AD_FIELD_ID>
+<!--849816796AF89CB2E040007F010116C4-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--849816796AF89CB2E040007F010116C4-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--849816796AF89CB2E040007F010116C4-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--849816796AF89CB2E040007F010116C4-->  <NAME><![CDATA[Accurate]]></NAME>
+<!--849816796AF89CB2E040007F010116C4-->  <DESCRIPTION><![CDATA[Accurate 
dependency]]></DESCRIPTION>
+<!--849816796AF89CB2E040007F010116C4-->  <HELP><![CDATA[An accurate dependency 
defines the dependency in the exact version, including minor version. If an 
accurate dependency does not have "last version", the module will be compatible 
only with the given version, if it has "last version" it will be compatible 
with all version between these two minor versions.
+When the dependency is not accurate, minor version is only taken into account 
for "first version", but it is not relevant for "version to", where it is not 
taken into account,. being compatible with all minor versions in the given 
major version. In case "last version" is not present, the compatibility is for 
all minor version of the given major version starting from the given minor 
version.]]></HELP>
+<!--849816796AF89CB2E040007F010116C4-->  
<ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--849816796AF89CB2E040007F010116C4-->  
<AD_TAB_ID><![CDATA[134DE6BD8CD34FDFB6DC940BF857BC25]]></AD_TAB_ID>
+<!--849816796AF89CB2E040007F010116C4-->  
<AD_COLUMN_ID><![CDATA[84980294DCCC3B41E040007F010116AF]]></AD_COLUMN_ID>
+<!--849816796AF89CB2E040007F010116C4-->  
<ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--849816796AF89CB2E040007F010116C4-->  
<DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
+<!--849816796AF89CB2E040007F010116C4-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--849816796AF89CB2E040007F010116C4-->  <SEQNO><![CDATA[60]]></SEQNO>
+<!--849816796AF89CB2E040007F010116C4-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--849816796AF89CB2E040007F010116C4-->  
<ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--849816796AF89CB2E040007F010116C4-->  
<ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--849816796AF89CB2E040007F010116C4-->  
<SHOWINRELATION><![CDATA[Y]]></SHOWINRELATION>
+<!--849816796AF89CB2E040007F010116C4-->  
<ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--849816796AF89CB2E040007F010116C4-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--849816796AF89CB2E040007F010116C4--></AD_FIELD>
+
+<!--849816796AFB9CB2E040007F010116C4--><AD_FIELD>
+<!--849816796AFB9CB2E040007F010116C4-->  
<AD_FIELD_ID><![CDATA[849816796AFB9CB2E040007F010116C4]]></AD_FIELD_ID>
+<!--849816796AFB9CB2E040007F010116C4-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--849816796AFB9CB2E040007F010116C4-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--849816796AFB9CB2E040007F010116C4-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--849816796AFB9CB2E040007F010116C4-->  <NAME><![CDATA[Accurate]]></NAME>
+<!--849816796AFB9CB2E040007F010116C4-->  <DESCRIPTION><![CDATA[Accurate 
dependency]]></DESCRIPTION>
+<!--849816796AFB9CB2E040007F010116C4-->  <HELP><![CDATA[An accurate dependency 
defines the dependency in the exact version, including minor version. If an 
accurate dependency does not have "last version", the module will be compatible 
only with the given version, if it has "last version" it will be compatible 
with all version between these two minor versions.
+When the dependency is not accurate, minor version is only taken into account 
for "first version", but it is not relevant for "version to", where it is not 
taken into account,. being compatible with all minor versions in the given 
major version. In case "last version" is not present, the compatibility is for 
all minor version of the given major version starting from the given minor 
version.]]></HELP>
+<!--849816796AFB9CB2E040007F010116C4-->  
<ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--849816796AFB9CB2E040007F010116C4-->  
<AD_TAB_ID><![CDATA[B30CF79CF71245339E94B4B332BAABF1]]></AD_TAB_ID>
+<!--849816796AFB9CB2E040007F010116C4-->  
<AD_COLUMN_ID><![CDATA[84980294DCCC3B41E040007F010116AF]]></AD_COLUMN_ID>
+<!--849816796AFB9CB2E040007F010116C4-->  
<ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--849816796AFB9CB2E040007F010116C4-->  
<DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
+<!--849816796AFB9CB2E040007F010116C4-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--849816796AFB9CB2E040007F010116C4-->  <SEQNO><![CDATA[0]]></SEQNO>
+<!--849816796AFB9CB2E040007F010116C4-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--849816796AFB9CB2E040007F010116C4-->  
<ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--849816796AFB9CB2E040007F010116C4-->  
<ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--849816796AFB9CB2E040007F010116C4-->  
<SHOWINRELATION><![CDATA[Y]]></SHOWINRELATION>
+<!--849816796AFB9CB2E040007F010116C4-->  
<ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--849816796AFB9CB2E040007F010116C4-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--849816796AFB9CB2E040007F010116C4--></AD_FIELD>
+
 <!--86E59478FE6B4DC68BA401230C3DFC17--><AD_FIELD>
 <!--86E59478FE6B4DC68BA401230C3DFC17-->  
<AD_FIELD_ID><![CDATA[86E59478FE6B4DC68BA401230C3DFC17]]></AD_FIELD_ID>
 <!--86E59478FE6B4DC68BA401230C3DFC17-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r 1133b8a877a3 -r de11ebd82086 
src/org/openbravo/erpCommon/modules/ImportModule.java
--- a/src/org/openbravo/erpCommon/modules/ImportModule.java     Thu Apr 22 
10:10:10 2010 +0530
+++ b/src/org/openbravo/erpCommon/modules/ImportModule.java     Mon Apr 19 
17:23:09 2010 +0200
@@ -34,6 +34,7 @@
 import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Properties;
 import java.util.Vector;
 import java.util.zip.ZipEntry;
@@ -58,6 +59,8 @@
 import org.apache.ddlutils.model.Database;
 import org.apache.log4j.Logger;
 import org.openbravo.base.secureApp.VariablesSecureApp;
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.service.OBDal;
 import org.openbravo.database.ConnectionProvider;
 import org.openbravo.ddlutils.task.DatabaseUtils;
 import org.openbravo.erpCommon.obps.ActivationKey;
@@ -1279,8 +1282,7 @@
       try {
         loc = new WebServiceImplServiceLocator();
         ws = loc.getWebService();
-        final HashMap<String, String> currentlyInstalledModules = 
getInstalledModules(conn);
-        updates = ws.moduleScanForUpdates(currentlyInstalledModules);
+        updates = ws.moduleScanForUpdates(getInstalledModules(conn));
       } catch (final Exception e) {
         // do nothing just log the error
         log4j.error("Scan for updates coulnd't contact WS", e);
@@ -1353,24 +1355,56 @@
   /**
    * Returns the current installed modules with its version
    * 
-   * @param conn
-   *          ConnectionProvider needed as it is a static method
-   * @return HashMap<String,String> -> <ModuleId, VersionNo>
+   * @return HashMap<String, String[][]> --> <ModuleId, VersionInfo[]>
+   *         <ul>
+   *         <li>VersionInfo [x][0] -> Type "M" Module, "D" Dependency</li>
+   *         <li>VersionInfo [x][1] -> If type=="M", version number. If type 
=="D" dep module Id</li>
+   *         <li>VersionInfo [x][2] -> If type=="D", from version</li>
+   *         <li>VersionInfo [x][3] -> If type=="D", to version</li>
+   *         <li>VersionInfo [x][4] -> If type=="D", "Y"/"N" is included</li>
+   *         <li>VersionInfo [x][5] -> If type=="D", Dependent module name</li>
+   *         <li>VersionInfo [x][6] -> If type=="D", "Y"/"N" is accurate</li>
+   *         </ul>
    */
-  public static HashMap<String, String> getInstalledModules(ConnectionProvider 
conn) {
-    final HashMap<String, String> rt = new HashMap<String, String>();
-    ImportModuleData data[] = null;
+  public static HashMap<String, String[][]> 
getInstalledModules(ConnectionProvider conn) {
+
+    HashMap<String, String[][]> rt = new HashMap<String, String[][]>();
+
+    boolean currentAdmin = 
OBContext.getOBContext().setInAdministratorMode(true);
     try {
-      data = ImportModuleData.selectInstalled(conn);
-    } catch (final Exception e) {
-      log4j.error("Error getting installed modules", e);
+      List<org.openbravo.model.ad.module.Module> modules = 
OBDal.getInstance().createCriteria(
+          org.openbravo.model.ad.module.Module.class).list();
+
+      for (org.openbravo.model.ad.module.Module mod : modules) {
+
+        List<org.openbravo.model.ad.module.ModuleDependency> dependencies = mod
+            .getModuleDependencyList();
+
+        String[][] versionInfo = new String[dependencies.size() + 1][0];
+        versionInfo[0] = new String[2];
+        versionInfo[0][0] = "M";
+        versionInfo[0][1] = mod.getVersion();
+
+        int i = 1;
+        for (org.openbravo.model.ad.module.ModuleDependency dep : 
dependencies) {
+          versionInfo[i] = new String[7];
+          versionInfo[i][0] = "D";
+          versionInfo[i][1] = dep.getDependentModule().getId();
+          versionInfo[i][2] = dep.getFirstVersion();
+          versionInfo[i][3] = dep.getLastVersion();
+          versionInfo[i][4] = dep.isIncluded() ? "Y" : "N";
+          versionInfo[i][5] = dep.getDependantModuleName();
+          versionInfo[i][6] = dep.isAccurate() ? "Y" : "N";
+          i++;
+        }
+
+        rt.put(mod.getId(), versionInfo);
+      }
+
+      return rt;
+    } finally {
+      OBContext.getOBContext().setInAdministratorMode(currentAdmin);
     }
-    if (data != null) {
-      for (int i = 0; i < data.length; i++) {
-        rt.put(data[i].adModuleId, data[i].version);
-      }
-    }
-    return rt;
   }
 
   /**
diff -r 1133b8a877a3 -r de11ebd82086 
src/org/openbravo/erpCommon/modules/VersionUtility.java
--- a/src/org/openbravo/erpCommon/modules/VersionUtility.java   Thu Apr 22 
10:10:10 2010 +0530
+++ b/src/org/openbravo/erpCommon/modules/VersionUtility.java   Mon Apr 19 
17:23:09 2010 +0200
@@ -68,6 +68,7 @@
     String maxVer;
     String modId;
     String modName;
+    boolean accurate;
   }
 
   public VersionUtility() {
@@ -94,15 +95,41 @@
   }
 
   static private boolean checkVersion(String depParentMod, Dep dep, Mod mod, 
Vector<String> errors) {
-    if (versionCompare(dep.minVer, mod.availableMaxVer, true) == 1) {
-      errors.add(depParentMod + " @CR_DependensOnModule@ \"" + dep.modName + 
"\" @CR_InVersion@ \""
-          + dep.minVer + "\", @CR_MaxAvailableVersion@ \"" + 
mod.availableMaxVer + "\". ");
-      return false;

------------------------------------------------------------------------------
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to