diff --git a/asterix-installer/src/main/assembly/binary-assembly.xml b/asterix-installer/src/main/assembly/binary-assembly.xml
index 8b52fc4..e096ee4 100644
--- a/asterix-installer/src/main/assembly/binary-assembly.xml
+++ b/asterix-installer/src/main/assembly/binary-assembly.xml
@@ -75,8 +75,8 @@
 		<dependencySet>
 			<includes>
 				<include>log4j:log4j</include>
-				<include>edu.uci.ics.asterix:asterix-events</include>
-				<include>edu.uci.ics.asterix:asterix-common</include>
+				<include>org.apache.asterix:asterix-events</include>
+				<include>org.apache.asterix:asterix-common</include>
 				<include>org.apache.zookeeper:zookeeper</include>
 				<include>args4j:args4j</include>
 				<include>log4j:log4j</include>
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/AbstractCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/AbstractCommand.java
index f72f88a..3a87250 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/AbstractCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/AbstractCommand.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import org.apache.log4j.Logger;
 import org.kohsuke.args4j.CmdLineParser;
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/AlterCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/AlterCommand.java
index 4bb5056..f63d832 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/AlterCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/AlterCommand.java
@@ -12,20 +12,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import java.util.Date;
 
 import org.kohsuke.args4j.Option;
 
-import edu.uci.ics.asterix.common.configuration.AsterixConfiguration;
-import edu.uci.ics.asterix.event.model.AsterixInstance;
-import edu.uci.ics.asterix.event.model.AsterixInstance.State;
-import edu.uci.ics.asterix.event.service.AsterixEventServiceUtil;
-import edu.uci.ics.asterix.event.service.ILookupService;
-import edu.uci.ics.asterix.event.service.ServiceProvider;
-import edu.uci.ics.asterix.installer.driver.InstallerDriver;
-import edu.uci.ics.asterix.installer.driver.InstallerUtil;
+import org.apache.asterix.common.configuration.AsterixConfiguration;
+import org.apache.asterix.event.model.AsterixInstance;
+import org.apache.asterix.event.model.AsterixInstance.State;
+import org.apache.asterix.event.service.AsterixEventServiceUtil;
+import org.apache.asterix.event.service.ILookupService;
+import org.apache.asterix.event.service.ServiceProvider;
+import org.apache.asterix.installer.driver.InstallerDriver;
+import org.apache.asterix.installer.driver.InstallerUtil;
 
 public class AlterCommand extends AbstractCommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/BackupCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/BackupCommand.java
index 960f041..2cc0d88 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/BackupCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/BackupCommand.java
@@ -12,23 +12,23 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import java.util.Date;
 import java.util.List;
 
 import org.kohsuke.args4j.Option;
 
-import edu.uci.ics.asterix.event.model.AsterixInstance;
-import edu.uci.ics.asterix.event.model.AsterixInstance.State;
-import edu.uci.ics.asterix.event.model.BackupInfo;
-import edu.uci.ics.asterix.event.schema.pattern.Patterns;
-import edu.uci.ics.asterix.event.service.AsterixEventService;
-import edu.uci.ics.asterix.event.service.AsterixEventServiceUtil;
-import edu.uci.ics.asterix.event.service.ServiceProvider;
-import edu.uci.ics.asterix.event.util.PatternCreator;
-import edu.uci.ics.asterix.installer.driver.InstallerDriver;
-import edu.uci.ics.asterix.installer.schema.conf.Backup;
+import org.apache.asterix.event.model.AsterixInstance;
+import org.apache.asterix.event.model.AsterixInstance.State;
+import org.apache.asterix.event.model.BackupInfo;
+import org.apache.asterix.event.schema.pattern.Patterns;
+import org.apache.asterix.event.service.AsterixEventService;
+import org.apache.asterix.event.service.AsterixEventServiceUtil;
+import org.apache.asterix.event.service.ServiceProvider;
+import org.apache.asterix.event.util.PatternCreator;
+import org.apache.asterix.installer.driver.InstallerDriver;
+import org.apache.asterix.installer.schema.conf.Backup;
 
 public class BackupCommand extends AbstractCommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/CommandConfig.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/CommandConfig.java
