You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by es...@apache.org on 2016/09/08 05:20:57 UTC
[18/54] [partial] incubator-hawq git commit: HAWQ-959. revert thrift
build commands.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/main/java/org/apache/thrift/maven/AbstractThriftMojo.java
----------------------------------------------------------------------
diff --git a/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/main/java/org/apache/thrift/maven/AbstractThriftMojo.java b/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/main/java/org/apache/thrift/maven/AbstractThriftMojo.java
deleted file mode 100644
index 63451c3..0000000
--- a/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/main/java/org/apache/thrift/maven/AbstractThriftMojo.java
+++ /dev/null
@@ -1,377 +0,0 @@
-/*
- * 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.thrift.maven;
-
-import com.google.common.base.Joiner;
-import com.google.common.collect.ImmutableSet;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectHelper;
-import org.codehaus.plexus.util.cli.CommandLineException;
-import org.codehaus.plexus.util.io.RawInputStreamFacade;
-import java.io.File;
-import java.io.FilenameFilter;
-import java.io.IOException;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.List;
-import java.util.Set;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static com.google.common.collect.Sets.newHashSet;
-import static java.lang.String.format;
-import static java.util.Arrays.asList;
-import static java.util.Collections.list;
-import static org.codehaus.plexus.util.FileUtils.cleanDirectory;
-import static org.codehaus.plexus.util.FileUtils.copyStreamToFile;
-import static org.codehaus.plexus.util.FileUtils.getFiles;
-
-/**
- * Abstract Mojo implementation.
- * <p/>
- * This class is extended by {@link org.apache.thrift.maven.ThriftCompileMojo} and
- * {@link org.apache.thrift.maven.ThriftTestCompileMojo} in order to override the specific configuration for
- * compiling the main or test classes respectively.
- */
-abstract class AbstractThriftMojo extends AbstractMojo {
-
- private static final String THRIFT_FILE_SUFFIX = ".thrift";
-
- private static final String DEFAULT_INCLUDES = "**/*" + THRIFT_FILE_SUFFIX;
-
- /**
- * The current Maven project.
- *
- * @parameter default-value="${project}"
- * @readonly
- * @required
- */
- protected MavenProject project;
-
- /**
- * A helper used to add resources to the project.
- *
- * @component
- * @required
- */
- protected MavenProjectHelper projectHelper;
-
- /**
- * This is the path to the {@code thrift} executable. By default it will search the {@code $PATH}.
- *
- * @parameter default-value="thrift"
- * @required
- */
- private String thriftExecutable;
-
- /**
- * This string is passed to the {@code --gen} option of the {@code thrift} parameter. By default
- * it will generate Java output. The main reason for this option is to be able to add options
- * to the Java generator - if you generate something else, you're on your own.
- *
- * @parameter default-value="java:hashcode"
- */
- private String generator;
-
- /**
- * @parameter
- */
- private File[] additionalThriftPathElements = new File[]{};
-
- /**
- * Since {@code thrift} cannot access jars, thrift files in dependencies are extracted to this location
- * and deleted on exit. This directory is always cleaned during execution.
- *
- * @parameter property="${project.build.directory}/thrift-dependencies"
- * @required
- */
- private File temporaryThriftFileDirectory;
-
- /**
- * This is the path to the local maven {@code repository}.
- *
- * @parameter default-value="${localRepository}"
- * @required
- */
- private ArtifactRepository localRepository;
-
- /**
- * Set this to {@code false} to disable hashing of dependent jar paths.
- * <p/>
- * This plugin expands jars on the classpath looking for embedded .thrift files.
- * Normally these paths are hashed (MD5) to avoid issues with long file names on windows.
- * However if this property is set to {@code false} longer paths will be used.
- *
- * @parameter default-value="true"
- * @required
- */
- private boolean hashDependentPaths;
-
- /**
- * @parameter
- */
- private Set<String> includes = ImmutableSet.of(DEFAULT_INCLUDES);
-
- /**
- * @parameter
- */
- private Set<String> excludes = ImmutableSet.of();
-
- /**
- * @parameter
- */
- private long staleMillis = 0;
-
- /**
- * @parameter
- */
- private boolean checkStaleness = false;
-
- /**
- * Executes the mojo.
- */
- public void execute() throws MojoExecutionException, MojoFailureException {
- checkParameters();
- final File thriftSourceRoot = getThriftSourceRoot();
- if (thriftSourceRoot.exists()) {
- try {
- ImmutableSet<File> thriftFiles = findThriftFilesInDirectory(thriftSourceRoot);
- final File outputDirectory = getOutputDirectory();
- ImmutableSet<File> outputFiles = findGeneratedFilesInDirectory(getOutputDirectory());
-
- if (thriftFiles.isEmpty()) {
- getLog().info("No thrift files to compile.");
- } else if (checkStaleness && ((lastModified(thriftFiles) + staleMillis) < lastModified(outputFiles))) {
- getLog().info("Skipping compilation because target directory newer than sources.");
- attachFiles();
- } else {
- ImmutableSet<File> derivedThriftPathElements =
- makeThriftPathFromJars(temporaryThriftFileDirectory, getDependencyArtifactFiles());
- outputDirectory.mkdirs();
-
- // Quick fix to fix issues with two mvn installs in a row (ie no clean)
- // cleanDirectory(outputDirectory);
-
- Thrift thrift = new Thrift.Builder(thriftExecutable, outputDirectory)
- .setGenerator(generator)
- .addThriftPathElement(thriftSourceRoot)
- .addThriftPathElements(derivedThriftPathElements)
- .addThriftPathElements(asList(additionalThriftPathElements))
- .addThriftFiles(thriftFiles)
- .build();
- final int exitStatus = thrift.compile();
- if (exitStatus != 0) {
- getLog().error("thrift failed output: " + thrift.getOutput());
- getLog().error("thrift failed error: " + thrift.getError());
- throw new MojoFailureException(
- "thrift did not exit cleanly. Review output for more information.");
- }
- attachFiles();
- }
- } catch (IOException e) {
- throw new MojoExecutionException("An IO error occurred", e);
- } catch (IllegalArgumentException e) {
- throw new MojoFailureException("thrift failed to execute because: " + e.getMessage(), e);
- } catch (CommandLineException e) {
- throw new MojoExecutionException("An error occurred while invoking thrift.", e);
- }
- } else {
- getLog().info(format("%s does not exist. Review the configuration or consider disabling the plugin.",
- thriftSourceRoot));
- }
- }
-
- ImmutableSet<File> findGeneratedFilesInDirectory(File directory) throws IOException {
- if (directory == null || !directory.isDirectory())
- return ImmutableSet.of();
-
- List<File> javaFilesInDirectory = getFiles(directory, "**/*.java", null);
- return ImmutableSet.copyOf(javaFilesInDirectory);
- }
-
- private long lastModified(ImmutableSet<File> files) {
- long result = 0;
- for (File file : files) {
- if (file.lastModified() > result)
- result = file.lastModified();
- }
- return result;
- }
-
- private void checkParameters() {
- checkNotNull(project, "project");
- checkNotNull(projectHelper, "projectHelper");
- checkNotNull(thriftExecutable, "thriftExecutable");
- checkNotNull(generator, "generator");
- final File thriftSourceRoot = getThriftSourceRoot();
- checkNotNull(thriftSourceRoot);
- checkArgument(!thriftSourceRoot.isFile(), "thriftSourceRoot is a file, not a diretory");
- checkNotNull(temporaryThriftFileDirectory, "temporaryThriftFileDirectory");
- checkState(!temporaryThriftFileDirectory.isFile(), "temporaryThriftFileDirectory is a file, not a directory");
- final File outputDirectory = getOutputDirectory();
- checkNotNull(outputDirectory);
- checkState(!outputDirectory.isFile(), "the outputDirectory is a file, not a directory");
- }
-
- protected abstract File getThriftSourceRoot();
-
- protected abstract List<Artifact> getDependencyArtifacts();
-
- protected abstract File getOutputDirectory();
-
- protected abstract void attachFiles();
-
- /**
- * Gets the {@link File} for each dependency artifact.
- *
- * @return A set of all dependency artifacts.
- */
- private ImmutableSet<File> getDependencyArtifactFiles() {
- Set<File> dependencyArtifactFiles = newHashSet();
- for (Artifact artifact : getDependencyArtifacts()) {
- dependencyArtifactFiles.add(artifact.getFile());
- }
- return ImmutableSet.copyOf(dependencyArtifactFiles);
- }
-
- /**
- * @throws IOException
- */
- ImmutableSet<File> makeThriftPathFromJars(File temporaryThriftFileDirectory, Iterable<File> classpathElementFiles)
- throws IOException, MojoExecutionException {
- checkNotNull(classpathElementFiles, "classpathElementFiles");
- // clean the temporary directory to ensure that stale files aren't used
- if (temporaryThriftFileDirectory.exists()) {
- cleanDirectory(temporaryThriftFileDirectory);
- }
- Set<File> thriftDirectories = newHashSet();
- for (File classpathElementFile : classpathElementFiles) {
- // for some reason under IAM, we receive poms as dependent files
- // I am excluding .xml rather than including .jar as there may be other extensions in use (sar, har, zip)
- if (classpathElementFile.isFile() && classpathElementFile.canRead() &&
- !classpathElementFile.getName().endsWith(".xml")) {
-
- // create the jar file. the constructor validates.
- JarFile classpathJar;
- try {
- classpathJar = new JarFile(classpathElementFile);
- } catch (IOException e) {
- throw new IllegalArgumentException(format(
- "%s was not a readable artifact", classpathElementFile));
- }
- for (JarEntry jarEntry : list(classpathJar.entries())) {
- final String jarEntryName = jarEntry.getName();
- if (jarEntry.getName().endsWith(THRIFT_FILE_SUFFIX)) {
- final File uncompressedCopy =
- new File(new File(temporaryThriftFileDirectory,
- truncatePath(classpathJar.getName())), jarEntryName);
- uncompressedCopy.getParentFile().mkdirs();
- copyStreamToFile(new RawInputStreamFacade(classpathJar
- .getInputStream(jarEntry)), uncompressedCopy);
- thriftDirectories.add(uncompressedCopy.getParentFile());
- }
- }
- } else if (classpathElementFile.isDirectory()) {
- File[] thriftFiles = classpathElementFile.listFiles(new FilenameFilter() {
- public boolean accept(File dir, String name) {
- return name.endsWith(THRIFT_FILE_SUFFIX);
- }
- });
-
- if (thriftFiles.length > 0) {
- thriftDirectories.add(classpathElementFile);
- }
- }
- }
- return ImmutableSet.copyOf(thriftDirectories);
- }
-
- ImmutableSet<File> findThriftFilesInDirectory(File directory) throws IOException {
- checkNotNull(directory);
- checkArgument(directory.isDirectory(), "%s is not a directory", directory);
- List<File> thriftFilesInDirectory = getFiles(directory,
- Joiner.on(",").join(includes),
- Joiner.on(",").join(excludes));
- return ImmutableSet.copyOf(thriftFilesInDirectory);
- }
-
- ImmutableSet<File> findThriftFilesInDirectories(Iterable<File> directories) throws IOException {
- checkNotNull(directories);
- Set<File> thriftFiles = newHashSet();
- for (File directory : directories) {
- thriftFiles.addAll(findThriftFilesInDirectory(directory));
- }
- return ImmutableSet.copyOf(thriftFiles);
- }
-
- /**
- * Truncates the path of jar files so that they are relative to the local repository.
- *
- * @param jarPath the full path of a jar file.
- * @return the truncated path relative to the local repository or root of the drive.
- */
- String truncatePath(final String jarPath) throws MojoExecutionException {
-
- if (hashDependentPaths) {
- try {
- return toHexString(MessageDigest.getInstance("MD5").digest(jarPath.getBytes()));
- } catch (NoSuchAlgorithmException e) {
- throw new MojoExecutionException("Failed to expand dependent jar", e);
- }
- }
-
- String repository = localRepository.getBasedir().replace('\\', '/');
- if (!repository.endsWith("/")) {
- repository += "/";
- }
-
- String path = jarPath.replace('\\', '/');
- int repositoryIndex = path.indexOf(repository);
- if (repositoryIndex != -1) {
- path = path.substring(repositoryIndex + repository.length());
- }
-
- // By now the path should be good, but do a final check to fix windows machines.
- int colonIndex = path.indexOf(':');
- if (colonIndex != -1) {
- // 2 = :\ in C:\
- path = path.substring(colonIndex + 2);
- }
-
- return path;
- }
-
- private static final char[] HEX_CHARS = "0123456789abcdef".toCharArray();
-
- public static String toHexString(byte[] byteArray) {
- final StringBuilder hexString = new StringBuilder(2 * byteArray.length);
- for (final byte b : byteArray) {
- hexString.append(HEX_CHARS[(b & 0xF0) >> 4]).append(HEX_CHARS[b & 0x0F]);
- }
- return hexString.toString();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/main/java/org/apache/thrift/maven/Thrift.java
----------------------------------------------------------------------
diff --git a/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/main/java/org/apache/thrift/maven/Thrift.java b/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/main/java/org/apache/thrift/maven/Thrift.java
deleted file mode 100644
index 6eea954..0000000
--- a/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/main/java/org/apache/thrift/maven/Thrift.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * 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.thrift.maven;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-import org.codehaus.plexus.util.cli.CommandLineException;
-import org.codehaus.plexus.util.cli.CommandLineUtils;
-import org.codehaus.plexus.util.cli.Commandline;
-import java.io.File;
-import java.util.List;
-import java.util.Set;
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static com.google.common.collect.Lists.newLinkedList;
-import static com.google.common.collect.Sets.newHashSet;
-
-/**
- * This class represents an invokable configuration of the {@code thrift}
- * compiler. The actual executable is invoked using the plexus
- * {@link Commandline}.
- * <p/>
- * This class currently only supports generating java source files.
- */
-final class Thrift {
-
- final static String GENERATED_JAVA = "gen-java";
-
- private final String executable;
- private final String generator;
- private final ImmutableSet<File> thriftPathElements;
- private final ImmutableSet<File> thriftFiles;
- private final File javaOutputDirectory;
- private final CommandLineUtils.StringStreamConsumer output;
- private final CommandLineUtils.StringStreamConsumer error;
-
- /**
- * Constructs a new instance. This should only be used by the {@link Builder}.
- *
- * @param executable The path to the {@code thrift} executable.
- * @param generator The value for the {@code --gen} option.
- * @param thriftPath The directories in which to search for imports.
- * @param thriftFiles The thrift source files to compile.
- * @param javaOutputDirectory The directory into which the java source files
- * will be generated.
- */
- private Thrift(String executable, String generator, ImmutableSet<File> thriftPath,
- ImmutableSet<File> thriftFiles, File javaOutputDirectory) {
- this.executable = checkNotNull(executable, "executable");
- this.generator = checkNotNull(generator, "generator");
- this.thriftPathElements = checkNotNull(thriftPath, "thriftPath");
- this.thriftFiles = checkNotNull(thriftFiles, "thriftFiles");
- this.javaOutputDirectory = checkNotNull(javaOutputDirectory, "javaOutputDirectory");
- this.error = new CommandLineUtils.StringStreamConsumer();
- this.output = new CommandLineUtils.StringStreamConsumer();
- }
-
- /**
- * Invokes the {@code thrift} compiler using the configuration specified at
- * construction.
- *
- * @return The exit status of {@code thrift}.
- * @throws CommandLineException
- */
- public int compile() throws CommandLineException {
-
- for (File thriftFile : thriftFiles) {
- Commandline cl = new Commandline();
- cl.setExecutable(executable);
- cl.addArguments(buildThriftCommand(thriftFile).toArray(new String[]{}));
- final int result = CommandLineUtils.executeCommandLine(cl, null, output, error);
-
- if (result != 0) {
- return result;
- }
- }
-
- // result will always be 0 here.
- return 0;
- }
-
- /**
- * Creates the command line arguments.
- * <p/>
- * This method has been made visible for testing only.
- *
- * @param thriftFile
- * @return A list consisting of the executable followed by any arguments.
- */
- ImmutableList<String> buildThriftCommand(final File thriftFile) {
- final List<String> command = newLinkedList();
- // add the executable
- for (File thriftPathElement : thriftPathElements) {
- command.add("-I");
- command.add(thriftPathElement.toString());
- }
- command.add("-out");
- command.add(javaOutputDirectory.toString());
- command.add("--gen");
- command.add(generator);
- command.add(thriftFile.toString());
- return ImmutableList.copyOf(command);
- }
-
- /**
- * @return the output
- */
- public String getOutput() {
- return output.getOutput();
- }
-
- /**
- * @return the error
- */
- public String getError() {
- return error.getOutput();
- }
-
- /**
- * This class builds {@link Thrift} instances.
- */
- static final class Builder {
- private final String executable;
- private final File javaOutputDirectory;
- private Set<File> thriftPathElements;
- private Set<File> thriftFiles;
- private String generator;
-
- /**
- * Constructs a new builder. The two parameters are present as they are
- * required for all {@link Thrift} instances.
- *
- * @param executable The path to the {@code thrift} executable.
- * @param javaOutputDirectory The directory into which the java source files
- * will be generated.
- * @throws NullPointerException If either of the arguments are {@code null}.
- * @throws IllegalArgumentException If the {@code javaOutputDirectory} is
- * not a directory.
- */
- public Builder(String executable, File javaOutputDirectory) {
- this.executable = checkNotNull(executable, "executable");
- this.javaOutputDirectory = checkNotNull(javaOutputDirectory);
- checkArgument(javaOutputDirectory.isDirectory());
- this.thriftFiles = newHashSet();
- this.thriftPathElements = newHashSet();
- }
-
- /**
- * Adds a thrift file to be compiled. Thrift files must be on the thriftpath
- * and this method will fail if a thrift file is added without first adding a
- * parent directory to the thriftpath.
- *
- * @param thriftFile
- * @return The builder.
- * @throws IllegalStateException If a thrift file is added without first
- * adding a parent directory to the thriftpath.
- * @throws NullPointerException If {@code thriftFile} is {@code null}.
- */
- public Builder addThriftFile(File thriftFile) {
- checkNotNull(thriftFile);
- checkArgument(thriftFile.isFile());
- checkArgument(thriftFile.getName().endsWith(".thrift"));
- checkThriftFileIsInThriftPath(thriftFile);
- thriftFiles.add(thriftFile);
- return this;
- }
-
- /**
- * Adds the option string for the Thrift executable's {@code --gen} parameter.
- *
- * @param generator
- * @return The builder
- * @throws NullPointerException If {@code generator} is {@code null}.
- */
- public Builder setGenerator(String generator) {
- checkNotNull(generator);
- this.generator = generator;
- return this;
- }
-
- private void checkThriftFileIsInThriftPath(File thriftFile) {
- assert thriftFile.isFile();
- checkState(checkThriftFileIsInThriftPathHelper(thriftFile.getParentFile()));
- }
-
- private boolean checkThriftFileIsInThriftPathHelper(File directory) {
- assert directory.isDirectory();
- if (thriftPathElements.contains(directory)) {
- return true;
- } else {
- final File parentDirectory = directory.getParentFile();
- return (parentDirectory == null) ? false
- : checkThriftFileIsInThriftPathHelper(parentDirectory);
- }
- }
-
- /**
- * @see #addThriftFile(File)
- */
- public Builder addThriftFiles(Iterable<File> thriftFiles) {
- for (File thriftFile : thriftFiles) {
- addThriftFile(thriftFile);
- }
- return this;
- }
-
- /**
- * Adds the {@code thriftPathElement} to the thriftPath.
- *
- * @param thriftPathElement A directory to be searched for imported thrift message
- * buffer definitions.
- * @return The builder.
- * @throws NullPointerException If {@code thriftPathElement} is {@code null}.
- * @throws IllegalArgumentException If {@code thriftPathElement} is not a
- * directory.
- */
- public Builder addThriftPathElement(File thriftPathElement) {
- checkNotNull(thriftPathElement);
- checkArgument(thriftPathElement.isDirectory());
- thriftPathElements.add(thriftPathElement);
- return this;
- }
-
- /**
- * @see #addThriftPathElement(File)
- */
- public Builder addThriftPathElements(Iterable<File> thriftPathElements) {
- for (File thriftPathElement : thriftPathElements) {
- addThriftPathElement(thriftPathElement);
- }
- return this;
- }
-
- /**
- * @return A configured {@link Thrift} instance.
- * @throws IllegalStateException If no thrift files have been added.
- */
- public Thrift build() {
- checkState(!thriftFiles.isEmpty());
- return new Thrift(executable, generator, ImmutableSet.copyOf(thriftPathElements),
- ImmutableSet.copyOf(thriftFiles), javaOutputDirectory);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/main/java/org/apache/thrift/maven/ThriftCompileMojo.java
----------------------------------------------------------------------
diff --git a/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/main/java/org/apache/thrift/maven/ThriftCompileMojo.java b/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/main/java/org/apache/thrift/maven/ThriftCompileMojo.java
deleted file mode 100644
index b4f7571..0000000
--- a/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/main/java/org/apache/thrift/maven/ThriftCompileMojo.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * 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.thrift.maven;
-
-import java.io.File;
-import java.util.List;
-import org.apache.maven.artifact.Artifact;
-import com.google.common.collect.ImmutableList;
-
-/**
- * This mojo executes the {@code thrift} compiler for generating java sources
- * from thrift definitions. It also searches dependency artifacts for
- * thrift files and includes them in the thriftPath so that they can be
- * referenced. Finally, it adds the thrift files to the project as resources so
- * that they are included in the final artifact.
- *
- * @phase generate-sources
- * @goal compile
- * @requiresDependencyResolution compile
- */
-public final class ThriftCompileMojo extends AbstractThriftMojo {
-
- /**
- * The source directories containing the sources to be compiled.
- *
- * @parameter default-value="${basedir}/src/main/thrift"
- * @required
- */
- private File thriftSourceRoot;
-
- /**
- * This is the directory into which the {@code .java} will be created.
- *
- * @parameter default-value="${project.build.directory}/generated-sources/thrift"
- * @required
- */
- private File outputDirectory;
-
- @Override
- protected List<Artifact> getDependencyArtifacts() {
- List<Artifact> compileArtifacts = project.getCompileArtifacts();
- return compileArtifacts;
- }
-
- @Override
- protected File getOutputDirectory() {
- return outputDirectory;
- }
-
- @Override
- protected File getThriftSourceRoot() {
- return thriftSourceRoot;
- }
-
- @Override
- protected void attachFiles() {
- project.addCompileSourceRoot(outputDirectory.getAbsolutePath());
- projectHelper.addResource(project, thriftSourceRoot.getAbsolutePath(),
- ImmutableList.of("**/*.thrift"), null);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/main/java/org/apache/thrift/maven/ThriftTestCompileMojo.java
----------------------------------------------------------------------
diff --git a/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/main/java/org/apache/thrift/maven/ThriftTestCompileMojo.java b/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/main/java/org/apache/thrift/maven/ThriftTestCompileMojo.java
deleted file mode 100644
index fb89d96..0000000
--- a/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/main/java/org/apache/thrift/maven/ThriftTestCompileMojo.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * 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.thrift.maven;
-
-import java.io.File;
-import java.util.List;
-import org.apache.maven.artifact.Artifact;
-import com.google.common.collect.ImmutableList;
-
-/**
- * @phase generate-test-sources
- * @goal testCompile
- * @requiresDependencyResolution test
- */
-public final class ThriftTestCompileMojo extends AbstractThriftMojo {
-
- /**
- * The source directories containing the sources to be compiled.
- *
- * @parameter default-value="${basedir}/src/test/thrift"
- * @required
- */
- private File thriftTestSourceRoot;
-
- /**
- * This is the directory into which the {@code .java} will be created.
- *
- * @parameter default-value="${project.build.directory}/generated-test-sources/thrift"
- * @required
- */
- private File outputDirectory;
-
- @Override
- protected void attachFiles() {
- project.addTestCompileSourceRoot(outputDirectory.getAbsolutePath());
- projectHelper.addTestResource(project, thriftTestSourceRoot.getAbsolutePath(),
- ImmutableList.of("**/*.thrift"), null);
- }
-
- @Override
- protected List<Artifact> getDependencyArtifacts() {
- // TODO(gak): maven-project needs generics
- @SuppressWarnings("unchecked")
- List<Artifact> testArtifacts = project.getTestArtifacts();
- return testArtifacts;
- }
-
- @Override
- protected File getOutputDirectory() {
- return outputDirectory;
- }
-
- @Override
- protected File getThriftSourceRoot() {
- return thriftTestSourceRoot;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/test/java/org/apache/thrift/maven/TestThrift.java
----------------------------------------------------------------------
diff --git a/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/test/java/org/apache/thrift/maven/TestThrift.java b/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/test/java/org/apache/thrift/maven/TestThrift.java
deleted file mode 100644
index 3ecd094..0000000
--- a/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/test/java/org/apache/thrift/maven/TestThrift.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * 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.thrift.maven;
-
-import org.codehaus.plexus.util.FileUtils;
-import org.codehaus.plexus.util.cli.CommandLineException;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.io.File;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-public class TestThrift {
-
- private File testRootDir;
- private File idlDir;
- private File genJavaDir;
- private Thrift.Builder builder;
-
- @Before
- public void setup() throws Exception {
- final File tmpDir = new File(System.getProperty("java.io.tmpdir"));
- testRootDir = new File(tmpDir, "thrift-test");
-
- if (testRootDir.exists()) {
- FileUtils.cleanDirectory(testRootDir);
- } else {
- assertTrue("Failed to create output directory for test: " + testRootDir.getPath(), testRootDir.mkdir());
- }
-
- File testResourceDir = new File("src/test/resources");
- assertTrue("Unable to find test resources", testRootDir.exists());
-
- String thriftExecutable = System.getProperty("thriftExecutable", "thrift");
- if (!(new File(thriftExecutable).exists())) {
- thriftExecutable = "thrift";
- }
- System.out.println("Thrift compiler: " + thriftExecutable);
-
- idlDir = new File(testResourceDir, "idl");
- genJavaDir = new File(testRootDir, Thrift.GENERATED_JAVA);
- builder = new Thrift.Builder(thriftExecutable, testRootDir);
- builder
- .setGenerator("java")
- .addThriftPathElement(idlDir);
- }
-
- @Test
- public void testThriftCompile() throws Exception {
- executeThriftCompile();
- }
-
- @Test
- public void testThriftCompileWithGeneratorOption() throws Exception {
- builder.setGenerator("java:private-members,hashcode");
- executeThriftCompile();
- }
-
- private void executeThriftCompile() throws CommandLineException {
- final File thriftFile = new File(idlDir, "shared.thrift");
-
- builder.addThriftFile(thriftFile);
-
- final Thrift thrift = builder.build();
-
- assertTrue("File not found: shared.thrift", thriftFile.exists());
- assertFalse("gen-java directory should not exist", genJavaDir.exists());
-
- // execute the compile
- final int result = thrift.compile();
- assertEquals(0, result);
-
- assertFalse("gen-java directory was not removed", genJavaDir.exists());
- assertTrue("generated java code doesn't exist",
- new File(testRootDir, "shared/SharedService.java").exists());
- }
-
- @Test
- public void testThriftMultipleFileCompile() throws Exception {
- final File sharedThrift = new File(idlDir, "shared.thrift");
- final File tutorialThrift = new File(idlDir, "tutorial.thrift");
-
- builder.addThriftFile(sharedThrift);
- builder.addThriftFile(tutorialThrift);
-
- final Thrift thrift = builder.build();
-
- assertTrue("File not found: shared.thrift", sharedThrift.exists());
- assertFalse("gen-java directory should not exist", genJavaDir.exists());
-
- // execute the compile
- final int result = thrift.compile();
- assertEquals(0, result);
-
- assertFalse("gen-java directory was not removed", genJavaDir.exists());
- assertTrue("generated java code doesn't exist",
- new File(testRootDir, "shared/SharedService.java").exists());
- assertTrue("generated java code doesn't exist",
- new File(testRootDir, "tutorial/InvalidOperation.java").exists());
- }
-
- @Test
- public void testBadCompile() throws Exception {
- final File thriftFile = new File(testRootDir, "missing.thrift");
- builder.addThriftPathElement(testRootDir);
-
- // Hacking around checks in addThrift file.
- assertTrue(thriftFile.createNewFile());
- builder.addThriftFile(thriftFile);
- assertTrue(thriftFile.delete());
-
- final Thrift thrift = builder.build();
-
- assertTrue(!thriftFile.exists());
- assertFalse("gen-java directory should not exist", genJavaDir.exists());
-
- // execute the compile
- final int result = thrift.compile();
- assertEquals(1, result);
- }
-
- @Test
- public void testFileInPathPreCondition() throws Exception {
- final File thriftFile = new File(testRootDir, "missing.thrift");
-
- // Hacking around checks in addThrift file.
- assertTrue(thriftFile.createNewFile());
- try {
- builder.addThriftFile(thriftFile);
- fail("Expected IllegalStateException");
- } catch (IllegalStateException e) {
- }
- }
-
- @After
- public void cleanup() throws Exception {
- if (testRootDir.exists()) {
- FileUtils.cleanDirectory(testRootDir);
- assertTrue("Failed to delete output directory for test: " + testRootDir.getPath(), testRootDir.delete());
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/test/resources/idl/shared.thrift
----------------------------------------------------------------------
diff --git a/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/test/resources/idl/shared.thrift b/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/test/resources/idl/shared.thrift
deleted file mode 100644
index 475e7f8..0000000
--- a/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/test/resources/idl/shared.thrift
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.
- */
-
-/**
- * This Thrift file can be included by other Thrift files that want to share
- * these definitions.
- */
-
-namespace cpp shared
-namespace java shared
-namespace perl shared
-
-struct SharedStruct {
- 1: i32 key
- 2: string value
-}
-
-service SharedService {
- SharedStruct getStruct(1: i32 key)
-}
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/test/resources/idl/tutorial.thrift
----------------------------------------------------------------------
diff --git a/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/test/resources/idl/tutorial.thrift b/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/test/resources/idl/tutorial.thrift
deleted file mode 100644
index 86e433d..0000000
--- a/depends/thirdparty/thrift/contrib/thrift-maven-plugin/src/test/resources/idl/tutorial.thrift
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * 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.
- */
-
-# Thrift Tutorial
-# Mark Slee (mcslee@facebook.com)
-#
-# This file aims to teach you how to use Thrift, in a .thrift file. Neato. The
-# first thing to notice is that .thrift files support standard shell comments.
-# This lets you make your thrift file executable and include your Thrift build
-# step on the top line. And you can place comments like this anywhere you like.
-#
-# Before running this file, you will need to have installed the thrift compiler
-# into /usr/local/bin.
-
-/**
- * The first thing to know about are types. The available types in Thrift are:
- *
- * bool Boolean, one byte
- * byte Signed byte
- * i16 Signed 16-bit integer
- * i32 Signed 32-bit integer
- * i64 Signed 64-bit integer
- * double 64-bit floating point value
- * string String
- * binary Blob (byte array)
- * map<t1,t2> Map from one type to another
- * list<t1> Ordered list of one type
- * set<t1> Set of unique elements of one type
- *
- * Did you also notice that Thrift supports C style comments?
- */
-
-// Just in case you were wondering... yes. We support simple C comments too.
-
-/**
- * Thrift files can reference other Thrift files to include common struct
- * and service definitions. These are found using the current path, or by
- * searching relative to any paths specified with the -I compiler flag.
- *
- * Included objects are accessed using the name of the .thrift file as a
- * prefix. i.e. shared.SharedObject
- */
-include "shared.thrift"
-
-/**
- * Thrift files can namespace, package, or prefix their output in various
- * target languages.
- */
-namespace cpp tutorial
-namespace java tutorial
-namespace php tutorial
-namespace perl tutorial
-namespace smalltalk.category Thrift.Tutorial
-
-/**
- * Thrift lets you do typedefs to get pretty names for your types. Standard
- * C style here.
- */
-typedef i32 MyInteger
-
-/**
- * Thrift also lets you define constants for use across languages. Complex
- * types and structs are specified using JSON notation.
- */
-const i32 INT32CONSTANT = 9853
-const map<string,string> MAPCONSTANT = {'hello':'world', 'goodnight':'moon'}
-
-/**
- * You can define enums, which are just 32 bit integers. Values are optional
- * and start at 1 if not supplied, C style again.
- */
-enum Operation {
- ADD = 1,
- SUBTRACT = 2,
- MULTIPLY = 3,
- DIVIDE = 4
-}
-
-/**
- * Structs are the basic complex data structures. They are comprised of fields
- * which each have an integer identifier, a type, a symbolic name, and an
- * optional default value.
- *
- * Fields can be declared "optional", which ensures they will not be included
- * in the serialized output if they aren't set. Note that this requires some
- * manual management in some languages.
- */
-struct Work {
- 1: i32 num1 = 0,
- 2: i32 num2,
- 3: Operation op,
- 4: optional string comment,
-}
-
-/**
- * Structs can also be exceptions, if they are nasty.
- */
-exception InvalidOperation {
- 1: i32 what,
- 2: string why
-}
-
-/**
- * Ahh, now onto the cool part, defining a service. Services just need a name
- * and can optionally inherit from another service using the extends keyword.
- */
-service Calculator extends shared.SharedService {
-
- /**
- * A method definition looks like C code. It has a return type, arguments,
- * and optionally a list of exceptions that it may throw. Note that argument
- * lists and exception lists are specified using the exact same syntax as
- * field lists in struct or exception definitions.
- */
-
- void ping(),
-
- i32 add(1:i32 num1, 2:i32 num2),
-
- i32 calculate(1:i32 logid, 2:Work w) throws (1:InvalidOperation ouch),
-
- /**
- * This method has a oneway modifier. That means the client only makes
- * a request and does not listen for any response at all. Oneway methods
- * must be void.
- */
- oneway void zip()
-
-}
-
-/**
- * That just about covers the basics. Take a look in the test/ folder for more
- * detailed examples. After you run this file, your generated code shows up
- * in folders with names gen-<language>. The generated code isn't too scary
- * to look at. It even has pretty indentation.
- */
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/thrift.el
----------------------------------------------------------------------
diff --git a/depends/thirdparty/thrift/contrib/thrift.el b/depends/thirdparty/thrift/contrib/thrift.el
deleted file mode 100644
index 941a99f..0000000
--- a/depends/thirdparty/thrift/contrib/thrift.el
+++ /dev/null
@@ -1,140 +0,0 @@
-;;; thrift.el --- Major mode for Apache Thrift files
-
-;; Keywords: files
-
-;; 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.
-;;
-
-;;; Commentary:
-
-;;
-
-;;; Code:
-
-(require 'font-lock)
-
-(defvar thrift-mode-hook nil)
-;;;###autoload
-(add-to-list 'auto-mode-alist '("\\.thrift\\'" . thrift-mode))
-
-(defvar thrift-indent-level 2
- "Defines 2 spaces for thrift indentation.")
-
-;; syntax coloring
-(defconst thrift-font-lock-keywords
- (list
- '("\\<\\(include\\|struct\\|exception\\|typedef\\|const\\|enum\\|service\\|extends\\|void\\|oneway\\|throws\\|optional\\|required\\)\\>" . font-lock-keyword-face) ;; keywords
- '("\\<\\(bool\\|byte\\|i16\\|i32\\|i64\\|double\\|string\\|binary\\|map\\|list\\|set\\)\\>" . font-lock-type-face) ;; built-in types
- '("\\<\\([0-9]+\\)\\>" . font-lock-variable-name-face) ;; ordinals
- '("\\<\\(\\w+\\)\\s-*(" (1 font-lock-function-name-face)) ;; functions
- )
- "Thrift Keywords.")
-
-;; indentation
-(defun thrift-indent-line ()
- "Indent current line as Thrift code."
- (interactive)
- (beginning-of-line)
- (if (bobp)
- (indent-line-to 0)
- (let ((not-indented t) cur-indent)
- (if (looking-at "^[ \t]*\\(}\\|throws\\)")
- (if (looking-at "^[ \t]*}")
- (progn
- (save-excursion
- (forward-line -1)
- (setq cur-indent (- (current-indentation) thrift-indent-level)))
- (if (< cur-indent 0)
- (setq cur-indent 0)))
- (progn
- (save-excursion
- (forward-line -1)
- (if (looking-at "^[ \t]*[\\.<>[:word:]]+[ \t]+[\\.<>[:word:]]+[ \t]*(")
- (setq cur-indent (+ (current-indentation) thrift-indent-level))
- (setq cur-indent (current-indentation))))))
- (save-excursion
- (while not-indented
- (forward-line -1)
- (if (looking-at "^[ \t]*}")
- (progn
- (setq cur-indent (current-indentation))
- (setq not-indented nil))
- (if (looking-at "^.*{[^}]*$")
- (progn
- (setq cur-indent (+ (current-indentation) thrift-indent-level))
- (setq not-indented nil))
- (if (bobp)
- (setq not-indented nil)))
- (if (looking-at "^[ \t]*throws")
- (progn
- (setq cur-indent (- (current-indentation) thrift-indent-level))
- (if (< cur-indent 0)
- (setq cur-indent 0))
- (setq not-indented nil))
- (if (bobp)
- (setq not-indented nil)))
- (if (looking-at "^[ \t]*[\\.<>[:word:]]+[ \t]+[\\.<>[:word:]]+[ \t]*([^)]*$")
- (progn
- (setq cur-indent (+ (current-indentation) thrift-indent-level))
- (setq not-indented nil))
- (if (bobp)
- (setq not-indented nil)))
- (if (looking-at "^[ \t]*\\/\\*")
- (progn
- (setq cur-indent (+ (current-indentation) 1))
- (setq not-indented nil))
- (if (bobp)
- (setq not-indented nil)))
- (if (looking-at "^[ \t]*\\*\\/")
- (progn
- (setq cur-indent (- (current-indentation) 1))
- (setq not-indented nil))
- (if (bobp)
- (setq not-indented nil)))
- ))))
- (if cur-indent
- (indent-line-to cur-indent)
- (indent-line-to 0)))))
-
-;; C/C++- and sh-style comments; also allowing underscore in words
-(defvar thrift-mode-syntax-table
- (let ((thrift-mode-syntax-table (make-syntax-table)))
- (modify-syntax-entry ?_ "w" thrift-mode-syntax-table)
- (modify-syntax-entry ?# "<" thrift-mode-syntax-table) ; sh-style comments
- (modify-syntax-entry ?/ ". 124" thrift-mode-syntax-table) ; c/c++-style comments
- (modify-syntax-entry ?* ". 23b" thrift-mode-syntax-table)
- (modify-syntax-entry ?\n ">" thrift-mode-syntax-table)
- thrift-mode-syntax-table)
- "Syntax table for thrift-mode")
-
-;;;###autoload
-(defun thrift-mode ()
- "Mode for editing Thrift files."
- (interactive)
- (kill-all-local-variables)
- (set-syntax-table thrift-mode-syntax-table)
- (set (make-local-variable 'font-lock-defaults) '(thrift-font-lock-keywords))
- (setq major-mode 'thrift-mode)
- (setq mode-name "Thrift")
- (run-hooks 'thrift-mode-hook)
- (set (make-local-variable 'indent-line-function) 'thrift-indent-line)
- )
-
-(provide 'thrift)
-;;; thrift.el ends here
-
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/thrift.spec
----------------------------------------------------------------------
diff --git a/depends/thirdparty/thrift/contrib/thrift.spec b/depends/thirdparty/thrift/contrib/thrift.spec
deleted file mode 100644
index dab3275..0000000
--- a/depends/thirdparty/thrift/contrib/thrift.spec
+++ /dev/null
@@ -1,238 +0,0 @@
-#
-# 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.
-#
-
-%define without_java 1
-%define without_python 1
-%define without_tests 1
-
-%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
-%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
-
-Name: thrift
-License: Apache License v2.0
-Group: Development
-Summary: RPC and serialization framework
-Version: 0.9.3
-Release: 0
-URL: http://thrift.apache.org
-Packager: Thrift Developers <de...@thrift.apache.org>
-Source0: %{name}-%{version}.tar.gz
-
-BuildRequires: gcc >= 3.4.6
-BuildRequires: gcc-c++
-
-%if 0%{!?without_java:1}
-BuildRequires: java-devel >= 0:1.5.0
-BuildRequires: ant >= 0:1.6.5
-%endif
-
-%if 0%{!?without_python:1}
-BuildRequires: python-devel
-%endif
-
-%if 0%{!?without_ruby:1}
-%define gem_name %{name}
-BuildRequires: ruby-devel
-BuildRequires: rubygems-devel
-%endif
-
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-
-%description
-Thrift is a software framework for scalable cross-language services
-development. It combines a powerful software stack with a code generation
-engine to build services that work efficiently and seamlessly between C++,
-Java, C#, Python, Ruby, Perl, PHP, Objective C/Cocoa, Smalltalk, Erlang,
-Objective Caml, and Haskell.
-
-%files
-%defattr(-,root,root)
-%{_bindir}/thrift
-
-
-%package lib-cpp
-Summary: Thrift C++ library
-Group: Libraries
-
-%description lib-cpp
-C++ libraries for Thrift.
-
-%files lib-cpp
-%defattr(-,root,root)
-%{_libdir}/libthrift*.so.*
-%{_libdir}/libthrift*.so
-
-
-%package lib-cpp-devel
-Summary: Thrift C++ library development files
-Group: Libraries
-Requires: %{name} = %{version}-%{release}
-Requires: boost-devel
-%if 0%{!?without_libevent:1}
-Requires: libevent-devel >= 1.2
-%endif
-%if 0%{!?without_zlib:1}
-Requires: zlib-devel
-%endif
-
-%description lib-cpp-devel
-C++ static libraries and headers for Thrift.
-
-%files lib-cpp-devel
-%defattr(-,root,root)
-%{_includedir}/thrift/
-%{_libdir}/libthrift*.*a
-%{_libdir}/pkgconfig/thrift*.pc
-
-
-%if 0%{!?without_java:1}
-%package lib-java
-Summary: Thrift Java library
-Group: Libraries
-Requires: java >= 0:1.5.0
-
-%description lib-java
-Java libraries for Thrift.
-
-%files lib-java
-%defattr(-,root,root)
-%{_javadir}/*
-%endif
-
-
-%if 0%{!?without_python:1}
-%package lib-python
-Summary: Thrift Python library
-Group: Libraries
-
-%description lib-python
-Python libraries for Thrift.
-
-%files lib-python
-%defattr(-,root,root)
-%{python_sitearch}/*
-%endif
-
-
-%if 0%{!?without_ruby:1}
-%package -n rubygem-%{gem_name}
-Summary: Thrift Ruby library
-Group: Libraries
-Obsoletes: %{name}-lib-ruby
-
-%description -n rubygem-%{gem_name}
-Ruby libraries for Thrift.
-
-%files -n rubygem-%{gem_name}
-%defattr(-,root,root)
-%{gem_dir}/*
-%endif
-
-
-%if 0%{!?without_php:1}
-%package lib-php
-Summary: Thrift PHP library
-Group: Libraries
-
-%description lib-php
-PHP libraries for Thrift.
-
-%files lib-php
-%defattr(-,root,root)
-/usr/lib/php/*
-%endif
-
-
-%prep
-%setup -q
-
-%build
-[[ -e Makefile.in ]] || ./bootstrap.sh
-export GEM_HOME=${PWD}/.gem-home
-export RUBYLIB=${PWD}/lib/rb/lib
-%configure \
- %{?without_libevent: --without-libevent } \
- %{?without_zlib: --without-zlib } \
- %{?without_tests: --without-tests } \
- %{?without_java: --without-java } \
- %{?without_python: --without-python } \
- %{?without_ruby: --without-ruby } \
- %{?without_php: --without-php } \
- %{!?without_php: PHP_PREFIX=${RPM_BUILD_ROOT}/usr/lib/php } \
- --without-csharp \
- --without-erlang \
-
-make %{?_smp_mflags}
-
-%if 0%{!?without_java:1}
-cd lib/java
-%ant
-cd ../..
-%endif
-
-%if 0%{!?without_python:1}
-cd lib/py
-CFLAGS="%{optflags}" %{__python} setup.py build
-cd ../..
-%endif
-
-%if 0%{!?without_ruby:1}
-%gem_install -n lib/rb/thrift*.gem
-%endif
-
-%install
-export GEM_HOME=${PWD}/.gem-home
-export RUBYLIB=${PWD}/lib/rb/lib
-%makeinstall
-ln -s libthrift-%{version}.so ${RPM_BUILD_ROOT}%{_libdir}/libthrift.so.0
-ln -s libthriftnb-%{version}.so ${RPM_BUILD_ROOT}%{_libdir}/libthriftnb.so.0
-ln -s libthriftz-%{version}.so ${RPM_BUILD_ROOT}%{_libdir}/libthriftz.so.0
-
-%if 0%{!?without_java:1}
-mkdir -p $RPM_BUILD_ROOT%{_javadir}
-cp -p lib/java/build/*.jar $RPM_BUILD_ROOT%{_javadir}
-%endif
-
-%if 0%{!?without_python:1}
-cd lib/py
-%{__python} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT
-cd ../..
-%endif
-
-%if 0%{!?without_ruby:1}
-mkdir -p %{buildroot}%{gem_dir}
-cp -a ./%{gem_dir}/* %{buildroot}%{gem_dir}/
-%endif
-
-%clean
-rm -rf ${RPM_BUILD_ROOT}
-
-
-%post
-umask 007
-/sbin/ldconfig > /dev/null 2>&1
-
-
-%postun
-umask 007
-/sbin/ldconfig > /dev/null 2>&1
-
-%changelog
-* Wed Sept 25 2015 Thrift Dev <de...@thrift.apache.org>
-- Thrift 0.9.3 release.
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/thrift.vim
----------------------------------------------------------------------
diff --git a/depends/thirdparty/thrift/contrib/thrift.vim b/depends/thirdparty/thrift/contrib/thrift.vim
deleted file mode 100644
index 3000b46..0000000
--- a/depends/thirdparty/thrift/contrib/thrift.vim
+++ /dev/null
@@ -1,91 +0,0 @@
-" Vim syntax file
-" Language: Thrift
-" Maintainer: Martin Smith <ma...@facebook.com>
-" Last Change: $Date: $
-" Copy to ~/.vim/
-" Add to ~/.vimrc
-" au BufRead,BufNewFile *.thrift set filetype=thrift
-" au! Syntax thrift source ~/.vim/thrift.vim
-"
-" $Id: $
-"
-" 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.
-"
-
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
- finish
-endif
-
-" Todo
-syn keyword thriftTodo TODO todo FIXME fixme XXX xxx contained
-
-" Comments
-syn match thriftComment "#.*" contains=thriftTodo
-syn region thriftComment start="/\*" end="\*/" contains=thriftTodo
-syn match thriftComment "//.\{-}\(?>\|$\)\@="
-
-" String
-syn region thriftStringDouble matchgroup=None start=+"+ end=+"+
-
-" Number
-syn match thriftNumber "-\=\<\d\+\>" contained
-
-" Keywords
-syn keyword thriftKeyword namespace
-syn keyword thriftKeyword xsd_all xsd_optional xsd_nillable xsd_attrs
-syn keyword thriftKeyword include cpp_include cpp_type const optional required
-syn keyword thriftBasicTypes void bool byte i16 i32 i64 double string binary
-syn keyword thriftStructure map list set struct typedef exception enum throws union
-
-" Special
-syn match thriftSpecial "\d\+:"
-
-" Structure
-syn keyword thriftStructure service oneway extends
-"async" { return tok_async; }
-"exception" { return tok_xception; }
-"extends" { return tok_extends; }
-"throws" { return tok_throws; }
-"service" { return tok_service; }
-"enum" { return tok_enum; }
-"const" { return tok_const; }
-
-if version >= 508 || !exists("did_thrift_syn_inits")
- if version < 508
- let did_thrift_syn_inits = 1
- command! -nargs=+ HiLink hi link <args>
- else
- command! -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink thriftComment Comment
- HiLink thriftKeyword Special
- HiLink thriftBasicTypes Type
- HiLink thriftStructure StorageClass
- HiLink thriftTodo Todo
- HiLink thriftString String
- HiLink thriftNumber Number
- HiLink thriftSpecial Special
- HiLink thriftStructure Structure
-
- delcommand HiLink
-endif
-
-let b:current_syntax = "thrift"
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/thrift_dump.cpp
----------------------------------------------------------------------
diff --git a/depends/thirdparty/thrift/contrib/thrift_dump.cpp b/depends/thirdparty/thrift/contrib/thrift_dump.cpp
deleted file mode 100644
index 59c8ac8..0000000
--- a/depends/thirdparty/thrift/contrib/thrift_dump.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * 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.
- */
-
-#include <cstdlib>
-#include <iostream>
-
-#include <thrift/transport/TBufferTransports.h>
-#include <thrift/transport/TFDTransport.h>
-#include <thrift/protocol/TBinaryProtocol.h>
-#include <thrift/protocol/TDebugProtocol.h>
-#include <thrift/protocol/TProtocolTap.h>
-
-using namespace std;
-using boost::shared_ptr;
-using namespace apache::thrift::transport;
-using namespace apache::thrift::protocol;
-
-void usage() {
- fprintf(stderr,
- "usage: thrift_dump {-b|-f|-s} < input > ouput\n"
- " -b TBufferedTransport messages\n"
- " -f TFramedTransport messages\n"
- " -s Raw structures\n");
- exit(EXIT_FAILURE);
-}
-
-int main(int argc, char *argv[]) {
- if (argc != 2) {
- usage();
- }
-
- shared_ptr<TTransport> stdin_trans(new TFDTransport(STDIN_FILENO));
- shared_ptr<TTransport> itrans;
-
- if (argv[1] == std::string("-b") || argv[1] == std::string("-s")) {
- itrans.reset(new TBufferedTransport(stdin_trans));
- } else if (argv[1] == std::string("-f")) {
- itrans.reset(new TFramedTransport(stdin_trans));
- } else {
- usage();
- }
-
- shared_ptr<TProtocol> iprot(new TBinaryProtocol(itrans));
- shared_ptr<TProtocol> oprot(
- new TDebugProtocol(
- shared_ptr<TTransport>(new TBufferedTransport(
- shared_ptr<TTransport>(new TFDTransport(STDOUT_FILENO))))));
-
- TProtocolTap tap(iprot, oprot);
-
- try {
- if (argv[1] == std::string("-s")) {
- for (;;) {
- tap.skip(T_STRUCT);
- }
- } else {
- std::string name;
- TMessageType messageType;
- int32_t seqid;
- for (;;) {
- tap.readMessageBegin(name, messageType, seqid);
- tap.skip(T_STRUCT);
- tap.readMessageEnd();
- }
- }
- } catch (TProtocolException exn) {
- cout << "Protocol Exception: " << exn.what() << endl;
- } catch (...) {
- oprot->getTransport()->flush();
- }
-
- cout << endl;
-
- return 0;
-}
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/transport-sample/README.md
----------------------------------------------------------------------
diff --git a/depends/thirdparty/thrift/contrib/transport-sample/README.md b/depends/thirdparty/thrift/contrib/transport-sample/README.md
deleted file mode 100644
index a1dfc0a..0000000
--- a/depends/thirdparty/thrift/contrib/transport-sample/README.md
+++ /dev/null
@@ -1,61 +0,0 @@
-Thrift transport sample project
--------------------------------
-
-This cross-platform project has been built with Windows Visual Studio 10 and
-OSX 10.7.1's g++. The client and server support socket and pipe transports
-through command-line switches.
-
-Windows supports both named & anonymous pipes; *NIX gets only named
-'pipes' at this time.
-
-Windows-only at this time:
-The client & server are double-ended. Both sides run a server and client to
-enable full duplex bidirectional event signaling. They are simple command
-line apps. The server runs until it's aborted (Ctl-C). The client connects to
-the server, informs the server of its listening pipe/port, runs some more RPCs
-and exits. The server also makes RPC calls to the client to demonstrate
-bidirectional operation.
-
-Prequisites:
-Boost -- tested with Boost 1.47, other versions may work.
-libthrift library -- build the library under "thrift/lib/cpp/"
-thrift IDL compiler -- download from http://thrift.apache.org/download/
- or build from "thrift/compiler/cpp". The IDL compiler version should
- match the thrift source distribution's version. For instance, thrift-0.9.0
- has a different directory structure than thrift-0.8.0 and the generated
- files are not compatible.
-
-Note: Bulding the thrift IDL compiler and library are beyond the scope
-of this article. Please refer to the Thrift documentation in the respective
-directories and online.
-
-
-Microsoft Windows with Visual Studio 10
-----------------------------------------
-Copy the IDL compiler 'thrift.exe' to this project folder or to a location in the path.
-Run thriftme.bat to generate the interface source from the thrift files.
-
-Open transport-sample.sln and...
-Adapt the Boost paths for the client and server projects. Right-click on each project, select
-Properties, then:
-Configuration Properties -> C/C++ -> General -> Additional Include Directories
-Configuration Properties -> Linker -> General -> Additional Include Directories
-
-The stock path assumes that Boost is located at the same level as the thrift repo root.
-
-Run the following in separate command prompts from the Release or Debug
-build folder:
- server.exe -np test
- client.exe -np test
-
-
-*NIX flavors
-------------
-Build the thrift cpp library.
-Build the IDL compiler and copy it to this project folder.
-Run thriftme.sh to generate the interface source from the thrift files.
-Run 'make'
-
-Run the following in separate shells:
- server/server -np /tmp/test
- client/client -np /tmp/test
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/transport-sample/Sample.thrift
----------------------------------------------------------------------
diff --git a/depends/thirdparty/thrift/contrib/transport-sample/Sample.thrift b/depends/thirdparty/thrift/contrib/transport-sample/Sample.thrift
deleted file mode 100644
index 3040e25..0000000
--- a/depends/thirdparty/thrift/contrib/transport-sample/Sample.thrift
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- transport-sample thrift IDL file .
- Execute thriftme.bat under Windows to generate the cpp stubs from this IDL.
- */
-
-// See thrift/tutorial/tutorial.thrift and shared.thrift for more extensive examples.
-
-
-namespace cpp Sample
-namespace java Sample
-namespace perl Sample
-
-//This struct is not used in the sample. Shown here for illustrative purposes only.
-//
-struct SampleStruct
-{
- 1: i32 key
- 2: string value
-}
-
-
-//A service contains the RPC(s).
-//
-service SampleService
-{
- string HelloThere(1:string HelloString),
- void ServerDoSomething(),
-
- //Client calls this to tell server which port to connect back on.
- void ClientSideListenPort(1:i16 Port),
- //Named pipe version
- void ClientSidePipeName(1:string name),
-}
-
-//Sample RPC on the 'client' side that the master server can call.
-service SampleCallback
-{
- void pingclient(),
-}
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/transport-sample/ThriftCommon.cpp
----------------------------------------------------------------------
diff --git a/depends/thirdparty/thrift/contrib/transport-sample/ThriftCommon.cpp b/depends/thirdparty/thrift/contrib/transport-sample/ThriftCommon.cpp
deleted file mode 100644
index 60ebf7a..0000000
--- a/depends/thirdparty/thrift/contrib/transport-sample/ThriftCommon.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// ThriftCommon.cpp : Common functions for sample Thrift client and server
-//
-
-#include "ThriftCommon.h"
-
-namespace thriftcommon
-{
- //----------------------------------------------------------------------------
- //Launch child process and pass R/W anonymous pipe handles on cmd line.
- //This is a simple example and does not include elevation or other
- //advanced features.
- //
- bool LaunchAnonPipeChild(std::string app, boost::shared_ptr<TServerTransport> transport)
- {
-#ifdef _WIN32
- PROCESS_INFORMATION pi;
- STARTUPINFOA si;
- GetStartupInfoA(&si); //set startupinfo for the spawned process
- char handles[MAX_PATH]; //Stores pipe handles converted to text
-
- sprintf(handles, "%s %d %d", app.c_str(),
- (int)boost::shared_dynamic_cast<TPipeServer>(transport)->getClientRdPipeHandle(),
- (int)boost::shared_dynamic_cast<TPipeServer>(transport)->getClientWrtPipeHandle());
-
- //spawn the child process
- if (!CreateProcessA(NULL, handles, NULL,NULL,TRUE,0,NULL,NULL,&si,&pi))
- {
- GlobalOutput.perror("TPipeServer CreateProcess failed, GLE=", GetLastError());
- return false;
- }
-
- CloseHandle(pi.hThread);
- CloseHandle(pi.hProcess);
-#endif
- return true;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/transport-sample/ThriftCommon.h
----------------------------------------------------------------------
diff --git a/depends/thirdparty/thrift/contrib/transport-sample/ThriftCommon.h b/depends/thirdparty/thrift/contrib/transport-sample/ThriftCommon.h
deleted file mode 100644
index d24d1a7..0000000
--- a/depends/thirdparty/thrift/contrib/transport-sample/ThriftCommon.h
+++ /dev/null
@@ -1,207 +0,0 @@
-// ThriftCommon.h : Common includes, namespaces and templates
-// for sample Thrift client and server
-//
-// Add the following paths to the Project's properties:
-//
-// Configuration Properties -> C/C++ -> General-> Additional Include Directories --
-// ../;../../../lib/cpp/src;../../../../boost;../../../../boost/boost/tr1;
-//
-// Configuration Properties -> Linker -> General -> Additional Library Directories --
-// ../../../lib/cpp/$(Configuration);../../../../Boost/lib
-//
-// Configuration Properties -> Linker -> Input -> Additional Dependencies --
-// libthrift.lib
-//
-// ... adjust relative paths as necessary.
-//
-
-#ifdef _WIN32 //thrift is crashing when using boost threads on Mac OSX
-# define USE_BOOST_THREAD 1
-# include <boost/thread.hpp>
-#else
-# include <sys/socket.h>
-# include <netinet/in.h>
-#endif
-
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// Required Includes
-//'server' side #includes
-#include <thrift/concurrency/ThreadManager.h>
-#include <thrift/concurrency/PlatformThreadFactory.h>
-#include <thrift/server/TThreadPoolServer.h>
-#include <thrift/server/TSimpleServer.h>
-//'client' side #includes
-#include <thrift/transport/TPipeServer.h>
-#include <thrift/transport/TPipe.h>
-#include <thrift/transport/TBufferTransports.h>
-#include <thrift/transport/TSocket.h>
-#include <thrift/transport/TTransport.h>
-
-#include <thrift/protocol/TBinaryProtocol.h>
-
-
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// Required Namespaces
-//'server' side namespaces
-using namespace apache::thrift::server;
-using namespace apache::thrift::concurrency;
-//common namespaces
-using namespace apache::thrift;
-using namespace apache::thrift::protocol;
-using namespace apache::thrift::transport;
-//using namespace boost; //using ns boost can introduce type conflicts
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-namespace thriftcommon
-{
- //----------------------------------------------------------------------------
- //
- //Start the thrift 'server' (both server & client side run one for bidir event signaling)
- // *** This function template will block ***
- //
- template <class MyHandler, class MyProcessor>
- void RunThriftServer (boost::shared_ptr<MyHandler> hndlr,
- int NumThreads,
- boost::shared_ptr<TServerTransport> transport,
- boost::shared_ptr<TServer> &server)
- {
-#ifdef _WIN32
- if (!hndlr.get())
- throw std::exception("RunThriftServer() invalid handler");
- if (!transport.get())
- throw std::exception("RunThriftServer() invalid transport");
-#else
- if ( !hndlr.get() || !transport.get() )
- throw std::exception();
-#endif
-
- boost::shared_ptr<MyHandler> handler(hndlr);
- boost::shared_ptr<TProcessor> processor(new MyProcessor(handler));
- boost::shared_ptr<TTransportFactory> tfactory(new TBufferedTransportFactory());
- boost::shared_ptr<TProtocolFactory> pfactory(new TBinaryProtocolFactory());
-
- if(NumThreads <= 1)
- { //Single-threaded server
- server.reset(new TSimpleServer(processor, transport, tfactory, pfactory));
- }
- else
- { //Multi-threaded server
- boost::shared_ptr<ThreadManager> threadManager = ThreadManager::newSimpleThreadManager(NumThreads);
- boost::shared_ptr<PlatformThreadFactory> threadFactory = boost::shared_ptr<PlatformThreadFactory>(new PlatformThreadFactory());
- threadManager->threadFactory(threadFactory);
- threadManager->start();
- server.reset(new TThreadPoolServer(processor, transport, tfactory, pfactory, threadManager));
- }
-
- printf("Starting the 'server'...\n");
- server->serve();
- printf("done.\n");
- }
-
- // Thrift server wrapper function that accepts a pipe name.
- // A handler must be passed in to this version.
- template <class MyHandler, class MyProcessor>
- void RunThriftServer (boost::shared_ptr<MyHandler> hndlr, int NumThreads, std::string pipename, boost::shared_ptr<TServer> &svr)
- {
-#ifndef _WIN32 //Mac, *nix
- unlink(pipename.c_str());
-#endif
- boost::shared_ptr<TServerTransport> transport(new TPipeServer(pipename, 1024, NumThreads)); //Named pipe
- RunThriftServer<MyHandler, MyProcessor>(hndlr, NumThreads, transport, svr);
- }
-
- // Thrift server wrapper function that accepts a pipe name.
- // This version instantiates its own handler.
- template <class MyHandler, class MyProcessor>
- void RunThriftServer (int NumThreads, std::string pipename)
- {
- boost::shared_ptr<MyHandler> handler(new MyHandler());
- boost::shared_ptr<TServer> server;
-
- RunThriftServer<MyHandler, MyProcessor>(handler, NumThreads, pipename, server);
- }
-
- // Thrift server wrapper function that accepts a socket port number.
- // A handler must be passed in to this version.
- template <class MyHandler, class MyProcessor>
- void RunThriftServer (boost::shared_ptr<MyHandler> hndlr, int NumThreads, int Port)
- {
- boost::shared_ptr<TServerTransport> transport(new TServerSocket(Port));
- boost::shared_ptr<TServer> server;
- RunThriftServer<MyHandler, MyProcessor>(hndlr, NumThreads, transport, server);
- }
-
- // Thrift server wrapper function that accepts a socket port number.
- // This version instantiates its own handler.
- template <class MyHandler, class MyProcessor>
- void RunThriftServer (int NumThreads, int Port)
- {
- boost::shared_ptr<MyHandler> handler(new MyHandler());
-
- RunThriftServer<MyHandler, MyProcessor>(handler, NumThreads, Port);
- }
-
- //
- template <class MyHandler, class MyProcessor>
- void RunThriftServer (boost::shared_ptr<MyHandler> hndlr, int NumThreads, boost::shared_ptr<TServerTransport> transport)
- {
- boost::shared_ptr<TServer> server;
- RunThriftServer<MyHandler, MyProcessor>(hndlr, NumThreads, transport, server);
- }
-
- //----------------------------------------------------------------------------
- //Connect to thrift 'server' - Socket version
- //(both server & client side run one for bidir event signaling)
- //
- template <class MyClient, class MyTransport>
- void ConnectToServer (boost::shared_ptr<MyClient> &client, boost::shared_ptr<MyTransport> &transport, int Port)
- {
- //Client side connection using sockets transport.
- boost::shared_ptr<TTransport> socket(new TSocket("localhost", Port));
- transport.reset(new TBufferedTransport(socket));
- boost::shared_ptr<TProtocol> protocol(new TBinaryProtocol(transport));
-
- client.reset(new MyClient(protocol));
- }
-
- //Connect to thrift 'server' - Named Pipe version
- template <class MyClient, class MyTransport>
- void ConnectToServer (boost::shared_ptr<MyClient> &client, boost::shared_ptr<MyTransport> &transport, std::string pipename)
- {
- //Client side connection using Named Pipe transport.
- boost::shared_ptr<TTransport> pipe(new TPipe(pipename));
- transport.reset(new TBufferedTransport(pipe));
- boost::shared_ptr<TProtocol> protocol(new TBinaryProtocol(transport));
-
- client.reset(new MyClient(protocol));
- }
-
- //Connect to thrift 'server' - Anonymous Pipe version
- //Currently only supported under Windows
-#ifdef _WIN32
- template <class MyClient, class MyTransport>
- void ConnectToServer (boost::shared_ptr<MyClient> &client, boost::shared_ptr<MyTransport> &transport, HANDLE RdPipe, HANDLE WrtPipe)
- {
- //Client side connection using sockets transport.
-#ifdef _WIN32
- boost::shared_ptr<TTransport> pipe(new TPipe((int)RdPipe, (int)WrtPipe));
- transport.reset(new TBufferedTransport(pipe));
-#else
- boost::shared_ptr<TTransport> socket(new TSocket("localhost"));
- transport.reset(new TBufferedTransport(socket));
-#endif
- boost::shared_ptr<TProtocol> protocol(new TBinaryProtocol(transport));
-
- client.reset(new MyClient(protocol));
- }
-#endif
-
- //----------------------------------------------------------------------------
- //Launch child process and pass R/W anonymous pipe handles on cmd line.
- //Currently only supported under Windows
-#ifdef _WIN32
- bool LaunchAnonPipeChild(std::string app, boost::shared_ptr<TServerTransport> transport);
-#endif
-}
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/transport-sample/client/ReadMe.txt
----------------------------------------------------------------------
diff --git a/depends/thirdparty/thrift/contrib/transport-sample/client/ReadMe.txt b/depends/thirdparty/thrift/contrib/transport-sample/client/ReadMe.txt
deleted file mode 100644
index 6c49a96..0000000
--- a/depends/thirdparty/thrift/contrib/transport-sample/client/ReadMe.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-========================================================================
- CONSOLE APPLICATION : client Project Overview
-========================================================================
-
-AppWizard has created this client application for you.
-
-This file contains a summary of what you will find in each of the files that
-make up your client application.
-
-
-client.vcxproj
- This is the main project file for VC++ projects generated using an Application Wizard.
- It contains information about the version of Visual C++ that generated the file, and
- information about the platforms, configurations, and project features selected with the
- Application Wizard.
-
-client.vcxproj.filters
- This is the filters file for VC++ projects generated using an Application Wizard.
- It contains information about the association between the files in your project
- and the filters. This association is used in the IDE to show grouping of files with
- similar extensions under a specific node (for e.g. ".cpp" files are associated with the
- "Source Files" filter).
-
-client.cpp
- This is the main application source file.
-
-/////////////////////////////////////////////////////////////////////////////
-Other standard files:
-
-StdAfx.h, StdAfx.cpp
- These files are used to build a precompiled header (PCH) file
- named client.pch and a precompiled types file named StdAfx.obj.
-
-/////////////////////////////////////////////////////////////////////////////
-Other notes:
-
-AppWizard uses "TODO:" comments to indicate parts of the source code you
-should add to or customize.
-
-/////////////////////////////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/transport-sample/client/client.cpp
----------------------------------------------------------------------
diff --git a/depends/thirdparty/thrift/contrib/transport-sample/client/client.cpp b/depends/thirdparty/thrift/contrib/transport-sample/client/client.cpp
deleted file mode 100644
index 45fbef1..0000000
--- a/depends/thirdparty/thrift/contrib/transport-sample/client/client.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
-// client->cpp : Defines the entry point for the console application.
-//
-// sample client command line app using Thrift IPC.
-// Quick n Dirty example, may not have very robust error handling
-// for the sake of simplicity.
-
-#ifdef _WIN32
-# include "stdafx.h"
-#else
-# include "config.h"
-#endif
-
-
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-//Include this before the generated includes
-#include "ThriftCommon.h"
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-//Tailor these to your generated files
-#include "../gen-cpp/SampleService.h"
-#include "../gen-cpp/SampleCallback.h"
-
-using namespace Sample; //declared in .thrift file
-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-void ClientListenerThreadProc();
-bool bSocket = false;
-bool bAnonPipe = false;
-int srvPort;
-std::string pipename;
-std::string pipename_client;
-#ifdef _WIN32
- HANDLE hConsole;
-#endif
-
-//Customized version of printf that changes the text color
-//This depends on hConsole global being initialized
-void hlprintf(const char* _Format, ...)
-{
-#ifdef _WIN32
- SetConsoleTextAttribute(hConsole, 0xE);
-#endif
- va_list ap;
- int r;
- va_start (ap, _Format);
- r = vprintf (_Format, ap);
- va_end (ap);
-#ifdef _WIN32
- SetConsoleTextAttribute(hConsole, 7);
-#endif
-}
-
-//-----------------------------------------------------------------------------
-// Client-side RPC implementations: Called by the server to the client for
-// bidirectional eventing.
-//
-class SampleCallbackHandler : virtual public SampleCallbackIf {
- public:
- SampleCallbackHandler() {
- // initialization goes here
- }
-
- void pingclient()
- {
- hlprintf("<<<Ping received from server (server-to-client event).\n");
- }
-
-};
-//-----------------------------------------------------------------------------
-
-
-#ifdef _WIN32
-int _tmain(int argc, _TCHAR* argv[])
-#else
-int main(int argc, char **argv)
-#endif
-{
- //Process cmd line args to determine named vs anon pipes.
- bool usage = false;
-#ifdef _WIN32
- HANDLE ReadPipe, WritePipe;
- hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
-#endif
-
- //Process command line params
- if(argc > 1)
- {
- if(_tcscmp(argv[1], TEXT("-sp")) == 0)
- { //Socket Port specified
- srvPort = _tstoi(argv[2]);
- bSocket = true;
- }
- else if(_tcscmp(argv[1], TEXT("-np")) == 0)
- { //Named Pipe specified
-#ifdef _WIN32
- std::wstring wpipe(argv[2]);
- pipename.resize(wpipe.length());
- std::copy(wpipe.begin(), wpipe.end(), pipename.begin());
-#else
- pipename = argv[2];
-#endif
- pipename_client = pipename + "_client";
- }
- else if(argc == 3)
- { //Anonymous Pipe specified
-#ifdef _WIN32
- ReadPipe = (HANDLE)_tstoi(argv[1]);
- WritePipe = (HANDLE)_tstoi(argv[2]);
- bAnonPipe = true;
-#else
- printf("Anonymous pipes not (yet) supported under *NIX\n");
-#endif
- }
- else
- usage = true;
- }
- else
- usage = true;
-
- if(usage)
- {
- hlprintf("Thrift sample client usage:\n\n");
- hlprintf("Socket Port to connect to: -sp <port#>\n");
- hlprintf("Named Pipe to connect to: -np <pipename> (e.g. affpipe)\n");
- hlprintf("Anonymous Pipe (must be launched by anon pipe creator):\n");
- hlprintf(" <Read Handle> <Write Handle>\n");
- return 0;
- }
-
- //Client side connection to server.
- boost::shared_ptr<SampleServiceClient> client; //Client class from Thrift-generated code.
- boost::shared_ptr<TTransport> transport;
-
- if(bSocket)
- { //Socket transport
-#ifdef _WIN32
- TWinsockSingleton::create();
-#endif
- hlprintf("Using socket transport port %d\n", srvPort);
- thriftcommon::ConnectToServer<SampleServiceClient, TTransport>(client, transport, srvPort);
- }
- else if(!bAnonPipe)
- {
- hlprintf("Using Named Pipe %s\n", pipename.c_str());
- thriftcommon::ConnectToServer<SampleServiceClient, TTransport>(client, transport, pipename);
- }
- else
- {
-#ifdef _WIN32
- hlprintf("Using Anonymous Pipe transport\n");
- thriftcommon::ConnectToServer<SampleServiceClient, TTransport>(client, transport, ReadPipe, WritePipe);
-#endif
- }
-
-#ifdef _WIN32
- //Start a thread to receive inbound connection from server for 2-way event signaling.
- boost::thread ClientListenerThread(ClientListenerThreadProc);
-#endif
-
- try {
- transport->open();
-
- //Notify server what to connect back on.
- if(bSocket)
- client->ClientSideListenPort(srvPort + 1); //Socket
- else if(!bAnonPipe)
- client->ClientSidePipeName(pipename_client); //Named Pipe
-
- //Run some more RPCs
- std::string hellostr = "Hello how are you?";
- std::string returnstr;
- client->HelloThere(returnstr, hellostr);
- hlprintf("\n>>>Sent: %s\n", hellostr.c_str());
- hlprintf("<<<Received: %s\n", returnstr.c_str());
-
- hlprintf("\n>>>Calling ServerDoSomething() which delays for 5 seconds.\n");
- client->ServerDoSomething();
- hlprintf(">>>ServerDoSomething() done.\n\n");
-
- transport->close();
- } catch (TException &tx) {
- hlprintf("ERROR: %s\n", tx.what());
- }
-
- return 0;
-}
-
-
-//Thread Routine
-void ClientListenerThreadProc()
-{
- if(bSocket)
- thriftcommon::RunThriftServer<SampleCallbackHandler, SampleCallbackProcessor>(1, srvPort + 1);
- else if(!bAnonPipe)
- thriftcommon::RunThriftServer<SampleCallbackHandler, SampleCallbackProcessor>(1, pipename_client);
-}