renaming installer configuration files 2) other cosmetic changes

git-svn-id: https://asterixdb.googlecode.com/svn/branches/asterix_stabilization_ioc@1359 eaa15691-b419-025a-1212-ee371bd00084
diff --git a/asterix-events/src/main/resources/events/node_info/node_info.sh b/asterix-events/src/main/resources/events/node_info/node_info.sh
index ae72490..2179d5a 100755
--- a/asterix-events/src/main/resources/events/node_info/node_info.sh
+++ b/asterix-events/src/main/resources/events/node_info/node_info.sh
@@ -1,4 +1,2 @@
 JAVA_VERSION=`java -version 2>&1 |awk 'NR==1{ gsub(/"/,""); print $3 }'`
-HOME_DIR=`echo ~`
-echo JAVA_VERSION=$JAVA_VERSION
-echo HOME_DIR=$HOME_DIR
+echo "java_version=$JAVA_VERSION" 1>&2
diff --git a/asterix-installer/pom.xml b/asterix-installer/pom.xml
index 28ad995..fa5666a 100644
--- a/asterix-installer/pom.xml
+++ b/asterix-installer/pom.xml
@@ -6,9 +6,7 @@
           <groupId>edu.uci.ics.asterix</groupId>
           <version>0.0.4-SNAPSHOT</version>
   </parent>
-  <groupId>edu.uci.ics.asterix</groupId>
   <artifactId>asterix-installer</artifactId>
-  <version>0.0.4-SNAPSHOT</version>
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/CreateCommand.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/CreateCommand.java
index 177ada5..55e172b 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/CreateCommand.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/CreateCommand.java
@@ -38,82 +38,97 @@
 
 public class CreateCommand extends AbstractCommand {
 
-    private String asterixInstanceName;
-    private Cluster cluster;
+	private String asterixInstanceName;
+	private Cluster cluster;
 
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig();
-        ValidateCommand validateCommand = new ValidateCommand();
-        boolean valid = validateCommand.validateCluster(((CreateConfig) config).clusterPath);
-        if (!valid) {
-            throw new Exception("Cannot create an Asterix instance.");
-        }
-        asterixInstanceName = ((CreateConfig) config).name;
-        InstallerUtil.validateAsterixInstanceNotExists(asterixInstanceName);
-        CreateConfig createConfig = (CreateConfig) config;
-        JAXBContext ctx = JAXBContext.newInstance(Cluster.class);
-        Unmarshaller unmarshaller = ctx.createUnmarshaller();
-        cluster = (Cluster) unmarshaller.unmarshal(new File(createConfig.clusterPath));
-        cluster.setWorkingDir(new WorkingDir(cluster.getWorkingDir().getDir() + File.separator + asterixInstanceName,
-                cluster.getWorkingDir().isNFS()));
-        cluster.setLogdir(cluster.getLogdir() + File.separator + asterixInstanceName);
-        AsterixInstance asterixInstance = InstallerUtil.createAsterixInstance(asterixInstanceName, cluster);
-        InstallerUtil.evaluateConflictWithOtherInstances(asterixInstance);
-        InstallerUtil.createAsterixZip(asterixInstance, true);
-        List<Property> clusterProperties = new ArrayList<Property>();
-        clusterProperties.add(new Property("ASTERIX_HOME", cluster.getWorkingDir().getDir() + File.separator
-                + "asterix"));
-        clusterProperties.add(new Property("JAVA_OPTS", "-Xmx" + cluster.getRam()));
-        clusterProperties.add(new Property("CLUSTER_NET_IP", cluster.getMasterNode().getClusterIp()));
-        clusterProperties.add(new Property("CLIENT_NET_IP", cluster.getMasterNode().getIp()));
-        clusterProperties.add(new Property("LOG_DIR", cluster.getLogdir()));
-        clusterProperties.add(new Property("JAVA_HOME", cluster.getJavaHome()));
-        clusterProperties.add(new Property("WORKING_DIR", cluster.getWorkingDir().getDir()));
-        cluster.setEnv(new Env(clusterProperties));
+	@Override
+	protected void execCommand() throws Exception {
+		InstallerDriver.initConfig();
+		ValidateCommand validateCommand = new ValidateCommand();
+		boolean valid = validateCommand
+				.validateCluster(((CreateConfig) config).clusterPath);
+		if (!valid) {
+			throw new Exception("Cannot create an Asterix instance.");
+		}
+		asterixInstanceName = ((CreateConfig) config).name;
+		InstallerUtil.validateAsterixInstanceNotExists(asterixInstanceName);
+		CreateConfig createConfig = (CreateConfig) config;
+		JAXBContext ctx = JAXBContext.newInstance(Cluster.class);
+		Unmarshaller unmarshaller = ctx.createUnmarshaller();
+		cluster = (Cluster) unmarshaller.unmarshal(new File(
+				createConfig.clusterPath));
+		cluster.setWorkingDir(new WorkingDir(cluster.getWorkingDir().getDir()
+				+ File.separator + asterixInstanceName, cluster.getWorkingDir()
+				.isNFS()));
+		cluster.setLogdir(cluster.getLogdir() + File.separator
+				+ asterixInstanceName);
+		AsterixInstance asterixInstance = InstallerUtil.createAsterixInstance(
+				asterixInstanceName, cluster);
+		InstallerUtil.evaluateConflictWithOtherInstances(asterixInstance);
+		InstallerUtil.createAsterixZip(asterixInstance, true);
+		List<Property> clusterProperties = new ArrayList<Property>();
+		clusterProperties.add(new Property("ASTERIX_HOME", cluster
+				.getWorkingDir().getDir() + File.separator + "asterix"));
+		clusterProperties.add(new Property("JAVA_OPTS", "-Xmx"
+				+ cluster.getRam()));
+		clusterProperties.add(new Property("CLUSTER_NET_IP", cluster
+				.getMasterNode().getClusterIp()));
+		clusterProperties.add(new Property("CLIENT_NET_IP", cluster
+				.getMasterNode().getIp()));
+		clusterProperties.add(new Property("LOG_DIR", cluster.getLogdir()));
+		clusterProperties.add(new Property("JAVA_HOME", cluster.getJavaHome()));
+		clusterProperties.add(new Property("WORKING_DIR", cluster
+				.getWorkingDir().getDir()));
+		cluster.setEnv(new Env(clusterProperties));
 
-        PatternCreator pc = new PatternCreator();
-        Patterns patterns = pc.getStartAsterixPattern(asterixInstanceName, cluster);
-        InstallerUtil.getEventrixClient(cluster).submit(patterns);
+		PatternCreator pc = new PatternCreator();
+		Patterns patterns = pc.getStartAsterixPattern(asterixInstanceName,
+				cluster);
+		InstallerUtil.getEventrixClient(cluster).submit(patterns);
 
-        AsterixRuntimeState runtimeState = VerificationUtil.getAsterixRuntimeState(asterixInstance);
-        VerificationUtil.updateInstanceWithRuntimeDescription(asterixInstance, runtimeState, true);
-        ServiceProvider.INSTANCE.getLookupService().writeAsterixInstance(asterixInstance);
-        InstallerUtil.deleteDirectory(InstallerDriver.getManagixHome() + File.separator + InstallerDriver.ASTERIX_DIR
-                + File.separator + asterixInstanceName);
-        LOGGER.info(asterixInstance.getDescription(false));
-    }
+		AsterixRuntimeState runtimeState = VerificationUtil
+				.getAsterixRuntimeState(asterixInstance);
+		VerificationUtil.updateInstanceWithRuntimeDescription(asterixInstance,
+				runtimeState, true);
+		ServiceProvider.INSTANCE.getLookupService().writeAsterixInstance(
+				asterixInstance);
+		InstallerUtil.deleteDirectory(InstallerDriver.getManagixHome()
+				+ File.separator + InstallerDriver.ASTERIX_DIR + File.separator
+				+ asterixInstanceName);
+		LOGGER.info(asterixInstance.getDescription(false));
+	}
 
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new CreateConfig();
-    }
+	@Override
+	protected CommandConfig getCommandConfig() {
+		return new CreateConfig();
+	}
 
