From: Kalvin Hom Date: Tue, 21 May 2013 01:48:28 +0000 (-0700) Subject: Northbound IntegrationTest X-Git-Tag: releasepom-0.1.0~433 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=01d802948b3598b8757fcca666013cafa38fe4b6 Northbound IntegrationTest Initial base for writing integration tests for northbound bundles. All northbound integration tests can be done within this bundle. A full controller using the stub protocol plugin will be started. A test for getting all flow statistics is also done. Change-Id: Ife16e2fb81a2fe223813473fdd83402385fc59ba Signed-off-by: Kalvin Hom --- diff --git a/opendaylight/distribution/opendaylight/pom.xml b/opendaylight/distribution/opendaylight/pom.xml index f9cddd45f9..ddc24b3965 100644 --- a/opendaylight/distribution/opendaylight/pom.xml +++ b/opendaylight/distribution/opendaylight/pom.xml @@ -84,6 +84,8 @@ ../../northbound/subnets ../../northbound/switchmanager + + ../../northbound/integrationtest ../../logging/bridge diff --git a/opendaylight/northbound/integrationtest/pom.xml b/opendaylight/northbound/integrationtest/pom.xml index 67d6b37950..aa4469e452 100644 --- a/opendaylight/northbound/integrationtest/pom.xml +++ b/opendaylight/northbound/integrationtest/pom.xml @@ -1,6 +1,7 @@ - + 4.0.0 org.opendaylight.controller @@ -12,22 +13,618 @@ org.opendaylight.controller northbound.integrationtest 0.4.0-SNAPSHOT - + + + central2 + central2 + ${nexusproxy}/repositories/central2/ + + + + org.opendaylight.controller + sal + 0.5.0-SNAPSHOT + + + org.opendaylight.controller + sal.implementation + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + forwarding.staticrouting + 0.4.0-SNAPSHOT + org.opendaylight.controller clustering.services 0.4.0-SNAPSHOT - + org.opendaylight.controller - sal + clustering.services-implementation 0.4.0-SNAPSHOT - - + + org.opendaylight.controller - sal.implementation + configuration + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + configuration.implementation + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + routing.dijkstra_implementation + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + arphandler + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + forwardingrulesmanager + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + forwardingrulesmanager.implementation 0.4.0-SNAPSHOT - + + + org.opendaylight.controller + hosttracker + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + hosttracker.implementation + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + containermanager + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + containermanager.implementation + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + switchmanager + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + switchmanager.implementation + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + statisticsmanager + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + statisticsmanager.implementation + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + topologymanager + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + usermanager + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + security + 0.4.0-SNAPSHOT + + + + org.opendaylight.controller.thirdparty + net.sf.jung2 + 2.0.1-SNAPSHOT + + + org.opendaylight.controller.thirdparty + com.sun.jersey.jersey-servlet + 1.17-SNAPSHOT + + + + org.opendaylight.controller + commons.northbound + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + topology.northbound + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + forwarding.staticrouting.northbound + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + statistics.northbound + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + flowprogrammer.northbound + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + hosttracker.northbound + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + subnets.northbound + 0.4.0-SNAPSHOT + + + org.opendaylight.controller + switchmanager.northbound + 0.4.0-SNAPSHOT + + + + org.opendaylight.controller + logging.bridge + 0.4.0-SNAPSHOT + + + + org.opendaylight.controller + protocol_plugins.stub + 0.4.0-SNAPSHOT + + + + + org.codehaus.enunciate + enunciate-core-annotations + ${enunciate.version} + + + org.slf4j + jcl-over-slf4j + ${slf4j.version} + + + org.slf4j + slf4j-api + ${slf4j.version} + + + org.slf4j + log4j-over-slf4j + ${slf4j.version} + + + ch.qos.logback + logback-core + ${logback.version} + + + ch.qos.logback + logback-classic + ${logback.version} + + + org.codehaus.jackson + jackson-mapper-asl + ${jackson.version} + + + org.codehaus.jackson + jackson-core-asl + ${jackson.version} + + + org.codehaus.jackson + jackson-jaxrs + ${jackson.version} + + + org.codehaus.jettison + jettison + 1.3.3 + + + commons-io + commons-io + 2.3 + + + commons-fileupload + commons-fileupload + 1.2.2 + + + equinoxSDK381 + javax.servlet + 3.0.0.v201112011016 + + + equinoxSDK381 + javax.servlet.jsp + 2.2.0.v201112011158 + + + equinoxSDK381 + org.eclipse.equinox.ds + 1.4.0.v20120522-1841 + + + equinoxSDK381 + org.eclipse.equinox.util + 1.0.400.v20120522-2049 + + + equinoxSDK381 + org.eclipse.osgi.services + 3.3.100.v20120522-1822 + + + equinoxSDK381 + org.eclipse.osgi + 3.8.1.v20120830-144521 + + + equinoxSDK381 + org.apache.felix.gogo.command + 0.8.0.v201108120515 + + + equinoxSDK381 + org.apache.felix.gogo.runtime + 0.8.0.v201108120515 + + + equinoxSDK381 + org.apache.felix.gogo.shell + 0.8.0.v201110170705 + + + equinoxSDK381 + org.eclipse.equinox.cm + 1.0.400.v20120522-1841 + + + equinoxSDK381 + org.eclipse.equinox.console + 1.0.0.v20120522-1841 + + + equinoxSDK381 + org.eclipse.equinox.launcher + 1.3.0.v20120522-1813 + + + + geminiweb + org.eclipse.gemini.web.core + ${geminiweb.version} + + + geminiweb + org.eclipse.gemini.web.extender + ${geminiweb.version} + + + geminiweb + org.eclipse.gemini.web.tomcat + ${geminiweb.version} + + + geminiweb + org.eclipse.virgo.kernel.equinox.extensions + ${virgo.version} + + + geminiweb + org.eclipse.virgo.util.common + ${virgo.version} + + + geminiweb + org.eclipse.virgo.util.io + ${virgo.version} + + + geminiweb + org.eclipse.virgo.util.math + ${virgo.version} + + + geminiweb + org.eclipse.virgo.util.osgi + ${virgo.version} + + + geminiweb + org.eclipse.virgo.util.osgi.manifest + ${virgo.version} + + + geminiweb + org.eclipse.virgo.util.parser.manifest + ${virgo.version} + + + org.apache.felix + org.apache.felix.dependencymanager + 3.1.0 + + + org.apache.felix + org.apache.felix.dependencymanager.shell + 3.0.1 + + + com.google.code.gson + gson + 2.1 + compile + + + org.jboss.spec.javax.transaction + jboss-transaction-api_1.1_spec + 1.0.1.Final + + + org.apache.felix + org.apache.felix.fileinstall + 3.1.6 + + + org.apache.commons + commons-lang3 + 3.1 + + + virgomirror + org.eclipse.jdt.core.compiler.batch + 3.8.0.I20120518-2145 + + + eclipselink + javax.persistence + 2.0.4.v201112161009 + + + orbit + javax.activation + 1.1.0.v201211130549 + + + orbit + javax.annotation + 1.1.0.v201209060031 + + + orbit + javax.ejb + 3.1.1.v201204261316 + + + orbit + javax.el + 2.2.0.v201108011116 + + + orbit + javax.mail.glassfish + 1.4.1.v201108011116 + + + orbit + javax.xml.rpc + 1.1.0.v201005080400 + + + orbit + org.apache.catalina + 7.0.32.v201211201336 + + + orbit + org.apache.catalina.ha + 7.0.32.v201211201952 + + + orbit + org.apache.catalina.tribes + 7.0.32.v201211201952 + + + orbit + org.apache.coyote + 7.0.32.v201211201952 + + + orbit + org.apache.el + 7.0.32.v201211081135 + + + orbit + org.apache.jasper + 7.0.32.v201211201952 + + + orbit + org.apache.juli.extras + 7.0.32.v201211081135 + + + orbit + org.apache.tomcat.api + 7.0.32.v201211081135 + + + orbit + org.apache.tomcat.util + 7.0.32.v201211201952 + + + orbit + javax.servlet.jsp.jstl + 1.2.0.v201105211821 + + + orbit + javax.servlet.jsp.jstl.impl + 1.2.0.v201210211230 + + + + org.ops4j.pax.exam + pax-exam-container-native + ${exam.version} + test + + + org.ops4j.pax.exam + pax-exam-junit4 + ${exam.version} + test + + + org.ops4j.pax.exam + pax-exam-link-mvn + ${exam.version} + test + + + org.ops4j.pax.url + pax-url-aether + ${url.version} + test + + + org.springframework + org.springframework.asm + ${spring.version} + + + org.springframework + org.springframework.aop + ${spring.version} + + + org.springframework + org.springframework.context + ${spring.version} + + + org.springframework + org.springframework.context.support + ${spring.version} + + + org.springframework + org.springframework.core + ${spring.version} + + + org.springframework + org.springframework.beans + ${spring.version} + + + org.springframework + org.springframework.expression + ${spring.version} + + + org.springframework + org.springframework.web + ${spring.version} + + + org.aopalliance + com.springsource.org.aopalliance + 1.0.0 + + + org.springframework + org.springframework.web.servlet + ${spring.version} + + + + org.springframework.security + spring-security-config + ${spring-security.version} + + + org.springframework.security + spring-security-core + ${spring-security.version} + + + org.springframework.security + spring-security-web + ${spring-security.version} + + + org.springframework.security + spring-security-taglibs + ${spring-security.version} + + + org.springframework + org.springframework.transaction + ${spring-security.version} + + + + org.ow2.chameleon.management + chameleon-mbeans + 1.0.0 + + + + com.sun.jersey + jersey-core + ${jersey.version} + + + + com.sun.jersey + jersey-server + ${jersey.version} + + + com.sun.jersey + jersey-client + ${jersey.version} + + + com.sun.jersey + jersey-json + ${jersey.version} + + + diff --git a/opendaylight/northbound/integrationtest/src/test/java/org/opendaylight/controller/northbound/integrationtest/NorthboundIntegrationTest.java b/opendaylight/northbound/integrationtest/src/test/java/org/opendaylight/controller/northbound/integrationtest/NorthboundIntegrationTest.java new file mode 100644 index 0000000000..47dfa76b28 --- /dev/null +++ b/opendaylight/northbound/integrationtest/src/test/java/org/opendaylight/controller/northbound/integrationtest/NorthboundIntegrationTest.java @@ -0,0 +1,425 @@ +package org.opendaylight.controller.northbound.integrationtest; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.osgi.framework.ServiceReference; +import org.osgi.framework.Bundle; +import javax.inject.Inject; +import org.junit.Assert; +import org.junit.Test; +import org.junit.Before; +import org.junit.runner.RunWith; +import org.ops4j.pax.exam.junit.PaxExam; +import org.osgi.framework.BundleContext; +import static org.junit.Assert.*; +import org.ops4j.pax.exam.junit.Configuration; +import static org.ops4j.pax.exam.CoreOptions.*; +import org.ops4j.pax.exam.Option; +import org.ops4j.pax.exam.util.PathUtils; +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URL; +import java.net.URLConnection; +import java.nio.charset.Charset; +import org.apache.commons.codec.binary.Base64; + +import org.codehaus.jettison.json.JSONObject; +import org.codehaus.jettison.json.JSONTokener; + +import org.opendaylight.controller.usermanager.IUserManager; + +@RunWith(PaxExam.class) +public class NorthboundIntegrationTest { + private Logger log = LoggerFactory + .getLogger(NorthboundIntegrationTest.class); + // get the OSGI bundle context + @Inject + private BundleContext bc; + private IUserManager users = null; + + private String stateToString(int state) { + switch (state) { + case Bundle.ACTIVE: + return "ACTIVE"; + case Bundle.INSTALLED: + return "INSTALLED"; + case Bundle.RESOLVED: + return "RESOLVED"; + case Bundle.UNINSTALLED: + return "UNINSTALLED"; + default: + return "Not CONVERTED"; + } + } + + @Before + public void areWeReady() { + assertNotNull(bc); + boolean debugit = false; + Bundle b[] = bc.getBundles(); + for (int i = 0; i < b.length; i++) { + int state = b[i].getState(); + if (state != Bundle.ACTIVE && state != Bundle.RESOLVED) { + log.debug("Bundle:" + b[i].getSymbolicName() + " state:" + + stateToString(state)); + debugit = true; + } + } + if (debugit) { + log.debug("Do some debugging because some bundle is " + + "unresolved"); + } + // Assert if true, if false we are good to go! + assertFalse(debugit); + + ServiceReference r = bc.getServiceReference(IUserManager.class + .getName()); + if (r != null) { + this.users = (IUserManager) bc.getService(r); + } + // If UserManager is null, cannot login to run tests. + assertNotNull(this.users); + + } + + @Test + public void testStatistics() { + + System.out.println("Starting Statistics JAXB client."); + + String baseURL = "http://127.0.0.1:8080/controller/nb/v2/statistics/default/flowstats"; + try { + URL url = new URL(baseURL); + + this.users.getAuthorizationList(); + this.users.authenticate("admin", "admin"); + String authString = "admin:admin"; + byte[] authEncBytes = Base64.encodeBase64(authString.getBytes()); + String authStringEnc = new String(authEncBytes); + URLConnection connection = url.openConnection(); + connection.setRequestProperty("Authorization", "Basic " + + authStringEnc); + + connection.setRequestProperty("Content-Type", "application/json"); + connection.setRequestProperty("Accept", "application/json"); + + connection.connect(); + connection.getContentType(); + InputStream is = connection.getInputStream(); + // InputStream is = connection.getInputStream(); + BufferedReader rd = new BufferedReader(new InputStreamReader(is, + Charset.forName("UTF-8"))); + StringBuilder sb = new StringBuilder(); + int cp; + while ((cp = rd.read()) != -1) { + sb.append((char) cp); + } + is.close(); + JSONTokener jt = new JSONTokener(sb.toString()); + JSONObject json = new JSONObject(jt); + JSONObject flowStatistics = json.getJSONObject("flowStatistics"); + JSONObject node = flowStatistics.getJSONObject("node"); + // test that node was returned properly + Assert.assertTrue(node.getInt("@id") == 0xCAFE); + Assert.assertTrue(node.getString("@type").equals("STUB")); + + // test that flow statistics results are correct + JSONObject flowStat = flowStatistics.getJSONObject("flowStat"); + Assert.assertTrue(flowStat.getInt("tableId") == 1); + Assert.assertTrue(flowStat.getInt("durationSeconds") == 40); + Assert.assertTrue(flowStat.getInt("durationNanoseconds") == 400); + Assert.assertTrue(flowStat.getInt("packetCount") == 200); + Assert.assertTrue(flowStat.getInt("byteCount") == 100); + + // test that flow information is correct + JSONObject flow = flowStat.getJSONObject("flow"); + Assert.assertTrue(flow.getInt("priority") == 3500); + Assert.assertTrue(flow.getInt("idleTimeout") == 1000); + Assert.assertTrue(flow.getInt("hardTimeout") == 2000); + Assert.assertTrue(flow.getInt("id") == 12345); + + JSONObject match = (flow.getJSONObject("match") + .getJSONObject("matchField")); + Assert.assertTrue(match.getString("type").equals("NW_DST")); + Assert.assertTrue(match.getString("value").equals("1.1.1.1")); + + Assert.assertTrue(flow.getJSONObject("actions").getString("@type") + .equals("drop")); + + } catch (Exception e) { + // Got an unexpected exception + Assert.assertTrue(false); + + } + } + + // Configure the OSGi container + @Configuration + public Option[] config() { + return options( + // + systemProperty("logback.configurationFile").value( + "file:" + PathUtils.getBaseDir() + + "/src/test/resources/logback.xml"), + // To start OSGi console for inspection remotely + systemProperty("osgi.console").value("2401"), + systemProperty("org.eclipse.gemini.web.tomcat.config.path") + .value(PathUtils.getBaseDir() + + "/src/test/resources/tomcat-server.xml"), + + // setting default level. Jersey bundles will need to be started + // earlier. + systemProperty("osgi.bundles.defaultStartLevel").value("4"), + + // Set the systemPackages (used by clustering) + systemPackages("sun.reflect", "sun.reflect.misc", "sun.misc"), + mavenBundle("javax.servlet", "servlet-api", "2.5"), + + mavenBundle("org.slf4j", "jcl-over-slf4j", "1.7.2"), + mavenBundle("org.slf4j", "slf4j-api", "1.7.2"), + mavenBundle("org.slf4j", "log4j-over-slf4j", "1.7.2"), + mavenBundle("ch.qos.logback", "logback-core", "1.0.9"), + mavenBundle("ch.qos.logback", "logback-classic", "1.0.9"), + mavenBundle("org.apache.commons", "commons-lang3", "3.1"), + mavenBundle("org.apache.felix", + "org.apache.felix.dependencymanager", "3.1.0"), + + // the plugin stub to get data for the tests + mavenBundle("org.opendaylight.controller", + "protocol_plugins.stub", "0.4.0-SNAPSHOT"), + + // List all the opendaylight modules + mavenBundle("org.opendaylight.controller", "security", + "0.4.0-SNAPSHOT").noStart(), + mavenBundle("org.opendaylight.controller", "sal", + "0.5.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "sal.implementation", "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", "statisticsmanager", + "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "statisticsmanager.implementation", "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", "containermanager", + "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "containermanager.implementation", "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "forwardingrulesmanager", "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "forwardingrulesmanager.implementation", + "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", "arphandler", + "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "clustering.services", "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "clustering.services-implementation", "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", "switchmanager", + "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "switchmanager.implementation", "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", "configuration", + "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "configuration.implementation", "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", "hosttracker", + "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "hosttracker.implementation", "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", "arphandler", + "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "routing.dijkstra_implementation", "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", "topologymanager", + "0.4.0-SNAPSHOT"), + + mavenBundle("org.opendaylight.controller", "usermanager", + "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", "logging.bridge", + "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", "clustering.test", + "0.4.0-SNAPSHOT"), + + mavenBundle("org.opendaylight.controller", + "forwarding.staticrouting", "0.4.0-SNAPSHOT"), + + // Northbound bundles + mavenBundle("org.opendaylight.controller", + "commons.northbound", "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "forwarding.staticrouting.northbound", "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "statistics.northbound", "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "topology.northbound", "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "hosttracker.northbound", "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "switchmanager.northbound", "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "flowprogrammer.northbound", "0.4.0-SNAPSHOT"), + mavenBundle("org.opendaylight.controller", + "subnets.northbound", "0.4.0-SNAPSHOT"), + + mavenBundle("org.codehaus.jackson", "jackson-mapper-asl", + "1.9.8"), + mavenBundle("org.codehaus.jackson", "jackson-core-asl", "1.9.8"), + mavenBundle("org.codehaus.jackson", "jackson-jaxrs", "1.9.8"), + mavenBundle("org.codehaus.jettison", "jettison", "1.3.3"), + + mavenBundle("commons-io", "commons-io", "2.3"), + + mavenBundle("commons-fileupload", "commons-fileupload", "1.2.2"), + + mavenBundle("equinoxSDK381", "javax.servlet", + "3.0.0.v201112011016"), + mavenBundle("equinoxSDK381", "javax.servlet.jsp", + "2.2.0.v201112011158"), + mavenBundle("equinoxSDK381", "org.eclipse.equinox.ds", + "1.4.0.v20120522-1841"), + mavenBundle("orbit", "javax.xml.rpc", "1.1.0.v201005080400"), + mavenBundle("equinoxSDK381", "org.eclipse.equinox.util", + "1.0.400.v20120522-2049"), + mavenBundle("equinoxSDK381", "org.eclipse.osgi.services", + "3.3.100.v20120522-1822"), + mavenBundle("equinoxSDK381", "org.apache.felix.gogo.command", + "0.8.0.v201108120515"), + mavenBundle("equinoxSDK381", "org.apache.felix.gogo.runtime", + "0.8.0.v201108120515"), + mavenBundle("equinoxSDK381", "org.apache.felix.gogo.shell", + "0.8.0.v201110170705"), + mavenBundle("equinoxSDK381", "org.eclipse.equinox.cm", + "1.0.400.v20120522-1841"), + mavenBundle("equinoxSDK381", "org.eclipse.equinox.console", + "1.0.0.v20120522-1841"), + mavenBundle("equinoxSDK381", "org.eclipse.equinox.launcher", + "1.3.0.v20120522-1813"), + + mavenBundle("geminiweb", "org.eclipse.gemini.web.core", + "2.2.0.RELEASE"), + mavenBundle("geminiweb", "org.eclipse.gemini.web.extender", + "2.2.0.RELEASE"), + mavenBundle("geminiweb", "org.eclipse.gemini.web.tomcat", + "2.2.0.RELEASE"), + mavenBundle("geminiweb", + "org.eclipse.virgo.kernel.equinox.extensions", + "3.6.0.RELEASE").noStart(), + mavenBundle("geminiweb", "org.eclipse.virgo.util.common", + "3.6.0.RELEASE"), + mavenBundle("geminiweb", "org.eclipse.virgo.util.io", + "3.6.0.RELEASE"), + mavenBundle("geminiweb", "org.eclipse.virgo.util.math", + "3.6.0.RELEASE"), + mavenBundle("geminiweb", "org.eclipse.virgo.util.osgi", + "3.6.0.RELEASE"), + mavenBundle("geminiweb", + "org.eclipse.virgo.util.osgi.manifest", "3.6.0.RELEASE"), + mavenBundle("geminiweb", + "org.eclipse.virgo.util.parser.manifest", + "3.6.0.RELEASE"), + + mavenBundle("org.apache.felix", + "org.apache.felix.dependencymanager", "3.1.0"), + mavenBundle("org.apache.felix", + "org.apache.felix.dependencymanager.shell", "3.0.1"), + + mavenBundle("com.google.code.gson", "gson", "2.1"), + mavenBundle("org.jboss.spec.javax.transaction", + "jboss-transaction-api_1.1_spec", "1.0.1.Final"), + mavenBundle("org.apache.felix", "org.apache.felix.fileinstall", + "3.1.6"), + mavenBundle("org.apache.commons", "commons-lang3", "3.1"), + mavenBundle("commons-codec", "commons-codec"), + mavenBundle("virgomirror", + "org.eclipse.jdt.core.compiler.batch", + "3.8.0.I20120518-2145"), + mavenBundle("eclipselink", "javax.persistence", + "2.0.4.v201112161009"), + + mavenBundle("orbit", "javax.activation", "1.1.0.v201211130549"), + mavenBundle("orbit", "javax.annotation", "1.1.0.v201209060031"), + mavenBundle("orbit", "javax.ejb", "3.1.1.v201204261316"), + mavenBundle("orbit", "javax.el", "2.2.0.v201108011116"), + mavenBundle("orbit", "javax.mail.glassfish", + "1.4.1.v201108011116"), + mavenBundle("orbit", "javax.xml.rpc", "1.1.0.v201005080400"), + mavenBundle("orbit", "org.apache.catalina", + "7.0.32.v201211201336"), + // these are bundle fragments that can't be started on its own + mavenBundle("orbit", "org.apache.catalina.ha", + "7.0.32.v201211201952").noStart(), + mavenBundle("orbit", "org.apache.catalina.tribes", + "7.0.32.v201211201952").noStart(), + mavenBundle("orbit", "org.apache.coyote", + "7.0.32.v201211201952").noStart(), + mavenBundle("orbit", "org.apache.jasper", + "7.0.32.v201211201952").noStart(), + + mavenBundle("orbit", "org.apache.el", "7.0.32.v201211081135"), + mavenBundle("orbit", "org.apache.juli.extras", + "7.0.32.v201211081135"), + mavenBundle("orbit", "org.apache.tomcat.api", + "7.0.32.v201211081135"), + mavenBundle("orbit", "org.apache.tomcat.util", + "7.0.32.v201211201952").noStart(), + mavenBundle("orbit", "javax.servlet.jsp.jstl", + "1.2.0.v201105211821"), + mavenBundle("orbit", "javax.servlet.jsp.jstl.impl", + "1.2.0.v201210211230"), + + mavenBundle("org.ops4j.pax.exam", "pax-exam-container-native"), + mavenBundle("org.ops4j.pax.exam", "pax-exam-junit4"), + mavenBundle("org.ops4j.pax.exam", "pax-exam-link-mvn"), + mavenBundle("org.ops4j.pax.url", "pax-url-aether"), + + mavenBundle("org.springframework", "org.springframework.asm", + "3.1.3.RELEASE"), + mavenBundle("org.springframework", "org.springframework.aop", + "3.1.3.RELEASE"), + mavenBundle("org.springframework", + "org.springframework.context", "3.1.3.RELEASE"), + mavenBundle("org.springframework", + "org.springframework.context.support", "3.1.3.RELEASE"), + mavenBundle("org.springframework", "org.springframework.core", + "3.1.3.RELEASE"), + mavenBundle("org.springframework", "org.springframework.beans", + "3.1.3.RELEASE"), + mavenBundle("org.springframework", + "org.springframework.expression", "3.1.3.RELEASE"), + mavenBundle("org.springframework", "org.springframework.web", + "3.1.3.RELEASE"), + + mavenBundle("org.aopalliance", + "com.springsource.org.aopalliance", "1.0.0"), + mavenBundle("org.springframework", + "org.springframework.web.servlet", "3.1.3.RELEASE"), + mavenBundle("org.springframework.security", + "spring-security-config", "3.1.3.RELEASE"), + mavenBundle("org.springframework.security", + "spring-security-core", "3.1.3.RELEASE"), + mavenBundle("org.springframework.security", + "spring-security-web", "3.1.3.RELEASE"), + mavenBundle("org.springframework.security", + "spring-security-taglibs", "3.1.3.RELEASE"), + mavenBundle("org.springframework", + "org.springframework.transaction", "3.1.3.RELEASE"), + + mavenBundle("org.ow2.chameleon.management", "chameleon-mbeans", + "1.0.0"), + mavenBundle("org.opendaylight.controller.thirdparty", + "net.sf.jung2", "2.0.1-SNAPSHOT"), + mavenBundle("org.opendaylight.controller.thirdparty", + "com.sun.jersey.jersey-servlet", "1.17-SNAPSHOT"), + + // Jersey needs to be started before the northbound application + // bundles, using a lower start level + mavenBundle("com.sun.jersey", "jersey-client", "1.17"), + mavenBundle("com.sun.jersey", "jersey-server", "1.17") + .startLevel(2), + mavenBundle("com.sun.jersey", "jersey-core", "1.17") + .startLevel(2), + mavenBundle("com.sun.jersey", "jersey-json", "1.17") + .startLevel(2), junitBundles()); + } +} \ No newline at end of file diff --git a/opendaylight/northbound/integrationtest/src/test/resources/tomcat-server.xml b/opendaylight/northbound/integrationtest/src/test/resources/tomcat-server.xml new file mode 100644 index 0000000000..4be075451e --- /dev/null +++ b/opendaylight/northbound/integrationtest/src/test/resources/tomcat-server.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/opendaylight/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/ReadService.java b/opendaylight/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/ReadService.java index 0224e3ade6..d331ff0602 100644 --- a/opendaylight/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/ReadService.java +++ b/opendaylight/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/ReadService.java @@ -94,7 +94,11 @@ public class ReadService implements IPluginInReadService { List actions = new ArrayList(); actions.add(action); flow.setActions(actions); - + flow.setPriority((short)3500); + flow.setIdleTimeout((short)1000); + flow.setHardTimeout((short)2000); + flow.setId(12345); + FlowOnNode fn1 = new FlowOnNode(flow); fn1.setByteCount(100); fn1.setDurationNanoseconds(400);