Multi-threaded DLL (do not use libcmt.lib)
[yaz4j-moved-to-github.git] / pom.xml
diff --git a/pom.xml b/pom.xml
index 539d4bd..9c659b2 100644 (file)
--- a/pom.xml
+++ b/pom.xml
-<?xml version="1.0" encoding="UTF-8"?>
-<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/maven-v4_0_0.xsd">
-
-    <!-- POM Relationships -->
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.yaz4j</groupId>
-    <artifactId>yaz4j</artifactId>
-    <version>1.0</version>
-    <packaging>jar</packaging>
-
-    <!-- Project Information -->
-    <name>yaz4j</name>
-    <url>http://www.indexdata.com/yaz4j/</url>
-    <inceptionYear>2008</inceptionYear>
-    <licenses>
-        <license>
-            <name>BSD</name>
-            <url>http://www.opensource.org/licenses/bsd-license.php</url>
-        </license>
-    </licenses>
-    <description>Java wrapper for the ZOOM API of YAZ</description>
-
-    <developers>
-        <developer>
-            <name>Rob Styles</name>
-            <id>rob</id>
-            <email>Rob.Styles@talis.com</email>
-            <organization>Talis</organization>
-            <organizationUrl>http://www.talis.com/</organizationUrl>
-            <roles />
-            <timezone />
-        </developer>
-        <developer>
-            <name>Adam Dickmeiss</name>
-            <id>adam</id>
-            <email>adam@indexdata.dk</email>
-            <organization>Index Data</organization>
-            <organizationUrl>http://www.indexdata.com/</organizationUrl>
-            <roles />
-            <timezone />
-        </developer>
-        <developer>
-            <name>Juan Cayetano</name>
-            <id>cayetano</id>
-            <email>juancayetano.delgado@gmail.com</email>
-            <organization />
-            <organizationUrl />
-            <roles />
-            <timezone />
-        </developer>
-    </developers>
-    <!-- ///////////////// -->
-
-    <!-- Project Dependencies -->
-    <dependencies>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.3.1</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-    <!-- ///////////////// -->
-
-    <!-- Build Settings -->
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-resources-plugin</artifactId>
-                <configuration>
-                    <encoding>UTF-8</encoding>
-                </configuration>
-            </plugin>
+<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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.yaz4j</groupId>
+  <artifactId>yaz4j-lib</artifactId>
+  <version>1.6-SNAPSHOT</version>
+  <packaging>pom</packaging>
 
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <encoding>UTF-8</encoding>
-                    <source>1.5</source>
-                    <target>1.5</target>
-                    <showDeprecation>true</showDeprecation>
-                    <showWarnings>true</showWarnings>
-                </configuration>
-            </plugin>
+  <prerequisites>
+    <maven>3.0.4</maven>
+  </prerequisites>
 
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <forkMode>once</forkMode>
-                    <workingDirectory>target</workingDirectory>
-                    <argLine>-Djava.library.path=${basedir}/libyaz4j/lib</argLine>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+  <!-- Project Information -->
+  <name>yaz4j</name>
+  <url>http://www.indexdata.com/yaz4j/</url>
+  <inceptionYear>2008</inceptionYear>
+  <licenses>
+    <license>
+      <name>BSD</name>
+      <url>http://www.opensource.org/licenses/BSD-3-Clause</url>
+    </license>
+  </licenses>
+  <description>Java wrapper for the ZOOM API of YAZ</description>
+
+  <organization>
+    <name>Index Data</name>
+  </organization>
+
+  <developers>
+    <developer>
+      <name>Rob Styles</name>
+      <id>rob</id>
+      <email>Rob.Styles@talis.com</email>
+      <organization>Talis</organization>
+      <organizationUrl>http://www.talis.com/</organizationUrl>
+      <roles />
+      <timezone />
+    </developer>
+    <developer>
+      <name>Adam Dickmeiss</name>
+      <id>adam</id>
+      <email>adam@indexdata.dk</email>
+      <organization>Index Data</organization>
+      <organizationUrl>http://www.indexdata.com/</organizationUrl>
+      <roles />
+      <timezone />
+    </developer>
+    <developer>
+      <name>Jakub Skoczen</name>
+      <id>jakub</id>
+      <email>jakub@indexdata.dk</email>
+      <organization>Index Data</organization>
+      <organizationUrl>http://www.indexdata.com/</organizationUrl>
+      <roles />
+      <timezone />
+    </developer>
+    <developer>
+      <name>Juan Cayetano</name>
+      <id>cayetano</id>
+      <email>juancayetano.delgado@gmail.com</email>
+      <organization />
+      <organizationUrl />
+      <roles />
+      <timezone />
+    </developer>
+  </developers>
+
+  <modules>
+    <module>any</module>
+  </modules>
+
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.3.1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <build>
+
+    <extensions>
+      <extension>
+        <groupId>org.apache.maven.wagon</groupId>
+        <artifactId>wagon-ssh</artifactId>
+        <version>1.0-beta-6</version>
+      </extension>
+      <extension>
+        <groupId>org.apache.maven.wagon</groupId>
+        <artifactId>wagon-ssh-external</artifactId>
+        <version>2.2</version>
+      </extension>
+    </extensions> 
+
+    <plugins>
 
-    <!-- Reporting -->
-    <reporting>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-release-plugin</artifactId>
+        <version>2.2.2</version>
+        <configuration>
+          <preparationGoals>clean verify</preparationGoals>
+          <releaseProfiles>production</releaseProfiles>
+          <tagNameFormat>v@{project.version}</tagNameFormat>
+          <pushChanges>false</pushChanges>
+          <localCheckout>true</localCheckout>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <version>1.8</version>
+        <executions>
+          <execution>
+            <id>generate-sources</id>
+            <phase>generate-sources</phase>
+            <inherited>false</inherited>
+            <configuration>
+              <target>
+                <echo message="Using include: ${yaz.include}" />
+                <mkdir dir="target/generated-sources/java/org/yaz4j/jni" />
+                <mkdir dir="target/generated-sources/native" />
+                <exec executable="${swig}">
+                  <arg value="-Isrc/main/native" />
+                  <arg value="${yaz.include}" />
+                  <arg value="-outdir" />
+                  <arg value="${basedir}/target/generated-sources/java/org/yaz4j/jni" />
+                  <arg value="-package" />
+                  <arg value="org.yaz4j.jni" />
+                  <arg value="-o" />
+                  <arg value="${basedir}/target/generated-sources/native/libyaz4j.cpp" />
+                  <arg value="-c++" />
+                  <arg value="-java" />
+                  <arg value="src/main/swig/libyaz4j.i" />
+                </exec>
+              </target>
+            </configuration>
+            <goals>
+              <goal>run</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+
+  </build>
+
+  <!-- Reporting -->
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+        <version>2.15</version>
+        <configuration>
+          <enableRSS>false</enableRSS>
+          <include>**/*.java</include>
+          <sourceDirectory>src/main/java</sourceDirectory>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>
+          maven-project-info-reports-plugin
+        </artifactId>
+        <version>2.8</version>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>dependencies</report>
+              <report>project-team</report>
+              <report>mailing-list</report>
+              <report>issue-tracking</report>
+              <report>summary</report>
+              <report>scm</report>
+              <report>index</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <version>2.10.3</version>
+        <configuration>
+          <chartset>UTF-8</chartset>
+          <excludePackageNames>org.yaz4j.jni</excludePackageNames>
+        </configuration>
+      </plugin>
+    </plugins>
+  </reporting>
+  <!-- ////////////// -->
+
+  <!-- Environment Information -->
+  <mailingLists>
+    <mailingList>
+      <name>Yazlist</name>
+      <subscribe />
+      <unsubscribe />
+      <post>yazlist@lists.indexdata.dk</post>
+      <archive>http://lists.indexdata.dk/pipermail/yazlist/</archive>
+    </mailingList>
+  </mailingLists>
+
+  <scm>
+    <connection>scm:git:git://git.indexdata.com/yaz4j</connection>
+    <url>http://git.indexdata.com/?p=yaz4j.git</url>
+  </scm>
+
+  <issueManagement>
+    <system>JIRA</system>
+    <url>http://jira.indexdata.com</url>
+  </issueManagement>
+
+  <distributionManagement>
+    <repository>
+      <uniqueVersion>false</uniqueVersion>
+      <id>id-maven-repo</id>
+      <name>Index Data Maven Repository</name>
+      <url>scp://maven.indexdata.com:22/var/www/maven/repository</url>
+    </repository>
+    <site>
+      <id>id-website</id>
+      <url>scpexe://www.indexdata.com/var/www/software/yaz4j/site</url>
+    </site>
+  </distributionManagement>
+
+  <profiles>
+    <profile>
+      <id>win32</id>
+      <activation>
+        <os>
+          <family>windows</family>
+        </os>
+      </activation>
+      <properties>
+        <platform>win32</platform>
+        <yaz.path>C:\Program Files\YAZ</yaz.path>
+        <swig>swig</swig>
+        <!-- needed by swig -->
+        <yaz.include>"-I${yaz.path}\include"</yaz.include>
+        <yaz.libs>"${yaz.path}\lib\yaz5.lib"</yaz.libs>
+      </properties>
+      <modules>
+        <module>win32</module>
+      </modules>
+    </profile>
+
+    <profile>
+      <id>unix</id>
+      <activation>
+        <os>
+          <family>unix</family>
+        </os>
+      </activation>
+      <properties>
+        <platform>linux</platform> <!-- no solaris etc -->
+        <packaging>so</packaging>
+        <!-- yaz-config executable -->
+        <yaz.config>yaz-config</yaz.config>
+       <swig>swig</swig>
+        <javahOS>linux</javahOS>
+        <jdkIncludePath>${java.home}/../include</jdkIncludePath>
+      </properties>
+      <modules>
+        <module>unix</module>
+      </modules>
+      <build>
         <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-checkstyle-plugin</artifactId>
-                <configuration>
-                    <enableRSS>false</enableRSS>
-                    <include>**/*.java</include>
-                    <sourceDirectory>src/main/java</sourceDirectory>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>
-                maven-project-info-reports-plugin
-                </artifactId>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>dependencies</report>
-                            <report>project-team</report>
-                            <report>mailing-list</report>
-                            <report>issue-tracking</report>
-                            <report>summary</report>
-                            <report>scm</report>
-                            <report>index</report>
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
+          <plugin>
+            <artifactId>maven-antrun-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>write-swig-include</id>
+                <phase>initialize</phase>
+                <goals>
+                  <goal>run</goal>
+                </goals>
                 <configuration>
