Skip to content

Commit 744d8f2

Browse files
committed
Add compatibility integration test
1 parent 3e7c27c commit 744d8f2

File tree

4 files changed

+181
-0
lines changed

4 files changed

+181
-0
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
<!--
2+
#%L
3+
ImageJ software for multidimensional image processing and analysis.
4+
%%
5+
Copyright (C) 2012 - 2016 Board of Regents of the University of
6+
Wisconsin-Madison, Broad Institute of MIT and Harvard, and Max Planck
7+
Institute of Molecular Cell Biology and Genetics.
8+
%%
9+
Redistribution and use in source and binary forms, with or without
10+
modification, are permitted provided that the following conditions are met:
11+
12+
1. Redistributions of source code must retain the above copyright notice,
13+
this list of conditions and the following disclaimer.
14+
2. Redistributions in binary form must reproduce the above copyright notice,
15+
this list of conditions and the following disclaimer in the documentation
16+
and/or other materials provided with the distribution.
17+
18+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
22+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26+
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28+
POSSIBILITY OF SUCH DAMAGE.
29+
#L%
30+
-->
31+
32+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
33+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
34+
<modelVersion>4.0.0</modelVersion>
35+
36+
<groupId>org.apache.maven.plugin.my.unit</groupId>
37+
<artifactId>example-artifact</artifactId>
38+
<version>1.0.0-SNAPSHOT</version>
39+
<packaging>jar</packaging>
40+
<name>An example artifact to test backwards compatibility with imagej-based properties</name>
41+
42+
<properties>
43+
<imagej.app.directory>${project.basedir}/target/ImageJ.app/</imagej.app.directory>
44+
<imagej.app.subdirectory>plugins</imagej.app.subdirectory>
45+
<imagej.deleteOtherVersions>older</imagej.deleteOtherVersions>
46+
</properties>
47+
48+
<build>
49+
<plugins>
50+
<plugin>
51+
<groupId>org.scijava</groupId>
52+
<artifactId>scijava-maven-plugin</artifactId>
53+
<version>${scijava-maven.version}</version>
54+
<executions>
55+
<execution>
56+
<id>copy-jars</id>
57+
<phase>install</phase>
58+
<goals>
59+
<goal>copy-jars</goal>
60+
</goals>
61+
</execution>
62+
<execution>
63+
<id>install-artifact</id>
64+
<phase>install</phase>
65+
<goals>
66+
<goal>install-artifact</goal>
67+
</goals>
68+
<configuration>
69+
<imagejDirectory>${project.basedir}/target/Other.app/</imagejDirectory>
70+
<imagejSubdirectory>plugins</imagejSubdirectory>
71+
<imagejDeleteOtherVersionsPolicy>older</imagejDeleteOtherVersionsPolicy>
72+
<artifact>${project.groupId}:${project.artifactId}:${project.version}</artifact>
73+
</configuration>
74+
</execution>
75+
</executions>
76+
</plugin>
77+
</plugins>
78+
</build>
79+
</project>
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* #%L
3+
* ImageJ software for multidimensional image processing and analysis.
4+
* %%
5+
* Copyright (C) 2012 - 2016 Board of Regents of the University of
6+
* Wisconsin-Madison, Broad Institute of MIT and Harvard, and Max Planck
7+
* Institute of Molecular Cell Biology and Genetics.
8+
* %%
9+
* Redistribution and use in source and binary forms, with or without
10+
* modification, are permitted provided that the following conditions are met:
11+
*
12+
* 1. Redistributions of source code must retain the above copyright notice,
13+
* this list of conditions and the following disclaimer.
14+
* 2. Redistributions in binary form must reproduce the above copyright notice,
15+
* this list of conditions and the following disclaimer in the documentation
16+
* and/or other materials provided with the distribution.
17+
*
18+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
22+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28+
* POSSIBILITY OF SUCH DAMAGE.
29+
* #L%
30+
*/
31+
source(new File(basedir, "../../../src/it/lib.bsh").getPath());
32+
33+
// copy-jars
34+
if (!plugins.exists()) plugins.mkdirs();
35+
touchFile(new File(plugins, "example-artifact-1.1.0.jar"));
36+
37+
// install-artifact
38+
other = new File(basedir, "target/Other.app/");
39+
if (!other.exists()) other.mkdirs();
40+
41+
otherPlugins = new File(other, "plugins/");
42+
if (!otherPlugins.exists()) otherPlugins.mkdirs();
43+
44+
touchFile(new File(otherPlugins, "example-artifact-2.1.0.jar"));

src/it/imagej-property-compatibility/src/main/resources/empty.txt

Whitespace-only changes.
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/*
2+
* #%L
3+
* ImageJ software for multidimensional image processing and analysis.
4+
* %%
5+
* Copyright (C) 2012 - 2016 Board of Regents of the University of
6+
* Wisconsin-Madison, Broad Institute of MIT and Harvard, and Max Planck
7+
* Institute of Molecular Cell Biology and Genetics.
8+
* %%
9+
* Redistribution and use in source and binary forms, with or without
10+
* modification, are permitted provided that the following conditions are met:
11+
*
12+
* 1. Redistributions of source code must retain the above copyright notice,
13+
* this list of conditions and the following disclaimer.
14+
* 2. Redistributions in binary form must reproduce the above copyright notice,
15+
* this list of conditions and the following disclaimer in the documentation
16+
* and/or other materials provided with the distribution.
17+
*
18+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
22+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28+
* POSSIBILITY OF SUCH DAMAGE.
29+
* #L%
30+
*/
31+
source(new File(basedir, "../../../src/it/lib.bsh").getPath());
32+
33+
// copy-jars
34+
newer = new File(plugins, "example-artifact-1.1.0.jar");
35+
assertTrue("Should exist: " + newer, newer.exists());
36+
37+
// install-artifact
38+
other = new File(basedir, "target/Other.app/");
39+
assertTrue("Should exist: "+ other, other.exists());
40+
41+
otherPlugins = new File(other, "plugins/");
42+
assertTrue("Should exist: "+ otherPlugins, otherPlugins.exists());
43+
44+
newer = new File(otherPlugins, "example-artifact-2.1.0.jar");
45+
assertTrue("Should exist: " + newer, newer.exists());
46+
toInstall = new File(otherPlugins, "example-artifact-1.0.0-SNAPSHOT.jar");
47+
assertTrue("Should not exist: " + newer, !toInstall.exists());
48+
49+
buildLog = readFile(new File(basedir, "build.log"));
50+
assertTrue("Found other version that is incompatible':\n" + buildLog,
51+
buildLog.contains("Found other version that is incompatible"));
52+
53+
assertTrue("Log should contain warning about legacy property 'imagej.app.directory'",
54+
buildLog.contains("Property 'imagej.app.directory' is deprecated. Use 'scijava.app.directory' instead"));
55+
assertTrue("Log should contain warning about legacy property 'imagej.app.subdirectory'",
56+
buildLog.contains("Property 'imagej.app.subdirectory' is deprecated. Use 'scijava.app.subdirectory' instead"));
57+
assertTrue("Log should contain warning about legacy property 'imagej.deleteOtherVersions'",
58+
buildLog.contains("Property 'imagej.deleteOtherVersions' is deprecated. Use 'scijava.deleteOtherVersions' instead"));

0 commit comments

Comments
 (0)