java: update source files processing, maven stuff
[platform/upstream/opencv.git] / platforms / maven / opencv-it / src / test / java / org / opencv / osgi / DeployOpenCVTest.java
1 package org.opencv.osgi;
2
3 import java.io.File;
4 import javax.inject.Inject;
5 import junit.framework.TestCase;
6 import org.apache.karaf.log.core.LogService;
7 import org.junit.Test;
8 import org.junit.runner.RunWith;
9 import org.ops4j.pax.exam.Configuration;
10 import static org.ops4j.pax.exam.CoreOptions.maven;
11 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
12 import org.ops4j.pax.exam.Option;
13 import org.ops4j.pax.exam.junit.PaxExam;
14 import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
15 import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
16 import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.logLevel;
17 import org.ops4j.pax.exam.karaf.options.LogLevelOption;
18 import org.ops4j.pax.exam.options.MavenArtifactUrlReference;
19 import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
20 import org.ops4j.pax.exam.spi.reactors.PerClass;
21 import org.ops4j.pax.logging.spi.PaxLoggingEvent;
22 import org.osgi.framework.BundleContext;
23
24 /**
25  *
26  * @author Kerry Billingham <contact@AvionicEngineers.com>
27  */
28 @ExamReactorStrategy(PerClass.class)
29 @RunWith(PaxExam.class)
30 public class DeployOpenCVTest {
31
32     /*
33     The expected string in Karaf logs when the bundle has deployed and native library loaded.
34     */
35     private static final String OPENCV_SUCCESSFUL_LOAD_STRING = "Successfully loaded OpenCV native library.";
36
37     private static final String KARAF_VERSION = "4.0.6";
38
39     @Inject
40     protected BundleContext bundleContext;
41
42     @Inject
43     private LogService logService;
44
45     /*
46     This service is required to ensure that the native library has been loaded
47     before any test is carried out.
48     */
49     @Inject
50     private OpenCVInterface openCVInterface;
51
52     @Configuration
53     public static Option[] configuration() throws Exception {
54         MavenArtifactUrlReference karafUrl = maven()
55                 .groupId("org.apache.karaf")
56                 .artifactId("apache-karaf")
57                 .version(KARAF_VERSION)
58                 .type("tar.gz");
59         return new Option[]{
60             karafDistributionConfiguration()
61             .frameworkUrl(karafUrl)
62             .unpackDirectory(new File("../../../build/target/exam"))
63             .useDeployFolder(false),
64             keepRuntimeFolder(),
65             mavenBundle()
66             .groupId("org.opencv")
67             .artifactId("opencv")
68             .version("3.3.0"),
69             logLevel(LogLevelOption.LogLevel.INFO)
70         };
71     }
72
73     /**
74      * Tests that the OpenCV bundle has been successfully deployed and that the
75      * native library has been loaded.
76      */
77     @Test
78     public void testOpenCVNativeLibraryLoadSuccess() {
79
80         Iterable<PaxLoggingEvent> loggingEvents = logService.getEvents();
81         boolean loadSuccessful = logsContainsMessage(loggingEvents, OPENCV_SUCCESSFUL_LOAD_STRING);
82
83         TestCase.assertTrue("Could not determine if OpenCV library successfully loaded from the logs.", loadSuccessful);
84
85     }
86
87     private boolean logsContainsMessage(Iterable<PaxLoggingEvent> logEnumeration, final String logMessageString) {
88         boolean contains = false;
89         for (PaxLoggingEvent logEntry : logEnumeration) {
90             if (logEntry.getMessage().contains(logMessageString)) {
91                 contains = true;
92                 break;
93             }
94         }
95         return contains;
96     }
97 }