-                    <chartset>UTF-8</chartset>
+                  <target>
+                    <exec executable="${yaz.config}" outputproperty="yaz-config.include" errorproperty="yaz-config.error">
+                      <arg value="--include" />
+                    </exec>
+                    <echo message="yaz-config error (if any): ${yaz-config.error}" />
+                    <condition property="yaz.include" value="-I/usr/include" else="${yaz-config.include}">
+                      <equals arg1="${yaz-config.include}" arg2="" />
+                    </condition>
+                    <echo message="YAZ INCLUDE=${yaz.include}" />
+                    <mkdir dir="${basedir}/target" />
+                    <echo file="${basedir}/target/swig.properties" message="yaz.include=${yaz.include}" />
+                  </target>
                 </configuration>
-            </plugin>
+              </execution>
+            </executions>
+          </plugin>
+          <plugin> 
+            <groupId>org.codehaus.mojo</groupId> 
+            <artifactId>properties-maven-plugin</artifactId> 
+            <version>1.0-alpha-1</version> 
+            <executions> 
+              <execution> 
+                <id>read-swig-config</id> 
+                <phase>initialize</phase> 
+                <goals> 
+                  <goal>read-project-properties</goal> 
+                </goals> 
+                <configuration> 
+                  <files> 
+                    <file>${basedir}/target/swig.properties</file> 
+                  </files> 
+                </configuration> 
+              </execution> 
+            </executions> 
+          </plugin>
         </plugins>
-    </reporting>
-    <!-- ////////////// -->
-
-    <!-- Build Environment -->
-    <!-- Environment Information -->
-    <mailingLists>
-        <mailingList>
-            <name />
-            <subscribe />
-            <unsubscribe />
-            <post />
-            <archive />
-        </mailingList>
-    </mailingLists>
-
-    <scm>
-        <connection />
-        <url />
-    </scm>
-
-    <issueManagement>
-        <system />
-        <url />
-    </issueManagement>
-
-    <ciManagement>
-        <system />
-        <url />
-    </ciManagement>
-    <!-- /////////////////////// -->
-
-    <!-- Maven Environment -->
-    <repositories />
-    <pluginRepositories />
-    <!-- ///////////////// -->
-
-    <!-- Maven Common Properties -->
-    <properties />
-    <!-- /////////////////// -->
-</project>
+      </build>
+    </profile>
+
+    <profile>
+      <!-- osx family is both 'unix' and 'mac' -->
+      <id>osx</id>
+      <activation>
+        <os>
+          <family>mac</family>
+        </os>
+      </activation>
+      <properties>
+        <platform>osx</platform>
+        <packaging>dylib</packaging>
+        <javahOS>darwin</javahOS>
+        <jdkIncludePath>${java.home}/../include</jdkIncludePath>
+      </properties>
+      <modules>
+        <module>unix</module>
+      </modules>
+    </profile>
 
+    <profile>
+      <!-- Apple JDK has a different include layout -->
+      <id>apple-jdk</id>
+      <activation>
+        <property>
+          <name>java.vendor</name>
+          <value>Apple Inc.</value>
+        </property>
+      </activation>
+      <properties>
+        <jdkIncludePath>${java.home}/../Headers</jdkIncludePath>
+      </properties>
+      <modules>
+        <module>unix</module>
+      </modules>
+    </profile>
+
+  </profiles>
+</project>