Refactored Hyracks into runtime/dataflow-common/dataflow-std/server
git-svn-id: https://hyracks.googlecode.com/svn/trunk@38 123451ca-8445-de46-9d55-352943316053
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/util/ILifeCycle.java b/hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/comm/FrameConstants.java
similarity index 72%
copy from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/util/ILifeCycle.java
copy to hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/comm/FrameConstants.java
index e526fa6..cc76bd4 100644
--- a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/util/ILifeCycle.java
+++ b/hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/comm/FrameConstants.java
@@ -12,10 +12,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package edu.uci.ics.hyracks.util;
+package edu.uci.ics.hyracks.api.comm;
-public interface ILifeCycle {
- public void start() throws Exception;
+public interface FrameConstants {
+ public static final int SIZE_LEN = 4;
- public void stop() throws Exception;
+ public static final boolean DEBUG_FRAME_IO = false;
+
+ public static final int FRAME_FIELD_MAGIC = 0x12345678;
}
\ No newline at end of file
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/util/ILifeCycle.java b/hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/comm/FrameHelper.java
similarity index 72%
copy from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/util/ILifeCycle.java
copy to hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/comm/FrameHelper.java
index e526fa6..f08ea2a 100644
--- a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/util/ILifeCycle.java
+++ b/hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/comm/FrameHelper.java
@@ -12,10 +12,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package edu.uci.ics.hyracks.util;
+package edu.uci.ics.hyracks.api.comm;
-public interface ILifeCycle {
- public void start() throws Exception;
+import edu.uci.ics.hyracks.api.context.IHyracksContext;
- public void stop() throws Exception;
+public class FrameHelper {
+ public static int getTupleCountOffset(IHyracksContext ctx) {
+ return ctx.getFrameSize() - 4;
+ }
}
\ No newline at end of file
diff --git a/hyracks/hyracks-core/pom.xml b/hyracks/hyracks-core/pom.xml
index 73a4cf6..e54a093 100644
--- a/hyracks/hyracks-core/pom.xml
+++ b/hyracks/hyracks-core/pom.xml
@@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-core</artifactId>
- <version>0.0.5-SNAPSHOT</version>
+ <version>0.1.0</version>
<build>
<plugins>
<plugin>
@@ -16,68 +16,12 @@
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <version>2.2</version>
- <executions>
- <execution>
- <goals>
- <goal>test-jar</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>pertest</forkMode>
<argLine>-enableassertions</argLine>
</configuration>
</plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>appassembler-maven-plugin</artifactId>
- <executions>
- <execution>
- <configuration>
- <programs>
- <program>
- <mainClass>edu.uci.ics.hyracks.driver.CCDriver</mainClass>
- <name>hyrackscc</name>
- </program>
- <program>
- <mainClass>edu.uci.ics.hyracks.driver.NCDriver</mainClass>
- <name>hyracksnc</name>
- </program>
- </programs>
- <repositoryLayout>flat</repositoryLayout>
- <repositoryName>lib</repositoryName>
- </configuration>
- <phase>package</phase>
- <goals>
- <goal>assemble</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.2-beta-5</version>
- <executions>
- <execution>
- <configuration>
- <descriptors>
- <descriptor>src/main/assembly/binary-assembly.xml</descriptor>
- <descriptor>src/main/assembly/source-assembly.xml</descriptor>
- </descriptors>
- </configuration>
- <phase>package</phase>
- <goals>
- <goal>attached</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
</plugins>
</build>
<dependencies>
@@ -96,13 +40,6 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-core</artifactId>
- <version>0.20.2</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
<groupId>args4j</groupId>
<artifactId>args4j</artifactId>
<version>2.0.12</version>
@@ -123,13 +60,6 @@
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>org.json</groupId>
- <artifactId>json</artifactId>
- <version>20090211</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
- <dependency>
<groupId>jol</groupId>
<artifactId>jol</artifactId>
<version>1.0.0</version>
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/ConnectionManager.java b/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/ConnectionManager.java
index b161fe2..45c7221 100644
--- a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/ConnectionManager.java
+++ b/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/ConnectionManager.java
@@ -35,14 +35,14 @@
import java.util.logging.Level;
import java.util.logging.Logger;
+import edu.uci.ics.hyracks.api.comm.FrameConstants;
+import edu.uci.ics.hyracks.api.comm.FrameHelper;
import edu.uci.ics.hyracks.api.comm.IConnectionEntry;
import edu.uci.ics.hyracks.api.comm.IDataReceiveListener;
import edu.uci.ics.hyracks.api.comm.IDataReceiveListenerFactory;
import edu.uci.ics.hyracks.api.comm.IFrameWriter;
import edu.uci.ics.hyracks.api.context.IHyracksContext;
import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
-import edu.uci.ics.hyracks.comm.io.FrameConstants;
-import edu.uci.ics.hyracks.comm.io.FrameHelper;
public class ConnectionManager {
private static final Logger LOGGER = Logger.getLogger(ConnectionManager.class.getName());
@@ -79,7 +79,7 @@
if (LOGGER.isLoggable(Level.INFO)) {
LOGGER.info("Connection manager listening on " + serverSocket.getInetAddress() + ":"
- + serverSocket.getLocalPort());
+ + serverSocket.getLocalPort());
}
pendingConnectionReceivers = new HashMap<UUID, IDataReceiveListenerFactory>();
@@ -120,7 +120,7 @@
public IFrameWriter connect(NetworkAddress address, UUID id, int senderId) throws HyracksDataException {
try {
SocketChannel channel = SocketChannel
- .open(new InetSocketAddress(address.getIpAddress(), address.getPort()));
+ .open(new InetSocketAddress(address.getIpAddress(), address.getPort()));
byte[] initialFrame = new byte[INITIAL_MESSAGE_LEN];
ByteBuffer buffer = ByteBuffer.wrap(initialFrame);
buffer.clear();
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/DemuxDataReceiveListenerFactory.java b/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/DemuxDataReceiveListenerFactory.java
index af7c6fc..403d4e8 100644
--- a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/DemuxDataReceiveListenerFactory.java
+++ b/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/DemuxDataReceiveListenerFactory.java
@@ -27,15 +27,13 @@
import edu.uci.ics.hyracks.api.comm.IConnectionEntry;
import edu.uci.ics.hyracks.api.comm.IDataReceiveListener;
import edu.uci.ics.hyracks.api.comm.IDataReceiveListenerFactory;
-import edu.uci.ics.hyracks.api.comm.IFrameReader;
import edu.uci.ics.hyracks.api.context.IHyracksContext;
import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
public class DemuxDataReceiveListenerFactory implements IDataReceiveListenerFactory, IConnectionDemultiplexer,
- IDataReceiveListener {
+ IDataReceiveListener {
private static final Logger LOGGER = Logger.getLogger(DemuxDataReceiveListenerFactory.class.getName());
- private final NonDeterministicFrameReader frameReader;
private final IHyracksContext ctx;
private final BitSet readyBits;
private IConnectionEntry senders[];
@@ -44,7 +42,6 @@
private UUID stageId;
public DemuxDataReceiveListenerFactory(IHyracksContext ctx, UUID jobId, UUID stageId) {
- frameReader = new NonDeterministicFrameReader(ctx, this);
this.ctx = ctx;
this.jobId = jobId;
this.stageId = stageId;
@@ -60,10 +57,6 @@
return this;
}
- public IFrameReader getFrameReader() {
- return frameReader;
- }
-
@Override
public synchronized void dataReceived(IConnectionEntry entry) throws IOException {
int senderIndex = (Integer) entry.getAttachment();
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HadoopReadOperatorDescriptor.java b/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HadoopReadOperatorDescriptor.java
deleted file mode 100644
index fbdb630..0000000
--- a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HadoopReadOperatorDescriptor.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- * Copyright 2009-2010 by The Regents of the University of California
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * you may obtain a copy of the License from
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hyracks.dataflow.std.hadoop;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.NetworkInterface;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.mapred.FileSplit;
-import org.apache.hadoop.mapred.InputFormat;
-import org.apache.hadoop.mapred.JobConf;
-import org.apache.hadoop.mapred.RecordReader;
-import org.apache.hadoop.mapred.Reporter;
-import org.apache.hadoop.mapred.SequenceFileRecordReader;
-import org.apache.hadoop.util.ReflectionUtils;
-
-import edu.uci.ics.hyracks.api.constraints.AbsoluteLocationConstraint;
-import edu.uci.ics.hyracks.api.constraints.ExplicitPartitionConstraint;
-import edu.uci.ics.hyracks.api.constraints.LocationConstraint;
-import edu.uci.ics.hyracks.api.constraints.PartitionConstraint;
-import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
-import edu.uci.ics.hyracks.api.job.JobSpecification;
-import edu.uci.ics.hyracks.config.NCConfig;
-import edu.uci.ics.hyracks.controller.clustercontroller.IClusterController;
-import edu.uci.ics.hyracks.controller.nodecontroller.INodeController;
-import edu.uci.ics.hyracks.dataflow.std.file.IRecordReader;
-import edu.uci.ics.hyracks.dataflow.std.hadoop.util.DatatypeHelper;
-import edu.uci.ics.hyracks.dataflow.std.hadoop.util.HadoopAdapter;
-import edu.uci.ics.hyracks.dataflow.std.hadoop.util.HadoopFileSplit;
-
-public class HadoopReadOperatorDescriptor extends AbstractHadoopFileScanOperatorDescriptor {
-
- private static final long serialVersionUID = 1L;
- private String inputFormatClassName;
- private Map<String, String> jobConfMap;
-
- private static class HDFSCustomReader implements IRecordReader {
- private RecordReader hadoopRecordReader;
- private Class inputKeyClass;
- private Class inputValueClass;
- private Object key;
- private Object value;
-
- public HDFSCustomReader(Map<String, String> jobConfMap, HadoopFileSplit inputSplit,
- String inputFormatClassName, Reporter reporter) {
- try {
- JobConf conf = DatatypeHelper.hashMap2JobConf((HashMap) jobConfMap);
- FileSystem fileSystem = null;
- try {
- fileSystem = FileSystem.get(conf);
- } catch (IOException ioe) {
- ioe.printStackTrace();
- }
-
- Class inputFormatClass = Class.forName(inputFormatClassName);
- InputFormat inputFormat = (InputFormat) ReflectionUtils.newInstance(inputFormatClass, conf);
- hadoopRecordReader = (RecordReader) inputFormat.getRecordReader(getFileSplit(inputSplit), conf,
- reporter);
- if (hadoopRecordReader instanceof SequenceFileRecordReader) {
- inputKeyClass = ((SequenceFileRecordReader) hadoopRecordReader).getKeyClass();
- inputValueClass = ((SequenceFileRecordReader) hadoopRecordReader).getValueClass();
- } else {
- inputKeyClass = hadoopRecordReader.createKey().getClass();
- inputValueClass = hadoopRecordReader.createValue().getClass();
- }
- key = inputKeyClass.newInstance();
- value = inputValueClass.newInstance();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public Class getInputKeyClass() {
- return inputKeyClass;
- }
-
- public void setInputKeyClass(Class inputKeyClass) {
- this.inputKeyClass = inputKeyClass;
- }
-
- public Class getInputValueClass() {
- return inputValueClass;
- }
-
- public void setInputValueClass(Class inputValueClass) {
- this.inputValueClass = inputValueClass;
- }
-
- @Override
- public void close() {
- try {
- hadoopRecordReader.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- @Override
- public boolean read(Object[] record) throws Exception {
- if (!hadoopRecordReader.next(key, value)) {
- return false;
- }
- if (record.length == 1) {
- record[0] = value;
- } else {
- record[0] = key;
- record[1] = value;
- }
- return true;
- }
-
- private FileSplit getFileSplit(HadoopFileSplit hadoopFileSplit) {
- FileSplit fileSplit = new FileSplit(new Path(hadoopFileSplit.getFile()), hadoopFileSplit.getStart(),
- hadoopFileSplit.getLength(), hadoopFileSplit.getHosts());
- return fileSplit;
- }
- }
-
- public HadoopReadOperatorDescriptor(Map<String, String> jobConfMap, JobSpecification spec,
- HadoopFileSplit[] splits, String inputFormatClassName, RecordDescriptor recordDescriptor) {
- super(spec, splits, recordDescriptor);
- this.inputFormatClassName = inputFormatClassName;
- this.jobConfMap = jobConfMap;
- }
-
- public HadoopReadOperatorDescriptor(Map<String, String> jobConfMap, InetSocketAddress nameNode,
- JobSpecification spec, String inputFormatClassName, RecordDescriptor recordDescriptor) {
- super(spec, null, recordDescriptor);
- this.inputFormatClassName = inputFormatClassName;
- this.jobConfMap = jobConfMap;
- }
-
- public HadoopReadOperatorDescriptor(IClusterController clusterController, Map<String, String> jobConfMap,
- JobSpecification spec, String fileSystemURL, String inputFormatClassName, RecordDescriptor recordDescriptor) {
- super(spec, null, recordDescriptor);
- HadoopAdapter hadoopAdapter = HadoopAdapter.getInstance(fileSystemURL);
- String inputPathString = jobConfMap.get("mapred.input.dir");
- String[] inputPaths = inputPathString.split(",");
- Map<String, List<HadoopFileSplit>> blocksToRead = hadoopAdapter.getInputSplits(inputPaths);
- List<HadoopFileSplit> hadoopFileSplits = new ArrayList<HadoopFileSplit>();
- for (String filePath : blocksToRead.keySet()) {
- hadoopFileSplits.addAll(blocksToRead.get(filePath));
- }
- for (HadoopFileSplit hadoopFileSplit : hadoopFileSplits) {
- System.out.println(" Hadoop File Split : " + hadoopFileSplit);
- }
- super.splits = hadoopFileSplits.toArray(new HadoopFileSplit[] {});
- configurePartitionConstraints(clusterController, blocksToRead);
- this.inputFormatClassName = inputFormatClassName;
- this.jobConfMap = jobConfMap;
- }
-
- private void configurePartitionConstraints(IClusterController clusterController,
- Map<String, List<HadoopFileSplit>> blocksToRead) {
- List<LocationConstraint> locationConstraints = new ArrayList<LocationConstraint>();
- Map<String, INodeController> registry = null;
- try {
- // registry = clusterController.getRegistry();
- // TODO
- } catch (Exception e) {
- e.printStackTrace();
- }
- Map<String, String> hostnameToNodeIdMap = new HashMap<String, String>();
- NCConfig ncConfig = null;
- for (String nodeId : registry.keySet()) {
- try {
- ncConfig = ((INodeController) registry.get(nodeId)).getConfiguration();
- String ipAddress = ncConfig.dataIPAddress;
- String hostname = InetAddress.getByName(ipAddress).getHostName();
- System.out.println(" hostname :" + hostname + " nodeid:" + nodeId);
- hostnameToNodeIdMap.put(hostname, nodeId);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- for (String filePath : blocksToRead.keySet()) {
- List<HadoopFileSplit> hadoopFileSplits = blocksToRead.get(filePath);
- for (HadoopFileSplit hadoopFileSplit : hadoopFileSplits) {
- String hostname = hadoopFileSplit.getHosts()[0];
- System.out.println("host name is :" + hostname);
- InetAddress address = null;
- try {
- address = InetAddress.getByName(hostname);
- if (address.isLoopbackAddress()) {
- Enumeration<NetworkInterface> netInterfaces = NetworkInterface.getNetworkInterfaces();
- while (netInterfaces.hasMoreElements()) {
- NetworkInterface ni = netInterfaces.nextElement();
- InetAddress inetAddress = (InetAddress) ni.getInetAddresses().nextElement();
- if (!inetAddress.isLoopbackAddress()) {
- address = inetAddress;
- break;
- }
- }
- }
- hostname = address.getHostName();
- System.out.println("cannonical host name hyracks :" + hostname);
- } catch (Exception e) {
- e.printStackTrace();
- }
- String nodeId = hostnameToNodeIdMap.get(hostname);
- System.out.println(" corresponding node id is :" + nodeId);
- LocationConstraint locationConstraint = new AbsoluteLocationConstraint(nodeId);
- locationConstraints.add(locationConstraint);
- }
- }
-
- PartitionConstraint partitionConstraint = new ExplicitPartitionConstraint(locationConstraints
- .toArray(new LocationConstraint[] {}));
- this.setPartitionConstraint(partitionConstraint);
- }
-
- @Override
- protected IRecordReader createRecordReader(HadoopFileSplit fileSplit, RecordDescriptor desc) throws Exception {
- Reporter reporter = createReporter();
- IRecordReader recordReader = new HDFSCustomReader(jobConfMap, fileSplit, inputFormatClassName, reporter);
- return recordReader;
- }
-}
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/util/ILifeCycle.java b/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/service/ILifeCycle.java
similarity index 95%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/util/ILifeCycle.java
rename to hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/service/ILifeCycle.java
index e526fa6..e73f5b0 100644
--- a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/util/ILifeCycle.java
+++ b/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/service/ILifeCycle.java
@@ -12,7 +12,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package edu.uci.ics.hyracks.util;
+package edu.uci.ics.hyracks.service;
public interface ILifeCycle {
public void start() throws Exception;
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/service/IService.java b/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/service/IService.java
index edfdc83..aaf7e0e 100644
--- a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/service/IService.java
+++ b/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/service/IService.java
@@ -14,7 +14,6 @@
*/
package edu.uci.ics.hyracks.service;
-import edu.uci.ics.hyracks.util.ILifeCycle;
public interface IService extends ILifeCycle {
}
\ No newline at end of file
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/util/PropertiesAccess.java b/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/util/PropertiesAccess.java
deleted file mode 100644
index 3e01dc9..0000000
--- a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/util/PropertiesAccess.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2009-2010 by The Regents of the University of California
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * you may obtain a copy of the License from
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.hyracks.util;
-
-import java.util.Properties;
-
-public class PropertiesAccess {
- public static boolean safeBoolean(Properties props, String pName, boolean defaultValue) {
- String pValue = props.getProperty(pName);
- if (pValue == null) {
- return defaultValue;
- }
- try {
- return Boolean.parseBoolean(pValue);
- } catch (Exception e) {
- return defaultValue;
- }
- }
-
- public static String safeString(Properties props, String pName, String defaultValue) {
- String pValue = props.getProperty(pName);
- if (pValue == null) {
- return defaultValue;
- }
- return pValue;
- }
-
- public static int safeInt(Properties props, String pName, int defaultValue) {
- String pValue = props.getProperty(pName);
- if (pValue == null) {
- return defaultValue;
- }
- try {
- return Integer.parseInt(pValue);
- } catch (Exception e) {
- return defaultValue;
- }
- }
-}
\ No newline at end of file
diff --git a/hyracks/hyracks-dataflow-common/.classpath b/hyracks/hyracks-dataflow-common/.classpath
new file mode 100644
index 0000000..86f50f4
--- /dev/null
+++ b/hyracks/hyracks-dataflow-common/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java"/>
+ <classpathentry kind="src" path="src/test/java"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/hyracks/hyracks-dataflow-common/.project b/hyracks/hyracks-dataflow-common/.project
new file mode 100644
index 0000000..8fd9acf
--- /dev/null
+++ b/hyracks/hyracks-dataflow-common/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>hyracks-dataflow-common</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.maven.ide.eclipse.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.maven.ide.eclipse.maven2Nature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/hyracks/hyracks-dataflow-common/.settings/org.eclipse.jdt.core.prefs b/hyracks/hyracks-dataflow-common/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..8496bf4
--- /dev/null
+++ b/hyracks/hyracks-dataflow-common/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,6 @@
+#Thu Jul 29 14:49:35 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hyracks/hyracks-dataflow-common/.settings/org.maven.ide.eclipse.prefs b/hyracks/hyracks-dataflow-common/.settings/org.maven.ide.eclipse.prefs
new file mode 100644
index 0000000..c411710
--- /dev/null
+++ b/hyracks/hyracks-dataflow-common/.settings/org.maven.ide.eclipse.prefs
@@ -0,0 +1,9 @@
+#Thu Jul 29 14:49:35 PDT 2010
+activeProfiles=
+eclipse.preferences.version=1
+fullBuildGoals=process-test-resources
+includeModules=false
+resolveWorkspaceProjects=true
+resourceFilterGoals=process-resources resources\:testResources
+skipCompilerPlugin=true
+version=1
diff --git a/hyracks/hyracks-dataflow-common/pom.xml b/hyracks/hyracks-dataflow-common/pom.xml
new file mode 100644
index 0000000..589e93f
--- /dev/null
+++ b/hyracks/hyracks-dataflow-common/pom.xml
@@ -0,0 +1,28 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>edu.uci.ics.hyracks</groupId>
+ <artifactId>hyracks-dataflow-common</artifactId>
+ <version>0.1.0</version>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.0.2</version>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>edu.uci.ics.hyracks</groupId>
+ <artifactId>hyracks-api</artifactId>
+ <version>0.1.0</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/ConnectionEntry.java b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/ConnectionEntry.java
new file mode 100644
index 0000000..bfc79e7
--- /dev/null
+++ b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/ConnectionEntry.java
@@ -0,0 +1,190 @@
+/*
+ * Copyright 2009-2010 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.hyracks.comm;
+
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.channels.SelectionKey;
+import java.nio.channels.SocketChannel;
+import java.util.UUID;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import edu.uci.ics.hyracks.api.comm.IConnectionEntry;
+import edu.uci.ics.hyracks.api.comm.IDataReceiveListener;
+import edu.uci.ics.hyracks.api.context.IHyracksContext;
+
+public class ConnectionEntry implements IConnectionEntry {
+ private static final Logger LOGGER = Logger.getLogger(ConnectionEntry.class.getName());
+
+ private SocketChannel socketChannel;
+
+ private final ByteBuffer readBuffer;
+
+ private final ByteBuffer writeBuffer;
+
+ private IDataReceiveListener recvListener;
+
+ private Object attachment;
+
+ private final SelectionKey key;
+
+ private UUID jobId;
+
+ private UUID stageId;
+
+ private boolean aborted;
+
+ public ConnectionEntry(IHyracksContext ctx, SocketChannel socketChannel, SelectionKey key) {
+ this.socketChannel = socketChannel;
+ readBuffer = ctx.getResourceManager().allocateFrame();
+ readBuffer.clear();
+ writeBuffer = ctx.getResourceManager().allocateFrame();
+ writeBuffer.clear();
+ this.key = key;
+ }
+
+ public SocketChannel getSocketChannel() {
+ return socketChannel;
+ }
+
+ public boolean dispatch(SelectionKey key) throws IOException {
+ if (aborted) {
+ recvListener.dataReceived(this);
+ } else {
+ if (key.isReadable()) {
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("Before read: " + readBuffer.position() + " " + readBuffer.limit());
+ }
+ int bytesRead = socketChannel.read(readBuffer);
+ if (bytesRead < 0) {
+ recvListener.eos(this);
+ return true;
+ }
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("After read: " + readBuffer.position() + " " + readBuffer.limit());
+ }
+ recvListener.dataReceived(this);
+ } else if (key.isWritable()) {
+ synchronized (this) {
+ writeBuffer.flip();
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("Before write: " + writeBuffer.position() + " " + writeBuffer.limit());
+ }
+ int bytesWritten = socketChannel.write(writeBuffer);
+ if (bytesWritten < 0) {
+ return true;
+ }
+ if (LOGGER.isLoggable(Level.FINER)) {
+ LOGGER.finer("After write: " + writeBuffer.position() + " " + writeBuffer.limit());
+ }
+ if (writeBuffer.remaining() <= 0) {
+ int ops = key.interestOps();
+ key.interestOps(ops & ~SelectionKey.OP_WRITE);
+ }
+ writeBuffer.compact();
+ notifyAll();
+ }
+ } else {
+ LOGGER.warning("Spurious event triggered: " + key.readyOps());
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public ByteBuffer getReadBuffer() {
+ return readBuffer;
+ }
+
+ @Override
+ public synchronized void write(ByteBuffer buffer) {
+ while (buffer.remaining() > 0) {
+ while (writeBuffer.remaining() <= 0) {
+ try {
+ wait();
+ } catch (InterruptedException e) {
+ }
+ }
+ int oldLimit = buffer.limit();
+ buffer.limit(Math.min(oldLimit, writeBuffer.remaining()));
+ writeBuffer.put(buffer);
+ buffer.limit(oldLimit);
+ int ops = key.interestOps();
+ key.interestOps(ops | SelectionKey.OP_WRITE);
+ key.selector().wakeup();
+ }
+ }
+
+ @Override
+ public void setDataReceiveListener(IDataReceiveListener listener) {
+ this.recvListener = listener;
+ }
+
+ @Override
+ public void attach(Object attachment) {
+ this.attachment = attachment;
+ }
+
+ @Override
+ public Object getAttachment() {
+ return attachment;
+ }
+
+ @Override
+ public void close() {
+ try {
+ socketChannel.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public SelectionKey getSelectionKey() {
+ return key;
+ }
+
+ @Override
+ public UUID getJobId() {
+ return jobId;
+ }
+
+ @Override
+ public void setJobId(UUID jobId) {
+ this.jobId = jobId;
+ }
+
+ @Override
+ public UUID getStageId() {
+ return stageId;
+ }
+
+ @Override
+ public void setStageId(UUID stageId) {
+ this.stageId = stageId;
+ }
+
+ @Override
+ public void abort() {
+ aborted = true;
+ }
+
+ @Override
+ public boolean aborted() {
+ return aborted;
+ }
+}
\ No newline at end of file
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/NonDeterministicFrameReader.java b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/NonDeterministicFrameReader.java
similarity index 98%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/NonDeterministicFrameReader.java
rename to hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/NonDeterministicFrameReader.java
index 0ddc5d6..96fb70a 100644
--- a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/NonDeterministicFrameReader.java
+++ b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/NonDeterministicFrameReader.java
@@ -18,12 +18,12 @@
import java.util.logging.Level;
import java.util.logging.Logger;
+import edu.uci.ics.hyracks.api.comm.FrameHelper;
import edu.uci.ics.hyracks.api.comm.IConnectionDemultiplexer;
import edu.uci.ics.hyracks.api.comm.IConnectionEntry;
import edu.uci.ics.hyracks.api.comm.IFrameReader;
import edu.uci.ics.hyracks.api.context.IHyracksContext;
import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
-import edu.uci.ics.hyracks.comm.io.FrameHelper;
public class NonDeterministicFrameReader implements IFrameReader {
private static final Logger LOGGER = Logger.getLogger(NonDeterministicFrameReader.class.getName());
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/SortMergeFrameReader.java b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/SortMergeFrameReader.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/SortMergeFrameReader.java
rename to hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/SortMergeFrameReader.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/ArrayTupleBuilder.java b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/ArrayTupleBuilder.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/ArrayTupleBuilder.java
rename to hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/ArrayTupleBuilder.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/ByteArrayAccessibleOutputStream.java b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/ByteArrayAccessibleOutputStream.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/ByteArrayAccessibleOutputStream.java
rename to hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/ByteArrayAccessibleOutputStream.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/FrameConstants.java b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/FrameConstants.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/FrameConstants.java
rename to hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/FrameConstants.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/FrameDeserializer.java b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/FrameDeserializer.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/FrameDeserializer.java
rename to hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/FrameDeserializer.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/FrameDeserializingDataReader.java b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/FrameDeserializingDataReader.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/FrameDeserializingDataReader.java
rename to hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/FrameDeserializingDataReader.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/FrameDeserializingDataWriter.java b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/FrameDeserializingDataWriter.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/FrameDeserializingDataWriter.java
rename to hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/FrameDeserializingDataWriter.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/FrameHelper.java b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/FrameHelper.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/FrameHelper.java
rename to hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/FrameHelper.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/FrameTupleAccessor.java b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/FrameTupleAccessor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/FrameTupleAccessor.java
rename to hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/FrameTupleAccessor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/FrameTupleAppender.java b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/FrameTupleAppender.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/FrameTupleAppender.java
rename to hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/FrameTupleAppender.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/FrameTuplePairComparator.java b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/FrameTuplePairComparator.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/FrameTuplePairComparator.java
rename to hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/FrameTuplePairComparator.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/SerializingDataWriter.java b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/SerializingDataWriter.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/io/SerializingDataWriter.java
rename to hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/io/SerializingDataWriter.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/util/ByteBufferInputStream.java b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/util/ByteBufferInputStream.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/util/ByteBufferInputStream.java
rename to hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/util/ByteBufferInputStream.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/util/FrameUtils.java b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/util/FrameUtils.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/comm/util/FrameUtils.java
rename to hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/comm/util/FrameUtils.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/util/ReflectionUtils.java b/hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/util/ReflectionUtils.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/util/ReflectionUtils.java
rename to hyracks/hyracks-dataflow-common/src/main/java/edu/uci/ics/hyracks/util/ReflectionUtils.java
diff --git a/hyracks/hyracks-dataflow-std/.classpath b/hyracks/hyracks-dataflow-std/.classpath
new file mode 100644
index 0000000..1f3c1ff
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/hyracks/hyracks-dataflow-std/.project b/hyracks/hyracks-dataflow-std/.project
new file mode 100644
index 0000000..1101a65
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>hyracks-dataflow-std</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.maven.ide.eclipse.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.maven.ide.eclipse.maven2Nature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/hyracks/hyracks-dataflow-std/.settings/org.eclipse.jdt.core.prefs b/hyracks/hyracks-dataflow-std/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1ca1bd4
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,6 @@
+#Thu Jul 29 14:32:56 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hyracks/hyracks-dataflow-std/.settings/org.maven.ide.eclipse.prefs b/hyracks/hyracks-dataflow-std/.settings/org.maven.ide.eclipse.prefs
new file mode 100644
index 0000000..e96df89
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/.settings/org.maven.ide.eclipse.prefs
@@ -0,0 +1,9 @@
+#Thu Jul 29 14:32:56 PDT 2010
+activeProfiles=
+eclipse.preferences.version=1
+fullBuildGoals=process-test-resources
+includeModules=false
+resolveWorkspaceProjects=true
+resourceFilterGoals=process-resources resources\:testResources
+skipCompilerPlugin=true
+version=1
diff --git a/hyracks/hyracks-dataflow-std/pom.xml b/hyracks/hyracks-dataflow-std/pom.xml
new file mode 100644
index 0000000..9d720b3
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/pom.xml
@@ -0,0 +1,48 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>edu.uci.ics.hyracks</groupId>
+ <artifactId>hyracks-dataflow-std</artifactId>
+ <version>0.1.0</version>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.0.2</version>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>edu.uci.ics.hyracks</groupId>
+ <artifactId>hyracks-api</artifactId>
+ <version>0.1.0</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>edu.uci.ics.hyracks</groupId>
+ <artifactId>hyracks-dataflow-common</artifactId>
+ <version>0.1.0</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-core</artifactId>
+ <version>0.20.2</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>edu.uci.ics.dcache</groupId>
+ <artifactId>dcache-client</artifactId>
+ <version>0.0.1</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/ExternalSortOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/ExternalSortOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/ExternalSortOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/ExternalSortOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/FieldHashPartitionComputerFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/FieldHashPartitionComputerFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/FieldHashPartitionComputerFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/FieldHashPartitionComputerFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/HashDataWriter.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/HashDataWriter.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/HashDataWriter.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/HashDataWriter.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/IMapper.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/IMapper.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/IMapper.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/IMapper.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/IMapperFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/IMapperFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/IMapperFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/IMapperFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/ITupleAggregator.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/ITupleAggregator.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/ITupleAggregator.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/ITupleAggregator.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/ITupleAggregatorFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/ITupleAggregatorFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/ITupleAggregatorFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/ITupleAggregatorFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/InMemorySortOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/InMemorySortOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/InMemorySortOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/InMemorySortOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/MToNHashPartitioningConnectorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/MToNHashPartitioningConnectorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/MToNHashPartitioningConnectorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/MToNHashPartitioningConnectorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/MToNHashPartitioningMergingConnectorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/MToNHashPartitioningMergingConnectorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/MToNHashPartitioningMergingConnectorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/MToNHashPartitioningMergingConnectorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/MToNRangePartitioningConnectorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/MToNRangePartitioningConnectorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/MToNRangePartitioningConnectorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/MToNRangePartitioningConnectorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/MToNReplicatingConnectorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/MToNReplicatingConnectorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/MToNReplicatingConnectorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/MToNReplicatingConnectorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/MapperOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/MapperOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/MapperOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/MapperOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/MaterializingOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/MaterializingOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/MaterializingOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/MaterializingOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/OneToOneConnectorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/OneToOneConnectorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/OneToOneConnectorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/OneToOneConnectorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/PrinterOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/PrinterOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/PrinterOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/PrinterOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/RepartitionComputerFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/RepartitionComputerFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/RepartitionComputerFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/RepartitionComputerFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/SplitVectorOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/SplitVectorOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/SplitVectorOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/SplitVectorOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/aggregators/ReflectionBasedTupleAggregatorFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/aggregators/ReflectionBasedTupleAggregatorFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/aggregators/ReflectionBasedTupleAggregatorFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/aggregators/ReflectionBasedTupleAggregatorFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/aggregators/SumGroupAggregator.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/aggregators/SumGroupAggregator.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/aggregators/SumGroupAggregator.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/aggregators/SumGroupAggregator.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/aggregators/SumStringGroupAggregator.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/aggregators/SumStringGroupAggregator.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/aggregators/SumStringGroupAggregator.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/aggregators/SumStringGroupAggregator.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/aggregators/SumTupleAggregator.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/aggregators/SumTupleAggregator.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/aggregators/SumTupleAggregator.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/aggregators/SumTupleAggregator.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/AbstractActivityNode.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/AbstractActivityNode.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/AbstractActivityNode.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/AbstractActivityNode.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/AbstractConnectorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/AbstractConnectorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/AbstractConnectorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/AbstractConnectorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/AbstractOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/AbstractOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/AbstractOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/AbstractOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/AbstractSingleActivityOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/AbstractSingleActivityOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/AbstractSingleActivityOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/AbstractSingleActivityOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/IOpenableDataWriterOperator.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/IOpenableDataWriterOperator.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/IOpenableDataWriterOperator.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/base/IOpenableDataWriterOperator.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatBinaryComparatorFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatBinaryComparatorFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatBinaryComparatorFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatBinaryComparatorFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatBinaryHashFunctionFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatBinaryHashFunctionFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatBinaryHashFunctionFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatBinaryHashFunctionFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatComparatorFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatComparatorFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatComparatorFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatComparatorFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatHashFunctionFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatHashFunctionFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatHashFunctionFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatHashFunctionFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatSerializerDeserializer.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatSerializerDeserializer.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatSerializerDeserializer.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/FloatSerializerDeserializer.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntArraySerializerDeserializer.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntArraySerializerDeserializer.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntArraySerializerDeserializer.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntArraySerializerDeserializer.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerBinaryComparatorFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerBinaryComparatorFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerBinaryComparatorFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerBinaryComparatorFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerBinaryHashFunctionFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerBinaryHashFunctionFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerBinaryHashFunctionFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerBinaryHashFunctionFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerComparatorFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerComparatorFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerComparatorFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerComparatorFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerHashFunctionFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerHashFunctionFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerHashFunctionFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerHashFunctionFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerSerializerDeserializer.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerSerializerDeserializer.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerSerializerDeserializer.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/IntegerSerializerDeserializer.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringBinaryComparatorFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringBinaryComparatorFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringBinaryComparatorFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringBinaryComparatorFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringBinaryHashFunctionFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringBinaryHashFunctionFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringBinaryHashFunctionFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringBinaryHashFunctionFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringComparatorFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringComparatorFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringComparatorFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringComparatorFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringHashFunctionFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringHashFunctionFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringHashFunctionFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringHashFunctionFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringSerializerDeserializer.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringSerializerDeserializer.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringSerializerDeserializer.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringSerializerDeserializer.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringUtils.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringUtils.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringUtils.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/data/StringUtils.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/AbstractFileScanOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/AbstractFileScanOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/AbstractFileScanOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/AbstractFileScanOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/AbstractFileWriteOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/AbstractFileWriteOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/AbstractFileWriteOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/AbstractFileWriteOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/CSVFileScanOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/CSVFileScanOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/CSVFileScanOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/CSVFileScanOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/FileSplit.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/FileSplit.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/FileSplit.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/FileSplit.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/IRecordReader.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/IRecordReader.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/IRecordReader.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/IRecordReader.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/IRecordWriter.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/IRecordWriter.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/IRecordWriter.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/IRecordWriter.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/LineFileScanOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/LineFileScanOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/LineFileScanOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/LineFileScanOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/LineFileWriteOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/LineFileWriteOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/LineFileWriteOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/LineFileWriteOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/RecordFileScanOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/RecordFileScanOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/RecordFileScanOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/RecordFileScanOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/RecordReader.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/RecordReader.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/RecordReader.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/RecordReader.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/RecordWriter.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/RecordWriter.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/RecordWriter.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/file/RecordWriter.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/GroupingHashTable.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/GroupingHashTable.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/GroupingHashTable.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/GroupingHashTable.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/HashGroupOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/HashGroupOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/HashGroupOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/HashGroupOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/IAccumulatingAggregator.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/IAccumulatingAggregator.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/IAccumulatingAggregator.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/IAccumulatingAggregator.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/IAccumulatingAggregatorFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/IAccumulatingAggregatorFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/IAccumulatingAggregatorFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/IAccumulatingAggregatorFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/IGroupAggregator.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/IGroupAggregator.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/IGroupAggregator.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/IGroupAggregator.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/PreclusteredGroupOperator.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/PreclusteredGroupOperator.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/PreclusteredGroupOperator.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/PreclusteredGroupOperator.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/PreclusteredGroupOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/PreclusteredGroupOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/PreclusteredGroupOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/group/PreclusteredGroupOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/AbstractHadoopFileScanOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/AbstractHadoopFileScanOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/AbstractHadoopFileScanOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/AbstractHadoopFileScanOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/AbstractHadoopOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/AbstractHadoopOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/AbstractHadoopOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/AbstractHadoopOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HDFSWriteOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HDFSWriteOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HDFSWriteOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HDFSWriteOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HadoopMapperOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HadoopMapperOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HadoopMapperOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HadoopMapperOperatorDescriptor.java
diff --git a/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HadoopReadOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HadoopReadOperatorDescriptor.java
new file mode 100644
index 0000000..3aa5c1a
--- /dev/null
+++ b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HadoopReadOperatorDescriptor.java
@@ -0,0 +1,236 @@
+/*
+ * Copyright 2009-2010 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.hyracks.dataflow.std.hadoop;
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.NetworkInterface;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.mapred.FileSplit;
+import org.apache.hadoop.mapred.InputFormat;
+import org.apache.hadoop.mapred.JobConf;
+import org.apache.hadoop.mapred.RecordReader;
+import org.apache.hadoop.mapred.Reporter;
+import org.apache.hadoop.mapred.SequenceFileRecordReader;
+import org.apache.hadoop.util.ReflectionUtils;
+
+import edu.uci.ics.hyracks.api.constraints.AbsoluteLocationConstraint;
+import edu.uci.ics.hyracks.api.constraints.ExplicitPartitionConstraint;
+import edu.uci.ics.hyracks.api.constraints.LocationConstraint;
+import edu.uci.ics.hyracks.api.constraints.PartitionConstraint;
+import edu.uci.ics.hyracks.api.dataflow.value.RecordDescriptor;
+import edu.uci.ics.hyracks.api.job.JobSpecification;
+import edu.uci.ics.hyracks.dataflow.std.file.IRecordReader;
+import edu.uci.ics.hyracks.dataflow.std.hadoop.util.DatatypeHelper;
+import edu.uci.ics.hyracks.dataflow.std.hadoop.util.HadoopAdapter;
+import edu.uci.ics.hyracks.dataflow.std.hadoop.util.HadoopFileSplit;
+
+public class HadoopReadOperatorDescriptor extends AbstractHadoopFileScanOperatorDescriptor {
+
+ private static final long serialVersionUID = 1L;
+ private String inputFormatClassName;
+ private Map<String, String> jobConfMap;
+
+ private static class HDFSCustomReader implements IRecordReader {
+ private RecordReader hadoopRecordReader;
+ private Class inputKeyClass;
+ private Class inputValueClass;
+ private Object key;
+ private Object value;
+
+ public HDFSCustomReader(Map<String, String> jobConfMap, HadoopFileSplit inputSplit,
+ String inputFormatClassName, Reporter reporter) {
+ try {
+ JobConf conf = DatatypeHelper.hashMap2JobConf((HashMap) jobConfMap);
+ FileSystem fileSystem = null;
+ try {
+ fileSystem = FileSystem.get(conf);
+ } catch (IOException ioe) {
+ ioe.printStackTrace();
+ }
+
+ Class inputFormatClass = Class.forName(inputFormatClassName);
+ InputFormat inputFormat = (InputFormat) ReflectionUtils.newInstance(inputFormatClass, conf);
+ hadoopRecordReader = (RecordReader) inputFormat.getRecordReader(getFileSplit(inputSplit), conf,
+ reporter);
+ if (hadoopRecordReader instanceof SequenceFileRecordReader) {
+ inputKeyClass = ((SequenceFileRecordReader) hadoopRecordReader).getKeyClass();
+ inputValueClass = ((SequenceFileRecordReader) hadoopRecordReader).getValueClass();
+ } else {
+ inputKeyClass = hadoopRecordReader.createKey().getClass();
+ inputValueClass = hadoopRecordReader.createValue().getClass();
+ }
+ key = inputKeyClass.newInstance();
+ value = inputValueClass.newInstance();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public Class getInputKeyClass() {
+ return inputKeyClass;
+ }
+
+ public void setInputKeyClass(Class inputKeyClass) {
+ this.inputKeyClass = inputKeyClass;
+ }
+
+ public Class getInputValueClass() {
+ return inputValueClass;
+ }
+
+ public void setInputValueClass(Class inputValueClass) {
+ this.inputValueClass = inputValueClass;
+ }
+
+ @Override
+ public void close() {
+ try {
+ hadoopRecordReader.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public boolean read(Object[] record) throws Exception {
+ if (!hadoopRecordReader.next(key, value)) {
+ return false;
+ }
+ if (record.length == 1) {
+ record[0] = value;
+ } else {
+ record[0] = key;
+ record[1] = value;
+ }
+ return true;
+ }
+
+ private FileSplit getFileSplit(HadoopFileSplit hadoopFileSplit) {
+ FileSplit fileSplit = new FileSplit(new Path(hadoopFileSplit.getFile()), hadoopFileSplit.getStart(),
+ hadoopFileSplit.getLength(), hadoopFileSplit.getHosts());
+ return fileSplit;
+ }
+ }
+
+ public HadoopReadOperatorDescriptor(Map<String, String> jobConfMap, JobSpecification spec,
+ HadoopFileSplit[] splits, String inputFormatClassName, RecordDescriptor recordDescriptor) {
+ super(spec, splits, recordDescriptor);
+ this.inputFormatClassName = inputFormatClassName;
+ this.jobConfMap = jobConfMap;
+ }
+
+ public HadoopReadOperatorDescriptor(Map<String, String> jobConfMap, InetSocketAddress nameNode,
+ JobSpecification spec, String inputFormatClassName, RecordDescriptor recordDescriptor) {
+ super(spec, null, recordDescriptor);
+ this.inputFormatClassName = inputFormatClassName;
+ this.jobConfMap = jobConfMap;
+ }
+
+ // public HadoopReadOperatorDescriptor(IClusterController clusterController, Map<String, String> jobConfMap,
+ // JobSpecification spec, String fileSystemURL, String inputFormatClassName, RecordDescriptor recordDescriptor) {
+ // super(spec, null, recordDescriptor);
+ // HadoopAdapter hadoopAdapter = HadoopAdapter.getInstance(fileSystemURL);
+ // String inputPathString = jobConfMap.get("mapred.input.dir");
+ // String[] inputPaths = inputPathString.split(",");
+ // Map<String, List<HadoopFileSplit>> blocksToRead = hadoopAdapter.getInputSplits(inputPaths);
+ // List<HadoopFileSplit> hadoopFileSplits = new ArrayList<HadoopFileSplit>();
+ // for (String filePath : blocksToRead.keySet()) {
+ // hadoopFileSplits.addAll(blocksToRead.get(filePath));
+ // }
+ // for (HadoopFileSplit hadoopFileSplit : hadoopFileSplits) {
+ // System.out.println(" Hadoop File Split : " + hadoopFileSplit);
+ // }
+ // super.splits = hadoopFileSplits.toArray(new HadoopFileSplit[] {});
+ // configurePartitionConstraints(clusterController, blocksToRead);
+ // this.inputFormatClassName = inputFormatClassName;
+ // this.jobConfMap = jobConfMap;
+ // }
+
+ // private void configurePartitionConstraints(IClusterController clusterController,
+ // Map<String, List<HadoopFileSplit>> blocksToRead) {
+ // List<LocationConstraint> locationConstraints = new ArrayList<LocationConstraint>();
+ // Map<String, INodeController> registry = null;
+ // try {
+ // // registry = clusterController.getRegistry();
+ // // TODO
+ // } catch (Exception e) {
+ // e.printStackTrace();
+ // }
+ // Map<String, String> hostnameToNodeIdMap = new HashMap<String, String>();
+ // NCConfig ncConfig = null;
+ // for (String nodeId : registry.keySet()) {
+ // try {
+ // ncConfig = ((INodeController) registry.get(nodeId)).getConfiguration();
+ // String ipAddress = ncConfig.dataIPAddress;
+ // String hostname = InetAddress.getByName(ipAddress).getHostName();
+ // System.out.println(" hostname :" + hostname + " nodeid:" + nodeId);
+ // hostnameToNodeIdMap.put(hostname, nodeId);
+ // } catch (Exception e) {
+ // e.printStackTrace();
+ // }
+ // }
+ //
+ // for (String filePath : blocksToRead.keySet()) {
+ // List<HadoopFileSplit> hadoopFileSplits = blocksToRead.get(filePath);
+ // for (HadoopFileSplit hadoopFileSplit : hadoopFileSplits) {
+ // String hostname = hadoopFileSplit.getHosts()[0];
+ // System.out.println("host name is :" + hostname);
+ // InetAddress address = null;
+ // try {
+ // address = InetAddress.getByName(hostname);
+ // if (address.isLoopbackAddress()) {
+ // Enumeration<NetworkInterface> netInterfaces = NetworkInterface.getNetworkInterfaces();
+ // while (netInterfaces.hasMoreElements()) {
+ // NetworkInterface ni = netInterfaces.nextElement();
+ // InetAddress inetAddress = (InetAddress) ni.getInetAddresses().nextElement();
+ // if (!inetAddress.isLoopbackAddress()) {
+ // address = inetAddress;
+ // break;
+ // }
+ // }
+ // }
+ // hostname = address.getHostName();
+ // System.out.println("cannonical host name hyracks :" + hostname);
+ // } catch (Exception e) {
+ // e.printStackTrace();
+ // }
+ // String nodeId = hostnameToNodeIdMap.get(hostname);
+ // System.out.println(" corresponding node id is :" + nodeId);
+ // LocationConstraint locationConstraint = new AbsoluteLocationConstraint(nodeId);
+ // locationConstraints.add(locationConstraint);
+ // }
+ // }
+ //
+ // PartitionConstraint partitionConstraint = new ExplicitPartitionConstraint(locationConstraints
+ // .toArray(new LocationConstraint[] {}));
+ // this.setPartitionConstraint(partitionConstraint);
+ // }
+
+ @Override
+ protected IRecordReader createRecordReader(HadoopFileSplit fileSplit, RecordDescriptor desc) throws Exception {
+ Reporter reporter = createReporter();
+ IRecordReader recordReader = new HDFSCustomReader(jobConfMap, fileSplit, inputFormatClassName, reporter);
+ return recordReader;
+ }
+}
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HadoopReducerOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HadoopReducerOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HadoopReducerOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/HadoopReducerOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/AbstractClassBasedDelegate.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/AbstractClassBasedDelegate.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/AbstractClassBasedDelegate.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/AbstractClassBasedDelegate.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/HadoopHashTuplePartitionComputerFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/HadoopHashTuplePartitionComputerFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/HadoopHashTuplePartitionComputerFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/HadoopHashTuplePartitionComputerFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/HadoopPartitionerTuplePartitionComputerFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/HadoopPartitionerTuplePartitionComputerFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/HadoopPartitionerTuplePartitionComputerFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/HadoopPartitionerTuplePartitionComputerFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/KeyBinaryComparatorFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/KeyBinaryComparatorFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/KeyBinaryComparatorFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/KeyBinaryComparatorFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/KeyComparatorFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/KeyComparatorFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/KeyComparatorFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/KeyComparatorFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/WritableComparingBinaryComparatorFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/WritableComparingBinaryComparatorFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/WritableComparingBinaryComparatorFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/WritableComparingBinaryComparatorFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/WritableComparingComparatorFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/WritableComparingComparatorFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/WritableComparingComparatorFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/data/WritableComparingComparatorFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/ClasspathBasedHadoopClassFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/ClasspathBasedHadoopClassFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/ClasspathBasedHadoopClassFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/ClasspathBasedHadoopClassFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/DatatypeHelper.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/DatatypeHelper.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/DatatypeHelper.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/DatatypeHelper.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/DuplicateKeyMapper.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/DuplicateKeyMapper.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/DuplicateKeyMapper.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/DuplicateKeyMapper.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/HadoopAdapter.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/HadoopAdapter.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/HadoopAdapter.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/HadoopAdapter.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/HadoopFileSplit.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/HadoopFileSplit.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/HadoopFileSplit.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/HadoopFileSplit.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/IHadoopClassFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/IHadoopClassFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/IHadoopClassFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/IHadoopClassFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/PreappendLongWritableMapper.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/PreappendLongWritableMapper.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/PreappendLongWritableMapper.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/hadoop/util/PreappendLongWritableMapper.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/join/GraceHashJoinOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/join/GraceHashJoinOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/join/GraceHashJoinOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/join/GraceHashJoinOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/join/HybridHashJoinOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/join/HybridHashJoinOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/join/HybridHashJoinOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/join/HybridHashJoinOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/join/InMemoryHashJoin.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/join/InMemoryHashJoin.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/join/InMemoryHashJoin.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/join/InMemoryHashJoin.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/join/InMemoryHashJoinOperatorDescriptor.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/join/InMemoryHashJoinOperatorDescriptor.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/join/InMemoryHashJoinOperatorDescriptor.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/join/InMemoryHashJoinOperatorDescriptor.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/map/ReflectionBasedMapperFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/map/ReflectionBasedMapperFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/map/ReflectionBasedMapperFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/map/ReflectionBasedMapperFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/map/SamplerMapFactory.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/map/SamplerMapFactory.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/map/SamplerMapFactory.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/map/SamplerMapFactory.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/DeserializedOperatorNodePushable.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/DeserializedOperatorNodePushable.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/DeserializedOperatorNodePushable.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/DeserializedOperatorNodePushable.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/ReferenceEntry.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/ReferenceEntry.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/ReferenceEntry.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/ReferenceEntry.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/ReferencedPriorityQueue.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/ReferencedPriorityQueue.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/ReferencedPriorityQueue.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/ReferencedPriorityQueue.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/SynchronizedBoundedBuffer.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/SynchronizedBoundedBuffer.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/SynchronizedBoundedBuffer.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/SynchronizedBoundedBuffer.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/SynchronizedBoundedBufferDataReader.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/SynchronizedBoundedBufferDataReader.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/SynchronizedBoundedBufferDataReader.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/SynchronizedBoundedBufferDataReader.java
diff --git a/hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/SynchronizedBoundedBufferDataWriter.java b/hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/SynchronizedBoundedBufferDataWriter.java
similarity index 100%
rename from hyracks/hyracks-core/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/SynchronizedBoundedBufferDataWriter.java
rename to hyracks/hyracks-dataflow-std/src/main/java/edu/uci/ics/hyracks/dataflow/std/util/SynchronizedBoundedBufferDataWriter.java
diff --git a/hyracks/hyracks-server/.classpath b/hyracks/hyracks-server/.classpath
new file mode 100644
index 0000000..f2cc5f7
--- /dev/null
+++ b/hyracks/hyracks-server/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/hyracks/hyracks-server/.project b/hyracks/hyracks-server/.project
new file mode 100644
index 0000000..89dd035
--- /dev/null
+++ b/hyracks/hyracks-server/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>hyracks-server</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.maven.ide.eclipse.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.maven.ide.eclipse.maven2Nature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/hyracks/hyracks-server/.settings/org.eclipse.jdt.core.prefs b/hyracks/hyracks-server/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..e5faa3a
--- /dev/null
+++ b/hyracks/hyracks-server/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,6 @@
+#Thu Jul 29 15:30:35 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/hyracks/hyracks-server/.settings/org.maven.ide.eclipse.prefs b/hyracks/hyracks-server/.settings/org.maven.ide.eclipse.prefs
new file mode 100644
index 0000000..6b45873
--- /dev/null
+++ b/hyracks/hyracks-server/.settings/org.maven.ide.eclipse.prefs
@@ -0,0 +1,9 @@
+#Thu Jul 29 15:30:15 PDT 2010
+activeProfiles=
+eclipse.preferences.version=1
+fullBuildGoals=process-test-resources
+includeModules=false
+resolveWorkspaceProjects=true
+resourceFilterGoals=process-resources resources\:testResources
+skipCompilerPlugin=true
+version=1
diff --git a/hyracks/hyracks-core/data/dblp.txt b/hyracks/hyracks-server/data/dblp.txt
similarity index 100%
rename from hyracks/hyracks-core/data/dblp.txt
rename to hyracks/hyracks-server/data/dblp.txt
diff --git a/hyracks/hyracks-core/data/tpch0.001/customer-part1.tbl b/hyracks/hyracks-server/data/tpch0.001/customer-part1.tbl
similarity index 100%
rename from hyracks/hyracks-core/data/tpch0.001/customer-part1.tbl
rename to hyracks/hyracks-server/data/tpch0.001/customer-part1.tbl
diff --git a/hyracks/hyracks-core/data/tpch0.001/customer-part2.tbl b/hyracks/hyracks-server/data/tpch0.001/customer-part2.tbl
similarity index 100%
rename from hyracks/hyracks-core/data/tpch0.001/customer-part2.tbl
rename to hyracks/hyracks-server/data/tpch0.001/customer-part2.tbl
diff --git a/hyracks/hyracks-core/data/tpch0.001/customer.tbl b/hyracks/hyracks-server/data/tpch0.001/customer.tbl
similarity index 100%
rename from hyracks/hyracks-core/data/tpch0.001/customer.tbl
rename to hyracks/hyracks-server/data/tpch0.001/customer.tbl
diff --git a/hyracks/hyracks-core/data/tpch0.001/lineitem.tbl b/hyracks/hyracks-server/data/tpch0.001/lineitem.tbl
similarity index 100%
rename from hyracks/hyracks-core/data/tpch0.001/lineitem.tbl
rename to hyracks/hyracks-server/data/tpch0.001/lineitem.tbl
diff --git a/hyracks/hyracks-core/data/tpch0.001/nation.tbl b/hyracks/hyracks-server/data/tpch0.001/nation.tbl
similarity index 100%
rename from hyracks/hyracks-core/data/tpch0.001/nation.tbl
rename to hyracks/hyracks-server/data/tpch0.001/nation.tbl
diff --git a/hyracks/hyracks-core/data/tpch0.001/orders-part1.tbl b/hyracks/hyracks-server/data/tpch0.001/orders-part1.tbl
similarity index 100%
rename from hyracks/hyracks-core/data/tpch0.001/orders-part1.tbl
rename to hyracks/hyracks-server/data/tpch0.001/orders-part1.tbl
diff --git a/hyracks/hyracks-core/data/tpch0.001/orders-part2.tbl b/hyracks/hyracks-server/data/tpch0.001/orders-part2.tbl
similarity index 100%
rename from hyracks/hyracks-core/data/tpch0.001/orders-part2.tbl
rename to hyracks/hyracks-server/data/tpch0.001/orders-part2.tbl
diff --git a/hyracks/hyracks-core/data/tpch0.001/orders.tbl b/hyracks/hyracks-server/data/tpch0.001/orders.tbl
similarity index 100%
rename from hyracks/hyracks-core/data/tpch0.001/orders.tbl
rename to hyracks/hyracks-server/data/tpch0.001/orders.tbl
diff --git a/hyracks/hyracks-core/data/tpch0.001/part.tbl b/hyracks/hyracks-server/data/tpch0.001/part.tbl
similarity index 100%
rename from hyracks/hyracks-core/data/tpch0.001/part.tbl
rename to hyracks/hyracks-server/data/tpch0.001/part.tbl
diff --git a/hyracks/hyracks-core/data/tpch0.001/partsupp.tbl b/hyracks/hyracks-server/data/tpch0.001/partsupp.tbl
similarity index 100%
rename from hyracks/hyracks-core/data/tpch0.001/partsupp.tbl
rename to hyracks/hyracks-server/data/tpch0.001/partsupp.tbl
diff --git a/hyracks/hyracks-core/data/tpch0.001/region.tbl b/hyracks/hyracks-server/data/tpch0.001/region.tbl
similarity index 100%
rename from hyracks/hyracks-core/data/tpch0.001/region.tbl
rename to hyracks/hyracks-server/data/tpch0.001/region.tbl
diff --git a/hyracks/hyracks-core/data/tpch0.001/supplier.tbl b/hyracks/hyracks-server/data/tpch0.001/supplier.tbl
similarity index 100%
rename from hyracks/hyracks-core/data/tpch0.001/supplier.tbl
rename to hyracks/hyracks-server/data/tpch0.001/supplier.tbl
diff --git a/hyracks/hyracks-core/data/tpch0.001/tpch.ddl b/hyracks/hyracks-server/data/tpch0.001/tpch.ddl
similarity index 100%
rename from hyracks/hyracks-core/data/tpch0.001/tpch.ddl
rename to hyracks/hyracks-server/data/tpch0.001/tpch.ddl
diff --git a/hyracks/hyracks-core/data/words.txt b/hyracks/hyracks-server/data/words.txt
similarity index 100%
rename from hyracks/hyracks-core/data/words.txt
rename to hyracks/hyracks-server/data/words.txt
diff --git a/hyracks/hyracks-server/pom.xml b/hyracks/hyracks-server/pom.xml
new file mode 100644
index 0000000..0cdd030
--- /dev/null
+++ b/hyracks/hyracks-server/pom.xml
@@ -0,0 +1,94 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>edu.uci.ics.hyracks</groupId>
+ <artifactId>hyracks-server</artifactId>
+ <version>0.0.5-SNAPSHOT</version>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.0.2</version>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <forkMode>pertest</forkMode>
+ <argLine>-enableassertions</argLine>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>appassembler-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <configuration>
+ <programs>
+ <program>
+ <mainClass>edu.uci.ics.hyracks.driver.CCDriver</mainClass>
+ <name>hyrackscc</name>
+ </program>
+ <program>
+ <mainClass>edu.uci.ics.hyracks.driver.NCDriver</mainClass>
+ <name>hyracksnc</name>
+ </program>
+ </programs>
+ <repositoryLayout>flat</repositoryLayout>
+ <repositoryName>lib</repositoryName>
+ </configuration>
+ <phase>package</phase>
+ <goals>
+ <goal>assemble</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.2-beta-5</version>
+ <executions>
+ <execution>
+ <configuration>
+ <descriptors>
+ <descriptor>src/main/assembly/binary-assembly.xml</descriptor>
+ <descriptor>src/main/assembly/source-assembly.xml</descriptor>
+ </descriptors>
+ </configuration>
+ <phase>package</phase>
+ <goals>
+ <goal>attached</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.8.1</version>
+ <type>jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>edu.uci.ics.hyracks</groupId>
+ <artifactId>hyracks-dataflow-std</artifactId>
+ <version>0.1.0</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>edu.uci.ics.hyracks</groupId>
+ <artifactId>hyracks-core</artifactId>
+ <version>0.1.0</version>
+ <type>jar</type>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/hyracks/hyracks-core/src/main/assembly/binary-assembly.xml b/hyracks/hyracks-server/src/main/assembly/binary-assembly.xml
similarity index 100%
rename from hyracks/hyracks-core/src/main/assembly/binary-assembly.xml
rename to hyracks/hyracks-server/src/main/assembly/binary-assembly.xml
diff --git a/hyracks/hyracks-core/src/main/assembly/source-assembly.xml b/hyracks/hyracks-server/src/main/assembly/source-assembly.xml
similarity index 100%
rename from hyracks/hyracks-core/src/main/assembly/source-assembly.xml
rename to hyracks/hyracks-server/src/main/assembly/source-assembly.xml
diff --git a/hyracks/hyracks-core/src/test/java/edu/uci/ics/hyracks/tests/comm/SerializationDeserializationTest.java b/hyracks/hyracks-server/src/test/java/edu/uci/ics/hyracks/tests/comm/SerializationDeserializationTest.java
similarity index 100%
rename from hyracks/hyracks-core/src/test/java/edu/uci/ics/hyracks/tests/comm/SerializationDeserializationTest.java
rename to hyracks/hyracks-server/src/test/java/edu/uci/ics/hyracks/tests/comm/SerializationDeserializationTest.java
diff --git a/hyracks/hyracks-core/src/test/java/edu/uci/ics/hyracks/tests/integration/AbstractIntegrationTest.java b/hyracks/hyracks-server/src/test/java/edu/uci/ics/hyracks/tests/integration/AbstractIntegrationTest.java
similarity index 100%
rename from hyracks/hyracks-core/src/test/java/edu/uci/ics/hyracks/tests/integration/AbstractIntegrationTest.java
rename to hyracks/hyracks-server/src/test/java/edu/uci/ics/hyracks/tests/integration/AbstractIntegrationTest.java
diff --git a/hyracks/hyracks-core/src/test/java/edu/uci/ics/hyracks/tests/integration/CountOfCountsTest.java b/hyracks/hyracks-server/src/test/java/edu/uci/ics/hyracks/tests/integration/CountOfCountsTest.java
similarity index 100%
rename from hyracks/hyracks-core/src/test/java/edu/uci/ics/hyracks/tests/integration/CountOfCountsTest.java
rename to hyracks/hyracks-server/src/test/java/edu/uci/ics/hyracks/tests/integration/CountOfCountsTest.java
diff --git a/hyracks/hyracks-core/src/test/java/edu/uci/ics/hyracks/tests/integration/ScanPrintTest.java b/hyracks/hyracks-server/src/test/java/edu/uci/ics/hyracks/tests/integration/ScanPrintTest.java
similarity index 100%
rename from hyracks/hyracks-core/src/test/java/edu/uci/ics/hyracks/tests/integration/ScanPrintTest.java
rename to hyracks/hyracks-server/src/test/java/edu/uci/ics/hyracks/tests/integration/ScanPrintTest.java
diff --git a/hyracks/hyracks-core/src/test/java/edu/uci/ics/hyracks/tests/integration/SortMergeTest.java b/hyracks/hyracks-server/src/test/java/edu/uci/ics/hyracks/tests/integration/SortMergeTest.java
similarity index 100%
rename from hyracks/hyracks-core/src/test/java/edu/uci/ics/hyracks/tests/integration/SortMergeTest.java
rename to hyracks/hyracks-server/src/test/java/edu/uci/ics/hyracks/tests/integration/SortMergeTest.java
diff --git a/hyracks/hyracks-core/src/test/java/edu/uci/ics/hyracks/tests/integration/TPCHCustomerOrderHashJoinTest.java b/hyracks/hyracks-server/src/test/java/edu/uci/ics/hyracks/tests/integration/TPCHCustomerOrderHashJoinTest.java
similarity index 100%
rename from hyracks/hyracks-core/src/test/java/edu/uci/ics/hyracks/tests/integration/TPCHCustomerOrderHashJoinTest.java
rename to hyracks/hyracks-server/src/test/java/edu/uci/ics/hyracks/tests/integration/TPCHCustomerOrderHashJoinTest.java
diff --git a/hyracks/pom.xml b/hyracks/pom.xml
index 4346027..f251ebc 100644
--- a/hyracks/pom.xml
+++ b/hyracks/pom.xml
@@ -7,6 +7,9 @@
<modules>
<module>hyracks-api</module>
+ <module>hyracks-dataflow-common</module>
+ <module>hyracks-dataflow-std</module>
<module>hyracks-core</module>
+ <module>hyracks-server</module>
</modules>
</project>