Update of /var/cvs/src/org/mmbase/module/tools
In directory james.mmbase.org:/tmp/cvs-serv19568
Modified Files:
Tag: MMBase-1_8
ApplicationInstaller.java
Log Message:
MMB-1727
See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/module/tools
See also: http://www.mmbase.org/jira/browse/MMB-1727
Index: ApplicationInstaller.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/module/tools/ApplicationInstaller.java,v
retrieving revision 1.8.2.3
retrieving revision 1.8.2.4
diff -u -b -r1.8.2.3 -r1.8.2.4
--- ApplicationInstaller.java 2 Oct 2007 12:15:34 -0000 1.8.2.3
+++ ApplicationInstaller.java 1 Oct 2008 20:19:25 -0000 1.8.2.4
@@ -31,7 +31,7 @@
*
* @author Nico Klasens
* @since MMBase-1.8
- * @version $Id: ApplicationInstaller.java,v 1.8.2.3 2007/10/02 12:15:34
michiel Exp $
+ * @version $Id: ApplicationInstaller.java,v 1.8.2.4 2008/10/01 20:19:25
michiel Exp $
*/
public class ApplicationInstaller {
@@ -79,8 +79,8 @@
}
ApplicationReader reader = getApplicationReader(applicationName);
- Versions ver = (Versions)mmb.getMMObject("versions");
if (reader != null) {
+ Versions ver = (Versions)mmb.getMMObject("versions");
// test autodeploy
// test autodeploy
if (autoDeploy) {
@@ -191,7 +191,7 @@
}
}
} else {
- result.error("Install error: can't find xml file: applications/" +
applicationName + ".xml");
+ result.error("Install error: can't find xml resource:
applications/" + applicationName + ".xml");
}
return result.isSuccess();
}
@@ -241,6 +241,7 @@
// XXX To do : we may want to load the node and
check/change the fields
log.debug("node allready installed : " + exportnumber);
} else {
+ try {
newNode.setValue("number", -1);
int localnumber = doKeyMergeNode(syncbul, newNode,
exportsource, result);
if (localnumber != -1) { // this node was not yet imported
earlier
@@ -250,6 +251,9 @@
}
}
NodeCache.getCache().remove(new Integer(localnumber));
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ }
}
n.remove();
}
@@ -782,7 +786,8 @@
RelDef reldef = mmb.getRelDef();
if (reldef != null) {
- if (reldef.getNumberByName(sname + "/" + dname) == -1) {
+ int rnumber = reldef.getNumberByName(sname );
+ if (rnumber == -1) {
MMObjectNode node = reldef.getNewNode("system");
node.setValue("sname", sname);
node.setValue("dname", dname);
@@ -802,6 +807,18 @@
} else {
return result.error("RelDef (" + sname + "," + dname + ")
could not be installed");
}
+ } else {
+ MMObjectNode node = reldef.getNode(rnumber);
+ String foundDname = node.getStringValue("dname");
+ int foundBuilder = node.getIntValue("builder");
+ if (! foundDname.equals(dname)) {
+ // MMB-1727
+ log.warn("Found already an reldef with this sname ('" +
sname + "') but with different dname ('" + foundDname + "'). So not using " +
sname + "/" + dname + " but " + sname + "/" + foundDname + ".");
+ }
+ if (foundBuilder != builder) {
+ result.error("Role '" + sname + "' already defined with
different builder (" + foundBuilder + "), while this application required it to
be " + builder);
+ return false;
+ }
}
} else {
return result.error("Can't get reldef builder");
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs