blob: 0c5af7283b051da8199bfcfa1f33bc6ed0b4810c [file] [log] [blame]
Dmitry Lychaginf024b412021-10-11 10:31:08 -07001<!--
2 ! Licensed to the Apache Software Foundation (ASF) under one
3 ! or more contributor license agreements. See the NOTICE file
4 ! distributed with this work for additional information
5 ! regarding copyright ownership. The ASF licenses this file
6 ! to you under the Apache License, Version 2.0 (the
7 ! "License"); you may not use this file except in compliance
8 ! with the License. You may obtain a copy of the License at
9 !
10 ! http://www.apache.org/licenses/LICENSE-2.0
11 !
12 ! Unless required by applicable law or agreed to in writing,
13 ! software distributed under the License is distributed on an
14 ! "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 ! KIND, either express or implied. See the License for the
16 ! specific language governing permissions and limitations
17 ! under the License.
18 !-->
19<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
20 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
21 <modelVersion>4.0.0</modelVersion>
22
23 <parent>
24 <artifactId>apache-asterixdb-jdbc</artifactId>
25 <groupId>org.apache.asterix</groupId>
26 <version>0.9.7-SNAPSHOT</version>
27 </parent>
28 <artifactId>asterix-jdbc-taco</artifactId>
29 <packaging>jar</packaging>
30
31 <licenses>
32 <license>
33 <name>Apache License, Version 2.0</name>
34 <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
35 <distribution>repo</distribution>
36 <comments>A business-friendly OSS license</comments>
37 </license>
38 </licenses>
39
40 <properties>
41 <root.dir>${basedir}/..</root.dir>
Dmitry Lychaginf024b412021-10-11 10:31:08 -070042
43 <taco.plugin.class>asterixdb_jdbc</taco.plugin.class>
44 <taco.plugin.name>AsterixDB</taco.plugin.name>
45 <!--suppress UnresolvedMavenProperty -->
46 <taco.plugin.version>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}</taco.plugin.version>
47 <taco.plugin.vendor>Apache</taco.plugin.vendor>
48 <taco.plugin.site>https://asterixdb.apache.org</taco.plugin.site>
Dmitry Lychagin981c7962021-11-29 10:50:35 -080049 <taco.plugin.site.download>${taco.plugin.site}</taco.plugin.site.download>
Dmitry Lychaginf024b412021-10-11 10:31:08 -070050 <taco.plugin.dialect>AsterixDB</taco.plugin.dialect>
Dmitry Lychaginf024b412021-10-11 10:31:08 -070051 <taco.plugin.database.label>Dataverse</taco.plugin.database.label>
52 <taco.plugin.database.default>Default</taco.plugin.database.default>
53 <taco.plugin.table.label>Dataset</taco.plugin.table.label>
54 <taco.plugin.jdbc.scheme>jdbc:asterixdb://</taco.plugin.jdbc.scheme>
Dmitry Lychaginf024b412021-10-11 10:31:08 -070055 <taco.plugin.auth.none><![CDATA[<option value="auth-none" label="No Authentication"/>]]></taco.plugin.auth.none>
Dmitry Lychagin151662e2021-10-15 18:36:58 -070056 <taco.plugin.fields.custom/>
57 <taco.plugin.norm.attributes.custom/>
58 <taco.plugin.jdbc.properties.custom/>
Dmitry Lychagindd8616e2021-10-13 10:34:43 -070059
60 <taco.sourceDirectory>${project.basedir}/src/main/taco</taco.sourceDirectory>
61
Dmitry Lychagind355ca32021-10-25 16:03:41 -070062 <build.taco.copy.sdk.stage>none</build.taco.copy.sdk.stage>
Dmitry Lychagindd8616e2021-10-13 10:34:43 -070063 <build.taco.init.sdk.stage>none</build.taco.init.sdk.stage>
64 <build.taco.package.sdk.stage>none</build.taco.package.sdk.stage>
65 <build.taco.package.nosdk.stage>none</build.taco.package.nosdk.stage>
66 <build.taco.directory>${project.build.directory}/taco</build.taco.directory>
67 <build.taco.gensrc.directory>${build.taco.directory}/generated-sources</build.taco.gensrc.directory>
68 <build.taco.gensrc.plugin.class.directory>${build.taco.gensrc.directory}/plugins/${taco.plugin.class}</build.taco.gensrc.plugin.class.directory>
Dmitry Lychagind355ca32021-10-25 16:03:41 -070069 <build.taco.sdk.directory>${build.taco.directory}/connector-plugin-sdk</build.taco.sdk.directory>
Dmitry Lychagindd8616e2021-10-13 10:34:43 -070070 <build.taco.log.directory>${build.taco.directory}</build.taco.log.directory>
71 <build.taco.package.file>${project.build.directory}/${taco.plugin.class}.taco</build.taco.package.file>
72 <build.venv.directory>${project.build.directory}/venv</build.venv.directory>
73 <build.venv.python.path>${build.venv.directory}/bin/python</build.venv.python.path>
Dmitry Lychaginf024b412021-10-11 10:31:08 -070074 </properties>
75
76 <build>
77 <resources>
78 <resource>
79 <directory>${taco.sourceDirectory}</directory>
80 </resource>
81 </resources>
82 <plugins>
83 <plugin>
84 <groupId>org.codehaus.mojo</groupId>
85 <artifactId>build-helper-maven-plugin</artifactId>
86 <executions>
87 <execution>
88 <id>parse-version</id>
89 <goals>
90 <goal>parse-version</goal>
91 </goals>
92 </execution>
93 </executions>
94 </plugin>
95 <plugin>
96 <artifactId>maven-resources-plugin</artifactId>
97 <executions>
98 <execution>
99 <id>taco-generate-sources</id>
100 <phase>generate-sources</phase>
101 <goals>
102 <goal>copy-resources</goal>
103 </goals>
104 <configuration>
105 <outputDirectory>${build.taco.gensrc.directory}</outputDirectory>
106 <resources>
107 <resource>
108 <directory>${taco.sourceDirectory}</directory>
109 <filtering>true</filtering>
110 </resource>
111 </resources>
112 </configuration>
113 </execution>
Dmitry Lychagind355ca32021-10-25 16:03:41 -0700114 <execution>
115 <id>taco-copy-sdk</id>
116 <phase>${build.taco.copy.sdk.stage}</phase>
117 <goals>
118 <goal>copy-resources</goal>
119 </goals>
120 <configuration>
121 <outputDirectory>${build.taco.sdk.directory}</outputDirectory>
122 <resources>
123 <resource>
124 <!--suppress UnresolvedMavenProperty -->
125 <directory>${taco.sdk.path}</directory>
126 <filtering>false</filtering>
127 </resource>
128 </resources>
129 </configuration>
130 </execution>
Dmitry Lychaginf024b412021-10-11 10:31:08 -0700131 </executions>
132 </plugin>
133 <plugin>
134 <groupId>org.apache.maven.plugins</groupId>
135 <artifactId>maven-jar-plugin</artifactId>
136 <configuration>
137 <classesDirectory>${build.taco.gensrc.directory}/plugins/${taco.plugin.class}</classesDirectory>
138 </configuration>
139 </plugin>
140 <plugin>
141 <groupId>org.apache.maven.plugins</groupId>
142 <artifactId>maven-source-plugin</artifactId>
143 <executions>
144 <execution>
145 <id>attach-sources</id>
146 <goals>
147 <goal>jar</goal>
148 </goals>
149 </execution>
150 </executions>
151 </plugin>
Dmitry Lychaginf024b412021-10-11 10:31:08 -0700152 <plugin>
153 <groupId>org.codehaus.mojo</groupId>
154 <artifactId>exec-maven-plugin</artifactId>
155 <executions>
156 <execution>
157 <id>venv-install</id>
Dmitry Lychagindd8616e2021-10-13 10:34:43 -0700158 <phase>${build.taco.init.sdk.stage}</phase>
Dmitry Lychaginf024b412021-10-11 10:31:08 -0700159 <goals>
160 <goal>exec</goal>
161 </goals>
162 <configuration>
163 <!--suppress UnresolvedMavenProperty -->
164 <executable>${python.path}</executable>
165 <workingDirectory>${project.build.directory}</workingDirectory>
166 <arguments>
167 <argument>-m</argument>
168 <argument>venv</argument>
169 <argument>${build.venv.directory}</argument>
170 </arguments>
171 </configuration>
172 </execution>
173 <execution>
174 <id>taco-packager-install</id>
Dmitry Lychagindd8616e2021-10-13 10:34:43 -0700175 <phase>${build.taco.init.sdk.stage}</phase>
Dmitry Lychaginf024b412021-10-11 10:31:08 -0700176 <goals>
177 <goal>exec</goal>
178 </goals>
179 <configuration>
Dmitry Lychagindd8616e2021-10-13 10:34:43 -0700180 <executable>${build.venv.python.path}</executable>
Dmitry Lychagind355ca32021-10-25 16:03:41 -0700181 <workingDirectory>${build.taco.sdk.directory}/connector-packager</workingDirectory>
Dmitry Lychaginf024b412021-10-11 10:31:08 -0700182 <arguments>
183 <argument>setup.py</argument>
184 <argument>install</argument>
185 </arguments>
186 <environmentVariables>
187 <VIRTUALENV>${build.venv.directory}</VIRTUALENV>
188 <PATH>${build.venv.directory}${file.separator}bin:${path.separator}${env.PATH}</PATH>
189 </environmentVariables>
190 </configuration>
191 </execution>
192 <execution>
Dmitry Lychagindd8616e2021-10-13 10:34:43 -0700193 <!-- create .taco file using Taco SDK -->
194 <id>taco-package-sdk</id>
195 <phase>${build.taco.package.sdk.stage}</phase>
Dmitry Lychaginf024b412021-10-11 10:31:08 -0700196 <goals>
197 <goal>exec</goal>
198 </goals>
199 <configuration>
Dmitry Lychagindd8616e2021-10-13 10:34:43 -0700200 <executable>${build.venv.python.path}</executable>
Dmitry Lychagind355ca32021-10-25 16:03:41 -0700201 <workingDirectory>${build.taco.sdk.directory}/connector-packager</workingDirectory>
Dmitry Lychaginf024b412021-10-11 10:31:08 -0700202 <arguments>
203 <argument>-m</argument>
204 <argument>connector_packager.package</argument>
Dmitry Lychagindd8616e2021-10-13 10:34:43 -0700205 <argument>${build.taco.gensrc.plugin.class.directory}</argument>
Dmitry Lychaginf024b412021-10-11 10:31:08 -0700206 <argument>--log</argument>
207 <argument>${build.taco.log.directory}</argument>
208 <argument>--dest</argument>
Dmitry Lychagindd8616e2021-10-13 10:34:43 -0700209 <argument>${project.build.directory}</argument>
Dmitry Lychaginf024b412021-10-11 10:31:08 -0700210 </arguments>
211 <environmentVariables>
212 <VIRTUALENV>${build.venv.directory}</VIRTUALENV>
213 <PATH>${build.venv.directory}${file.separator}bin:${path.separator}${env.PATH}</PATH>
214 </environmentVariables>
215 </configuration>
216 </execution>
217 </executions>
218 </plugin>
Dmitry Lychagindd8616e2021-10-13 10:34:43 -0700219 <plugin>
220 <groupId>org.apache.maven.plugins</groupId>
221 <artifactId>maven-shade-plugin</artifactId>
222 <executions>
223 <execution>
224 <!-- create .taco file if Taco SDK is not available -->
225 <id>taco-package-nosdk</id>
226 <phase>${build.taco.package.nosdk.stage}</phase>
227 <goals>
228 <goal>shade</goal>
229 </goals>
230 <configuration>
231 <outputFile>${build.taco.package.file}</outputFile>
232 <artifactSet>
233 <includes>
234 <include>org.apache.asterix:asterix-jdbc-taco</include>
235 </includes>
236 </artifactSet>
237 </configuration>
238 </execution>
239 </executions>
240 </plugin>
Dmitry Lychaginf024b412021-10-11 10:31:08 -0700241 </plugins>
242 </build>
243
244 <profiles>
245 <profile>
Dmitry Lychagindd8616e2021-10-13 10:34:43 -0700246 <id>taco-sdk-exists</id>
Dmitry Lychaginf024b412021-10-11 10:31:08 -0700247 <activation>
248 <property>
249 <name>taco.sdk.path</name>
250 </property>
251 </activation>
252 <properties>
Dmitry Lychagind355ca32021-10-25 16:03:41 -0700253 <build.taco.copy.sdk.stage>generate-resources</build.taco.copy.sdk.stage>
254 <build.taco.init.sdk.stage>process-resources</build.taco.init.sdk.stage>
Dmitry Lychagindd8616e2021-10-13 10:34:43 -0700255 <build.taco.package.sdk.stage>package</build.taco.package.sdk.stage>
Dmitry Lychaginf024b412021-10-11 10:31:08 -0700256 </properties>
257 <build>
258 <plugins>
259 <plugin>
260 <groupId>org.apache.maven.plugins</groupId>
261 <artifactId>maven-enforcer-plugin</artifactId>
262 <executions>
263 <execution>
Dmitry Lychagindd8616e2021-10-13 10:34:43 -0700264 <id>enforce-taco-sdk-packager-exists</id>
Dmitry Lychaginf024b412021-10-11 10:31:08 -0700265 <goals>
266 <goal>enforce</goal>
267 </goals>
268 <configuration>
269 <rules>
270 <requireProperty>
271 <property>python.path</property>
272 </requireProperty>
273 <requireFilesExist>
274 <files>
275 <!--suppress UnresolvedMavenProperty -->
276 <file>${python.path}</file>
277 <file>${taco.sdk.path}/connector-packager/setup.py</file>
278 </files>
279 </requireFilesExist>
280 </rules>
281 <fail>true</fail>
282 </configuration>
283 </execution>
Dmitry Lychagindd8616e2021-10-13 10:34:43 -0700284 <execution>
285 <!-- ensure that .taco was created -->
286 <id>enforce-taco-package-success</id>
287 <phase>verify</phase>
288 <goals>
289 <goal>enforce</goal>
290 </goals>
291 <configuration>
292 <rules>
293 <requireFilesExist>
294 <files>
295 <file>${build.taco.package.file}</file>
296 </files>
297 </requireFilesExist>
298 </rules>
299 <fail>true</fail>
300 </configuration>
301 </execution>
Dmitry Lychaginf024b412021-10-11 10:31:08 -0700302 </executions>
303 </plugin>
304 </plugins>
305 </build>
306 </profile>
Dmitry Lychagindd8616e2021-10-13 10:34:43 -0700307 <profile>
308 <id>taco-sdk-missing</id>
309 <activation>
310 <property>
311 <name>!taco.sdk.path</name>
312 </property>
313 </activation>
314 <properties>
315 <build.taco.package.nosdk.stage>package</build.taco.package.nosdk.stage>
316 </properties>
317 </profile>
Dmitry Lychaginf024b412021-10-11 10:31:08 -0700318 </profiles>
319</project>