blob: d34871198d0c581d489c4d5645a435cc22aa922c [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the
* NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF
* licenses this file to you 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 at
*
* 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 org.apache.pig.pigunit.pig;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Map;
import java.util.Properties;
import org.apache.pig.ExecType;
import org.apache.pig.backend.executionengine.ExecException;
import org.apache.pig.impl.util.Utils;
/**
* Slightly modified PigServer that accepts a list of Pig aliases to override.
*
* <p>The list is given to the GruntParser.
*/
public class PigServer extends org.apache.pig.PigServer {
public PigServer(ExecType execType, Properties properties) throws ExecException {
super(execType, properties);
}
public PigServer(ExecType execType) throws ExecException {
super(execType);
}
/**
* Parses and registers the pig script.
*
* @param fileName The Pig script file.
* @param aliasOverride The list of aliases to override in the Pig script.
* @throws IOException If the Pig script can't be parsed correctly.
*/
public void registerScript(String fileName, Map<String, String> aliasOverride)
throws IOException {
try {
InputStream compositeStream = Utils.getCompositeStream(new FileInputStream(fileName), pigContext.getProperties());
GruntParser grunt = new GruntParser(new InputStreamReader(compositeStream), this, aliasOverride);
grunt.setInteractive(false);
grunt.parseStopOnError(true);
} catch (FileNotFoundException e) {
throw new IOException(e);
} catch (org.apache.pig.tools.pigscript.parser.ParseException e) {
throw new IOException(e);
}
}
}