-    public Cluster getCluster() {
-        return cluster;
-    }
+	public Cluster getCluster() {
+		return cluster;
+	}
 
-    public String getAsterixInstanceName() {
-        return asterixInstanceName;
-    }
+	public String getAsterixInstanceName() {
+		return asterixInstanceName;
+	}
 
-    @Override
-    protected String getUsageDescription() {
-        return "\nCreates an ASTERIX instance with a specified name."
-                + "\n\nPost creation, the instance is in ACTIVE state, signifying its "
-                + "\navailability for executing statements/queries." + "\n\nUsage arguments/options:"
-                + "\n-n Name of the ASTERIX instance." + "\n-c Path to the cluster configuration file"
-                + "\n-a Path to the ASTERIX configuration file";
-    }
+	@Override
+	protected String getUsageDescription() {
+		return "\nCreates an ASTERIX instance with a specified name."
+				+ "\n\nPost creation, the instance is in ACTIVE state, indicating its "
+				+ "\navailability for executing statements/queries."
+				+ "\n\nUsage arguments/options:"
+				+ "\n-n Name of the ASTERIX instance."
+				+ "\n-c Path to the cluster configuration file";
+	}
 
 }
 
 class CreateConfig extends AbstractCommandConfig {
 
-    @Option(name = "-n", required = true, usage = "Name of Asterix Instance")
-    public String name;
+	@Option(name = "-n", required = true, usage = "Name of Asterix Instance")
+	public String name;
 
-    @Option(name = "-c", required = true, usage = "Path to cluster configuration")
-    public String clusterPath;
+	@Option(name = "-c", required = true, usage = "Path to cluster configuration")
+	public String clusterPath;
 
 }
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/DeleteCommand.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/DeleteCommand.java
index d32284a..a2788b4 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/DeleteCommand.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/DeleteCommand.java
@@ -26,34 +26,41 @@
 
 public class DeleteCommand extends AbstractCommand {
 
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig();
-        String asterixInstanceName = ((DeleteConfig) config).name;
-        AsterixInstance instance = InstallerUtil.validateAsterixInstanceExists(asterixInstanceName, State.INACTIVE);
-        PatternCreator pc = new PatternCreator();
-        Patterns patterns = pc.createDeleteInstancePattern(instance);
-        InstallerUtil.getEventrixClient(instance.getCluster()).submit(patterns);
-        ServiceProvider.INSTANCE.getLookupService().removeAsterixInstance(asterixInstanceName);
-        LOGGER.info("Deleted Asterix instance: " + asterixInstanceName);
-    }
+	@Override
+	protected void execCommand() throws Exception {
+		InstallerDriver.initConfig();
+		String asterixInstanceName = ((DeleteConfig) config).name;
+		AsterixInstance instance = InstallerUtil.validateAsterixInstanceExists(
+				asterixInstanceName, State.INACTIVE);
+		PatternCreator pc = new PatternCreator();
+		Patterns patterns = pc.createDeleteInstancePattern(instance);
+		InstallerUtil.getEventrixClient(instance.getCluster()).submit(patterns);
 
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new DeleteConfig();
-    }
+		patterns = pc.createRemoveAsterixWorkingDirPattern(instance);
+		InstallerUtil.getEventrixClient(instance.getCluster()).submit(patterns);
+		ServiceProvider.INSTANCE.getLookupService().removeAsterixInstance(
+				asterixInstanceName);
+		LOGGER.info("Deleted Asterix instance: " + asterixInstanceName);
+	}
 