index 4106562..d562d06 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/CommandConfig.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/CommandConfig.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 public abstract class CommandConfig {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/CommandHandler.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/CommandHandler.java
index b2a9b74..17da694 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/CommandHandler.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/CommandHandler.java
@@ -12,9 +12,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
-import edu.uci.ics.asterix.installer.command.ICommand.CommandType;
+import org.apache.asterix.installer.command.ICommand.CommandType;
 
 public class CommandHandler {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/ConfigureCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/ConfigureCommand.java
index 838c095..16d1a9e 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/ConfigureCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/ConfigureCommand.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -24,12 +24,12 @@
 import javax.xml.bind.PropertyException;
 import javax.xml.bind.Unmarshaller;
 
-import edu.uci.ics.asterix.event.management.EventUtil;
-import edu.uci.ics.asterix.event.schema.cluster.Cluster;
-import edu.uci.ics.asterix.event.schema.cluster.Node;
-import edu.uci.ics.asterix.event.schema.cluster.WorkingDir;
-import edu.uci.ics.asterix.installer.driver.InstallerDriver;
-import edu.uci.ics.asterix.installer.schema.conf.Configuration;
+import org.apache.asterix.event.management.EventUtil;
+import org.apache.asterix.event.schema.cluster.Cluster;
+import org.apache.asterix.event.schema.cluster.Node;
+import org.apache.asterix.event.schema.cluster.WorkingDir;
+import org.apache.asterix.installer.driver.InstallerDriver;
+import org.apache.asterix.installer.schema.conf.Configuration;
 
 public class ConfigureCommand extends AbstractCommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/CreateCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/CreateCommand.java
index c7d8a12..2a83dee 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/CreateCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/CreateCommand.java
@@ -12,26 +12,26 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import java.io.File;
 
 import org.kohsuke.args4j.Option;
 
-import edu.uci.ics.asterix.common.configuration.AsterixConfiguration;
-import edu.uci.ics.asterix.event.error.VerificationUtil;
-import edu.uci.ics.asterix.event.management.AsterixEventServiceClient;
-import edu.uci.ics.asterix.event.management.EventUtil;
-import edu.uci.ics.asterix.event.model.AsterixInstance;
-import edu.uci.ics.asterix.event.model.AsterixRuntimeState;
-import edu.uci.ics.asterix.event.schema.cluster.Cluster;
-import edu.uci.ics.asterix.event.schema.pattern.Patterns;
-import edu.uci.ics.asterix.event.service.AsterixEventService;
-import edu.uci.ics.asterix.event.service.AsterixEventServiceUtil;
-import edu.uci.ics.asterix.event.service.ServiceProvider;
-import edu.uci.ics.asterix.event.util.PatternCreator;
-import edu.uci.ics.asterix.installer.driver.InstallerDriver;
-import edu.uci.ics.asterix.installer.driver.InstallerUtil;
+import org.apache.asterix.common.configuration.AsterixConfiguration;
+import org.apache.asterix.event.error.VerificationUtil;
+import org.apache.asterix.event.management.AsterixEventServiceClient;
+import org.apache.asterix.event.management.EventUtil;
+import org.apache.asterix.event.model.AsterixInstance;
+import org.apache.asterix.event.model.AsterixRuntimeState;
+import org.apache.asterix.event.schema.cluster.Cluster;
+import org.apache.asterix.event.schema.pattern.Patterns;
+import org.apache.asterix.event.service.AsterixEventService;
+import org.apache.asterix.event.service.AsterixEventServiceUtil;
+import org.apache.asterix.event.service.ServiceProvider;
+import org.apache.asterix.event.util.PatternCreator;
+import org.apache.asterix.installer.driver.InstallerDriver;
+import org.apache.asterix.installer.driver.InstallerUtil;
 
 public class CreateCommand extends AbstractCommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/DeleteCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/DeleteCommand.java
index b1f82d1..a52c9d4 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/DeleteCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/DeleteCommand.java
@@ -12,18 +12,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import org.kohsuke.args4j.Option;
 
-import edu.uci.ics.asterix.event.model.AsterixInstance;
-import edu.uci.ics.asterix.event.model.AsterixInstance.State;
-import edu.uci.ics.asterix.event.schema.pattern.Patterns;
-import edu.uci.ics.asterix.event.service.AsterixEventService;
-import edu.uci.ics.asterix.event.service.AsterixEventServiceUtil;
-import edu.uci.ics.asterix.event.service.ServiceProvider;
-import edu.uci.ics.asterix.event.util.PatternCreator;
-import edu.uci.ics.asterix.installer.driver.InstallerDriver;
+import org.apache.asterix.event.model.AsterixInstance;
+import org.apache.asterix.event.model.AsterixInstance.State;
+import org.apache.asterix.event.schema.pattern.Patterns;
+import org.apache.asterix.event.service.AsterixEventService;
+import org.apache.asterix.event.service.AsterixEventServiceUtil;
+import org.apache.asterix.event.service.ServiceProvider;
+import org.apache.asterix.event.util.PatternCreator;
+import org.apache.asterix.installer.driver.InstallerDriver;
 
 public class DeleteCommand extends AbstractCommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/DescribeCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/DescribeCommand.java
index 62760f6..ffdc32b 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/DescribeCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/DescribeCommand.java
@@ -12,20 +12,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import java.util.List;
 
 import org.kohsuke.args4j.Option;
 
-import edu.uci.ics.asterix.event.error.VerificationUtil;
-import edu.uci.ics.asterix.event.model.AsterixInstance;
-import edu.uci.ics.asterix.event.model.AsterixInstance.State;
-import edu.uci.ics.asterix.event.model.AsterixRuntimeState;
-import edu.uci.ics.asterix.event.service.AsterixEventServiceUtil;
-import edu.uci.ics.asterix.event.service.ServiceProvider;
-import edu.uci.ics.asterix.installer.driver.InstallerDriver;
-import edu.uci.ics.asterix.installer.error.InstallerException;
+import org.apache.asterix.event.error.VerificationUtil;
+import org.apache.asterix.event.model.AsterixInstance;
+import org.apache.asterix.event.model.AsterixInstance.State;
+import org.apache.asterix.event.model.AsterixRuntimeState;
+import org.apache.asterix.event.service.AsterixEventServiceUtil;
+import org.apache.asterix.event.service.ServiceProvider;
+import org.apache.asterix.installer.driver.InstallerDriver;
+import org.apache.asterix.installer.error.InstallerException;
 
 public class DescribeCommand extends AbstractCommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/HelpCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/HelpCommand.java
index 11269e3..ce8dc39 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/HelpCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/HelpCommand.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import org.kohsuke.args4j.Option;
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/ICommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/ICommand.java
index 45f8943..ed88feb 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/ICommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/ICommand.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 public interface ICommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/InstallCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/InstallCommand.java
index 31d501b..324cb09 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/InstallCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/InstallCommand.java
@@ -12,17 +12,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import org.kohsuke.args4j.Option;
 
-import edu.uci.ics.asterix.event.model.AsterixInstance;
-import edu.uci.ics.asterix.event.model.AsterixInstance.State;
-import edu.uci.ics.asterix.event.schema.pattern.Patterns;
-import edu.uci.ics.asterix.event.service.AsterixEventService;
-import edu.uci.ics.asterix.event.service.AsterixEventServiceUtil;
-import edu.uci.ics.asterix.event.util.PatternCreator;
-import edu.uci.ics.asterix.installer.driver.InstallerDriver;
+import org.apache.asterix.event.model.AsterixInstance;
+import org.apache.asterix.event.model.AsterixInstance.State;
+import org.apache.asterix.event.schema.pattern.Patterns;
+import org.apache.asterix.event.service.AsterixEventService;
+import org.apache.asterix.event.service.AsterixEventServiceUtil;
+import org.apache.asterix.event.util.PatternCreator;
+import org.apache.asterix.installer.driver.InstallerDriver;
 
 public class InstallCommand extends AbstractCommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/LogCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/LogCommand.java
index 5526e4a..528fe85 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/LogCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/LogCommand.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import java.io.File;
 import java.io.FilenameFilter;
@@ -21,15 +21,15 @@
 import org.apache.commons.io.FileUtils;
 import org.kohsuke.args4j.Option;
 
-import edu.uci.ics.asterix.event.management.AsterixEventServiceClient;
-import edu.uci.ics.asterix.event.model.AsterixInstance;
-import edu.uci.ics.asterix.event.model.AsterixInstance.State;
-import edu.uci.ics.asterix.event.schema.pattern.Patterns;
-import edu.uci.ics.asterix.event.service.AsterixEventService;
-import edu.uci.ics.asterix.event.service.AsterixEventServiceUtil;
-import edu.uci.ics.asterix.event.util.PatternCreator;
-import edu.uci.ics.asterix.installer.driver.InstallerDriver;
-import edu.uci.ics.asterix.installer.error.InstallerException;
+import org.apache.asterix.event.management.AsterixEventServiceClient;
+import org.apache.asterix.event.model.AsterixInstance;
+import org.apache.asterix.event.model.AsterixInstance.State;
+import org.apache.asterix.event.schema.pattern.Patterns;
+import org.apache.asterix.event.service.AsterixEventService;
+import org.apache.asterix.event.service.AsterixEventServiceUtil;
+import org.apache.asterix.event.util.PatternCreator;
+import org.apache.asterix.installer.driver.InstallerDriver;
+import org.apache.asterix.installer.error.InstallerException;
 
 public class LogCommand extends AbstractCommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/RestoreCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/RestoreCommand.java
index 8a5c5a1..b7c326a 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/RestoreCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/RestoreCommand.java
@@ -12,20 +12,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import java.util.List;
 
 import org.kohsuke.args4j.Option;
 
-import edu.uci.ics.asterix.event.model.AsterixInstance;
-import edu.uci.ics.asterix.event.model.AsterixInstance.State;
-import edu.uci.ics.asterix.event.model.BackupInfo;
-import edu.uci.ics.asterix.event.schema.pattern.Patterns;
-import edu.uci.ics.asterix.event.service.AsterixEventService;
-import edu.uci.ics.asterix.event.service.AsterixEventServiceUtil;
-import edu.uci.ics.asterix.event.util.PatternCreator;
-import edu.uci.ics.asterix.installer.driver.InstallerDriver;
+import org.apache.asterix.event.model.AsterixInstance;
+import org.apache.asterix.event.model.AsterixInstance.State;
+import org.apache.asterix.event.model.BackupInfo;
+import org.apache.asterix.event.schema.pattern.Patterns;
+import org.apache.asterix.event.service.AsterixEventService;
+import org.apache.asterix.event.service.AsterixEventServiceUtil;
+import org.apache.asterix.event.util.PatternCreator;
+import org.apache.asterix.installer.driver.InstallerDriver;
 
 public class RestoreCommand extends AbstractCommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/ShutdownCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/ShutdownCommand.java
index a33b9d2..60cc8f3 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/ShutdownCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/ShutdownCommand.java
@@ -12,12 +12,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
-import edu.uci.ics.asterix.event.service.AsterixEventService;
-import edu.uci.ics.asterix.event.service.ILookupService;
-import edu.uci.ics.asterix.event.service.ServiceProvider;
-import edu.uci.ics.asterix.installer.driver.InstallerDriver;
+import org.apache.asterix.event.service.AsterixEventService;
+import org.apache.asterix.event.service.ILookupService;
+import org.apache.asterix.event.service.ServiceProvider;
+import org.apache.asterix.installer.driver.InstallerDriver;
 
 public class ShutdownCommand extends AbstractCommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/StartCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/StartCommand.java
index 1310b1d..944f68d 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/StartCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/StartCommand.java
@@ -12,23 +12,23 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import java.io.File;
 
 import org.kohsuke.args4j.Option;
 
-import edu.uci.ics.asterix.event.error.VerificationUtil;
-import edu.uci.ics.asterix.event.management.AsterixEventServiceClient;
-import edu.uci.ics.asterix.event.model.AsterixInstance;
-import edu.uci.ics.asterix.event.model.AsterixInstance.State;
-import edu.uci.ics.asterix.event.model.AsterixRuntimeState;
-import edu.uci.ics.asterix.event.schema.pattern.Patterns;
-import edu.uci.ics.asterix.event.service.AsterixEventService;
-import edu.uci.ics.asterix.event.service.AsterixEventServiceUtil;
-import edu.uci.ics.asterix.event.service.ServiceProvider;
-import edu.uci.ics.asterix.event.util.PatternCreator;
-import edu.uci.ics.asterix.installer.driver.InstallerDriver;
+import org.apache.asterix.event.error.VerificationUtil;
+import org.apache.asterix.event.management.AsterixEventServiceClient;
+import org.apache.asterix.event.model.AsterixInstance;
+import org.apache.asterix.event.model.AsterixInstance.State;
+import org.apache.asterix.event.model.AsterixRuntimeState;
+import org.apache.asterix.event.schema.pattern.Patterns;
+import org.apache.asterix.event.service.AsterixEventService;
+import org.apache.asterix.event.service.AsterixEventServiceUtil;
+import org.apache.asterix.event.service.ServiceProvider;
+import org.apache.asterix.event.util.PatternCreator;
+import org.apache.asterix.installer.driver.InstallerDriver;
 
 public class StartCommand extends AbstractCommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/StartNodeCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/StartNodeCommand.java
index 70cac7f..9d2dfca 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/StartNodeCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/StartNodeCommand.java
@@ -12,29 +12,29 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import java.util.ArrayList;
 import java.util.List;
 
 import org.kohsuke.args4j.Option;
 
-import edu.uci.ics.asterix.event.error.VerificationUtil;
-import edu.uci.ics.asterix.event.management.AsterixEventServiceClient;
-import edu.uci.ics.asterix.event.model.AsterixInstance;
-import edu.uci.ics.asterix.event.model.AsterixInstance.State;
-import edu.uci.ics.asterix.event.model.AsterixRuntimeState;
-import edu.uci.ics.asterix.event.model.ProcessInfo;
-import edu.uci.ics.asterix.event.schema.cluster.Cluster;
-import edu.uci.ics.asterix.event.schema.cluster.Node;
-import edu.uci.ics.asterix.event.schema.pattern.Pattern;
-import edu.uci.ics.asterix.event.schema.pattern.Patterns;
-import edu.uci.ics.asterix.event.service.AsterixEventService;
-import edu.uci.ics.asterix.event.service.AsterixEventServiceUtil;
-import edu.uci.ics.asterix.event.service.ServiceProvider;
-import edu.uci.ics.asterix.event.util.PatternCreator;
-import edu.uci.ics.asterix.installer.driver.InstallerDriver;
-import edu.uci.ics.asterix.installer.error.InstallerException;
+import org.apache.asterix.event.error.VerificationUtil;
+import org.apache.asterix.event.management.AsterixEventServiceClient;
+import org.apache.asterix.event.model.AsterixInstance;
+import org.apache.asterix.event.model.AsterixInstance.State;
+import org.apache.asterix.event.model.AsterixRuntimeState;
+import org.apache.asterix.event.model.ProcessInfo;
+import org.apache.asterix.event.schema.cluster.Cluster;
+import org.apache.asterix.event.schema.cluster.Node;
+import org.apache.asterix.event.schema.pattern.Pattern;
+import org.apache.asterix.event.schema.pattern.Patterns;
+import org.apache.asterix.event.service.AsterixEventService;
+import org.apache.asterix.event.service.AsterixEventServiceUtil;
+import org.apache.asterix.event.service.ServiceProvider;
+import org.apache.asterix.event.util.PatternCreator;
+import org.apache.asterix.installer.driver.InstallerDriver;
+import org.apache.asterix.installer.error.InstallerException;
 
 public class StartNodeCommand extends AbstractCommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/StopCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/StopCommand.java
index 8c681f3..3b1f0c4 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/StopCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/StopCommand.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -20,17 +20,17 @@
 
 import org.kohsuke.args4j.Option;
 
-import edu.uci.ics.asterix.event.management.AsterixEventServiceClient;
-import edu.uci.ics.asterix.event.model.AsterixInstance;
-import edu.uci.ics.asterix.event.model.AsterixInstance.State;
-import edu.uci.ics.asterix.event.schema.cluster.Node;
-import edu.uci.ics.asterix.event.schema.pattern.Pattern;
-import edu.uci.ics.asterix.event.schema.pattern.Patterns;
-import edu.uci.ics.asterix.event.service.AsterixEventService;
-import edu.uci.ics.asterix.event.service.AsterixEventServiceUtil;
-import edu.uci.ics.asterix.event.service.ServiceProvider;
-import edu.uci.ics.asterix.event.util.PatternCreator;
-import edu.uci.ics.asterix.installer.driver.InstallerDriver;
+import org.apache.asterix.event.management.AsterixEventServiceClient;
+import org.apache.asterix.event.model.AsterixInstance;
+import org.apache.asterix.event.model.AsterixInstance.State;
+import org.apache.asterix.event.schema.cluster.Node;
+import org.apache.asterix.event.schema.pattern.Pattern;
+import org.apache.asterix.event.schema.pattern.Patterns;
+import org.apache.asterix.event.service.AsterixEventService;
+import org.apache.asterix.event.service.AsterixEventServiceUtil;
+import org.apache.asterix.event.service.ServiceProvider;
+import org.apache.asterix.event.util.PatternCreator;
+import org.apache.asterix.installer.driver.InstallerDriver;
 
 public class StopCommand extends AbstractCommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/StopNodeCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/StopNodeCommand.java
index 7b504f2..654a516 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/StopNodeCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/StopNodeCommand.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -20,21 +20,21 @@
 
 import org.kohsuke.args4j.Option;
 
-import edu.uci.ics.asterix.event.error.VerificationUtil;
-import edu.uci.ics.asterix.event.management.AsterixEventServiceClient;
-import edu.uci.ics.asterix.event.model.AsterixInstance;
-import edu.uci.ics.asterix.event.model.AsterixInstance.State;
-import edu.uci.ics.asterix.event.model.AsterixRuntimeState;
-import edu.uci.ics.asterix.event.model.ProcessInfo;
-import edu.uci.ics.asterix.event.schema.cluster.Node;
-import edu.uci.ics.asterix.event.schema.pattern.Pattern;
-import edu.uci.ics.asterix.event.schema.pattern.Patterns;
-import edu.uci.ics.asterix.event.service.AsterixEventService;
-import edu.uci.ics.asterix.event.service.AsterixEventServiceUtil;
-import edu.uci.ics.asterix.event.service.ServiceProvider;
-import edu.uci.ics.asterix.event.util.PatternCreator;
-import edu.uci.ics.asterix.installer.driver.InstallerDriver;
-import edu.uci.ics.asterix.installer.error.InstallerException;
+import org.apache.asterix.event.error.VerificationUtil;
+import org.apache.asterix.event.management.AsterixEventServiceClient;
+import org.apache.asterix.event.model.AsterixInstance;
+import org.apache.asterix.event.model.AsterixInstance.State;
+import org.apache.asterix.event.model.AsterixRuntimeState;
+import org.apache.asterix.event.model.ProcessInfo;
+import org.apache.asterix.event.schema.cluster.Node;
+import org.apache.asterix.event.schema.pattern.Pattern;
+import org.apache.asterix.event.schema.pattern.Patterns;
+import org.apache.asterix.event.service.AsterixEventService;
+import org.apache.asterix.event.service.AsterixEventServiceUtil;
+import org.apache.asterix.event.service.ServiceProvider;
+import org.apache.asterix.event.util.PatternCreator;
+import org.apache.asterix.installer.driver.InstallerDriver;
+import org.apache.asterix.installer.error.InstallerException;
 
 public class StopNodeCommand extends AbstractCommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/UninstallCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/UninstallCommand.java
index df576a8..9a94441 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/UninstallCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/UninstallCommand.java
@@ -12,20 +12,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import org.kohsuke.args4j.Option;
 
-import edu.uci.ics.asterix.event.management.AsterixEventServiceClient;
-import edu.uci.ics.asterix.event.model.AsterixInstance;
-import edu.uci.ics.asterix.event.model.AsterixInstance.State;
-import edu.uci.ics.asterix.event.schema.pattern.Patterns;
-import edu.uci.ics.asterix.event.service.AsterixEventService;
-import edu.uci.ics.asterix.event.service.AsterixEventServiceUtil;
-import edu.uci.ics.asterix.event.service.ILookupService;
-import edu.uci.ics.asterix.event.service.ServiceProvider;
-import edu.uci.ics.asterix.event.util.PatternCreator;
-import edu.uci.ics.asterix.installer.driver.InstallerDriver;
+import org.apache.asterix.event.management.AsterixEventServiceClient;
+import org.apache.asterix.event.model.AsterixInstance;
+import org.apache.asterix.event.model.AsterixInstance.State;
+import org.apache.asterix.event.schema.pattern.Patterns;
+import org.apache.asterix.event.service.AsterixEventService;
+import org.apache.asterix.event.service.AsterixEventServiceUtil;
+import org.apache.asterix.event.service.ILookupService;
+import org.apache.asterix.event.service.ServiceProvider;
+import org.apache.asterix.event.util.PatternCreator;
+import org.apache.asterix.installer.driver.InstallerDriver;
 
 public class UninstallCommand extends AbstractCommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/ValidateCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/ValidateCommand.java
index 282b4d7..4881389 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/ValidateCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/ValidateCommand.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -25,14 +25,14 @@
 
 import org.kohsuke.args4j.Option;
 
-import edu.uci.ics.asterix.event.management.EventUtil;
-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.service.AsterixEventServiceUtil;
-import edu.uci.ics.asterix.installer.driver.InstallerDriver;
-import edu.uci.ics.asterix.installer.schema.conf.Configuration;
-import edu.uci.ics.asterix.installer.schema.conf.Zookeeper;
+import org.apache.asterix.event.management.EventUtil;
+import org.apache.asterix.event.schema.cluster.Cluster;
+import org.apache.asterix.event.schema.cluster.MasterNode;
+import org.apache.asterix.event.schema.cluster.Node;
+import org.apache.asterix.event.service.AsterixEventServiceUtil;
+import org.apache.asterix.installer.driver.InstallerDriver;
+import org.apache.asterix.installer.schema.conf.Configuration;
+import org.apache.asterix.installer.schema.conf.Zookeeper;
 
 public class ValidateCommand extends AbstractCommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/VersionCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/VersionCommand.java
index 58c148c..8144b97 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/VersionCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/VersionCommand.java
@@ -12,12 +12,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.command;
+package org.apache.asterix.installer.command;
 
 import java.io.File;
 
-import edu.uci.ics.asterix.event.service.AsterixEventService;
-import edu.uci.ics.asterix.installer.driver.InstallerDriver;
+import org.apache.asterix.event.service.AsterixEventService;
+import org.apache.asterix.installer.driver.InstallerDriver;
 
 public class VersionCommand extends AbstractCommand {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/driver/InstallerDriver.java b/asterix-installer/src/main/java/org/apache/asterix/installer/driver/InstallerDriver.java
index 6cf31dc..58bed65 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/driver/InstallerDriver.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/driver/InstallerDriver.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.driver;
+package org.apache.asterix.installer.driver;
 
 import java.io.File;
 
@@ -21,12 +21,12 @@
 
 import org.apache.log4j.Logger;
 
-import edu.uci.ics.asterix.event.service.AsterixEventService;
-import edu.uci.ics.asterix.event.service.ILookupService;
-import edu.uci.ics.asterix.event.service.ServiceProvider;
-import edu.uci.ics.asterix.installer.command.CommandHandler;
-import edu.uci.ics.asterix.installer.command.ConfigureCommand;
-import edu.uci.ics.asterix.installer.schema.conf.Configuration;
+import org.apache.asterix.event.service.AsterixEventService;
+import org.apache.asterix.event.service.ILookupService;
+import org.apache.asterix.event.service.ServiceProvider;
+import org.apache.asterix.installer.command.CommandHandler;
+import org.apache.asterix.installer.command.ConfigureCommand;
+import org.apache.asterix.installer.schema.conf.Configuration;
 
 public class InstallerDriver {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/driver/InstallerUtil.java b/asterix-installer/src/main/java/org/apache/asterix/installer/driver/InstallerUtil.java
index 5266b92..de99a1e 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/driver/InstallerUtil.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/driver/InstallerUtil.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.driver;
+package org.apache.asterix.installer.driver;
 
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -22,9 +22,9 @@
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Unmarshaller;
 
-import edu.uci.ics.asterix.common.configuration.AsterixConfiguration;
-import edu.uci.ics.asterix.event.schema.cluster.Cluster;
-import edu.uci.ics.asterix.event.schema.cluster.Node;
+import org.apache.asterix.common.configuration.AsterixConfiguration;
+import org.apache.asterix.event.schema.cluster.Cluster;
+import org.apache.asterix.event.schema.cluster.Node;
 
 public class InstallerUtil {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/error/InstallerException.java b/asterix-installer/src/main/java/org/apache/asterix/installer/error/InstallerException.java
index 14c75a8..034807a 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/error/InstallerException.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/error/InstallerException.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.error;
+package org.apache.asterix.installer.error;
 
 public class InstallerException extends Exception {
 
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/error/OutputHandler.java b/asterix-installer/src/main/java/org/apache/asterix/installer/error/OutputHandler.java
index 5792df2..16be608 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/error/OutputHandler.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/error/OutputHandler.java
@@ -12,16 +12,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.installer.error;
+package org.apache.asterix.installer.error;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.util.Properties;
 
-import edu.uci.ics.asterix.event.management.IOutputHandler;
-import edu.uci.ics.asterix.event.management.OutputAnalysis;
-import edu.uci.ics.asterix.event.model.EventList.EventType;
-import edu.uci.ics.asterix.event.schema.pattern.Event;
+import org.apache.asterix.event.management.IOutputHandler;
+import org.apache.asterix.event.management.OutputAnalysis;
+import org.apache.asterix.event.model.EventList.EventType;
+import org.apache.asterix.event.schema.pattern.Event;
 
 public class OutputHandler implements IOutputHandler {
 
diff --git a/asterix-installer/src/main/resources/conf/log4j.properties b/asterix-installer/src/main/resources/conf/log4j.properties
index a233f5a..ec72fd4 100644
--- a/asterix-installer/src/main/resources/conf/log4j.properties
+++ b/asterix-installer/src/main/resources/conf/log4j.properties
@@ -19,5 +19,5 @@
 # Print the date in ISO 8601 format
 log4j.appender.A1.layout.ConversionPattern=%-p: %m%n
 
-log4j.logger.edu.uci.ics.asterix.event.management=error
+log4j.logger.org.apache.asterix.event.management=error
 log4j.logger.org.apache.zookeeper=error
diff --git a/asterix-installer/src/main/resources/scripts/managix b/asterix-installer/src/main/resources/scripts/managix
index 66a0cd3..2a6d467 100755
--- a/asterix-installer/src/main/resources/scripts/managix
+++ b/asterix-installer/src/main/resources/scripts/managix
@@ -32,4 +32,4 @@
 done
 
 MANAGIX_CLASSPATH=$MANAGIX_CLASSPATH:$MANAGIX_HOME/conf/log4j.properties
-java $JAVA_OPTS -Dlog4j.configuration=file:$MANAGIX_HOME/conf/log4j.properties -cp $MANAGIX_CLASSPATH edu.uci.ics.asterix.installer.driver.InstallerDriver $@
+java $JAVA_OPTS -Dlog4j.configuration=file:$MANAGIX_HOME/conf/log4j.properties -cp $MANAGIX_CLASSPATH org.apache.asterix.installer.driver.InstallerDriver $@
