Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit a555c67

Browse filesBrowse files
tonitgsmet
authored andcommitted
HV-1429 Adds new tests installing the Karaf features on-demand
This commit adds a new Pax Exam based test installing both karaf features provided by this project on a vanilla karaf. It highlights the issue found by #803 but should be extended whenever a new feature is being added to the repo.
1 parent dd81f51 commit a555c67
Copy full SHA for a555c67

File tree

Expand file treeCollapse file tree

2 files changed

+120
-0
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+120
-0
lines changed

‎osgi/integrationtest/pom.xml

Copy file name to clipboardExpand all lines: osgi/integrationtest/pom.xml
+6Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,12 @@
8585
</exclusion>
8686
</exclusions>
8787
</dependency>
88+
<dependency>
89+
<groupId>org.apache.karaf.features</groupId>
90+
<artifactId>org.apache.karaf.features.core</artifactId>
91+
<version>${apache.karaf.version}</version>
92+
<scope>test</scope>
93+
</dependency>
8894
<dependency>
8995
<groupId>org.ops4j.pax.exam</groupId>
9096
<artifactId>pax-exam-junit4</artifactId>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
/*
2+
* Hibernate Validator, declare and validate application constraints
3+
*
4+
* License: Apache License, Version 2.0
5+
* See the license.txt file in the root directory or <http://www.apache.org/licenses/LICENSE-2.0>.
6+
*/
7+
package org.hibernate.validator.osgi.integrationtest;
8+
9+
import java.io.File;
10+
import java.net.URI;
11+
import java.util.Locale;
12+
import javax.inject.Inject;
13+
import org.apache.karaf.features.Feature;
14+
import org.apache.karaf.features.FeaturesService;
15+
import org.junit.BeforeClass;
16+
import org.junit.Test;
17+
import org.junit.runner.RunWith;
18+
import org.ops4j.pax.exam.Configuration;
19+
import org.ops4j.pax.exam.Option;
20+
import org.ops4j.pax.exam.junit.PaxExam;
21+
import org.ops4j.pax.exam.karaf.options.LogLevelOption;
22+
import org.ops4j.pax.exam.options.MavenArtifactUrlReference;
23+
import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
24+
import org.ops4j.pax.exam.spi.reactors.PerClass;
25+
26+
import static org.junit.Assert.assertTrue;
27+
import static org.ops4j.pax.exam.CoreOptions.maven;
28+
import static org.ops4j.pax.exam.CoreOptions.options;
29+
import static org.ops4j.pax.exam.CoreOptions.systemProperty;
30+
import static org.ops4j.pax.exam.CoreOptions.when;
31+
import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.configureConsole;
32+
import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.debugConfiguration;
33+
import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFilePut;
34+
import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
35+
import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
36+
import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.logLevel;
37+
38+
/**
39+
* Integration test for Bean Validation and Hibernate Validator under OSGi.
40+
* <p>
41+
* This test makes sure that the karaf features provided by this project are installable.
42+
*
43+
* @author Toni Menzel (toni@rebaze.com)
44+
*/
45+
@RunWith(PaxExam.class)
46+
@ExamReactorStrategy(PerClass.class)
47+
public class KarafFeaturesAreInstallableTest {
48+
49+
@Inject
50+
protected FeaturesService featuresService;
51+
52+
private static final boolean DEBUG = false;
53+
54+
@Configuration
55+
public Option[] config() {
56+
MavenArtifactUrlReference hibernateValidatorFeature = maven()
57+
.groupId( "org.hibernate" )
58+
.artifactId( "hibernate-validator-osgi-karaf-features" )
59+
.classifier( "features" )
60+
.type( "xml" )
61+
.versionAsInProject();
62+
63+
return options(
64+
when( DEBUG ).useOptions( debugConfiguration( "5005", true ) ),
65+
karafDistributionConfiguration()
66+
.frameworkUrl(
67+
maven()
68+
.groupId( "org.apache.karaf" )
69+
.artifactId( "apache-karaf" )
70+
.type( "tar.gz" )
71+
.versionAsInProject()
72+
)
73+
.unpackDirectory( new File( "target/exam" ) )
74+
.useDeployFolder( false ),
75+
configureConsole()
76+
.ignoreLocalConsole()
77+
.ignoreRemoteShell(),
78+
when( DEBUG ).useOptions( keepRuntimeFolder() ),
79+
logLevel( LogLevelOption.LogLevel.INFO ),
80+
// avoiding additional boot features; specifically "enterprise" which already comes with a HV feature
81+
// "system" is the absolute minimum, but enough for our purposes
82+
editConfigurationFilePut(
83+
"etc/org.apache.karaf.features.cfg",
84+
"featuresBoot",
85+
"system"
86+
),
87+
systemProperty( "validatorRepositoryUrl" ).value( hibernateValidatorFeature.getURL() )
88+
);
89+
}
90+
91+
@BeforeClass
92+
public static void setLocaleToEnglish() {
93+
Locale.setDefault( Locale.ENGLISH );
94+
}
95+
96+
@Test
97+
public void canInstallFeatureHibernateValidator() throws Exception {
98+
featuresService.addRepository( new URI( System.getProperty( "validatorRepositoryUrl" ) ) );
99+
canInstallFeature( "hibernate-validator" );
100+
}
101+
102+
@Test
103+
public void canInstallFeatureHibernateValidatorParanamer() throws Exception {
104+
featuresService.addRepository( new URI( System.getProperty( "validatorRepositoryUrl" ) ) );
105+
canInstallFeature( "hibernate-validator-paranamer" );
106+
}
107+
108+
public void canInstallFeature(String featureName) throws Exception {
109+
Feature feature = featuresService.getFeature( featureName );
110+
assertTrue( featureName + " feature is not available from features list", feature != null );
111+
featuresService.installFeature( featureName );
112+
assertTrue( featureName + " feature isn't installed, though available from features list", featuresService.isInstalled( feature ) );
113+
}
114+
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.