Merge "Fixed RESTCONF integration, added IT skeleton"
[controller.git] / opendaylight / md-sal / test / sal-rest-connector-it / src / test / java / org / opendaylight / controller / test / restconf / it / ServiceProviderController.java
1 package org.opendaylight.controller.test.restconf.it;
2
3 import static org.junit.Assert.*;
4 import static org.ops4j.pax.exam.CoreOptions.junitBundles;
5 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
6 import static org.ops4j.pax.exam.CoreOptions.options;
7 import static org.ops4j.pax.exam.CoreOptions.systemPackages;
8 import static org.ops4j.pax.exam.CoreOptions.systemProperty;
9 import static org.ops4j.pax.exam.CoreOptions.maven;
10
11 import java.util.Collection;
12
13 import javax.inject.Inject;
14
15 import org.junit.Test;
16 import org.junit.runner.RunWith;
17 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
18 import org.opendaylight.controller.test.sal.binding.it.TestHelper;
19 import org.ops4j.pax.exam.Configuration;
20 import org.ops4j.pax.exam.CoreOptions;
21 import org.ops4j.pax.exam.Option;
22 import org.ops4j.pax.exam.junit.PaxExam;
23 import org.ops4j.pax.exam.util.PathUtils;
24 import org.osgi.framework.BundleContext;
25 import org.osgi.framework.InvalidSyntaxException;
26 import org.osgi.framework.ServiceReference;
27
28 import static org.opendaylight.controller.test.sal.binding.it.TestHelper.*;
29
30 @RunWith(PaxExam.class)
31 public class ServiceProviderController {
32
33     public static final String ODL = "org.opendaylight.controller";
34     public static final String YANG = "org.opendaylight.yangtools";
35     public static final String SAMPLE = "org.opendaylight.controller.samples";
36
37     @Test
38     public void properInitialized() throws Exception {
39
40         Thread.sleep(30*60*1000); // Waiting for services to get wired.
41         assertTrue(true);
42         // assertTrue(consumer.createToast(WhiteBread.class, 5));
43
44     }
45
46     // @Inject
47     // BindingAwareBroker broker;
48
49     // @Inject
50     // ToastConsumer consumer;
51
52     @Inject
53     BundleContext ctx;
54
55     @Configuration
56     public Option[] config() {
57         return options(
58                 mavenBundle("org.slf4j", "slf4j-api").versionAsInProject(), //
59                 mavenBundle("org.slf4j", "log4j-over-slf4j").versionAsInProject(), //
60                 mavenBundle("ch.qos.logback", "logback-core").versionAsInProject(), //
61                 mavenBundle("ch.qos.logback", "logback-classic").versionAsInProject(), //
62
63                 mdSalCoreBundles(),
64                 baseModelBundles(),
65                 flowCapableModelBundles(),
66
67                 // mavenBundle(ODL,
68                 // "sal-binding-broker-impl").versionAsInProject().update(), //
69                 mavenBundle(ODL, "sal-common").versionAsInProject(), //
70                 mavenBundle(ODL, "sal-common-api").versionAsInProject(),//
71                 mavenBundle(ODL, "sal-common-impl").versionAsInProject(), //
72                 mavenBundle(ODL, "sal-common-util").versionAsInProject(), //
73
74                 mavenBundle(ODL, "sal-core-api").versionAsInProject().update(), //
75                 mavenBundle(ODL, "sal-broker-impl").versionAsInProject(), //
76                 mavenBundle(ODL, "sal-core-spi").versionAsInProject().update(), //
77
78                 mavenBundle(ODL, "sal-connector-api").versionAsInProject(), //
79                 // mavenBundle(SAMPLE,
80                 // "zeromq-test-provider").versionAsInProject(), //
81                 mavenBundle(ODL, "sal-rest-connector").versionAsInProject(), //
82
83                 mavenBundle(YANG, "concepts").versionAsInProject(),
84                 mavenBundle(YANG, "yang-binding").versionAsInProject(), //
85                 mavenBundle(YANG, "yang-common").versionAsInProject(), //
86                 mavenBundle(YANG, "yang-data-api").versionAsInProject(), //
87                 mavenBundle(YANG, "yang-data-impl").versionAsInProject(), //
88                 mavenBundle(YANG, "yang-model-api").versionAsInProject(), //
89                 mavenBundle(YANG, "yang-model-util").versionAsInProject(), //
90                 mavenBundle(YANG, "yang-parser-api").versionAsInProject(),
91                 mavenBundle(YANG, "yang-parser-impl").versionAsInProject(),
92                 mavenBundle(YANG + ".thirdparty", "xtend-lib-osgi").versionAsInProject(), //
93                 mavenBundle(YANG + ".thirdparty", "antlr4-runtime-osgi-nohead").versionAsInProject(), //
94                 mavenBundle("com.google.guava", "guava").versionAsInProject(), //
95
96                 // systemProperty("logback.configurationFile").value(
97                 // "file:" + PathUtils.getBaseDir() +
98                 // "/src/test/resources/logback.xml"),
99                 // To start OSGi console for inspection remotely
100                 systemProperty("osgi.console").value("2401"),
101                 systemProperty("org.eclipse.gemini.web.tomcat.config.path").value(
102                         PathUtils.getBaseDir() + "/src/test/resources/tomcat-server.xml"),
103
104                 // setting default level. Jersey bundles will need to be started
105                 // earlier.
106                 systemProperty("osgi.bundles.defaultStartLevel").value("4"),
107
108                 // Set the systemPackages (used by clustering)
109                 systemPackages("sun.reflect", "sun.reflect.misc", "sun.misc"),
110                 mavenBundle("org.slf4j", "jcl-over-slf4j").versionAsInProject(),
111                 mavenBundle("org.slf4j", "slf4j-api").versionAsInProject(),
112                 mavenBundle("org.slf4j", "log4j-over-slf4j").versionAsInProject(),
113                 mavenBundle("ch.qos.logback", "logback-core").versionAsInProject(),
114                 mavenBundle("ch.qos.logback", "logback-classic").versionAsInProject(),
115                 mavenBundle("org.apache.commons", "commons-lang3").versionAsInProject(),
116                 mavenBundle("org.apache.felix", "org.apache.felix.dependencymanager").versionAsInProject(),
117                 mavenBundle("org.opendaylight.controller", "clustering.services").versionAsInProject(),
118                 mavenBundle("org.opendaylight.controller", "containermanager").versionAsInProject(),
119                 // List all the opendaylight modules
120                 mavenBundle("org.opendaylight.controller", "configuration").versionAsInProject(),
121                 mavenBundle("org.opendaylight.controller", "sal").versionAsInProject(),
122                 mavenBundle("org.opendaylight.controller", "switchmanager").versionAsInProject(),
123                 mavenBundle("org.opendaylight.controller", "usermanager").versionAsInProject(),
124                 mavenBundle("org.opendaylight.controller", "logging.bridge").versionAsInProject(),
125                 // mavenBundle("org.opendaylight.controller",
126                 // "clustering.test").versionAsInProject(),
127                 mavenBundle("org.opendaylight.controller", "bundlescanner").versionAsInProject(),
128                 mavenBundle("org.opendaylight.controller", "bundlescanner.implementation").versionAsInProject(),
129
130                 // Northbound bundles
131                 mavenBundle("org.opendaylight.controller", "commons.northbound").versionAsInProject(),
132                 mavenBundle("org.codehaus.jackson", "jackson-mapper-asl").versionAsInProject(),
133                 mavenBundle("org.codehaus.jackson", "jackson-core-asl").versionAsInProject(),
134                 mavenBundle("org.codehaus.jackson", "jackson-jaxrs").versionAsInProject(),
135                 mavenBundle("org.codehaus.jackson", "jackson-xc").versionAsInProject(),
136                 mavenBundle("org.codehaus.jettison", "jettison").versionAsInProject(),
137
138                 mavenBundle("commons-io", "commons-io").versionAsInProject(),
139
140                 // mavenBundle("commons-fileupload",
141                 // "commons-fileupload").versionAsInProject(),
142
143                 mavenBundle("equinoxSDK381", "javax.servlet").versionAsInProject(),
144                 mavenBundle("equinoxSDK381", "javax.servlet.jsp").versionAsInProject(),
145                 mavenBundle("equinoxSDK381", "org.eclipse.equinox.ds").versionAsInProject(),
146                 mavenBundle("orbit", "javax.xml.rpc").versionAsInProject(),
147                 mavenBundle("equinoxSDK381", "org.eclipse.equinox.util").versionAsInProject(),
148                 mavenBundle("equinoxSDK381", "org.eclipse.osgi.services").versionAsInProject(),
149                 mavenBundle("equinoxSDK381", "org.apache.felix.gogo.command").versionAsInProject(),
150                 mavenBundle("equinoxSDK381", "org.apache.felix.gogo.runtime").versionAsInProject(),
151                 mavenBundle("equinoxSDK381", "org.apache.felix.gogo.shell").versionAsInProject(),
152                 mavenBundle("equinoxSDK381", "org.eclipse.equinox.cm").versionAsInProject(),
153                 mavenBundle("equinoxSDK381", "org.eclipse.equinox.console").versionAsInProject(),
154                 mavenBundle("equinoxSDK381", "org.eclipse.equinox.launcher").versionAsInProject(),
155
156                 mavenBundle("geminiweb", "org.eclipse.gemini.web.core").versionAsInProject(),
157                 mavenBundle("geminiweb", "org.eclipse.gemini.web.extender").versionAsInProject(),
158                 mavenBundle("geminiweb", "org.eclipse.gemini.web.tomcat").versionAsInProject(),
159                 mavenBundle("geminiweb", "org.eclipse.virgo.kernel.equinox.extensions").versionAsInProject().noStart(),
160                 mavenBundle("geminiweb", "org.eclipse.virgo.util.common").versionAsInProject(),
161                 mavenBundle("geminiweb", "org.eclipse.virgo.util.io").versionAsInProject(),
162                 mavenBundle("geminiweb", "org.eclipse.virgo.util.math").versionAsInProject(),
163                 mavenBundle("geminiweb", "org.eclipse.virgo.util.osgi").versionAsInProject(),
164                 mavenBundle("geminiweb", "org.eclipse.virgo.util.osgi.manifest").versionAsInProject(),
165                 mavenBundle("geminiweb", "org.eclipse.virgo.util.parser.manifest").versionAsInProject(),
166
167                 mavenBundle("org.apache.felix", "org.apache.felix.dependencymanager").versionAsInProject(),
168                 mavenBundle("org.apache.felix", "org.apache.felix.dependencymanager.shell").versionAsInProject(),
169
170                 mavenBundle("com.google.code.gson", "gson").versionAsInProject(),
171                 mavenBundle("org.jboss.spec.javax.transaction", "jboss-transaction-api_1.1_spec").versionAsInProject(),
172                 mavenBundle("org.apache.felix", "org.apache.felix.fileinstall").versionAsInProject(),
173                 mavenBundle("org.apache.commons", "commons-lang3").versionAsInProject(),
174                 mavenBundle("commons-codec", "commons-codec").versionAsInProject(),
175                 mavenBundle("virgomirror", "org.eclipse.jdt.core.compiler.batch").versionAsInProject(),
176                 mavenBundle("eclipselink", "javax.persistence").versionAsInProject(),
177                 mavenBundle("eclipselink", "javax.resource").versionAsInProject(),
178
179                 mavenBundle("orbit", "javax.activation").versionAsInProject(),
180                 mavenBundle("orbit", "javax.annotation").versionAsInProject(),
181                 mavenBundle("orbit", "javax.ejb").versionAsInProject(),
182                 mavenBundle("orbit", "javax.el").versionAsInProject(),
183                 mavenBundle("orbit", "javax.mail.glassfish").versionAsInProject(),
184                 mavenBundle("orbit", "javax.xml.rpc").versionAsInProject(),
185                 mavenBundle("orbit", "org.apache.catalina").versionAsInProject(),
186                 // these are bundle fragments that can't be started on its own
187                 mavenBundle("orbit", "org.apache.catalina.ha").versionAsInProject().noStart(),
188                 mavenBundle("orbit", "org.apache.catalina.tribes").versionAsInProject().noStart(),
189                 mavenBundle("orbit", "org.apache.coyote").versionAsInProject().noStart(),
190                 mavenBundle("orbit", "org.apache.jasper").versionAsInProject().noStart(),
191
192                 mavenBundle("orbit", "org.apache.el").versionAsInProject(),
193                 mavenBundle("orbit", "org.apache.juli.extras").versionAsInProject(),
194                 mavenBundle("orbit", "org.apache.tomcat.api").versionAsInProject(),
195                 mavenBundle("orbit", "org.apache.tomcat.util").versionAsInProject().noStart(),
196                 mavenBundle("orbit", "javax.servlet.jsp.jstl").versionAsInProject(),
197                 mavenBundle("orbit", "javax.servlet.jsp.jstl.impl").versionAsInProject(),
198
199                 mavenBundle("org.ops4j.pax.exam", "pax-exam-container-native").versionAsInProject(),
200                 mavenBundle("org.ops4j.pax.exam", "pax-exam-junit4").versionAsInProject(),
201                 mavenBundle("org.ops4j.pax.exam", "pax-exam-link-mvn").versionAsInProject(),
202                 mavenBundle("org.ops4j.pax.url", "pax-url-aether").versionAsInProject(),
203
204                 mavenBundle("org.ow2.asm", "asm-all").versionAsInProject(),
205
206                 mavenBundle("org.springframework", "org.springframework.asm").versionAsInProject(),
207                 mavenBundle("org.springframework", "org.springframework.aop").versionAsInProject(),
208                 mavenBundle("org.springframework", "org.springframework.context").versionAsInProject(),
209                 mavenBundle("org.springframework", "org.springframework.context.support").versionAsInProject(),
210                 mavenBundle("org.springframework", "org.springframework.core").versionAsInProject(),
211                 mavenBundle("org.springframework", "org.springframework.beans").versionAsInProject(),
212                 mavenBundle("org.springframework", "org.springframework.expression").versionAsInProject(),
213                 mavenBundle("org.springframework", "org.springframework.web").versionAsInProject(),
214
215                 mavenBundle("org.aopalliance", "com.springsource.org.aopalliance").versionAsInProject(),
216                 mavenBundle("org.springframework", "org.springframework.web.servlet").versionAsInProject(),
217                 mavenBundle("org.springframework.security", "spring-security-config").versionAsInProject(),
218                 mavenBundle("org.springframework.security", "spring-security-core").versionAsInProject(),
219                 mavenBundle("org.springframework.security", "spring-security-web").versionAsInProject(),
220                 mavenBundle("org.springframework.security", "spring-security-taglibs").versionAsInProject(),
221                 mavenBundle("org.springframework", "org.springframework.transaction").versionAsInProject(),
222
223                 mavenBundle("org.ow2.chameleon.management", "chameleon-mbeans").versionAsInProject(),
224                 mavenBundle("org.opendaylight.controller.thirdparty", "com.sun.jersey.jersey-servlet")
225                         .versionAsInProject().startLevel(2),
226                 mavenBundle("org.opendaylight.controller.thirdparty", "org.apache.catalina.filters.CorsFilter")
227                         .versionAsInProject().noStart(),
228
229                 // Jersey needs to be started before the northbound application
230                 // bundles, using a lower start level
231                 mavenBundle("com.sun.jersey", "jersey-client").versionAsInProject(),
232                 mavenBundle("com.sun.jersey", "jersey-server").versionAsInProject().startLevel(2),
233                 mavenBundle("com.sun.jersey", "jersey-core").versionAsInProject().startLevel(2),
234                 mavenBundle("com.sun.jersey", "jersey-json").versionAsInProject().startLevel(2),
235
236                 junitBundles());
237     }
238
239 }