diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/AddHashTagsFactory.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/AddHashTagsFactory.java
index 90fddcd..eddc5ad 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/AddHashTagsFactory.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/AddHashTagsFactory.java
@@ -12,10 +12,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.external.library;
+package org.apache.asterix.external.library;
 
-import edu.uci.ics.asterix.external.library.IExternalScalarFunction;
-import edu.uci.ics.asterix.external.library.IFunctionFactory;
+import org.apache.asterix.external.library.IExternalScalarFunction;
+import org.apache.asterix.external.library.IFunctionFactory;
 
 public class AddHashTagsFactory implements IFunctionFactory {
 
diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/AddHashTagsFunction.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/AddHashTagsFunction.java
index 93a87f5..dc75c57 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/AddHashTagsFunction.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/AddHashTagsFunction.java
@@ -12,15 +12,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.external.library;
+package org.apache.asterix.external.library;
 
-import edu.uci.ics.asterix.external.library.java.JObjects.JDouble;
-import edu.uci.ics.asterix.external.library.java.JObjects.JPoint;
-import edu.uci.ics.asterix.external.library.java.JObjects.JRecord;
-import edu.uci.ics.asterix.external.library.java.JObjects.JString;
-import edu.uci.ics.asterix.external.library.java.JObjects.JUnorderedList;
-import edu.uci.ics.asterix.external.library.java.JTypeTag;
-import edu.uci.ics.asterix.external.util.Datatypes;
+import org.apache.asterix.external.library.java.JObjects.JDouble;
+import org.apache.asterix.external.library.java.JObjects.JPoint;
+import org.apache.asterix.external.library.java.JObjects.JRecord;
+import org.apache.asterix.external.library.java.JObjects.JString;
+import org.apache.asterix.external.library.java.JObjects.JUnorderedList;
+import org.apache.asterix.external.library.java.JTypeTag;
+import org.apache.asterix.external.util.Datatypes;
 
 public class AddHashTagsFunction implements IExternalScalarFunction {
 
diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/AddHashTagsInPlaceFactory.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/AddHashTagsInPlaceFactory.java
index a2bec69..5ecac9a 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/AddHashTagsInPlaceFactory.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/AddHashTagsInPlaceFactory.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.external.library;
+package org.apache.asterix.external.library;
 
 
 public class AddHashTagsInPlaceFactory implements IFunctionFactory {
diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/AddHashTagsInPlaceFunction.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/AddHashTagsInPlaceFunction.java
index a3f6f702..82f4500 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/AddHashTagsInPlaceFunction.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/AddHashTagsInPlaceFunction.java
@@ -12,13 +12,13 @@
  * See the License for the specific language governing permissions and  
  * limitations under the License.   
  */
-package edu.uci.ics.asterix.external.library;
+package org.apache.asterix.external.library;
 
-import edu.uci.ics.asterix.external.library.java.JObjects.JRecord;
-import edu.uci.ics.asterix.external.library.java.JObjects.JString;
-import edu.uci.ics.asterix.external.library.java.JObjects.JUnorderedList;
-import edu.uci.ics.asterix.external.library.java.JTypeTag;
-import edu.uci.ics.asterix.external.util.Datatypes;
+import org.apache.asterix.external.library.java.JObjects.JRecord;
+import org.apache.asterix.external.library.java.JObjects.JString;
+import org.apache.asterix.external.library.java.JObjects.JUnorderedList;
+import org.apache.asterix.external.library.java.JTypeTag;
+import org.apache.asterix.external.util.Datatypes;
 
 public class AddHashTagsInPlaceFunction implements IExternalScalarFunction {
 
diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/AllTypesFactory.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/AllTypesFactory.java
index f095321..3bf53a6 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/AllTypesFactory.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/AllTypesFactory.java
@@ -12,10 +12,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.external.library;
+package org.apache.asterix.external.library;
 
-import edu.uci.ics.asterix.external.library.IExternalFunction;
-import edu.uci.ics.asterix.external.library.IFunctionFactory;
+import org.apache.asterix.external.library.IExternalFunction;
+import org.apache.asterix.external.library.IFunctionFactory;
 
 public class AllTypesFactory implements IFunctionFactory {
 
diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/AllTypesFunction.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/AllTypesFunction.java
index daac8ff..a77b011 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/AllTypesFunction.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/AllTypesFunction.java
@@ -12,26 +12,26 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.external.library;
+package org.apache.asterix.external.library;
 
-import edu.uci.ics.asterix.external.library.java.JObjects.JBoolean;
-import edu.uci.ics.asterix.external.library.java.JObjects.JCircle;
-import edu.uci.ics.asterix.external.library.java.JObjects.JDate;
-import edu.uci.ics.asterix.external.library.java.JObjects.JDateTime;
-import edu.uci.ics.asterix.external.library.java.JObjects.JDouble;
-import edu.uci.ics.asterix.external.library.java.JObjects.JDuration;
-import edu.uci.ics.asterix.external.library.java.JObjects.JFloat;
-import edu.uci.ics.asterix.external.library.java.JObjects.JInt;
-import edu.uci.ics.asterix.external.library.java.JObjects.JLine;
-import edu.uci.ics.asterix.external.library.java.JObjects.JOrderedList;
-import edu.uci.ics.asterix.external.library.java.JObjects.JPoint;
-import edu.uci.ics.asterix.external.library.java.JObjects.JPoint3D;
-import edu.uci.ics.asterix.external.library.java.JObjects.JPolygon;
-import edu.uci.ics.asterix.external.library.java.JObjects.JRecord;
-import edu.uci.ics.asterix.external.library.java.JObjects.JString;
-import edu.uci.ics.asterix.external.library.java.JObjects.JTime;
-import edu.uci.ics.asterix.external.library.java.JObjects.JUnorderedList;
-import edu.uci.ics.asterix.external.library.java.JTypeTag;
+import org.apache.asterix.external.library.java.JObjects.JBoolean;
+import org.apache.asterix.external.library.java.JObjects.JCircle;
+import org.apache.asterix.external.library.java.JObjects.JDate;
+import org.apache.asterix.external.library.java.JObjects.JDateTime;
+import org.apache.asterix.external.library.java.JObjects.JDouble;
+import org.apache.asterix.external.library.java.JObjects.JDuration;
+import org.apache.asterix.external.library.java.JObjects.JFloat;
+import org.apache.asterix.external.library.java.JObjects.JInt;
+import org.apache.asterix.external.library.java.JObjects.JLine;
+import org.apache.asterix.external.library.java.JObjects.JOrderedList;
+import org.apache.asterix.external.library.java.JObjects.JPoint;
+import org.apache.asterix.external.library.java.JObjects.JPoint3D;
+import org.apache.asterix.external.library.java.JObjects.JPolygon;
+import org.apache.asterix.external.library.java.JObjects.JRecord;
+import org.apache.asterix.external.library.java.JObjects.JString;
+import org.apache.asterix.external.library.java.JObjects.JTime;
+import org.apache.asterix.external.library.java.JObjects.JUnorderedList;
+import org.apache.asterix.external.library.java.JTypeTag;
 
 public class AllTypesFunction implements IExternalScalarFunction {
 
diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/CapitalFinderFactory.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/CapitalFinderFactory.java
index 872b542..6499a4e 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/CapitalFinderFactory.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/CapitalFinderFactory.java
@@ -12,10 +12,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.external.library;
+package org.apache.asterix.external.library;
 
-import edu.uci.ics.asterix.external.library.IExternalScalarFunction;
-import edu.uci.ics.asterix.external.library.IFunctionFactory;
+import org.apache.asterix.external.library.IExternalScalarFunction;
+import org.apache.asterix.external.library.IFunctionFactory;
 
 public class CapitalFinderFactory implements IFunctionFactory {
 
diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/CapitalFinderFunction.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/CapitalFinderFunction.java
index 8a11757..8051c38 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/CapitalFinderFunction.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/CapitalFinderFunction.java
@@ -12,14 +12,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.external.library;
+package org.apache.asterix.external.library;
 
 import java.io.InputStream;
 import java.util.Properties;
 
-import edu.uci.ics.asterix.external.library.java.JObjects.JRecord;
-import edu.uci.ics.asterix.external.library.java.JObjects.JString;
-import edu.uci.ics.asterix.external.library.java.JTypeTag;
+import org.apache.asterix.external.library.java.JObjects.JRecord;
+import org.apache.asterix.external.library.java.JObjects.JString;
+import org.apache.asterix.external.library.java.JTypeTag;
 
 public class CapitalFinderFunction implements IExternalScalarFunction {
 
diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/EchoDelayFactory.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/EchoDelayFactory.java
index d15d661..8dab9eb 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/EchoDelayFactory.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/EchoDelayFactory.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.external.library;
+package org.apache.asterix.external.library;
 
 
 public class EchoDelayFactory implements IFunctionFactory {
diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/EchoDelayFunction.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/EchoDelayFunction.java
index ce63eec..71245ab 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/EchoDelayFunction.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/EchoDelayFunction.java
@@ -12,11 +12,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.external.library;
+package org.apache.asterix.external.library;
 
 import java.util.Random;
 
-import edu.uci.ics.asterix.external.library.java.JObjects.JRecord;
+import org.apache.asterix.external.library.java.JObjects.JRecord;
 
 public class EchoDelayFunction implements IExternalScalarFunction {
 
diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/ParseTweetFactory.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/ParseTweetFactory.java
index d868f20..884c94f 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/ParseTweetFactory.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/ParseTweetFactory.java
@@ -12,10 +12,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.external.library;
+package org.apache.asterix.external.library;
 
-import edu.uci.ics.asterix.external.library.IExternalScalarFunction;
-import edu.uci.ics.asterix.external.library.IFunctionFactory;
+import org.apache.asterix.external.library.IExternalScalarFunction;
+import org.apache.asterix.external.library.IFunctionFactory;
 
 public class ParseTweetFactory implements IFunctionFactory {
 
diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/ParseTweetFunction.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/ParseTweetFunction.java
index 1046518..a02a2f6 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/ParseTweetFunction.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/ParseTweetFunction.java
@@ -12,12 +12,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.external.library;
+package org.apache.asterix.external.library;
 
-import edu.uci.ics.asterix.external.library.java.JObjects.JRecord;
-import edu.uci.ics.asterix.external.library.java.JObjects.JString;
-import edu.uci.ics.asterix.external.library.java.JObjects.JUnorderedList;
-import edu.uci.ics.asterix.external.library.java.JTypeTag;
+import org.apache.asterix.external.library.java.JObjects.JRecord;
+import org.apache.asterix.external.library.java.JObjects.JString;
+import org.apache.asterix.external.library.java.JObjects.JUnorderedList;
+import org.apache.asterix.external.library.java.JTypeTag;
 
 public class ParseTweetFunction implements IExternalScalarFunction {
 
diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/SumFactory.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/SumFactory.java
index f49e8c0..ab278e6 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/SumFactory.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/SumFactory.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.external.library;
+package org.apache.asterix.external.library;
 
 
 public class SumFactory implements IFunctionFactory {
diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/SumFunction.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/SumFunction.java
index 96eba97..19b6bf9 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/SumFunction.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/SumFunction.java
@@ -12,11 +12,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.external.library;
+package org.apache.asterix.external.library;
 
-import edu.uci.ics.asterix.external.library.IExternalScalarFunction;
-import edu.uci.ics.asterix.external.library.IFunctionHelper;
-import edu.uci.ics.asterix.external.library.java.JObjects.JInt;
+import org.apache.asterix.external.library.IExternalScalarFunction;
+import org.apache.asterix.external.library.IFunctionHelper;
+import org.apache.asterix.external.library.java.JObjects.JInt;
 
 public class SumFunction implements IExternalScalarFunction {
 
diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/UpperCaseFactory.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/UpperCaseFactory.java
index 2c5f607..0e51c72 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/UpperCaseFactory.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/UpperCaseFactory.java
@@ -12,10 +12,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.external.library;
+package org.apache.asterix.external.library;
 
-import edu.uci.ics.asterix.external.library.IExternalFunction;
-import edu.uci.ics.asterix.external.library.IFunctionFactory;
+import org.apache.asterix.external.library.IExternalFunction;
+import org.apache.asterix.external.library.IFunctionFactory;
 
 public class UpperCaseFactory implements IFunctionFactory {
 
diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/UpperCaseFunction.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/UpperCaseFunction.java
index ec04541..8429eaf 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/UpperCaseFunction.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/UpperCaseFunction.java
@@ -12,14 +12,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.external.library;
+package org.apache.asterix.external.library;
 
 import java.util.Random;
 
-import edu.uci.ics.asterix.external.library.java.JObjects.JInt;
-import edu.uci.ics.asterix.external.library.java.JObjects.JRecord;
-import edu.uci.ics.asterix.external.library.java.JObjects.JString;
-import edu.uci.ics.asterix.external.library.java.JTypeTag;
+import org.apache.asterix.external.library.java.JObjects.JInt;
+import org.apache.asterix.external.library.java.JObjects.JRecord;
+import org.apache.asterix.external.library.java.JObjects.JString;
+import org.apache.asterix.external.library.java.JTypeTag;
 
 /**
  * Accepts an input record of type Open{ id: int32, text: string }
diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/adapter/TestTypedAdapter.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/adapter/TestTypedAdapter.java
index 7a2597e..6315d0c 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/adapter/TestTypedAdapter.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/adapter/TestTypedAdapter.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.external.library.adapter;
+package org.apache.asterix.external.library.adapter;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -23,13 +23,13 @@
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
-import edu.uci.ics.asterix.common.feeds.api.IFeedAdapter;
-import edu.uci.ics.asterix.common.feeds.api.IFeedAdapter.DataExchangeMode;
-import edu.uci.ics.asterix.external.dataset.adapter.StreamBasedAdapter;
-import edu.uci.ics.asterix.om.types.ARecordType;
-import edu.uci.ics.hyracks.api.comm.IFrameWriter;
-import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
-import edu.uci.ics.hyracks.dataflow.std.file.ITupleParserFactory;
+import org.apache.asterix.common.feeds.api.IFeedAdapter;
+import org.apache.asterix.common.feeds.api.IFeedAdapter.DataExchangeMode;
+import org.apache.asterix.external.dataset.adapter.StreamBasedAdapter;
+import org.apache.asterix.om.types.ARecordType;
+import org.apache.hyracks.api.comm.IFrameWriter;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.dataflow.std.file.ITupleParserFactory;
 
 public class TestTypedAdapter extends StreamBasedAdapter implements IFeedAdapter {
 
diff --git a/asterix-external-data/src/test/java/org/apache/asterix/external/library/adapter/TestTypedAdapterFactory.java b/asterix-external-data/src/test/java/org/apache/asterix/external/library/adapter/TestTypedAdapterFactory.java
index 5416ce2..e4a9463 100644
--- a/asterix-external-data/src/test/java/org/apache/asterix/external/library/adapter/TestTypedAdapterFactory.java
+++ b/asterix-external-data/src/test/java/org/apache/asterix/external/library/adapter/TestTypedAdapterFactory.java
@@ -12,26 +12,26 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.external.library.adapter;
+package org.apache.asterix.external.library.adapter;
 
 import java.util.Map;
 
-import edu.uci.ics.asterix.common.exceptions.AsterixException;
-import edu.uci.ics.asterix.common.feeds.api.IDatasourceAdapter;
-import edu.uci.ics.asterix.common.feeds.api.IIntakeProgressTracker;
-import edu.uci.ics.asterix.metadata.entities.DatasourceAdapter.AdapterType;
-import edu.uci.ics.asterix.metadata.external.IAdapterFactory.SupportedOperation;
-import edu.uci.ics.asterix.metadata.feeds.IFeedAdapterFactory;
-import edu.uci.ics.asterix.om.types.ARecordType;
-import edu.uci.ics.asterix.om.types.BuiltinType;
-import edu.uci.ics.asterix.om.types.IAType;
-import edu.uci.ics.asterix.runtime.operators.file.AsterixTupleParserFactory;
-import edu.uci.ics.asterix.runtime.operators.file.AsterixTupleParserFactory.InputDataFormat;
-import edu.uci.ics.hyracks.algebricks.common.constraints.AlgebricksCountPartitionConstraint;
-import edu.uci.ics.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint;
-import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
-import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
-import edu.uci.ics.hyracks.dataflow.std.file.ITupleParserFactory;
+import org.apache.asterix.common.exceptions.AsterixException;
+import org.apache.asterix.common.feeds.api.IDatasourceAdapter;
+import org.apache.asterix.common.feeds.api.IIntakeProgressTracker;
+import org.apache.asterix.metadata.entities.DatasourceAdapter.AdapterType;
+import org.apache.asterix.metadata.external.IAdapterFactory.SupportedOperation;
+import org.apache.asterix.metadata.feeds.IFeedAdapterFactory;
+import org.apache.asterix.om.types.ARecordType;
+import org.apache.asterix.om.types.BuiltinType;
+import org.apache.asterix.om.types.IAType;
+import org.apache.asterix.runtime.operators.file.AsterixTupleParserFactory;
+import org.apache.asterix.runtime.operators.file.AsterixTupleParserFactory.InputDataFormat;
+import org.apache.hyracks.algebricks.common.constraints.AlgebricksCountPartitionConstraint;
+import org.apache.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.dataflow.std.file.ITupleParserFactory;
 
 public class TestTypedAdapterFactory implements IFeedAdapterFactory {
 
diff --git a/asterix-external-data/src/test/resources/library_descriptor.xml b/asterix-external-data/src/test/resources/library_descriptor.xml
index e35288f..2807820 100644
--- a/asterix-external-data/src/test/resources/library_descriptor.xml
+++ b/asterix-external-data/src/test/resources/library_descriptor.xml
@@ -6,7 +6,7 @@
 			<name>parseTweet</name>
 			<arguments>TweetInputType</arguments>
 			<return_type>TweetOutputType</return_type>
-			<definition>edu.uci.ics.asterix.external.library.ParseTweetFactory
+			<definition>org.apache.asterix.external.library.ParseTweetFactory
 			</definition>
 		</libraryFunction>
 		<libraryFunction>
@@ -14,7 +14,7 @@
 			<name>addHashTags</name>
 			<arguments>Tweet</arguments>
 			<return_type>ProcessedTweet</return_type>
-			<definition>edu.uci.ics.asterix.external.library.AddHashTagsFactory
+			<definition>org.apache.asterix.external.library.AddHashTagsFactory
 			</definition>
 		</libraryFunction>
 		<libraryFunction>
@@ -22,7 +22,7 @@
 			<name>addHashTagsInPlace</name>
 			<arguments>Tweet</arguments>
 			<return_type>ProcessedTweet</return_type>
-			<definition>edu.uci.ics.asterix.external.library.AddHashTagsInPlaceFactory
+			<definition>org.apache.asterix.external.library.AddHashTagsInPlaceFactory
 			</definition>
 		</libraryFunction>
 		<libraryFunction>
@@ -30,7 +30,7 @@
 			<name>mysum</name>
 			<arguments>AINT32,AINT32</arguments>
 			<return_type>AINT32</return_type>
-			<definition>edu.uci.ics.asterix.external.library.SumFactory
+			<definition>org.apache.asterix.external.library.SumFactory
 			</definition>
 		</libraryFunction>
 		<libraryFunction>
@@ -38,7 +38,7 @@
 			<name>getCapital</name>
 			<arguments>ASTRING</arguments>
 			<return_type>CountryCapitalType</return_type>
-			<definition>edu.uci.ics.asterix.external.library.CapitalFinderFactory
+			<definition>org.apache.asterix.external.library.CapitalFinderFactory
 			</definition>
 		</libraryFunction>
 		<libraryFunction>
@@ -46,7 +46,7 @@
 			<name>toUpper</name>
 			<arguments>TextType</arguments>
 			<return_type>TextType</return_type>
-			<definition>edu.uci.ics.asterix.external.library.UpperCaseFactory
+			<definition>org.apache.asterix.external.library.UpperCaseFactory
 			</definition>
 		</libraryFunction>
 		<libraryFunction>
@@ -54,7 +54,7 @@
 			<name>allTypes</name>
 			<arguments>AllType</arguments>
 			<return_type>AllType</return_type>
-			<definition>edu.uci.ics.asterix.external.library.AllTypesFactory
+			<definition>org.apache.asterix.external.library.AllTypesFactory
 			</definition>
 		</libraryFunction>
 		<libraryFunction>
@@ -62,14 +62,14 @@
 			<name>echoDelay</name>
 			<arguments>TweetMessageType</arguments>
 			<return_type>TweetMessageType</return_type>
-			<definition>edu.uci.ics.asterix.external.library.EchoDelayFactory
+			<definition>org.apache.asterix.external.library.EchoDelayFactory
 			</definition>
 		</libraryFunction>
 	</libraryFunctions>
 	<libraryAdapters>
 		<libraryAdapter>
 			<name>test_typed_adapter</name>
-			<factory_class>edu.uci.ics.asterix.external.library.adapter.TestTypedAdapterFactory
+			<factory_class>org.apache.asterix.external.library.adapter.TestTypedAdapterFactory
 			</factory_class>
 		</libraryAdapter>
 	</libraryAdapters>
