[NO ISSUE][JDBC] Introduce asterix-jdbc-taco module
- user model changes: no
- storage format changes: no
- interface changes: yes
Details:
- Add asterix-jdbc-taco module
- Make jdbc driver work with earlier jackson versions
- Cleanup poms
Change-Id: I40219792da866e8799885c67d449a31c7ac0c87d
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb-clients/+/13644
Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>
Reviewed-by: Michael Blow <mblow@apache.org>
Tested-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>
diff --git a/asterixdb-jdbc/asterix-jdbc-taco/pom.xml b/asterixdb-jdbc/asterix-jdbc-taco/pom.xml
new file mode 100644
index 0000000..240e525
--- /dev/null
+++ b/asterixdb-jdbc/asterix-jdbc-taco/pom.xml
@@ -0,0 +1,260 @@
+<!--
+ ! 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.
+ !-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <artifactId>apache-asterixdb-jdbc</artifactId>
+ <groupId>org.apache.asterix</groupId>
+ <version>0.9.7-SNAPSHOT</version>
+ </parent>
+ <artifactId>asterix-jdbc-taco</artifactId>
+ <packaging>jar</packaging>
+
+ <licenses>
+ <license>
+ <name>Apache License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+ <distribution>repo</distribution>
+ <comments>A business-friendly OSS license</comments>
+ </license>
+ </licenses>
+
+ <properties>
+ <root.dir>${basedir}/..</root.dir>
+ <build.taco.init.stage>none</build.taco.init.stage>
+ <build.taco.validate.stage>none</build.taco.validate.stage>
+ <build.taco.directory>${project.build.directory}/taco</build.taco.directory>
+ <build.taco.gensrc.directory>${build.taco.directory}/generated-sources</build.taco.gensrc.directory>
+ <build.taco.log.directory>${build.taco.directory}</build.taco.log.directory>
+ <build.venv.directory>${project.build.directory}/venv</build.venv.directory>
+ <build.venv.pyhton.path>${build.venv.directory}/bin/python</build.venv.pyhton.path>
+ <taco.sourceDirectory>${project.basedir}/src/main/taco</taco.sourceDirectory>
+
+ <taco.plugin.class>asterixdb_jdbc</taco.plugin.class>
+ <taco.plugin.name>AsterixDB</taco.plugin.name>
+ <!--suppress UnresolvedMavenProperty -->
+ <taco.plugin.version>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}</taco.plugin.version>
+ <taco.plugin.vendor>Apache</taco.plugin.vendor>
+ <taco.plugin.site>https://asterixdb.apache.org</taco.plugin.site>
+ <taco.plugin.dialect>AsterixDB</taco.plugin.dialect>
+ <taco.plugin.port.default>19002</taco.plugin.port.default>
+ <taco.plugin.database.label>Dataverse</taco.plugin.database.label>
+ <taco.plugin.database.default>Default</taco.plugin.database.default>
+ <taco.plugin.table.label>Dataset</taco.plugin.table.label>
+ <taco.plugin.jdbc.scheme>jdbc:asterixdb://</taco.plugin.jdbc.scheme>
+ <taco.plugin.auth.none><![CDATA[<option value="auth-none" label="No Authentication"/>]]></taco.plugin.auth.none>
+ </properties>
+
+ <build>
+ <resources>
+ <resource>
+ <directory>${taco.sourceDirectory}</directory>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>parse-version</id>
+ <goals>
+ <goal>parse-version</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>taco-generate-sources</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${build.taco.gensrc.directory}</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${taco.sourceDirectory}</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <classesDirectory>${build.taco.gensrc.directory}/plugins/${taco.plugin.class}</classesDirectory>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- create .taco file -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <outputFile>${project.build.directory}/${taco.plugin.class}.taco</outputFile>
+ <artifactSet>
+ <includes>
+ <include>org.apache.asterix:asterix-jdbc-taco</include>
+ </includes>
+ </artifactSet>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>venv-install</id>
+ <phase>${build.taco.init.stage}</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ <!--suppress UnresolvedMavenProperty -->
+ <executable>${python.path}</executable>
+ <workingDirectory>${project.build.directory}</workingDirectory>
+ <arguments>
+ <argument>-m</argument>
+ <argument>venv</argument>
+ <argument>${build.venv.directory}</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <id>taco-packager-install</id>
+ <phase>${build.taco.init.stage}</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ <executable>${build.venv.pyhton.path}</executable>
+ <workingDirectory>${taco.sdk.path}/connector-packager</workingDirectory>
+ <arguments>
+ <argument>setup.py</argument>
+ <argument>install</argument>
+ </arguments>
+ <environmentVariables>
+ <VIRTUALENV>${build.venv.directory}</VIRTUALENV>
+ <PATH>${build.venv.directory}${file.separator}bin:${path.separator}${env.PATH}</PATH>
+ </environmentVariables>
+ </configuration>
+ </execution>
+ <execution>
+ <id>taco-validate</id>
+ <phase>${build.taco.validate.stage}</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ <executable>${build.venv.pyhton.path}</executable>
+ <workingDirectory>${taco.sdk.path}/connector-packager</workingDirectory>
+ <arguments>
+ <argument>-m</argument>
+ <argument>connector_packager.package</argument>
+ <argument>${build.taco.gensrc.directory}/plugins/asterixdb_jdbc</argument>
+ <argument>--validate-only</argument>
+ <argument>--log</argument>
+ <argument>${build.taco.log.directory}</argument>
+ <argument>--dest</argument>
+ <argument>${build.taco.directory}</argument>
+ </arguments>
+ <environmentVariables>
+ <VIRTUALENV>${build.venv.directory}</VIRTUALENV>
+ <PATH>${build.venv.directory}${file.separator}bin:${path.separator}${env.PATH}</PATH>
+ </environmentVariables>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>taco-validate</id>
+ <activation>
+ <property>
+ <name>taco.sdk.path</name>
+ </property>
+ </activation>
+ <properties>
+ <build.taco.init.stage>initialize</build.taco.init.stage>
+ <build.taco.validate.stage>compile</build.taco.validate.stage>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>enforce-taco-packager-exists</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <requireProperty>
+ <property>python.path</property>
+ </requireProperty>
+ <requireFilesExist>
+ <files>
+ <!--suppress UnresolvedMavenProperty -->
+ <file>${python.path}</file>
+ <file>${taco.sdk.path}/connector-packager/setup.py</file>
+ </files>
+ </requireFilesExist>
+ </rules>
+ <fail>true</fail>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>