-    @Override
-    protected String getUsageDescription() {
-        return "\nPermanently deletes an ASTERIX instance." + "\n" + "The instance must be in the INACTIVE state."
-                + "\n\nAvailable arguments/options" + "\n-n name of the ASTERIX instance.";
-    }
+	@Override
+	protected CommandConfig getCommandConfig() {
+		return new DeleteConfig();
+	}
+
+	@Override
+	protected String getUsageDescription() {
+		return "\nPermanently deletes an ASTERIX instance." + "\n"
+				+ "The instance must be in the INACTIVE state."
+				+ "\n\nAvailable arguments/options"
+				+ "\n-n name of the ASTERIX instance.";
+	}
 
 }
 
 class DeleteConfig extends AbstractCommandConfig {
 
-    @Option(name = "-n", required = true, usage = "Name of Asterix Instance")
-    public String name;
+	@Option(name = "-n", required = true, usage = "Name of Asterix Instance")
+	public String name;
 
 }
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/DescribeCommand.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/DescribeCommand.java
index 63dcc30..bec82d5 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/DescribeCommand.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/DescribeCommand.java
@@ -29,63 +29,77 @@
 
 public class DescribeCommand extends AbstractCommand {
 
-    @Override
-    protected void execCommand() throws Exception {
-        InstallerDriver.initConfig();
-        String asterixInstanceName = ((DescribeConfig) config).name;
-        boolean adminView = ((DescribeConfig) config).admin;
-        if (asterixInstanceName != null) {
-            InstallerUtil.validateAsterixInstanceExists(asterixInstanceName, State.INACTIVE, State.ACTIVE,
-                    State.UNUSABLE);
-            AsterixInstance instance = ServiceProvider.INSTANCE.getLookupService().getAsterixInstance(
-                    asterixInstanceName);
-            if (instance != null) {
-                AsterixRuntimeState state = VerificationUtil.getAsterixRuntimeState(instance);
-                boolean expectedRunning = instance.getState().equals(State.UNUSABLE) ? instance.getPreviousState()
-                        .equals(State.ACTIVE) : !instance.getState().equals(State.INACTIVE);
-                VerificationUtil.updateInstanceWithRuntimeDescription(instance, state, expectedRunning);
-                ServiceProvider.INSTANCE.getLookupService().updateAsterixInstance(instance);
-                LOGGER.info(instance.getDescription(adminView));
-            } else {
-                throw new InstallerException("Asterix instance by the name " + asterixInstanceName + " does not exist.");
-            }
-        } else {
-            List<AsterixInstance> asterixInstances = ServiceProvider.INSTANCE.getLookupService().getAsterixInstances();
-            if (asterixInstances.size() > 0) {
-                for (AsterixInstance instance : asterixInstances) {
-                    AsterixRuntimeState state = VerificationUtil.getAsterixRuntimeState(instance);
-                    boolean expectedRunning = instance.getState().equals(State.UNUSABLE) ? instance.getPreviousState()
-                            .equals(State.ACTIVE) : !instance.getState().equals(State.INACTIVE);
-                    VerificationUtil.updateInstanceWithRuntimeDescription(instance, state, expectedRunning);
-                    ServiceProvider.INSTANCE.getLookupService().updateAsterixInstance(instance);
-                    LOGGER.info(instance.getDescription(adminView));
-                }
-            } else {
-                LOGGER.info("No Asterix instances found!");
-            }
+	@Override
+	protected void execCommand() throws Exception {
+		InstallerDriver.initConfig();
+		String asterixInstanceName = ((DescribeConfig) config).name;
+		boolean adminView = ((DescribeConfig) config).admin;
+		if (asterixInstanceName != null) {
+			InstallerUtil.validateAsterixInstanceExists(asterixInstanceName,
+					State.INACTIVE, State.ACTIVE, State.UNUSABLE);
+			AsterixInstance instance = ServiceProvider.INSTANCE
+					.getLookupService().getAsterixInstance(asterixInstanceName);
+			if (instance != null) {
+				AsterixRuntimeState state = VerificationUtil
+						.getAsterixRuntimeState(instance);
+				boolean expectedRunning = instance.getState().equals(
+						State.UNUSABLE) ? instance.getPreviousState().equals(
+						State.ACTIVE) : !instance.getState().equals(
+						State.INACTIVE);
+				VerificationUtil.updateInstanceWithRuntimeDescription(instance,
+						state, expectedRunning);
+				ServiceProvider.INSTANCE.getLookupService()
+						.updateAsterixInstance(instance);
+				LOGGER.info(instance.getDescription(adminView));
+			} else {
+				throw new InstallerException("Asterix instance by the name "
+						+ asterixInstanceName + " does not exist.");
+			}
+		} else {
+			List<AsterixInstance> asterixInstances = ServiceProvider.INSTANCE
+					.getLookupService().getAsterixInstances();
+			if (asterixInstances.size() > 0) {
+				for (AsterixInstance instance : asterixInstances) {
+					AsterixRuntimeState state = VerificationUtil
+							.getAsterixRuntimeState(instance);
+					boolean expectedRunning = instance.getState().equals(
+							State.UNUSABLE) ? instance.getPreviousState()
+							.equals(State.ACTIVE) : !instance.getState()
+							.equals(State.INACTIVE);
+					VerificationUtil.updateInstanceWithRuntimeDescription(
+							instance, state, expectedRunning);
+					ServiceProvider.INSTANCE.getLookupService()
+							.updateAsterixInstance(instance);
+					LOGGER.info(instance.getDescription(adminView));
+				}
+			} else {
+				LOGGER.info("No Asterix instances found!");
+			}
 
-        }
-    }
+		}
+	}
 
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new DescribeConfig();
-    }
+	@Override
+	protected CommandConfig getCommandConfig() {
+		return new DescribeConfig();
+	}
 
