|
19 | 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
20 | 20 | SOFTWARE.
|
21 | 21 |
|
22 |
| - Portions Copyright (C) 2012-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved. |
| 22 | + Portions Copyright (C) 2012-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. |
23 | 23 |
|
24 | 24 | Licensed under the Amazon Software License (the "License"). You may not use this
|
25 | 25 | file except in compliance with the License. A copy of the License is located at
|
|
42 | 42 | </taskdef>
|
43 | 43 |
|
44 | 44 | <property name="name" value="AmazonElastiCacheClusterClient"/>
|
45 |
| - <property name="copyright" value="2006-2011 Dustin Sallings, Matt Ingenthron, 2012-2012 Amazon.com, Inc. or its affiliates" /> |
| 45 | + <property name="copyright" value="2006-2011 Dustin Sallings, Matt Ingenthron, 2012-2015 Amazon.com, Inc. or its affiliates" /> |
46 | 46 | <property name="group" value="spy" />
|
47 | 47 |
|
48 | 48 | <property name="base.src.dir" value="${basedir}/src" />
|
|
52 | 52 | <property name="lib.dir" value="${basedir}/lib" />
|
53 | 53 | <property name="src.dir" value="${base.src.dir}/main/java" />
|
54 | 54 | <property name="test.dir" value="${base.src.dir}/test/java" />
|
| 55 | + <property name="it.dir" value="${base.src.dir}/it/java" /> |
55 | 56 | <property name="script.src.dir" value="${base.src.dir}/scripts" />
|
56 | 57 | <property name="build.javadoc" location="${build.dir}/docs/" />
|
57 | 58 | <property name="build.javadoc.test" location="${build.dir}/testdocs/" />
|
| 59 | + <property name="build.javadoc.it" location="${build.dir}/itdocs/" /> |
58 | 60 | <property name="junit.dir" location="${build.dir}/junit" />
|
59 | 61 |
|
60 | 62 | <property name="dist.dir" value="${basedir}/target" />
|
|
83 | 85 | <property name="test.log.dir" location="${build.dir}/test/logs"/>
|
84 | 86 | <property name="build.test.classes" location="${build.test}/classes" />
|
85 | 87 |
|
| 88 | + <!-- integration tests --> |
| 89 | + <property name="build.it" location="${build.dir}/it"/> |
| 90 | + <property name="it.log.dir" location="${build.dir}/it/logs"/> |
| 91 | + <property name="build.it.classes" location="${build.it}/classes" /> |
| 92 | + |
86 | 93 | <!-- maven -->
|
87 | 94 | <property name="mvn.build.dir" value="${build.dir}" />
|
88 | 95 |
|
|
124 | 131 | <property name="server.port_number" value="11211"/>
|
125 | 132 | <property name="test.type" value="unit"/>
|
126 | 133 |
|
| 134 | + <!--integration test related properties --> |
| 135 | + <property name="client.mode" value="Dynamic"/> |
| 136 | + <property name="server.address_v4" value="127.0.0.1"/> |
| 137 | + <property name="server.address_v6" value="::1"/> |
| 138 | + <property name="server.bin" value="/usr/bin/memcached"/> |
| 139 | + <property name="server.port_number" value="11211"/> |
| 140 | + <property name="server.version" value="1.4.24"/> |
| 141 | + <property name="test.type" value="unit"/> |
| 142 | + |
127 | 143 | <!--this is the naming policy for artifacts we want pulled down-->
|
128 | 144 | <property name="ivy.artifact.retrieve.pattern"
|
129 | 145 | value="${name}/[conf]/[artifact]-[revision](-[classifier]).[ext]"/>
|
|
169 | 185 | <pathelement location="${build.test.classes}" />
|
170 | 186 | <path refid="compile.classpath" />
|
171 | 187 | </path>
|
| 188 | + |
| 189 | + <!-- Classpath for integration tests (superset of compile.classpath) --> |
| 190 | + <path id="it.classpath"> |
| 191 | + <pathelement location="${build.it.classes}" /> |
| 192 | + <path refid="compile.classpath" /> |
| 193 | + </path> |
172 | 194 | </target>
|
173 | 195 |
|
174 | 196 | <target name="ivy-probe-antlib" >
|
|
251 | 273 |
|
252 | 274 | <target name="test" depends="compile, compile-test"
|
253 | 275 | description="Run Spymemcached unit tests">
|
254 |
| - <echo>IPV4 address ${server.address_v4}</echo> |
255 |
| - <echo>IPV6 address ${server.address_v6}</echo> |
256 |
| - <echo>Port Number ${server.port_number}</echo> |
257 |
| - <echo>Test Type(unit|ci) ${test.type}</echo> |
258 | 276 | <delete dir="${junit.dir}"/>
|
259 | 277 | <mkdir dir="${junit.dir}/data"/>
|
260 | 278 | <junit fork="yes" timeout="60000" failureproperty="junit.failure">
|
|
265 | 283 | <formatter type="xml"/>
|
266 | 284 | </batchtest>
|
267 | 285 | <jvmarg value="-ea" />
|
268 |
| - <sysproperty key="server.address_v4" value="${server.address_v4}"/> |
269 |
| - <sysproperty key="server.address_v6" value="${server.address_v6}"/> |
270 |
| - <sysproperty key="server.port_number" value="${server.port_number}"/> |
271 |
| - <sysproperty key="test.type" value="${test.type}"/> |
272 | 286 | <formatter type="plain" usefile="false" />
|
273 | 287 | <classpath refid="test.classpath" />
|
274 | 288 | </junit>
|
|
281 | 295 | <fail if="junit.failure" message="Unit test(s) failed. See reports!"/>
|
282 | 296 | </target>
|
283 | 297 |
|
| 298 | + <target name="it" depends="compile, compile-it" |
| 299 | + description="Run Spymemcached integration tests"> |
| 300 | + <echo>Client mode(Dynamic|Static) ${client.mode}</echo> |
| 301 | + <echo>Server binary ${server.bin}</echo> |
| 302 | + <echo>Server version ${server.version}</echo> |
| 303 | + <echo>Test Type(unit|ci) ${test.type}</echo> |
| 304 | + <delete dir="${junit.dir}"/> |
| 305 | + <mkdir dir="${junit.dir}/data"/> |
| 306 | + <junit fork="yes" timeout="3600000" failureproperty="junit.failure"> |
| 307 | + <batchtest todir="${junit.dir}/data" fork="yes"> |
| 308 | + <fileset dir="${it.dir}"> |
| 309 | + <include name="**/${client.mode}ModeTestSuite.java"/> |
| 310 | + </fileset> |
| 311 | + <formatter type="xml"/> |
| 312 | + </batchtest> |
| 313 | + <jvmarg value="-ea" /> |
| 314 | + <sysproperty key="client.mode" value="${client.mode}"/> |
| 315 | + <sysproperty key="server.bin" value="${server.bin}"/> |
| 316 | + <sysproperty key="server.version" value="${server.version}"/> |
| 317 | + <sysproperty key="test.type" value="${test.type}"/> |
| 318 | + <formatter type="plain" usefile="false" /> |
| 319 | + <classpath refid="it.classpath" /> |
| 320 | + </junit> |
| 321 | + <mkdir dir="${junit.dir}/tmp"/> |
| 322 | + <junitreport todir="${junit.dir}/tmp"> |
| 323 | + <fileset dir="${junit.dir}/data"/> |
| 324 | + <report todir="${junit.dir}"/> |
| 325 | + </junitreport> |
| 326 | + <delete dir="${junit.dir}/tmp"/> |
| 327 | + <fail if="junit.failure" message="Integration test(s) failed. See reports!"/> |
| 328 | + </target> |
| 329 | + |
284 | 330 | <target name="junitreport">
|
285 | 331 | <mkdir dir="${junit.out.dir.html}"/>
|
286 | 332 | <junitreport todir="${junit.out.dir.html}">
|
|
309 | 355 | </javac>
|
310 | 356 | </target>
|
311 | 357 |
|
| 358 | + <target name="compile-it" depends="compile" |
| 359 | + description="Compile integration test classes"> |
| 360 | + <mkdir dir="${build.it.classes}" /> |
| 361 | + <javac |
| 362 | + encoding="${build.encoding}" |
| 363 | + srcdir="${it.dir}" |
| 364 | + includes="**/*.java" |
| 365 | + destdir="${build.it.classes}" |
| 366 | + debug="${javac.debug}" |
| 367 | + includeantruntime="false" |
| 368 | + target="1.6" |
| 369 | + source="1.6"> |
| 370 | + <classpath> |
| 371 | + <path refid="it.classpath"/> |
| 372 | + </classpath> |
| 373 | + </javac> |
| 374 | + </target> |
| 375 | + |
312 | 376 | <!-- =======================================
|
313 | 377 | Section: Documentation Generation
|
314 | 378 | ======================================= -->
|
|
323 | 387 | <include name="**/*.java" />
|
324 | 388 | <include name="**/*.html" />
|
325 | 389 | </srcfiles>
|
| 390 | + <srcfiles dir="${it.dir}"> |
| 391 | + <include name="**/*.java" /> |
| 392 | + <include name="**/*.html" /> |
| 393 | + </srcfiles> |
326 | 394 | <mapper type="merge" to="${build.javadoc}/index.html" />
|
327 | 395 | </uptodate>
|
328 | 396 | </target>
|
|
331 | 399 | depends="init,javadoc-uptodate,compile" >
|
332 | 400 | <mkdir dir="${build.javadoc}" />
|
333 | 401 | <mkdir dir="${build.javadoc.test}" />
|
| 402 | + <mkdir dir="${build.javadoc.it}" /> |
334 | 403 | <exec executable="date" outputproperty="year">
|
335 | 404 | <arg value="+%Y" />
|
336 | 405 | </exec>
|
|
366 | 435 | </packageset>
|
367 | 436 | <classpath refid="test.classpath" />
|
368 | 437 | </javadoc>
|
| 438 | + <javadoc |
| 439 | + packagenames="src" |
| 440 | + sourcepath="${it.dir}" |
| 441 | + destdir="${build.javadoc.it}" |
| 442 | + author="true" |
| 443 | + version="true" |
| 444 | + use="true" |
| 445 | + windowtitle="${name}-it ${version} API" |
| 446 | + doctitle="${name}-it ${version} API" |
| 447 | + bottom="Copyright &copy; 2006-2009 Dustin Sallings, 2009-2013 Couchbase, Inc."> |
| 448 | + <packageset dir="${it.dir}"> |
| 449 | + <include name="**" /> |
| 450 | + </packageset> |
| 451 | + <classpath refid="it.classpath" /> |
| 452 | + </javadoc> |
369 | 453 | </target>
|
370 | 454 |
|
371 | 455 | <target name="docsjar" depends="docs"
|
|
375 | 459 | basedir="${build.javadoc}" />
|
376 | 460 | <zip destfile="${build.dir}/javadocs/${name}-test-${version}.jar"
|
377 | 461 | basedir="${build.javadoc.test}" />
|
| 462 | + <zip destfile="${build.dir}/javadocs/${name}-it-${version}.jar" |
| 463 | + basedir="${build.javadoc.it}" /> |
378 | 464 | </target>
|
379 | 465 |
|
380 | 466 | <!-- =======================================
|
|
442 | 528 | <jar jarfile="${build.dir}/sources/${name}-test-${version}.jar">
|
443 | 529 | <fileset dir="${test.dir}" />
|
444 | 530 | </jar>
|
| 531 | + <jar jarfile="${build.dir}/sources/${name}-it-${version}.jar"> |
| 532 | + <fileset dir="${it.dir}" /> |
| 533 | + </jar> |
445 | 534 | </target>
|
446 | 535 |
|
447 |
| - <target name="jar" depends="compile,compile-test" description="Creates a jar file for the library"> |
| 536 | + <target name="jar" depends="compile,compile-test,compile-it" description="Creates a jar file for the library"> |
448 | 537 | <mkdir dir="${build.dir}/jars" />
|
449 | 538 | <jar jarfile="${build.dir}/jars/${name}-${version}.jar" basedir="${build.classes}">
|
450 | 539 | <manifest>
|
|
456 | 545 | </manifest>
|
457 | 546 | </jar>
|
458 | 547 | <jar jarfile="${build.dir}/jars/${name}-test-${version}.jar" basedir="${build.test.classes}"/>
|
| 548 | + <jar jarfile="${build.dir}/jars/${name}-it-${version}.jar" basedir="${build.it.classes}"/> |
459 | 549 | </target>
|
460 | 550 |
|
461 | 551 | <target name="package" depends="jar,srcjar,docsjar"
|
|
497 | 587 | <!-- prepare for mvn tasks. -->
|
498 | 588 | <property name="spymemcached.pom" value="${mvn.build.dir}/poms/spymemcached-${version}.pom" />
|
499 | 589 | <property name="spymemcached-test.pom" value="${mvn.build.dir}/poms/spymemcached-test-${version}.pom" />
|
| 590 | + <property name="spymemcached-it.pom" value="${mvn.build.dir}/poms/spymemcached-it-${version}.pom" /> |
500 | 591 |
|
501 | 592 | <!-- Register mvn tasks -->
|
502 | 593 | <path id="mvn-ant-task.classpath" path="${mvn.jar}" />
|
|
530 | 621 | <dependency group="com.codahale.metrics" artifact="metrics-core" version="${codahale.metrics.version}" />
|
531 | 622 | </ivy:makepom>
|
532 | 623 |
|
| 624 | + <ivy:makepom ivyfile="ivy/spymemcached-it.xml" |
| 625 | + pomfile="${spymemcached-it.pom}" |
| 626 | + templatefile="ivy/pom.template.xml" |
| 627 | + settingsRef="${name}.ivy.settings"> |
| 628 | + <mapping conf="default" scope="compile" /> |
| 629 | + <mapping conf="runtime" scope="runtime" /> |
| 630 | + <dependency group="log4j" artifact="log4j" version="${log4j.version}" optional="true" /> |
| 631 | + <dependency group="org.slf4j" artifact="slf4j-api" version="${slf4j.version}" optional="true" /> |
| 632 | + <dependency group="org.springframework" artifact="spring-beans" version="${spring-beans.version}" optional="true" /> |
| 633 | + <dependency group="com.codahale.metrics" artifact="metrics-core" version="${codahale.metrics.version}" /> |
| 634 | + </ivy:makepom> |
| 635 | + |
533 | 636 | <!-- Change the version in the pom file to reflect our claimed version. -->
|
534 | 637 | <replaceregexp>
|
535 | 638 | <regexp pattern="<version>.*</version>" />
|
|
559 | 662 | <attach file="${build.dir}/javadocs/${name}-test-${version}.jar"
|
560 | 663 | classifier="javadoc" />
|
561 | 664 | </artifact:install>
|
| 665 | + <artifact:pom id="spymemcached-it" file="${spymemcached-it.pom}" /> |
| 666 | + <artifact:install file="${build.dir}/jars/${name}-it-${version}.jar"> |
| 667 | + <pom refid="${name}-it" /> |
| 668 | + <attach file="${build.dir}/sources/${name}-it-${version}.jar" |
| 669 | + classifier="sources" /> |
| 670 | + <attach file="${build.dir}/javadocs/${name}-it-${version}.jar" |
| 671 | + classifier="javadoc" /> |
| 672 | + </artifact:install> |
562 | 673 | </target>
|
563 | 674 |
|
564 | 675 | <target name="mvn-deploy" depends="mvn-install" description="deploy snapshot version to maven snapshot repository">
|
|
634 | 745 | <arg value="-Dfile=${build.dir}/javadocs/${name}-test-${version}.jar" />
|
635 | 746 | <arg value="-Dclassifier=javadoc" />
|
636 | 747 | <arg value="-Pgpg" />
|
| 748 | + </artifact:mvn> |
| 749 | + |
| 750 | + <!-- sign and deploy the main artifact --> |
| 751 | + <artifact:mvn> |
| 752 | + <arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" /> |
| 753 | + <arg value="-Durl=${maven-staging-repository-url}" /> |
| 754 | + <arg value="-DrepositoryId=${maven-staging-repository-id}" /> |
| 755 | + <arg value="-DpomFile=${spymemcached-it.pom}" /> |
| 756 | + <arg value="-Dfile=${build.dir}/jars/${name}-it-${version}.jar" /> |
| 757 | + <arg value="-Pgpg" /> |
| 758 | + </artifact:mvn> |
| 759 | + |
| 760 | + <!-- sign and deploy the sources artifact --> |
| 761 | + <artifact:mvn> |
| 762 | + <arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" /> |
| 763 | + <arg value="-Durl=${maven-staging-repository-url}" /> |
| 764 | + <arg value="-DrepositoryId=${maven-staging-repository-id}" /> |
| 765 | + <arg value="-DpomFile=${spymemcached-it.pom}" /> |
| 766 | + <arg value="-Dfile=${build.dir}/sources/${name}-it-${version}.jar" /> |
| 767 | + <arg value="-Dclassifier=sources" /> |
| 768 | + <arg value="-Pgpg" /> |
| 769 | + </artifact:mvn> |
| 770 | + |
| 771 | + <!-- sign and deploy the javadoc artifact --> |
| 772 | + <artifact:mvn> |
| 773 | + <arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" /> |
| 774 | + <arg value="-Durl=${maven-staging-repository-url}" /> |
| 775 | + <arg value="-DrepositoryId=${maven-staging-repository-id}" /> |
| 776 | + <arg value="-DpomFile=${spymemcached-it.pom}" /> |
| 777 | + <arg value="-Dfile=${build.dir}/javadocs/${name}-it-${version}.jar" /> |
| 778 | + <arg value="-Dclassifier=javadoc" /> |
| 779 | + <arg value="-Pgpg" /> |
637 | 780 | </artifact:mvn>
|
638 | 781 | </target>
|
639 | 782 |
|
|
662 | 805 | </auxClasspath>
|
663 | 806 | <sourcePath path="${src.dir}" />
|
664 | 807 | <sourcePath path="${test.dir}" />
|
| 808 | + <sourcePath path="${it.dir}" /> |
665 | 809 | <class location="${build.dir}/${dest.jar}" />
|
666 | 810 | </findbugs>
|
667 | 811 | <xslt style="${findbugs.home}/src/xsl/default.xsl"
|
|
689 | 833 | <classpath>
|
690 | 834 | <source path="${src.dir}" />
|
691 | 835 | <source path="${test.dir}" />
|
| 836 | + <source path="${it.dir}" /> |
692 | 837 | <output path="${build.dir}/eclipse-build" />
|
693 | 838 | <library pathref="${name}.common.classpath" />
|
694 | 839 | </classpath>
|
|
0 commit comments