Skip to content

Commit aa2c600

Browse files
authored
Merge pull request #94 from trellis-ldp/trellis-93
Move OSGi tests into their own module
2 parents 651bd25 + 1048059 commit aa2c600

File tree

4 files changed

+142
-107
lines changed

4 files changed

+142
-107
lines changed

settings.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ include ':trellis-webac'
2020
include ':trellis-app'
2121

2222
include ':trellis-karaf'
23+
include ':trellis-osgi'
2324
include ':trellis-test'
2425

2526
project(':trellis-api').projectDir = "$rootDir/trellis-api" as File
@@ -43,4 +44,5 @@ project(':trellis-webac').projectDir = "$rootDir/trellis-webac" as File
4344
project(':trellis-app').projectDir = "$rootDir/trellis-app" as File
4445

4546
project(':trellis-karaf').projectDir = "$rootDir/trellis-karaf" as File
47+
project(':trellis-osgi').projectDir = "$rootDir/trellis-osgi" as File
4648
project(':trellis-test').projectDir = "$rootDir/trellis-test" as File

trellis-osgi/build.gradle

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
buildscript {
2+
repositories {
3+
jcenter()
4+
}
5+
}
6+
7+
description = """Integration tests for Trellis components"""
8+
9+
def randomPort() {
10+
try {
11+
ServerSocket server = new ServerSocket()
12+
server.setReuseAddress(true)
13+
server.bind(new InetSocketAddress(0))
14+
int port = server.getLocalPort()
15+
server.close()
16+
return port
17+
} catch (IOException e) {
18+
throw new IOException('Failed to find random free port', e)
19+
}
20+
}
21+
22+
repositories {
23+
jcenter()
24+
mavenLocal()
25+
mavenCentral()
26+
}
27+
28+
configurations {
29+
karafDistro {
30+
description = 'Configuration used to isolate the dependency on the Karaf distro'
31+
transitive = false
32+
}
33+
}
34+
35+
sonarqube {
36+
skipProject = true
37+
}
38+
39+
uploadArchives {
40+
// This should be enabled once this module is more than just a test case
41+
enabled = false
42+
}
43+
44+
dependencies {
45+
implementation project(':trellis-api')
46+
implementation project(':trellis-http')
47+
implementation project(':trellis-io-jena')
48+
implementation project(':trellis-namespaces')
49+
implementation project(':trellis-vocabulary')
50+
51+
testCompile project(':trellis-agent')
52+
testCompile project(':trellis-amqp')
53+
testCompile project(':trellis-audit')
54+
testCompile project(':trellis-constraint-rules')
55+
testCompile project(':trellis-event-serialization')
56+
testCompile project(':trellis-file')
57+
testCompile project(':trellis-id')
58+
testCompile project(':trellis-jms')
59+
testCompile project(':trellis-kafka')
60+
testCompile project(':trellis-triplestore')
61+
testCompile project(':trellis-webac')
62+
testCompile project(':trellis-karaf')
63+
64+
testCompile group: 'ch.qos.logback', name: 'logback-classic', version: logbackVersion
65+
testCompile group: 'org.apache.jena', name: 'jena-osgi', version: jenaVersion
66+
testCompile group: 'org.apache.karaf.features', name: 'standard', version: karafVersion
67+
testCompile group: 'org.apache.karaf.features', name: 'org.apache.karaf.features.core', version: karafVersion
68+
testCompile group: 'org.ops4j.pax.exam', name: 'pax-exam', version: paxExamVersion
69+
testCompile group: 'org.ops4j.pax.exam', name: 'pax-exam-junit4', version: paxExamVersion
70+
testCompile group: 'org.ops4j.pax.exam', name: 'pax-exam-container-karaf', version: paxExamVersion
71+
testCompile group: 'org.osgi', name: 'org.osgi.core', version: osgiVersion
72+
testCompile group: 'org.osgi', name: 'org.osgi.compendium', version: osgiCompendiumVersion
73+
testCompile group: 'org.mockito', name: 'mockito-core', version: mockitoVersion
74+
testCompile group: 'org.glassfish.hk2.external', name: 'javax.inject', version: javaxInjectVersion
75+
76+
testCompile group: 'org.apache.karaf.features', name: 'standard', version: karafVersion, classifier:'features', ext: 'xml'
77+
78+
karafDistro group: 'org.apache.karaf', name: 'apache-karaf', version: karafVersion, ext: 'zip'
79+
}
80+
81+
82+
task generateDependsFile {
83+
// This is useful for the org.ops4j.pax.exam.CoreOptions.maven() stuff
84+
File outputFileDir = project.file( "${project.buildDir}/classes/java/test/META-INF/maven/" )
85+
File outputFile = new File( outputFileDir, 'dependencies.properties' )
86+
outputs.file outputFile
87+
88+
doFirst {
89+
outputFileDir.mkdirs()
90+
Properties properties = new Properties();
91+
92+
// first we add our GAV info
93+
properties.setProperty( "groupId", "${project.group}" );
94+
properties.setProperty( "artifactId", project.name );
95+
properties.setProperty( "version", "${project.version}" );
96+
properties.setProperty( "${project.group}/${project.name}/version", "${project.version}" );
97+
98+
// then for all our deps
99+
project.configurations.testRuntime.resolvedConfiguration.resolvedArtifacts.each {
100+
final String keyBase = it.moduleVersion.id.group + '/' + it.moduleVersion.id.name;
101+
properties.setProperty( "${keyBase}/scope", "compile" )
102+
properties.setProperty( "${keyBase}/type", it.extension )
103+
properties.setProperty( "${keyBase}/version", it.moduleVersion.id.version )
104+
}
105+
106+
FileOutputStream outputStream = new FileOutputStream( outputFile );
107+
try {
108+
properties.store( outputStream, "Generated from Gradle for PaxExam testing" )
109+
}
110+
finally {
111+
outputStream.close()
112+
}
113+
}
114+
}
115+
116+
test {
117+
systemProperty 'karaf.version', karafVersion
118+
systemProperty 'karaf.commonsIo.version', commonsIoVersion
119+
systemProperty 'jena.version', jenaVersion
120+
121+
systemProperty 'karaf.ssh.port', randomPort()
122+
systemProperty 'karaf.rmiServer.port', randomPort()
123+
systemProperty 'karaf.rmiRegistry.port', randomPort()
124+
125+
// TODO - re-enable testing for JDK 10 once karaf support catches up
126+
enabled = ! JavaVersion.current().isJava10Compatible()
127+
128+
jacoco {
129+
enabled = true
130+
}
131+
}
132+
133+
tasks.test.dependsOn tasks.generateDependsFile
134+
135+
rootProject.childProjects.findAll { n, p -> p != project }.each { n, p ->
136+
tasks.test.dependsOn p.tasks.install
137+
}
138+