-    @Override
-    protected String getUsageDescription() {
-        return "\nProvides information about an ASTERIX instance." + "\n\nUsage arguments/options:-"
-                + "\n[-n] Name of the ASTERIX instance." + "\n[-admin] Provides a detailed description";
-    }
+	@Override
+	protected String getUsageDescription() {
+		return "\nProvides information about an ASTERIX instance."
+				+ "\n\nUsage arguments/options:-"
+				+ "\n[-n]       Name of the ASTERIX instance."
+				+ "\n[-admin]   Provides a detailed description";
+	}
 
 }
 
 class DescribeConfig extends AbstractCommandConfig {
 
-    @Option(name = "-n", required = false, usage = "Name of Asterix Instance")
-    public String name;
+	@Option(name = "-n", required = false, usage = "Name of Asterix Instance")
+	public String name;
 
-    @Option(name = "-admin", required = false, usage = "Detailed description")
-    public boolean admin;
+	@Option(name = "-admin", required = false, usage = "Detailed description")
+	public boolean admin;
 
 }
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/RestoreCommand.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/RestoreCommand.java
index 958ce6c..49629a4 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/RestoreCommand.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/RestoreCommand.java
@@ -55,7 +55,7 @@
     protected String getUsageDescription() {
         return "\nRestores an ASTERIX instance's data from a previously taken backup snapshot."
                 + "\n\nAvailable arguments/options" + "\n-n name of the ASTERIX instance"
-                + "\n-b id of the backed up snapshot ";
+                + "\n-b id of the backup snapshot ";
     }
 
 }
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/ValidateCommand.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/ValidateCommand.java
index 9638ac6..dcdbe18 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/ValidateCommand.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/ValidateCommand.java
@@ -29,214 +29,247 @@
 import edu.uci.ics.asterix.event.schema.cluster.Cluster;
 import edu.uci.ics.asterix.event.schema.cluster.MasterNode;
 import edu.uci.ics.asterix.event.schema.cluster.Node;
+import edu.uci.ics.asterix.event.schema.pattern.Patterns;
 import edu.uci.ics.asterix.installer.driver.InstallerDriver;
