Author: michiel
Date: 2010-04-13 17:49:00 +0200 (Tue, 13 Apr 2010)
New Revision: 41914
Modified:
mmbase/trunk/core/src/main/java/org/mmbase/module/tools/MMAdmin.java
Log:
Removed mmb member. Removed wait-code in init() method
Modified: mmbase/trunk/core/src/main/java/org/mmbase/module/tools/MMAdmin.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/module/tools/MMAdmin.java
2010-04-13 14:33:33 UTC (rev 41913)
+++ mmbase/trunk/core/src/main/java/org/mmbase/module/tools/MMAdmin.java
2010-04-13 15:49:00 UTC (rev 41914)
@@ -19,6 +19,7 @@
import org.mmbase.cache.*;
import org.mmbase.core.CoreField;
import org.mmbase.core.util.Fields;
+import org.mmbase.core.event.*;
import org.mmbase.datatypes.DataType;
import org.mmbase.datatypes.DataTypes;
import org.mmbase.module.Module;
@@ -43,18 +44,12 @@
* @author Pierre van Rooden
* @version $Id$
*/
-public class MMAdmin extends ProcessorModule {
+public class MMAdmin extends ProcessorModule implements SystemEventListener {
private static final Logger log = Logging.getLoggerInstance(MMAdmin.class);
// true: ready (probeCall was called)
private boolean state = false;
-
/**
- * reference to MMBase
- */
- private MMBase mmb = null;
-
- /**
* @javadoc
*/
private String lastmsg = "";
@@ -123,6 +118,7 @@
public MMAdmin(String name) {
super(name);
+ EventManager.getInstance().addEventListener(this);
}
/**
@@ -139,19 +135,20 @@
} catch (SecurityException se) {
log.debug(se);
}
- mmb = MMBase.getMMBase();
- org.mmbase.util.ThreadPools.jobsExecutor.execute(new Runnable() {
- public void run() {
- while (!mmb.getState()) {
- try {Thread.sleep(2000);} catch (InterruptedException
e){ return;}
+ }
+ @Override
+ public void notify(SystemEvent event) {
+ if (event instanceof SystemEvent.Up) {
+ org.mmbase.util.ThreadPools.jobsExecutor.execute(new Runnable() {
+ public void run() {
+ try {
+ MMAdmin.this.probeCall();
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ }
}
- try {
- MMAdmin.this.probeCall();
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- }
- }
- });
+ });
+ }
}
/**
@@ -165,7 +162,7 @@
*/
@Override
public MMObjectBuilder getListBuilder(String command, Map<String, ?>
params) {
- return new VirtualBuilder(mmb);
+ return new VirtualBuilder(MMBase.getMMBase());
}
/**
@@ -180,6 +177,7 @@
if (pos != -1) {
path = path.substring(pos + 1);
}
+ MMBase mmb = MMBase.getMMBase();
return mmb.getBuilder(path);
}
@@ -300,16 +298,16 @@
*/
@Override
public boolean process(PageInfo sp, Hashtable<String,Object> cmds,
Hashtable<String,Object> vars) {
- String cmdline, token;
+ MMBase mmb = MMBase.getMMBase();
for (Enumeration<String> h = cmds.keys(); h.hasMoreElements();) {
- cmdline = h.nextElement();
+ String cmdline = h.nextElement();
log.debug("cmdline: " + cmdline);
if (!checkAdmin(sp, cmdline)) {
log.warn("Could not find cloud for " + sp + " returning false
for process " + cmds + "/" + vars);
return false;
}
StringTokenizer tok = new StringTokenizer(cmdline, "-\n\r");
- token = tok.nextToken();
+ String token = tok.nextToken();
if (token.equals("SERVERRESTART")) {
lastmsg = "Server restart is not implemented any more";
return false;
@@ -320,6 +318,7 @@
log.warn("Found empty app-name in " + cmds + " (used key "
+ cmdline + ")");
}
try {
+
if (new ApplicationInstaller(mmb,
this).installApplication(appname, -1, null, result, new HashSet<String>(),
false)) {
lastmsg = result.getMessage();
} else {
@@ -438,6 +437,7 @@
if (cmd.equals("VERSION")) {
return "" + getVersion(tok.nextToken());
} else if (cmd.equals("INSTALLEDVERSION")) {
+ MMBase mmb = MMBase.getMMBase();
Versions ver = (Versions) mmb.getBuilder("versions");
if (ver == null) {
log.warn("Versions builder not installed, Can't get to
apps");
@@ -534,6 +534,7 @@
// determine xmlpath to a builder, provided it is loaded by MMBase.
private String getXMLPath(String builderName) {
+ MMBase mmb = MMBase.getMMBase();
MMObjectBuilder bul = mmb.getBuilder(builderName);
if (bul==null) {
return "";
@@ -547,6 +548,7 @@
*/
int getBuilderVersion(String builderName) {
int version = -1;
+ MMBase mmb = MMBase.getMMBase();
BuilderReader bul = mmb.getBuilderReader(getXMLPath(builderName) +
builderName);
if (bul != null) {
version = bul.getVersion();
@@ -558,6 +560,7 @@
* @javadoc
*/
String getBuilderClass(String builderName) {
+ MMBase mmb = MMBase.getMMBase();
String className = "";
BuilderReader bul = mmb.getBuilderReader(getXMLPath(builderName) +
builderName);
if (bul != null) {
@@ -630,6 +633,7 @@
* @javadoc
*/
String getBuilderDescription(String builderName) {
+ MMBase mmb = MMBase.getMMBase();
String description = "";
BuilderReader bul = mmb.getBuilderReader(getXMLPath(builderName) +
builderName);
if (bul != null) {
@@ -662,6 +666,7 @@
* warning, if the 'versions' builder could not be found.
*/
protected void probeCall() throws SearchQueryException {
+ MMBase mmb = MMBase.getMMBase();
Versions ver = (Versions)mmb.getBuilder("versions");
if (ver == null) {
log.warn("Versions builder not installed, Can't auto deploy apps");
@@ -690,6 +695,7 @@
log.warn("refused to write application, am in kiosk mode");
return false;
}
+ MMBase mmb = MMBase.getMMBase();
ApplicationReader reader = getApplicationReader(name);
ApplicationWriter writer = new ApplicationWriter(reader, mmb);
writer.setIncludeComments(includeComments);
@@ -731,6 +737,7 @@
*/
Vector<String> getApplicationsList() throws SearchQueryException {
Vector<String> results = new Vector<String>(); //sigh, synchronized,
for what?
+ MMBase mmb = MMBase.getMMBase();
if (mmb == null) {
log.warn("MMBase not yet initialized, Can't get to apps");
return results;
@@ -777,6 +784,7 @@
* @javadoc
*/
List<String> getBuildersList() {
+ MMBase mmb = MMBase.getMMBase();
Versions ver = (Versions)mmb.getBuilder("versions");
List<String> results = new ArrayList<String>();
@@ -840,6 +848,7 @@
* @javadoc
*/
Vector<String> getFields(String builderName) {
+ MMBase mmb = MMBase.getMMBase();
Vector<String> results = new Vector<String>();
BuilderReader bul = mmb.getBuilderReader(getXMLPath(builderName) +
builderName);
if (bul != null) {
@@ -890,6 +899,7 @@
* @javadoc
*/
Vector<String> getDatabasesList() {
+ MMBase mmb = MMBase.getMMBase();
Versions ver = (Versions)mmb.getBuilder("versions");
if (ver == null) {
log.warn("Versions builder not installed, Can't get to builders");
@@ -1233,6 +1243,8 @@
log.warn("Refused set DBSize field, am in kiosk mode");
return;
}
+ MMBase mmb = MMBase.getMMBase();
+
String builder = (String)vars.get("BUILDER");
String fieldname = (String)vars.get("FIELDNAME");
String value = (String)vars.get("VALUE");
@@ -1270,6 +1282,7 @@
log.warn("Refused set setDBField field, am in kiosk mode");
return;
}
+ MMBase mmb = MMBase.getMMBase();
String builder = (String)vars.get("BUILDER");
String fieldname = (String)vars.get("FIELDNAME");
String value = (String)vars.get("VALUE");
@@ -1309,6 +1322,7 @@
String fieldname = (String)vars.get("FIELDNAME");
String value = (String)vars.get("VALUE");
+ MMBase mmb = MMBase.getMMBase();
MMObjectBuilder bul = getBuilder(builder);
CoreField def = bul.getField(fieldname);
if (def != null) {
@@ -1373,6 +1387,7 @@
log.warn("Refused set NotNull field, am in kiosk mode");
return;
}
+ MMBase mmb = MMBase.getMMBase();
String builder = (String)vars.get("BUILDER");
String fieldname = (String)vars.get("FIELDNAME");
String value = (String)vars.get("VALUE");
@@ -1407,6 +1422,7 @@
log.warn("Refused add builder field, am in kiosk mode");
return;
}
+ MMBase mmb = MMBase.getMMBase();
String builder = (String)vars.get("BUILDER");
MMObjectBuilder bul = getBuilder(builder);
if (bul != null) {
@@ -1478,7 +1494,7 @@
String builder = (String) vars.get("BUILDER");
String fieldname = (String) vars.get("FIELDNAME");
String value = (String) vars.get("SURE");
-
+ MMBase mmb = MMBase.getMMBase();
MMObjectBuilder bul = getBuilder(builder);
if (bul != null && value != null && value.equals("Yes")) {
@@ -1567,6 +1583,7 @@
* @javadoc
*/
public Vector<String> getNodeCacheEntries() {
+ MMBase mmb = MMBase.getMMBase();
Vector<String> results = new Vector<String>();
for (MMObjectNode node : NodeCache.getCache().values()) {
results.add("" +
NodeCache.getCache().getCount(node.getIntegerValue("number")));
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs