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