+import edu.uci.ics.asterix.installer.driver.InstallerUtil;
+import edu.uci.ics.asterix.installer.events.PatternCreator;
 import edu.uci.ics.asterix.installer.schema.conf.Configuration;
 import edu.uci.ics.asterix.installer.schema.conf.Zookeeper;
 
 public class ValidateCommand extends AbstractCommand {
 
-    private static final String OK = " [" + "\u2713" + "]";
-    private static final String ERROR = " [" + "x" + "]";
-    private static final String WARNING = " [" + "!" + "]";
+	private static final String OK = " [" + "\u2713" + "]";
+	private static final String ERROR = " [" + "x" + "]";
+	private static final String WARNING = " [" + "!" + "]";
 
-    @Override
-    protected void execCommand() throws Exception {
-        ValidateConfig vConfig = (ValidateConfig) config;
-        logValidationResult("Enviornment", validateEnvironment());
-        if (((ValidateConfig) config).cluster != null) {
-            logValidationResult("Cluster configuration", validateCluster(vConfig.cluster));
-        } else {
-            logValidationResult("Installer Configuration", validateConfiguration());
-        }
-    }
+	@Override
+	protected void execCommand() throws Exception {
+		ValidateConfig vConfig = (ValidateConfig) config;
+		logValidationResult("Enviornment", validateEnvironment());
+		if (((ValidateConfig) config).cluster != null) {
+			logValidationResult("Cluster configuration",
+					validateCluster(vConfig.cluster));
+		} else {
+			logValidationResult("Installer Configuration",
+					validateConfiguration());
+		}
+	}
 
-    private void logValidationResult(String prefix, boolean isValid) {
-        if (!isValid) {
-            LOGGER.fatal(prefix + ERROR);
-        } else {
-            LOGGER.info(prefix + OK);
-        }
-    }
+	private void logValidationResult(String prefix, boolean isValid) {
+		if (!isValid) {
+			LOGGER.fatal(prefix + ERROR);
+		} else {
+			LOGGER.info(prefix + OK);
+		}
+	}
 
-    @Override
-    protected CommandConfig getCommandConfig() {
-        return new ValidateConfig();
-    }
+	@Override
+	protected CommandConfig getCommandConfig() {
+		return new ValidateConfig();
+	}
 
-    @Override
-    protected String getUsageDescription() {
-        return "\nValidate the installer's configuration or a cluster configuration" + "\nUsage"
-                + "\nFor validating the installer configuration" + "\n use $ managix validate"
-                + "\n\nFor validating a cluster configuration"
-                + "\n$ use managix validate -c <path to the cluster configuration file>";
-    }
+	@Override
+	protected String getUsageDescription() {
+		return "\nValidate the installer's configuration or a cluster configuration"
+				+ "\nUsage"
+				+ "\nFor validating the installer configuration"
+				+ "\n use $ managix validate"
+				+ "\n\nFor validating a cluster configuration"
+				+ "\n$ use managix validate -c <path to the cluster configuration file>";
+	}
 
-    public boolean validateEnvironment() throws Exception {
-        boolean valid = true;
-        String managixHome = System.getenv(InstallerDriver.ENV_MANAGIX_HOME);
-        if (managixHome == null) {
-            valid = false;
-            LOGGER.fatal(InstallerDriver.ENV_MANAGIX_HOME + " not set " + ERROR);
-        } else {
-            File home = new File(managixHome);
-            if (!home.exists()) {
-                valid = false;
-                LOGGER.fatal(InstallerDriver.ENV_MANAGIX_HOME + ": " + home.getAbsolutePath() + " does not exist!"
-                        + ERROR);
-            }
-        }
-        return valid;
+	public boolean validateEnvironment() throws Exception {
+		boolean valid = true;
+		String managixHome = System.getenv(InstallerDriver.ENV_MANAGIX_HOME);
+		if (managixHome == null) {
+			valid = false;
+			LOGGER.fatal(InstallerDriver.ENV_MANAGIX_HOME + " not set " + ERROR);
+		} else {
+			File home = new File(managixHome);
+			if (!home.exists()) {
+				valid = false;
+				LOGGER.fatal(InstallerDriver.ENV_MANAGIX_HOME + ": "
+						+ home.getAbsolutePath() + " does not exist!" + ERROR);
+			}
+		}
+		return valid;
 
-    }
+	}
 
-    public boolean validateCluster(String clusterPath) throws Exception {
-        boolean valid = true;
-        File f = new File(clusterPath);
-        if (!f.exists() || !f.isFile()) {
-            LOGGER.error(" Invalid path " + f.getAbsolutePath() + ERROR);
-            valid = false;
-        } else {
-            JAXBContext ctx = JAXBContext.newInstance(Cluster.class);
-            Unmarshaller unmarshaller = ctx.createUnmarshaller();
-            Cluster cluster = (Cluster) unmarshaller.unmarshal(new File(clusterPath));
-            validateClusterProperties(cluster);
+	public boolean validateCluster(String clusterPath) throws Exception {
+		boolean valid = true;
+		Cluster cluster = null;
+		File f = new File(clusterPath);
+		if (!f.exists() || !f.isFile()) {
+			LOGGER.error(" Invalid path " + f.getAbsolutePath() + ERROR);
+			valid = false;
+		} else {
+			JAXBContext ctx = JAXBContext.newInstance(Cluster.class);
+			Unmarshaller unmarshaller = ctx.createUnmarshaller();
+			cluster = (Cluster) unmarshaller.unmarshal(new File(clusterPath));
+			validateClusterProperties(cluster);
 
-            Set<String> servers = new HashSet<String>();
-            Set<String> serverIds = new HashSet<String>();
-            servers.add(cluster.getMasterNode().getIp());
-            serverIds.add(cluster.getMasterNode().getId());
+			Set<String> servers = new HashSet<String>();
+			Set<String> serverIds = new HashSet<String>();
+			servers.add(cluster.getMasterNode().getIp());
+			serverIds.add(cluster.getMasterNode().getId());
 
-            MasterNode masterNode = cluster.getMasterNode();
-            Node master = new Node(masterNode.getId(), masterNode.getIp(), masterNode.getRam(),
-                    masterNode.getJavaHome(), masterNode.getLogdir(), null, masterNode.getDebug());
+			MasterNode masterNode = cluster.getMasterNode();
+			Node master = new Node(masterNode.getId(), masterNode.getIp(),
+					masterNode.getRam(), masterNode.getJavaHome(),
+					masterNode.getLogdir(), null, masterNode.getDebug());
 
-            valid = valid & validateNodeConfiguration(master, cluster);
+			valid = valid & validateNodeConfiguration(master, cluster);
 
-            for (Node node : cluster.getNode()) {
-                servers.add(node.getIp());
-                if (serverIds.contains(node.getId())) {
-                    valid = false;
-                    LOGGER.error("Duplicate node id :" + node.getId() + ERROR);
-                } else {
-                    valid = valid & validateNodeConfiguration(node, cluster);
-                }
-            }
-        }
-        return valid;
-    }
+			for (Node node : cluster.getNode()) {
+				servers.add(node.getIp());
+				if (serverIds.contains(node.getId())) {
+					valid = false;
+					LOGGER.error("Duplicate node id :" + node.getId() + ERROR);
+				} else {
+					valid = valid & validateNodeConfiguration(node, cluster);
+				}
+			}
+		}
 
-    private void validateClusterProperties(Cluster cluster) {
-        List<String> tempDirs = new ArrayList<String>();
-        if (cluster.getLogdir() != null && checkTemporaryPath(cluster.getLogdir())) {
-            tempDirs.add("Log directory: " + cluster.getLogdir());
-        }
-        if (cluster.getStore() != null && checkTemporaryPath(cluster.getStore())) {
-            tempDirs.add("Store directory: " + cluster.getStore());
-        }
+		if (valid) {
+			checkJavaVersion(cluster);
+		}
+		return valid;
+	}
 
-        if (tempDirs.size() > 0) {
-            StringBuffer msg = new StringBuffer();
-            msg.append("The following paths are subject to be cleaned up by OS");
-            for (String tempDir : tempDirs) {
-                msg.append("\n" + tempDir + WARNING);
-            }
-            LOGGER.warn(msg);
-        }
+	private void checkJavaVersion(Cluster cluster) throws Exception {
+		PatternCreator pc = new PatternCreator();
+		Patterns patterns = pc.getClusterInfoPattern(cluster);
+		InstallerUtil.getEventrixClient(cluster).submit(patterns);
+	}
 
-    }
+	private void validateClusterProperties(Cluster cluster) {
+		List<String> tempDirs = new ArrayList<String>();
+		if (cluster.getLogdir() != null
+				&& checkTemporaryPath(cluster.getLogdir())) {
+			tempDirs.add("Log directory: " + cluster.getLogdir());
+		}
+		if (cluster.getStore() != null
+				&& checkTemporaryPath(cluster.getStore())) {
+			tempDirs.add("Store directory: " + cluster.getStore());
+		}
 
-    private boolean validateNodeConfiguration(Node node, Cluster cluster) {
-        boolean valid = true;
-        valid = checkNodeReachability(node.getIp());
-        if (node.getJavaHome() == null || node.getJavaHome().length() == 0) {
-            if (cluster.getJavaHome() == null || cluster.getJavaHome().length() == 0) {
-                valid = false;
-                LOGGER.fatal("java_home not defined at cluster/node level for node: " + node.getId() + ERROR);
-            }
-        }
+		if (tempDirs.size() > 0) {
+			StringBuffer msg = new StringBuffer();
+			msg.append("The following paths are subject to be cleaned up by OS");
+			for (String tempDir : tempDirs) {
+				msg.append("\n" + tempDir + WARNING);
+			}
+			LOGGER.warn(msg);
+		}
 
-        if (node.getLogdir() == null || node.getLogdir().length() == 0) {
-            if (cluster.getLogdir() == null || cluster.getLogdir().length() == 0) {
-                valid = false;
-                LOGGER.fatal("log_dir not defined at cluster/node level for node: " + node.getId() + ERROR);
-            }
-        }
+	}
 
-        if (node.getStore() == null || cluster.getStore().length() == 0) {
-            if (cluster.getMasterNode().getId().equals(node.getId())
-                    && (cluster.getStore() == null || cluster.getStore().length() == 0)) {
-                valid = false;
-                LOGGER.fatal("store not defined at cluster/node level for node: " + node.getId() + ERROR);
-            }
-        }
+	private boolean validateNodeConfiguration(Node node, Cluster cluster) {
+		boolean valid = true;
+		valid = checkNodeReachability(node.getIp());
+		if (node.getJavaHome() == null || node.getJavaHome().length() == 0) {
+			if (cluster.getJavaHome() == null
+					|| cluster.getJavaHome().length() == 0) {
+				valid = false;
+				LOGGER.fatal("java_home not defined at cluster/node level for node: "
+						+ node.getId() + ERROR);
+			}
+		}
 
-        if (node.getRam() == null || node.getRam().length() == 0) {
-            if (cluster.getRam() == null || cluster.getRam().length() == 0) {
-                valid = false;
-                LOGGER.fatal("ram not defined at cluster/node level for node: " + node.getId() + ERROR);
-            }
-        }
-        return valid;
-    }
+		if (node.getLogdir() == null || node.getLogdir().length() == 0) {
+			if (cluster.getLogdir() == null
+					|| cluster.getLogdir().length() == 0) {
+				valid = false;
+				LOGGER.fatal("log_dir not defined at cluster/node level for node: "
+						+ node.getId() + ERROR);
+			}
+		}
 
-    private boolean checkTemporaryPath(String logdir) {
-        return logdir.startsWith("/tmp/");
+		if (node.getStore() == null || cluster.getStore().length() == 0) {
+			if (cluster.getMasterNode().getId().equals(node.getId())
+					&& (cluster.getStore() == null || cluster.getStore()
+							.length() == 0)) {
+				valid = false;
+				LOGGER.fatal("store not defined at cluster/node level for node: "
+						+ node.getId() + ERROR);
+			}
+		}
 
-    }
+		if (node.getRam() == null || node.getRam().length() == 0) {
+			if (cluster.getRam() == null || cluster.getRam().length() == 0) {
+				valid = false;
+				LOGGER.fatal("ram not defined at cluster/node level for node: "
+						+ node.getId() + ERROR);
+			}
+		}
+		return valid;
+	}
 
-    public boolean validateConfiguration() throws Exception {
-        String managixHome = System.getenv(InstallerDriver.ENV_MANAGIX_HOME);
-        File configFile = new File(managixHome + File.separator + InstallerDriver.MANAGIX_CONF_XML);
-        JAXBContext configCtx = JAXBContext.newInstance(Configuration.class);
-        Unmarshaller unmarshaller = configCtx.createUnmarshaller();
-        Configuration conf = (Configuration) unmarshaller.unmarshal(configFile);
-        return validateZookeeperConfiguration(conf);
-    }
+	private boolean checkTemporaryPath(String logdir) {
+		return logdir.startsWith("/tmp/");
 
-    private boolean validateZookeeperConfiguration(Configuration conf) throws Exception {
-        boolean valid = true;
-        Zookeeper zk = conf.getZookeeper();
+	}
 
-        if (zk.getHomeDir() == null || zk.getHomeDir().length() == 0) {
-            valid = false;
-            LOGGER.fatal("Zookeeper home dir not configured" + ERROR);
-        } else if (checkTemporaryPath(zk.getHomeDir())) {
-            LOGGER.warn("Zookeeper home dir is subject to be cleaned up by OS" + WARNING);
-        }
+	public boolean validateConfiguration() throws Exception {
+		String managixHome = System.getenv(InstallerDriver.ENV_MANAGIX_HOME);
+		File configFile = new File(managixHome + File.separator
+				+ InstallerDriver.MANAGIX_CONF_XML);
+		JAXBContext configCtx = JAXBContext.newInstance(Configuration.class);
+		Unmarshaller unmarshaller = configCtx.createUnmarshaller();
+		Configuration conf = (Configuration) unmarshaller.unmarshal(configFile);
+		return validateZookeeperConfiguration(conf);
+	}
 
-        if (zk.getServers().getServer().isEmpty()) {
-            valid = false;
-            LOGGER.fatal("Zookeeper servers not configured" + ERROR);
-        }
+	private boolean validateZookeeperConfiguration(Configuration conf)
+			throws Exception {
+		boolean valid = true;
+		Zookeeper zk = conf.getZookeeper();
 
-        boolean validEnsemble = true;
-        for (String server : zk.getServers().getServer()) {
-            validEnsemble = validEnsemble && checkNodeReachability(server);
-        }
+		if (zk.getHomeDir() == null || zk.getHomeDir().length() == 0) {
+			valid = false;
+			LOGGER.fatal("Zookeeper home dir not configured" + ERROR);
+		} else if (checkTemporaryPath(zk.getHomeDir())) {
+			LOGGER.warn("Zookeeper home dir is subject to be cleaned up by OS"
+					+ WARNING);
+		}
 
-        return valid;
-    }
+		if (zk.getServers().getServer().isEmpty()) {
+			valid = false;
+			LOGGER.fatal("Zookeeper servers not configured" + ERROR);
+		}
 
-    private boolean checkNodeReachability(String server) {
-        boolean reachable = true;
-        try {
-            InetAddress address = InetAddress.getByName(server);
-            if (!address.isReachable(1000)) {
-                LOGGER.fatal("\n" + "Server: " + server + " unreachable" + ERROR);
-                reachable = false;
-            }
-        } catch (Exception e) {
-            reachable = false;
-            LOGGER.fatal("\n" + "Server: " + server + " Invalid address" + ERROR);
-        }
-        return reachable;
-    }
+		boolean validEnsemble = true;
+		for (String server : zk.getServers().getServer()) {
+			validEnsemble = validEnsemble && checkNodeReachability(server);
+		}
+
+		return valid;
+	}
+
+	private boolean checkNodeReachability(String server) {
+		boolean reachable = true;
+		try {
+			InetAddress address = InetAddress.getByName(server);
+			if (!address.isReachable(1000)) {
+				LOGGER.fatal("\n" + "Server: " + server + " unreachable"
+						+ ERROR);
+				reachable = false;
+			}
+		} catch (Exception e) {
+			reachable = false;
+			LOGGER.fatal("\n" + "Server: " + server + " Invalid address"
+					+ ERROR);
+		}
+		return reachable;
+	}
 
 }
 
 class ValidateConfig extends AbstractCommandConfig {
 
-    @Option(name = "-c", required = false, usage = "Path to the cluster configuration xml")
-    public String cluster;
+	@Option(name = "-c", required = false, usage = "Path to the cluster configuration xml")
+	public String cluster;
 
 }
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/driver/InstallerDriver.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/driver/InstallerDriver.java
index 6cfa355..321fd1a 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/driver/InstallerDriver.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/driver/InstallerDriver.java
@@ -39,7 +39,7 @@
 
     private static final Logger LOGGER = Logger.getLogger(InstallerDriver.class.getName());
     public static final String ENV_MANAGIX_HOME = "MANAGIX_HOME";
