diff --git a/pom.xml b/pom.xml index 8b634f084..39a90e07d 100644 --- a/pom.xml +++ b/pom.xml @@ -236,7 +236,7 @@ args4j args4j - 2.0.9 + 2.33 @@ -762,7 +762,7 @@ UTF-8 UTF-8 0.3.1 - 0.3.0 + 0.3.3 5.5.1 2.7.0 0.11 diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryComparatorFactoryProvider.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryComparatorFactoryProvider.java index b7196cfc1..a510e1ce7 100644 --- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryComparatorFactoryProvider.java +++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/algebricks/VXQueryComparatorFactoryProvider.java @@ -16,12 +16,12 @@ */ package org.apache.vxquery.compiler.algebricks; -import org.apache.vxquery.datamodel.accessors.TaggedValuePointable; - import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; +import org.apache.hyracks.algebricks.common.exceptions.NotImplementedException; import org.apache.hyracks.algebricks.data.IBinaryComparatorFactoryProvider; import org.apache.hyracks.api.dataflow.value.IBinaryComparator; import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory; +import org.apache.vxquery.datamodel.accessors.TaggedValuePointable; public class VXQueryComparatorFactoryProvider implements IBinaryComparatorFactoryProvider { @Override @@ -30,6 +30,12 @@ public IBinaryComparatorFactory getBinaryComparatorFactory(Object type, boolean return new BinaryComparatorFactory(type, ascending); } + @Override + public IBinaryComparatorFactory getBinaryComparatorFactory(Object type, boolean ascending, boolean ignoreCase) + throws AlgebricksException { + throw new NotImplementedException(); + } + private static class BinaryComparatorFactory implements IBinaryComparatorFactory { private static final long serialVersionUID = 1L; diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/IntroduceTwoStepAggregateRule.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/IntroduceTwoStepAggregateRule.java index 806b53292..962b85138 100644 --- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/IntroduceTwoStepAggregateRule.java +++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/IntroduceTwoStepAggregateRule.java @@ -17,12 +17,10 @@ package org.apache.vxquery.compiler.rewriter.rules; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.apache.commons.lang3.mutable.Mutable; -import org.apache.vxquery.functions.BuiltinFunctions; -import org.apache.vxquery.functions.BuiltinOperators; - import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; import org.apache.hyracks.algebricks.common.utils.Pair; import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression; @@ -37,6 +35,8 @@ import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator; import org.apache.hyracks.algebricks.core.algebra.operators.logical.AggregateOperator; import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule; +import org.apache.vxquery.functions.BuiltinFunctions; +import org.apache.vxquery.functions.BuiltinOperators; /** * The rule searches for aggregate operators with an aggregate function @@ -91,28 +91,37 @@ public boolean rewritePre(Mutable opRef, IOptimizationContext if (op.getOperatorTag() != LogicalOperatorTag.AGGREGATE) { return false; } - AggregateOperator aggregate = (AggregateOperator) op; - if (aggregate.getExpressions().size() == 0) { + final AggregateOperator aggregate = (AggregateOperator) op; + AggregateFunctionCallExpression aggregateFunctionCall = getAggregateFunctionCall(aggregate); + if (aggregateFunctionCall == null || aggregateFunctionCall.isTwoStep()) { return false; } - Mutable mutableLogicalExpression = aggregate.getExpressions().get(0); - ILogicalExpression logicalExpression = mutableLogicalExpression.getValue(); + // Replace single step aggregate function with two step function call + final IFunctionInfo functionInfo = aggregateFunctionCall.getFunctionInfo(); + final List> arguments = aggregateFunctionCall.getArguments(); + AggregateFunctionCallExpression twoStepCall = + new AggregateFunctionCallExpression(functionInfo, true, arguments); + final Pair functionInfoPair = + AGGREGATE_MAP.get(aggregateFunctionCall.getFunctionIdentifier()); + twoStepCall.setStepOneAggregate(functionInfoPair.first); + twoStepCall.setStepTwoAggregate(functionInfoPair.second); + aggregate.getExpressions().get(0).setValue(twoStepCall); + return true; + } + + private AggregateFunctionCallExpression getAggregateFunctionCall(AggregateOperator aggregate) { + if (aggregate.getExpressions().size() == 0) { + return null; + } + ILogicalExpression logicalExpression = aggregate.getExpressions().get(0).getValue(); if (logicalExpression.getExpressionTag() != LogicalExpressionTag.FUNCTION_CALL) { - return false; + return null; } AbstractFunctionCallExpression functionCall = (AbstractFunctionCallExpression) logicalExpression; - if (AGGREGATE_MAP.containsKey(functionCall.getFunctionIdentifier())) { - AggregateFunctionCallExpression aggregateFunctionCall = (AggregateFunctionCallExpression) functionCall; - if (aggregateFunctionCall.isTwoStep()) { - return false; - } - aggregateFunctionCall.setTwoStep(true); - aggregateFunctionCall.setStepOneAggregate(AGGREGATE_MAP.get(functionCall.getFunctionIdentifier()).first); - aggregateFunctionCall.setStepTwoAggregate(AGGREGATE_MAP.get(functionCall.getFunctionIdentifier()).second); - return true; + return (AggregateFunctionCallExpression) functionCall; } - return false; + return null; } @Override diff --git a/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryCollectionOperatorDescriptor.java b/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryCollectionOperatorDescriptor.java index a3756d5b4..5ae5ed79d 100644 --- a/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryCollectionOperatorDescriptor.java +++ b/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryCollectionOperatorDescriptor.java @@ -23,6 +23,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; +import java.net.Inet4Address; import java.net.InetAddress; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; @@ -92,7 +93,7 @@ public VXQueryCollectionOperatorDescriptor(IOperatorDescriptorRegistry spec, Abs totalDataSources = (short) ds.getTotalDataSources(); childSeq = ds.getChildSeq(); valueSeq = ds.getValueSeq(); - recordDescriptors[0] = rDesc; + outRecDescs[0] = rDesc; this.tag = ds.getTag(); this.hdfsConf = hdfsConf; this.nodeControllerInfos = nodeControllerInfos; @@ -108,7 +109,7 @@ public IOperatorNodePushable createPushRuntime(IHyracksTaskContext ctx, final IFrameFieldAppender appender = new FrameFixedFieldTupleAppender(fieldOutputCount); final short partitionId = (short) ctx.getTaskAttemptId().getTaskId().getPartition(); final ITreeNodeIdProvider nodeIdProvider = new TreeNodeIdProvider(partitionId, dataSourceId, totalDataSources); - final String nodeId = ctx.getJobletContext().getApplicationContext().getNodeId(); + final String nodeId = ctx.getJobletContext().getServiceContext().getNodeId(); final DynamicContext dCtx = (DynamicContext) ctx.getJobletContext().getGlobalJobData(); final ArrayBackedValueStorage jsonAbvs = new ArrayBackedValueStorage(); final String collectionName = collectionPartitions[partition % collectionPartitions.length]; @@ -157,7 +158,7 @@ public void nextFrame(ByteBuffer buffer) throws HyracksDataException { try { hdfs.scheduleSplits(); ArrayList schedule = hdfs - .getScheduleForNode(InetAddress.getLocalHost().getHostAddress()); + .getScheduleForNode(Inet4Address.getLoopbackAddress().getHostAddress()); List splits = hdfs.getSplits(); List fileSplits = new ArrayList<>(); for (int i : schedule) { diff --git a/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryIndexingOperatorDescriptor.java b/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryIndexingOperatorDescriptor.java index 93533198d..c26547e74 100644 --- a/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryIndexingOperatorDescriptor.java +++ b/vxquery-core/src/main/java/org/apache/vxquery/metadata/VXQueryIndexingOperatorDescriptor.java @@ -69,7 +69,7 @@ public VXQueryIndexingOperatorDescriptor(IOperatorDescriptorRegistry spec, VXQue collectionPartitions = ds.getPartitions(); dataSourceId = (short) ds.getDataSourceId(); totalDataSources = (short) ds.getTotalDataSources(); - recordDescriptors[0] = rDesc; + outRecDescs[0] = rDesc; childSeq = ds.getChildSeq(); indexChildSeq = ds.getIndexChildSeq(); indexAttsSeq = ds.getIndexAttsSeq(); @@ -86,11 +86,11 @@ public IOperatorNodePushable createPushRuntime(IHyracksTaskContext ctx, final IFrameFieldAppender appender = new FrameFixedFieldTupleAppender(fieldOutputCount); final short partitionId = (short) ctx.getTaskAttemptId().getTaskId().getPartition(); final ITreeNodeIdProvider nodeIdProvider = new TreeNodeIdProvider(partitionId, dataSourceId, totalDataSources); - final String nodeId = ctx.getJobletContext().getApplicationContext().getNodeId(); + final String nodeId = ctx.getJobletContext().getServiceContext().getNodeId(); final String collectionName = collectionPartitions[partition % collectionPartitions.length]; final String collectionModifiedName = collectionName.replace("${nodeId}", nodeId); IndexCentralizerUtil indexCentralizerUtil = new IndexCentralizerUtil( - ctx.getIOManager().getIODevices().get(0).getMount()); + ctx.getIoManager().getIODevices().get(0).getMount()); indexCentralizerUtil.readIndexDirectory(); final IPointable result = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable(); diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/index/ShowIndexesScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/index/ShowIndexesScalarEvaluatorFactory.java index 6b18b3305..6004d7902 100644 --- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/index/ShowIndexesScalarEvaluatorFactory.java +++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/index/ShowIndexesScalarEvaluatorFactory.java @@ -52,7 +52,7 @@ protected void evaluate(TaggedValuePointable[] args, IPointable result) throws S abvs.reset(); sb.reset(abvs); IndexCentralizerUtil indexCentralizerUtil = new IndexCentralizerUtil( - ctx.getIOManager().getIODevices().get(0).getMount()); + ctx.getIoManager().getIODevices().get(0).getMount()); indexCentralizerUtil.readIndexDirectory(); indexCentralizerUtil.getAllCollections(sb); sb.finish(); diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnDocAvailableScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnDocAvailableScalarEvaluatorFactory.java index 15fd62474..6d63d5fe2 100644 --- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnDocAvailableScalarEvaluatorFactory.java +++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnDocAvailableScalarEvaluatorFactory.java @@ -57,7 +57,7 @@ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvalu final DataInputStream di = new DataInputStream(bbis); final int partition = ctx.getTaskAttemptId().getTaskId().getPartition(); final ITreeNodeIdProvider nodeIdProvider = new TreeNodeIdProvider((short) partition); - final String nodeId = ctx.getJobletContext().getApplicationContext().getNodeId(); + final String nodeId = ctx.getJobletContext().getServiceContext().getNodeId(); return new AbstractTaggedValueArgumentScalarEvaluator(args) { @Override diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnDocScalarEvaluatorFactory.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnDocScalarEvaluatorFactory.java index 2fd1755ae..e3157afdb 100644 --- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnDocScalarEvaluatorFactory.java +++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/FnDocScalarEvaluatorFactory.java @@ -57,7 +57,7 @@ protected IScalarEvaluator createEvaluator(IHyracksTaskContext ctx, IScalarEvalu final DataInputStream di = new DataInputStream(bbis); final int partition = ctx.getTaskAttemptId().getTaskId().getPartition(); final ITreeNodeIdProvider nodeIdProvider = new TreeNodeIdProvider((short) partition); - final String nodeId = ctx.getJobletContext().getApplicationContext().getNodeId(); + final String nodeId = ctx.getJobletContext().getServiceContext().getNodeId(); return new AbstractTaggedValueArgumentScalarEvaluator(args) { @Override diff --git a/vxquery-rest/src/main/java/org/apache/vxquery/app/VXQueryApplication.java b/vxquery-rest/src/main/java/org/apache/vxquery/app/VXQueryApplication.java index f5e01659f..e2ca1b778 100644 --- a/vxquery-rest/src/main/java/org/apache/vxquery/app/VXQueryApplication.java +++ b/vxquery-rest/src/main/java/org/apache/vxquery/app/VXQueryApplication.java @@ -28,9 +28,13 @@ import java.util.logging.Level; import java.util.logging.Logger; -import org.apache.hyracks.api.application.ICCApplicationContext; -import org.apache.hyracks.api.application.ICCApplicationEntryPoint; +import org.apache.hyracks.api.application.ICCApplication; +import org.apache.hyracks.api.application.ICCServiceContext; +import org.apache.hyracks.api.application.IServiceContext; import org.apache.hyracks.api.client.ClusterControllerInfo; +import org.apache.hyracks.api.config.IConfigManager; +import org.apache.hyracks.api.job.resource.DefaultJobCapacityController; +import org.apache.hyracks.api.job.resource.IJobCapacityController; import org.apache.vxquery.exceptions.VXQueryRuntimeException; import org.apache.vxquery.rest.RestServer; import org.apache.vxquery.rest.service.VXQueryConfig; @@ -44,15 +48,20 @@ * * @author Erandi Ganepola */ -public class VXQueryApplication implements ICCApplicationEntryPoint { +public class VXQueryApplication implements ICCApplication { private static final Logger LOGGER = Logger.getLogger(VXQueryApplication.class.getName()); private VXQueryService vxQueryService; private RestServer restServer; + private ICCServiceContext ccAppCtx; + + public void init(IServiceContext serviceCtx) throws Exception { + ccAppCtx = (ICCServiceContext)serviceCtx; + } @Override - public void start(ICCApplicationContext ccAppCtx, String[] args) throws Exception { + public void start(String[] args) throws Exception { AppArgs appArgs = new AppArgs(); if (args != null) { CmdLineParser parser = new CmdLineParser(appArgs); @@ -98,6 +107,22 @@ public void startupCompleted() throws Exception { } } + + @Override + public Object getApplicationContext() { + return ccAppCtx; + } + + @Override + public void registerConfig(IConfigManager configManager) { + throw new UnsupportedOperationException(); + } + + @Override + public IJobCapacityController getJobCapacityController() { + return DefaultJobCapacityController.INSTANCE; + } + /** * Loads properties from * diff --git a/vxquery-rest/src/main/java/org/apache/vxquery/app/util/LocalClusterUtil.java b/vxquery-rest/src/main/java/org/apache/vxquery/app/util/LocalClusterUtil.java index cd149ddd1..998563c83 100644 --- a/vxquery-rest/src/main/java/org/apache/vxquery/app/util/LocalClusterUtil.java +++ b/vxquery-rest/src/main/java/org/apache/vxquery/app/util/LocalClusterUtil.java @@ -24,7 +24,7 @@ import static org.apache.vxquery.rest.Constants.Properties.MAXIMUM_DATA_SIZE; import java.io.IOException; -import java.net.InetAddress; +import java.net.Inet4Address; import java.net.UnknownHostException; import java.nio.file.Files; import java.util.Arrays; @@ -59,8 +59,6 @@ public class LocalClusterUtil { private ClusterControllerService clusterControllerService; private NodeControllerService nodeControllerSerivce; - private IHyracksClientConnection hcc; - private IHyracksDataset hds; private VXQueryService vxQueryService; public void init(VXQueryConfig config) throws Exception { @@ -77,19 +75,14 @@ public void init(VXQueryConfig config) throws Exception { clusterControllerService = new ClusterControllerService(ccConfig); clusterControllerService.start(); - hcc = new HyracksConnection(ccConfig.clientNetIpAddress, ccConfig.clientNetPort); - hds = new HyracksDataset(hcc, config.getFrameSize(), config.getAvailableProcessors()); - // Node controller NCConfig ncConfig = createNCConfig(); nodeControllerSerivce = new NodeControllerService(ncConfig); nodeControllerSerivce.start(); - hcc = new HyracksConnection(ccConfig.clientNetIpAddress, ccConfig.clientNetPort); - // REST controller - config.setHyracksClientIp(ccConfig.clientNetIpAddress); - config.setHyracksClientPort(ccConfig.clientNetPort); + config.setHyracksClientIp(ccConfig.getClientListenAddress()); + config.setHyracksClientPort(ccConfig.getClientListenPort()); vxQueryService = new VXQueryService(config); vxQueryService.start(); } @@ -97,35 +90,30 @@ public void init(VXQueryConfig config) throws Exception { protected CCConfig createCCConfig() throws IOException { String localAddress = getIpAddress(); CCConfig ccConfig = new CCConfig(); - ccConfig.clientNetIpAddress = localAddress; - ccConfig.clientNetPort = DEFAULT_HYRACKS_CC_CLIENT_PORT; - ccConfig.clusterNetIpAddress = localAddress; - ccConfig.clusterNetPort = DEFAULT_HYRACKS_CC_CLUSTER_PORT; - ccConfig.httpPort = DEFAULT_HYRACKS_CC_HTTP_PORT; - ccConfig.profileDumpPeriod = 10000; - ccConfig.appCCMainClass = VXQueryApplication.class.getName(); - ccConfig.appArgs = Arrays.asList("-restPort", String.valueOf(DEFAULT_VXQUERY_REST_PORT)); - + ccConfig.setClientListenAddress(localAddress); + ccConfig.setClientListenPort(DEFAULT_HYRACKS_CC_CLIENT_PORT); + ccConfig.setClusterListenAddress(localAddress); + ccConfig.setClusterListenPort(DEFAULT_HYRACKS_CC_CLUSTER_PORT); + ccConfig.setConsoleListenPort(DEFAULT_HYRACKS_CC_HTTP_PORT); + ccConfig.setProfileDumpPeriod(10000); + ccConfig.setAppClass(VXQueryApplication.class.getName()); + ccConfig.getAppArgs().addAll(Arrays.asList("-restPort", String.valueOf(DEFAULT_VXQUERY_REST_PORT))); return ccConfig; } protected NCConfig createNCConfig() throws IOException { String localAddress = getIpAddress(); - NCConfig ncConfig = new NCConfig(); - ncConfig.ccHost = "localhost"; - ncConfig.ccPort = DEFAULT_HYRACKS_CC_CLUSTER_PORT; - ncConfig.clusterNetIPAddress = localAddress; - ncConfig.dataIPAddress = localAddress; - ncConfig.resultIPAddress = localAddress; - ncConfig.nodeId = "test_node"; - ncConfig.ioDevices = Files.createTempDirectory(ncConfig.nodeId).toString(); + String nodeId = "test_node"; + NCConfig ncConfig = new NCConfig(nodeId); + ncConfig.setClusterAddress("localhost"); + ncConfig.setClusterPort(DEFAULT_HYRACKS_CC_CLUSTER_PORT); + ncConfig.setClusterListenAddress(localAddress); + ncConfig.setDataListenAddress(localAddress); + ncConfig.setResultListenAddress(localAddress); + ncConfig.setIODevices(new String[] { Files.createTempDirectory(nodeId).toString() }); + ncConfig.setVirtualNC(); return ncConfig; } - - public IHyracksClientConnection getHyracksClientConnection() { - return hcc; - } - public VXQueryService getVxQueryService() { return vxQueryService; } @@ -166,21 +154,10 @@ public void run() { } public String getIpAddress() throws UnknownHostException { - return InetAddress.getLocalHost().getHostAddress(); + return Inet4Address.getLoopbackAddress().getHostAddress(); } public int getRestPort() { return DEFAULT_VXQUERY_REST_PORT; } - - @Deprecated - public IHyracksClientConnection getConnection() { - return hcc; - } - - @Deprecated - public IHyracksDataset getDataset() { - return hds; - } - } \ No newline at end of file diff --git a/vxquery-rest/src/main/java/org/apache/vxquery/rest/request/QueryRequest.java b/vxquery-rest/src/main/java/org/apache/vxquery/rest/request/QueryRequest.java index a88ae1ccd..6c3a25d9d 100644 --- a/vxquery-rest/src/main/java/org/apache/vxquery/rest/request/QueryRequest.java +++ b/vxquery-rest/src/main/java/org/apache/vxquery/rest/request/QueryRequest.java @@ -140,7 +140,7 @@ public void setShowMetrics(boolean showMetrics) { } public String toString() { - return String.format("{ statement : %s }", statement); + return String.format("{ statement : \"%s\" }", statement); } public String getRequestId() { diff --git a/vxquery-rest/src/main/java/org/apache/vxquery/rest/service/VXQueryService.java b/vxquery-rest/src/main/java/org/apache/vxquery/rest/service/VXQueryService.java index 1d51b6af7..884abf4ad 100644 --- a/vxquery-rest/src/main/java/org/apache/vxquery/rest/service/VXQueryService.java +++ b/vxquery-rest/src/main/java/org/apache/vxquery/rest/service/VXQueryService.java @@ -186,6 +186,10 @@ private APIResponse execute(final QueryRequest request, List collections return APIResponse.newErrorResponse(request.getRequestId(), Error.builder().withCode(UNFORSEEN_PROBLEM) .withMessage("Hyracks connection problem: " + e.getMessage()).build()); } + if (nodeControllerInfos.isEmpty()) { + return APIResponse.newErrorResponse(request.getRequestId(), Error.builder().withCode(UNFORSEEN_PROBLEM) + .withMessage("No NodeControllers available").build()); + } // Adding a query compilation listener VXQueryCompilationListener listener = new VXQueryCompilationListener(response, @@ -360,7 +364,7 @@ private String readResults(HyracksJobContext jobContext) throws Exception { // This loop is required for XTests to reliably identify the error code of // SystemException. - while (reader.getResultStatus() == DatasetJobRecord.Status.RUNNING) { + while (reader.getResultStatus().getState() == DatasetJobRecord.State.RUNNING) { Thread.sleep(100); } diff --git a/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestClusterUtil.java b/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestClusterUtil.java index 4d2ae8a38..b2d7f042c 100644 --- a/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestClusterUtil.java +++ b/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestClusterUtil.java @@ -17,18 +17,11 @@ package org.apache.vxquery.xtest; -import org.apache.hyracks.api.client.HyracksConnection; -import org.apache.hyracks.client.dataset.HyracksDataset; import org.apache.vxquery.app.util.LocalClusterUtil; import org.apache.vxquery.rest.service.VXQueryConfig; -import java.io.IOException; - public class TestClusterUtil { - private static HyracksConnection hcc; - private static HyracksDataset hds; - public static final LocalClusterUtil localClusterUtil = new LocalClusterUtil(); private TestClusterUtil() { @@ -44,31 +37,12 @@ private static VXQueryConfig loadConfiguration(XTestOptions opts) { return vxqConfig; } - public static void startCluster(XTestOptions opts, LocalClusterUtil localClusterUtil) throws IOException { - try { - VXQueryConfig config = loadConfiguration(opts); - localClusterUtil.init(config); - hcc = (HyracksConnection) localClusterUtil.getConnection(); - hds = (HyracksDataset) localClusterUtil.getDataset(); - } catch (Exception e) { - throw new IOException(e); - } - } - - public static void stopCluster(LocalClusterUtil localClusterUtil) throws IOException { - try { - localClusterUtil.deinit(); - } catch (Exception e) { - throw new IOException(e); - } + public static void startCluster(XTestOptions opts, LocalClusterUtil localClusterUtil) throws Exception { + VXQueryConfig config = loadConfiguration(opts); + localClusterUtil.init(config); } - public static HyracksConnection getConnection() { - return hcc; + public static void stopCluster(LocalClusterUtil localClusterUtil) throws Exception { + localClusterUtil.deinit(); } - - public static HyracksDataset getDataset() { - return hds; - } - } diff --git a/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/XTest.java b/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/XTest.java index df7a71db7..df1027144 100644 --- a/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/XTest.java +++ b/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/XTest.java @@ -100,7 +100,7 @@ synchronized void waitForCompletion() throws InterruptedException { } try { TestClusterUtil.stopCluster(TestClusterUtil.localClusterUtil); - } catch (IOException e) { + } catch (Exception e) { e.printStackTrace(); } try { diff --git a/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java b/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java index 8f77de4a5..afce2f1ea 100644 --- a/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java +++ b/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java @@ -87,7 +87,7 @@ public void afterTest() throws Exception { } @BeforeClass - public static void setup() throws IOException { + public static void setup() throws Exception { TestClusterUtil.startCluster(getDefaultTestOptions(), TestClusterUtil.localClusterUtil); setupFS(); } @@ -109,7 +109,7 @@ public static void setupFS() throws IOException { } @AfterClass - public static void shutdown() throws IOException { + public static void shutdown() throws Exception { removeFS(); TestClusterUtil.stopCluster(TestClusterUtil.localClusterUtil); }