trellis-test/src/test/java/org/trellisldp/test/OSGiTest.java renamed to trellis-osgi/src/test/java/org/trellisldp/osgi/OSGiTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* See the License for the specific language governing permissions and
1212
* limitations under the License.
1313
*/
14-
package org.trellisldp.test;
14+
package org.trellisldp.osgi;
1515

1616
import static org.junit.Assert.assertFalse;
1717
import static org.junit.Assert.assertTrue;

trellis-test/build.gradle

Lines changed: 1 addition & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,11 @@
1-
buildscript {
2-
repositories {
3-
jcenter()
4-
}
5-
}
6-
7-
description = """Integration tests for Trellis components"""
8-
9-
def randomPort() {
10-
try {
11-
ServerSocket server = new ServerSocket()
12-
server.setReuseAddress(true)
13-
server.bind(new InetSocketAddress(0))
14-
int port = server.getLocalPort()
15-
server.close()
16-
return port
17-
} catch (IOException e) {
18-
throw new IOException('Failed to find random free port', e)
19-
}
20-
}
1+
description = """Common tests for Trellis components"""
212

223
repositories {
234
jcenter()
245
mavenLocal()
256
mavenCentral()
267
}
278

28-
configurations {
29-
karafDistro {
30-
description = 'Configuration used to isolate the dependency on the Karaf distro'
31-
transitive = false
32-
}
33-
}
34-
359
sonarqube {
3610
skipProject = true
3711
}
@@ -51,94 +25,15 @@ dependencies {
5125
implementation project(':trellis-api')
5226
implementation project(':trellis-http')
5327
implementation project(':trellis-io-jena')
54-
implementation project(':trellis-namespaces')
5528
implementation project(':trellis-vocabulary')
5629

57-
testCompile project(':trellis-agent')
58-
testCompile project(':trellis-amqp')
59-
testCompile project(':trellis-audit')
60-
testCompile project(':trellis-constraint-rules')
61-
testCompile project(':trellis-event-serialization')
62-
testCompile project(':trellis-file')
63-
testCompile project(':trellis-id')
64-
testCompile project(':trellis-jms')
65-
testCompile project(':trellis-kafka')
66-
testCompile project(':trellis-triplestore')
67-
testCompile project(':trellis-webac')
68-
testCompile project(':trellis-karaf')
69-
7030
testCompile group: 'ch.qos.logback', name: 'logback-classic', version: logbackVersion
71-
testCompile group: 'org.apache.jena', name: 'jena-osgi', version: jenaVersion
72-
testCompile group: 'org.apache.karaf.features', name: 'standard', version: karafVersion
73-
testCompile group: 'org.apache.karaf.features', name: 'org.apache.karaf.features.core', version: karafVersion
74-
testCompile group: 'org.ops4j.pax.exam', name: 'pax-exam', version: paxExamVersion
75-
testCompile group: 'org.ops4j.pax.exam', name: 'pax-exam-junit4', version: paxExamVersion
76-
testCompile group: 'org.ops4j.pax.exam', name: 'pax-exam-container-karaf', version: paxExamVersion
77-
testCompile group: 'org.osgi', name: 'org.osgi.core', version: osgiVersion
78-
testCompile group: 'org.osgi', name: 'org.osgi.compendium', version: osgiCompendiumVersion
7931
testCompile group: 'org.mockito', name: 'mockito-core', version: mockitoVersion
80-
testCompile group: 'org.glassfish.hk2.external', name: 'javax.inject', version: javaxInjectVersion
81-
82-
testCompile group: 'org.apache.karaf.features', name: 'standard', version: karafVersion, classifier:'features', ext: 'xml'
83-
84-
karafDistro group: 'org.apache.karaf', name: 'apache-karaf', version: karafVersion, ext: 'zip'
85-
}
86-
87-
88-
task generateDependsFile {
89-
// This is useful for the org.ops4j.pax.exam.CoreOptions.maven() stuff
90-
File outputFileDir = project.file( "${project.buildDir}/classes/java/test/META-INF/maven/" )
91-
File outputFile = new File( outputFileDir, 'dependencies.properties' )
92-
outputs.file outputFile
93-
94-
doFirst {
95-
outputFileDir.mkdirs()
96-
Properties properties = new Properties();
97-
98-
// first we add our GAV info
99-
properties.setProperty( "groupId", "${project.group}" );
100-
properties.setProperty( "artifactId", project.name );
101-
properties.setProperty( "version", "${project.version}" );
102-
properties.setProperty( "${project.group}/${project.name}/version", "${project.version}" );
103-
104-
// then for all our deps
105-
project.configurations.testRuntime.resolvedConfiguration.resolvedArtifacts.each {
106-
final String keyBase = it.moduleVersion.id.group + '/' + it.moduleVersion.id.name;
107-
properties.setProperty( "${keyBase}/scope", "compile" )
108-
properties.setProperty( "${keyBase}/type", it.extension )
109-
properties.setProperty( "${keyBase}/version", it.moduleVersion.id.version )
110-
}
111-
112-
FileOutputStream outputStream = new FileOutputStream( outputFile );
113-
try {
114-
properties.store( outputStream, "Generated from Gradle for PaxExam testing" )
115-
}
116-
finally {
117-
outputStream.close()
118-
}
119-
}
12032
}
12133

12234
test {
123-
systemProperty 'karaf.version', karafVersion
124-
systemProperty 'karaf.commonsIo.version', commonsIoVersion
125-
systemProperty 'jena.version', jenaVersion
126-
127-
systemProperty 'karaf.ssh.port', randomPort()
128-
systemProperty 'karaf.rmiServer.port', randomPort()
129-
systemProperty 'karaf.rmiRegistry.port', randomPort()
130-
131-
// TODO - re-enable testing for JDK 10 once karaf support catches up
132-
enabled = ! JavaVersion.current().isJava10Compatible()
133-
13435
jacoco {
13536
enabled = true
13637
}
13738
}
13839

139-
tasks.test.dependsOn tasks.generateDependsFile
140-
141-
rootProject.childProjects.findAll { n, p -> p != project }.each { n, p ->
142-
tasks.test.dependsOn p.tasks.install
143-
}
144-

0 commit comments

Comments
 (0)