-    public static final String MANAGIX_CONF_XML = "conf" + File.separator + "installer-conf.xml";
+    public static final String MANAGIX_CONF_XML = "conf" + File.separator + "managix-conf.xml";
 
     private static Configuration conf;
     private static String managixHome;
@@ -109,7 +109,7 @@
             LOGGER.error("Unknown command");
             printUsage();
         } catch (Exception e) {
-            LOGGER.error(e);
+            LOGGER.error(e.getMessage());
         }
     }
 
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/error/OutputHandler.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/error/OutputHandler.java
index 3fa42bd..4699402 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/error/OutputHandler.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/error/OutputHandler.java
@@ -69,13 +69,13 @@
                     p.load(new ByteArrayInputStream(trimmedOutput.getBytes()));
                 } catch (IOException e) {
                 }
-                String javaVersion = (String) p.get("JAVA_VERSION");
-                if (p.get("JAVA_VERSION") == null) {
+                String javaVersion = (String) p.get("java_version");
+                if (p.get("java_version") == null) {
                     errorMessage.append("Java not installed on " + event.getNodeid().getValue().getAbsvalue());
                     ignore = false;
-                } else if (!javaVersion.contains("1.8")) {
+                } else if (!javaVersion.contains("1.7")) {
                     errorMessage.append("Asterix requires Java 1.7.x. Incompatible version found on  "
-                            + event.getNodeid().getValue().getAbsvalue());
+                            + event.getNodeid().getValue().getAbsvalue() + "\n");
                     ignore = false;
                 }
                 break;
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/events/PatternCreator.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/events/PatternCreator.java
index 0f51225..46b909c 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/events/PatternCreator.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/events/PatternCreator.java
@@ -295,7 +295,6 @@
 
             }
         }
-        patternList.addAll(createRemoveAsterixWorkingDirPattern(instance).getPattern());
         patternList.addAll(createRemoveAsterixLogDirPattern(instance).getPattern());
         Patterns patterns = new Patterns(patternList);
         return patterns;
@@ -338,7 +337,7 @@
         return patterns;
     }
 
-    private Patterns createRemoveAsterixWorkingDirPattern(AsterixInstance instance) throws Exception {
+    public Patterns createRemoveAsterixWorkingDirPattern(AsterixInstance instance) throws Exception {
         List<Pattern> patternList = new ArrayList<Pattern>();
         Cluster cluster = instance.getCluster();
         String workingDir = cluster.getWorkingDir().getDir();
diff --git a/asterix-installer/src/main/resources/clusters/local/local.xml b/asterix-installer/src/main/resources/clusters/local/local.xml
index 827b3fa..1413999 100644
--- a/asterix-installer/src/main/resources/clusters/local/local.xml
+++ b/asterix-installer/src/main/resources/clusters/local/local.xml
@@ -17,8 +17,4 @@
      <id>node1</id>
      <ip>127.0.0.1</ip>
   </node>
-  <node>
-     <id>node2</id>
-     <ip>127.0.0.1</ip>
-  </node>
 </cluster>
diff --git a/asterix-installer/src/main/resources/conf/installer-conf.xml b/asterix-installer/src/main/resources/conf/managix-conf.xml
similarity index 100%
rename from asterix-installer/src/main/resources/conf/installer-conf.xml
rename to asterix-installer/src/main/resources/conf/managix-conf.xml
diff --git a/pom.xml b/pom.xml
index 592edc5..b82b253 100644
--- a/pom.xml
+++ b/pom.xml
@@ -82,11 +82,11 @@
                 <module>asterix-hyracks-glue</module>
                 <module>asterix-external-data</module>
                 <module>asterix-metadata</module>
-                <module>asterix-installer</module>
-                <module>asterix-events</module>
                 <module>asterix-test-framework</module>
                 <module>asterix-maven-plugins</module>
                 <module>asterix-server</module>
+                <module>asterix-installer</module>
+                <module>asterix-events</module>
         </modules>
 
 	<repositories>