Introduce the OpenDaylight Toaster Edition 25/5825/8
authorRobert Varga <rovarga@cisco.com>
Mon, 31 Mar 2014 23:01:22 +0000 (01:01 +0200)
committerRobert Varga <rovarga@cisco.com>
Wed, 11 Jun 2014 10:11:27 +0000 (12:11 +0200)
This introduces a minimal packaging of the OpenDaylight project, aimed
at providing just enough infrastructure to support a single useful
application -- or appliance, really -- the venerable Toaster.

Change-Id: I8502482d3083f95715ea9b96b7546fa66cf3daf0
Signed-off-by: Robert Varga <rovarga@cisco.com>
17 files changed:
distributions/extra/toaster/pom.xml [new file with mode: 0644]
distributions/extra/toaster/src/assemble/bin.xml [new file with mode: 0644]
distributions/extra/toaster/src/main/resources/TOASTER.txt [new file with mode: 0644]
distributions/extra/toaster/src/main/resources/configuration/RSA.pk [new file with mode: 0644]
distributions/extra/toaster/src/main/resources/configuration/config.ini [new file with mode: 0644]
distributions/extra/toaster/src/main/resources/configuration/context.xml [new file with mode: 0644]
distributions/extra/toaster/src/main/resources/configuration/initial/00-netty.xml [new file with mode: 0644]
distributions/extra/toaster/src/main/resources/configuration/initial/01-md-sal.xml [new file with mode: 0644]
distributions/extra/toaster/src/main/resources/configuration/initial/02-toaster.xml [new file with mode: 0644]
distributions/extra/toaster/src/main/resources/configuration/logback.xml [new file with mode: 0644]
distributions/extra/toaster/src/main/resources/configuration/startup/README [new file with mode: 0644]
distributions/extra/toaster/src/main/resources/configuration/tomcat-logging.properties [new file with mode: 0644]
distributions/extra/toaster/src/main/resources/configuration/tomcat-server.xml [new file with mode: 0644]
distributions/extra/toaster/src/main/resources/run.bat [new file with mode: 0644]
distributions/extra/toaster/src/main/resources/run.sh [new file with mode: 0755]
distributions/extra/toaster/src/main/resources/version.properties [new file with mode: 0644]
distributions/pom.xml

diff --git a/distributions/extra/toaster/pom.xml b/distributions/extra/toaster/pom.xml
new file mode 100644 (file)
index 0000000..a4ba6ec
--- /dev/null
@@ -0,0 +1,973 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ and is available at http://www.eclipse.org/legal/epl-v10.html
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <prerequisites>
+        <maven>3.0</maven>
+    </prerequisites>
+    <scm>
+        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+        <tag>HEAD</tag>
+    </scm>
+
+    <parent>
+        <groupId>org.opendaylight.integration</groupId>
+        <artifactId>distributions</artifactId>
+        <version>0.1.2-SNAPSHOT</version>
+        <relativePath>../..</relativePath>
+    </parent>
+
+    <artifactId>distributions-toaster</artifactId>
+    <packaging>pom</packaging>
+    <name>OpenDaylight Toaster Edition</name>
+
+    <properties>
+        <eclipselink.version>2.5.0</eclipselink.version>
+        <geminiweb.version>2.2.0.RELEASE</geminiweb.version>
+        <jackson.version>2.3.0</jackson.version>
+        <jersey.version>1.17</jersey.version>
+        <logback.version>1.0.9</logback.version>
+        <netty.version>4.0.19.Final</netty.version>
+        <slf4j.version>1.7.2</slf4j.version>
+        <virgo.version>3.6.0.RELEASE</virgo.version>
+        <openexi.version>0000.0002.0038.0</openexi.version>
+
+        <concepts.version>0.5.2-SNAPSHOT</concepts.version>
+        <controller.version>0.4.2-SNAPSHOT</controller.version>
+        <controller.config.version>0.2.5-SNAPSHOT</controller.config.version>
+        <controller.framework.version>0.5.0-SNAPSHOT</controller.framework.version>
+        <controller.mdsal.version>1.1-SNAPSHOT</controller.mdsal.version>
+        <netconf.version>${controller.config.version}</netconf.version>
+        <yangtools.version>0.6.2-SNAPSHOT</yangtools.version>
+
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+    </properties>
+
+    <pluginRepositories>
+        <!-- OpenDayLight Repo Mirror -->
+        <pluginRepository>
+            <id>opendaylight-mirror</id>
+            <name>opendaylight-mirror</name>
+            <url>${nexusproxy}/groups/public/</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+            <releases>
+                <enabled>true</enabled>
+                <updatePolicy>never</updatePolicy>
+            </releases>
+        </pluginRepository>
+        <!-- OpenDayLight Snapshot artifact -->
+        <pluginRepository>
+            <id>opendaylight-snapshot</id>
+            <name>opendaylight-snapshot</name>
+            <url>${nexusproxy}/repositories/opendaylight.snapshot/</url>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+            <releases>
+                <enabled>false</enabled>
+            </releases>
+        </pluginRepository>
+    </pluginRepositories>
+
+    <repositories>
+        <!-- OpenDayLight Repo Mirror -->
+        <repository>
+            <id>opendaylight-mirror</id>
+            <name>opendaylight-mirror</name>
+            <url>${nexusproxy}/groups/public/</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+            <releases>
+                <enabled>true</enabled>
+                <updatePolicy>never</updatePolicy>
+            </releases>
+        </repository>
+        <!-- OpenDayLight Snapshot artifact -->
+        <repository>
+            <id>opendaylight-snapshot</id>
+            <name>opendaylight-snapshot</name>
+            <url>${nexusproxy}/repositories/opendaylight.snapshot/</url>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+            <releases>
+                <enabled>false</enabled>
+            </releases>
+        </repository>
+    </repositories>
+    <distributionManagement>
+        <!-- OpenDayLight Released artifact -->
+        <repository>
+            <id>opendaylight-release</id>
+            <url>${nexusproxy}/repositories/opendaylight.release/</url>
+        </repository>
+        <!-- OpenDayLight Snapshot artifact -->
+        <snapshotRepository>
+            <id>opendaylight-snapshot</id>
+            <url>${nexusproxy}/repositories/opendaylight.snapshot/</url>
+        </snapshotRepository>
+        <!-- Site deployment -->
+        <site>
+            <id>website</id>
+            <url>${sitedeploy}</url>
+        </site>
+    </distributionManagement>
+
+    <dependencies>
+        <!-- YANG Tools -->
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>binding-type-provider</artifactId>
+            <version>${yangtools.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>binding-generator-api</artifactId>
+            <version>${yangtools.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>binding-generator-spi</artifactId>
+            <version>${yangtools.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>binding-generator-impl</artifactId>
+            <version>${yangtools.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>binding-generator-util</artifactId>
+            <version>${yangtools.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>binding-model-api</artifactId>
+            <version>${yangtools.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>concepts</artifactId>
+            <version>${yangtools.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>util</artifactId>
+            <version>${yangtools.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>yang-binding</artifactId>
+            <version>${yangtools.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>yang-common</artifactId>
+            <version>${yangtools.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>yang-data-api</artifactId>
+            <version>${yangtools.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>yang-data-impl</artifactId>
+            <version>${yangtools.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>yang-data-util</artifactId>
+            <version>${yangtools.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>yang-model-api</artifactId>
+            <version>${yangtools.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>yang-model-util</artifactId>
+            <version>${yangtools.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>yang-parser-api</artifactId>
+            <version>${yangtools.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>yang-parser-impl</artifactId>
+            <version>${yangtools.version}</version>
+        </dependency>
+
+        <!-- YANG Tools-provided third-party -->
+        <dependency>
+            <groupId>org.opendaylight.yangtools.thirdparty</groupId>
+            <artifactId>antlr4-runtime-osgi-nohead</artifactId>
+            <version>4.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools.thirdparty</groupId>
+            <artifactId>xtend-lib-osgi</artifactId>
+            <version>2.4.3</version>
+        </dependency>
+
+        <!-- YANG Tools Models -->
+        <dependency>
+            <groupId>org.opendaylight.yangtools.model</groupId>
+            <artifactId>ietf-inet-types</artifactId>
+            <version>2010.09.24.4-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools.model</groupId>
+            <artifactId>ietf-yang-types</artifactId>
+            <version>2010.09.24.4-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools.model</groupId>
+            <artifactId>yang-ext</artifactId>
+            <version>2013.09.07.4-SNAPSHOT</version>
+        </dependency>
+
+        <!-- Concepts -->
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>concepts</artifactId>
+            <version>${concepts.version}</version>
+        </dependency>
+
+        <!-- Protocol framework -->
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>protocol-framework</artifactId>
+            <version>${controller.framework.version}</version>
+        </dependency>
+
+        <!-- MD-SAL -->
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-common</artifactId>
+            <version>${controller.mdsal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-common-api</artifactId>
+            <version>${controller.mdsal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-common-impl</artifactId>
+            <version>${controller.mdsal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-common-util</artifactId>
+            <version>${controller.mdsal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-core-api</artifactId>
+            <version>${controller.mdsal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-core-spi</artifactId>
+            <version>${controller.mdsal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-broker-impl</artifactId>
+            <version>${controller.mdsal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-binding-api</artifactId>
+            <version>${controller.mdsal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-binding-config</artifactId>
+            <version>${controller.mdsal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-binding-broker-impl</artifactId>
+            <version>${controller.mdsal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-connector-api</artifactId>
+            <version>${controller.mdsal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-rest-connector</artifactId>
+            <version>${controller.mdsal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-binding-util</artifactId>
+            <version>${controller.mdsal.version}</version>
+        </dependency>
+
+        <!-- Configuration subsystem -->
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>config-api</artifactId>
+            <version>${controller.config.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>config-manager</artifactId>
+            <version>${controller.config.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>yang-jmx-generator</artifactId>
+            <version>${controller.config.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>config-persister-api</artifactId>
+            <version>${controller.config.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>config-persister-file-xml-adapter</artifactId>
+            <version>${controller.config.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>config-persister-directory-adapter</artifactId>
+            <version>${controller.config.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>config-persister-directory-xml-adapter</artifactId>
+            <version>${controller.config.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>shutdown-api</artifactId>
+            <version>${controller.config.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>shutdown-impl</artifactId>
+            <version>${controller.config.version}</version>
+        </dependency>
+
+        <!-- Configuration bindings -->
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>logback-config</artifactId>
+            <version>${controller.config.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>netty-config-api</artifactId>
+            <version>${controller.config.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>threadpool-config-api</artifactId>
+            <version>${controller.config.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>threadpool-config-impl</artifactId>
+            <version>${controller.config.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>netty-event-executor-config</artifactId>
+            <version>${controller.config.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>netty-threadgroup-config</artifactId>
+            <version>${controller.config.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>netty-timer-config</artifactId>
+            <version>${controller.config.version}</version>
+        </dependency>
+
+        <!-- Netconf -->
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>netconf-api</artifactId>
+            <version>${netconf.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>netconf-impl</artifactId>
+            <version>${netconf.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>netconf-netty-util</artifactId>
+            <version>${netconf.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>netconf-util</artifactId>
+            <version>${netconf.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>netconf-mapping-api</artifactId>
+            <version>${netconf.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>config-netconf-connector</artifactId>
+            <version>${netconf.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>netconf-monitoring</artifactId>
+            <version>${netconf.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>ietf-netconf-monitoring</artifactId>
+            <version>${netconf.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>ietf-netconf-monitoring-extension</artifactId>
+            <version>${netconf.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>config-persister-impl</artifactId>
+            <version>${netconf.version}</version>
+        </dependency>
+
+        <!-- Debug and logging -->
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <version>${slf4j.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>jcl-over-slf4j</artifactId>
+            <version>${slf4j.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>log4j-over-slf4j</artifactId>
+            <version>${slf4j.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-core</artifactId>
+            <version>${logback.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+            <version>${logback.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>logging.bridge</artifactId>
+            <version>${controller.version}</version>
+        </dependency>
+
+        <!-- Netty -->
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-buffer</artifactId>
+            <version>${netty.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-codec</artifactId>
+            <version>${netty.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-codec-http</artifactId>
+            <version>${netty.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-common</artifactId>
+            <version>${netty.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-handler</artifactId>
+            <version>${netty.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-transport</artifactId>
+            <version>${netty.version}</version>
+        </dependency>
+
+        <!-- Jersey for JAXRS -->
+        <dependency>
+            <groupId>com.sun.jersey</groupId>
+            <artifactId>jersey-core</artifactId>
+            <version>${jersey.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.jersey</groupId>
+            <artifactId>jersey-server</artifactId>
+            <version>${jersey.version}</version>
+        </dependency>
+
+        <!-- Jackson -->
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-annotations</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-core</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.jaxrs</groupId>
+            <artifactId>jackson-jaxrs-base</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.jaxrs</groupId>
+            <artifactId>jackson-jaxrs-json-provider</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.module</groupId>
+            <artifactId>jackson-module-jaxb-annotations</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+
+        <!-- Commons -->
+        <dependency>
+            <groupId>commons-codec</groupId>
+            <artifactId>commons-codec</artifactId>
+            <version>1.7</version>             
+        </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.1</version>
+        </dependency>
+
+        <!-- Other third-party libraries -->
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>2.2.4</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>14.0.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.javassist</groupId>
+            <artifactId>javassist</artifactId>
+            <version>3.17.1-GA</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller.thirdparty</groupId>
+            <artifactId>ganymed</artifactId>
+            <version>1.1-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.openexi</groupId>
+            <artifactId>nagasena</artifactId>
+            <version>${openexi.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.openexi</groupId>
+            <artifactId>nagasena-rta</artifactId>
+            <version>${openexi.version}</version>
+        </dependency>
+
+        <!-- Equinox -->
+        <dependency>
+            <groupId>equinoxSDK381</groupId>
+            <artifactId>javax.servlet</artifactId>
+            <version>3.0.0.v201112011016</version>
+        </dependency>
+        <dependency>
+            <groupId>equinoxSDK381</groupId>
+            <artifactId>javax.servlet.jsp</artifactId>
+            <version>2.2.0.v201112011158</version>
+        </dependency>
+        <dependency>
+            <groupId>equinoxSDK381</groupId>
+            <artifactId>org.eclipse.equinox.ds</artifactId>
+            <version>1.4.0.v20120522-1841</version>
+        </dependency>
+        <dependency>
+            <groupId>equinoxSDK381</groupId>
+            <artifactId>org.eclipse.equinox.util</artifactId>
+            <version>1.0.400.v20120522-2049</version>
+        </dependency>
+        <dependency>
+            <groupId>equinoxSDK381</groupId>
+            <artifactId>org.eclipse.osgi.services</artifactId>
+            <version>3.3.100.v20120522-1822</version>
+        </dependency>
+        <dependency>
+            <groupId>equinoxSDK381</groupId>
+            <artifactId>org.eclipse.osgi</artifactId>
+            <version>3.8.1.v20120830-144521</version>
+        </dependency>
+        <dependency>
+            <groupId>equinoxSDK381</groupId>
+            <artifactId>org.eclipse.equinox.cm</artifactId>
+            <version>1.0.400.v20120522-1841</version>
+        </dependency>
+        <dependency>
+            <groupId>equinoxSDK381</groupId>
+            <artifactId>org.eclipse.equinox.console</artifactId>
+            <version>1.0.0.v20120522-1841</version>
+        </dependency>
+        <dependency>
+            <groupId>equinoxSDK381</groupId>
+            <artifactId>org.eclipse.equinox.launcher</artifactId>
+            <version>1.3.0.v20120522-1813</version>
+        </dependency>
+
+        <!-- GoGo Shell -->
+        <dependency>
+            <groupId>equinoxSDK381</groupId>
+            <artifactId>org.apache.felix.gogo.command</artifactId>
+            <version>0.8.0.v201108120515</version>
+        </dependency>
+        <dependency>
+            <groupId>equinoxSDK381</groupId>
+            <artifactId>org.apache.felix.gogo.runtime</artifactId>
+            <version>0.8.0.v201108120515</version>
+        </dependency>
+        <dependency>
+            <groupId>equinoxSDK381</groupId>
+            <artifactId>org.apache.felix.gogo.shell</artifactId>
+            <version>0.8.0.v201110170705</version>
+        </dependency>
+
+        <!-- Gemini Web -->
+        <dependency>
+            <groupId>geminiweb</groupId>
+            <artifactId>org.eclipse.gemini.web.core</artifactId>
+            <version>${geminiweb.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>geminiweb</groupId>
+            <artifactId>org.eclipse.gemini.web.extender</artifactId>
+            <version>${geminiweb.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>geminiweb</groupId>
+            <artifactId>org.eclipse.gemini.web.tomcat</artifactId>
+            <version>${geminiweb.version}</version>
+        </dependency>
+
+        <!-- Gemini Virgo -->
+        <dependency>
+            <groupId>geminiweb</groupId>
+            <artifactId>org.eclipse.virgo.kernel.equinox.extensions</artifactId>
+            <version>${virgo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>geminiweb</groupId>
+            <artifactId>org.eclipse.virgo.util.common</artifactId>
+            <version>${virgo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>geminiweb</groupId>
+            <artifactId>org.eclipse.virgo.util.io</artifactId>
+            <version>${virgo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>geminiweb</groupId>
+            <artifactId>org.eclipse.virgo.util.math</artifactId>
+            <version>${virgo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>geminiweb</groupId>
+            <artifactId>org.eclipse.virgo.util.osgi</artifactId>
+            <version>${virgo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>geminiweb</groupId>
+            <artifactId>org.eclipse.virgo.util.osgi.manifest</artifactId>
+            <version>${virgo.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>geminiweb</groupId>
+            <artifactId>org.eclipse.virgo.util.parser.manifest</artifactId>
+            <version>${virgo.version}</version>
+        </dependency>
+
+        <!-- Catalina et al. -->
+        <dependency>
+            <groupId>org.jboss.spec.javax.transaction</groupId>
+            <artifactId>jboss-transaction-api_1.1_spec</artifactId>
+            <version>1.0.1.Final</version>
+        </dependency>
+        <dependency>
+            <groupId>orbit</groupId>
+            <artifactId>javax.activation</artifactId>
+            <version>1.1.0.v201211130549</version>
+        </dependency>
+        <dependency>
+            <groupId>orbit</groupId>
+            <artifactId>javax.annotation</artifactId>
+            <version>1.1.0.v201209060031</version>
+        </dependency>
+        <dependency>
+            <groupId>orbit</groupId>
+            <artifactId>javax.ejb</artifactId>
+            <version>3.1.1.v201204261316</version>
+        </dependency>
+        <dependency>
+            <groupId>orbit</groupId>
+            <artifactId>javax.el</artifactId>
+            <version>2.2.0.v201108011116</version>
+        </dependency>
+        <dependency>
+            <groupId>orbit</groupId>
+            <artifactId>javax.mail.glassfish</artifactId>
+            <version>1.4.1.v201108011116</version>
+        </dependency>
+        <dependency>
+            <groupId>eclipselink</groupId>
+            <artifactId>javax.persistence</artifactId>
+            <version>2.0.4.v201112161009</version>
+        </dependency>
+        <dependency>
+            <groupId>eclipselink</groupId>
+            <artifactId>javax.resource</artifactId>
+            <version>1.5.0.v200906010428</version>
+        </dependency>
+        <dependency>
+            <groupId>orbit</groupId>
+            <artifactId>javax.xml.rpc</artifactId>
+            <version>1.1.0.v201005080400</version>
+        </dependency>
+        <dependency>
+            <groupId>orbit</groupId>
+            <artifactId>org.apache.catalina</artifactId>
+            <version>7.0.32.v201211201336</version>
+        </dependency>
+        <dependency>
+            <groupId>orbit</groupId>
+            <artifactId>org.apache.coyote</artifactId>
+            <version>7.0.32.v201211201952</version>
+        </dependency>
+        <dependency>
+            <groupId>orbit</groupId>
+            <artifactId>org.apache.el</artifactId>
+            <version>7.0.32.v201211081135</version>
+        </dependency>
+        <dependency>
+            <groupId>orbit</groupId>
+            <artifactId>org.apache.jasper</artifactId>
+            <version>7.0.32.v201211201952</version>
+        </dependency>
+
+        <!-- AUDIT BELOW -->
+        <dependency>
+            <groupId>org.eclipse.equinox.http</groupId>
+            <artifactId>servlet</artifactId>
+            <version>1.0.0-v20070606</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.servicemix.bundles</groupId>
+            <artifactId>org.apache.servicemix.bundles.xerces</artifactId>
+            <version>2.11.0_1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.birt.runtime.3_7_1</groupId>
+            <artifactId>org.apache.xml.resolver</artifactId>
+            <version>1.2.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.fileinstall</artifactId>
+            <version>3.1.6</version>
+        </dependency>
+        <dependency>
+            <groupId>virgomirror</groupId>
+            <artifactId>org.eclipse.jdt.core.compiler.batch</artifactId>
+            <version>3.8.0.I20120518-2145</version>
+        </dependency>
+        <dependency>
+            <groupId>orbit</groupId>
+            <artifactId>org.apache.juli.extras</artifactId>
+            <version>7.0.32.v201211081135</version>
+        </dependency>
+        <dependency>
+            <groupId>orbit</groupId>
+            <artifactId>org.apache.tomcat.api</artifactId>
+            <version>7.0.32.v201211081135</version>
+        </dependency>
+        <dependency>
+            <groupId>orbit</groupId>
+            <artifactId>org.apache.tomcat.util</artifactId>
+            <version>7.0.32.v201211201952</version>
+        </dependency>
+        <dependency>
+            <groupId>orbit</groupId>
+            <artifactId>javax.servlet.jsp.jstl</artifactId>
+            <version>1.2.0.v201105211821</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.eclipse.persistence</groupId>
+            <artifactId>org.eclipse.persistence.moxy</artifactId>
+            <version>${eclipselink.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.persistence</groupId>
+            <artifactId>org.eclipse.persistence.core</artifactId>
+            <version>${eclipselink.version}</version>
+        </dependency>
+
+        <!-- Third parties from opendaylight released -->
+        <dependency>
+            <groupId>org.opendaylight.controller.thirdparty</groupId>
+            <artifactId>net.sf.jung2</artifactId>
+            <version>2.0.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller.thirdparty</groupId>
+            <artifactId>com.sun.jersey.jersey-servlet</artifactId>
+            <version>1.17</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller.thirdparty</groupId>
+            <artifactId>org.apache.catalina.filters.CorsFilter</artifactId>
+            <version>7.0.42</version>
+        </dependency>
+
+        <!-- OpenDaylight branding -->
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>osgi-brandfragment.web</artifactId>
+            <version>0.0.2-SNAPSHOT</version>
+        </dependency>
+
+        <!-- THE APPLICATION -->
+        <dependency>
+            <groupId>org.opendaylight.controller.samples</groupId>
+            <artifactId>sample-toaster</artifactId>
+            <version>${controller.mdsal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller.samples</groupId>
+            <artifactId>sample-toaster-consumer</artifactId>
+            <version>${controller.mdsal.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller.samples</groupId>
+            <artifactId>sample-toaster-provider</artifactId>
+            <version>${controller.mdsal.version}</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>buildnumber-maven-plugin</artifactId>
+                <version>1.2</version>
+                <executions>
+                    <execution>
+                        <phase>validate</phase>
+                        <goals>
+                            <goal>create</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <doCheck>false</doCheck>
+                    <doUpdate>false</doUpdate>
+                    <revisionOnScmFailure>VersionUnknown</revisionOnScmFailure>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.8</version>
+                <executions>
+                    <execution>
+                        <id>unpack-provided-configs</id>
+                        <goals>
+                            <goal>unpack-dependencies</goal>
+                        </goals>
+                        <phase>generate-resources</phase>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/provided-configs</outputDirectory>
+                            <includeArtifactIds>
+                                bgp-controller-config,
+                                pcep-controller-config,
+                                programming-controller-config,
+                            </includeArtifactIds>
+                            <includeGroupIds>
+                                org.opendaylight.bgpcep,
+                            </includeGroupIds>
+                            <excludeTransitive>true</excludeTransitive>
+                            <ignorePermissions>false</ignorePermissions>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <version>2.3</version>
+                <executions>
+                    <execution>
+                        <id>distro-assembly</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                        <configuration>
+                            <descriptors>
+                                <descriptor>src/assemble/bin.xml</descriptor>
+                            </descriptors>
+                            <finalName>${project.artifactId}</finalName>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/distributions/extra/toaster/src/assemble/bin.xml b/distributions/extra/toaster/src/assemble/bin.xml
new file mode 100644 (file)
index 0000000..7acca5e
--- /dev/null
@@ -0,0 +1,99 @@
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
+    <id>osgipackage</id>
+    <formats>
+        <format>dir</format>
+        <format>zip</format>
+    </formats>
+    <includeBaseDirectory>false</includeBaseDirectory>
+    <dependencySets>
+        <dependencySet>
+            <useProjectArtifact>false</useProjectArtifact>
+            <outputDirectory>opendaylight/plugins</outputDirectory>
+            <excludes>
+                <exclude>equinoxSDK381:org.eclipse.osgi</exclude>
+                <exclude>equinoxSDK381:org.eclipse.equinox.console</exclude>
+                <exclude>equinoxSDK381:org.eclipse.equinox.launcher</exclude>
+                <exclude>equinoxSDK381:org.eclipse.equinox.ds</exclude>
+                <exclude>equinoxSDK381:org.eclipse.equinox.util</exclude>
+                <exclude>equinoxSDK381:org.eclipse.osgi.services</exclude>
+                <exclude>virgomirror:org.eclipse.jdt.core.compiler.batch</exclude>
+                <exclude>org.apache.felix:org.apache.felix.fileinstall</exclude>
+                <exclude>geminiweb:org.eclipse.virgo.kernel.equinox.extensions</exclude>
+                <exclude>org.slf4j:slf4j-api</exclude>
+                <exclude>ch.qos.logback:logback-core</exclude>
+                <exclude>ch.qos.logback:logback-classic</exclude>
+                <exclude>com.sun.jersey:jersey-core</exclude>
+                <exclude>com.sun.jersey:jersey-server</exclude>
+                <exclude>org.opendaylight.controller:logging.bridge</exclude>
+            </excludes>
+            <outputFileNameMapping>
+                ${artifact.groupId}.${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}
+            </outputFileNameMapping>
+            <unpack>false</unpack>
+            <scope>runtime</scope>
+            <useTransitiveDependencies>false</useTransitiveDependencies>
+        </dependencySet>
+        <dependencySet>
+            <useProjectArtifact>false</useProjectArtifact>
+            <outputDirectory>opendaylight/lib</outputDirectory>
+            <includes>
+                <include>equinoxSDK381:org.eclipse.osgi</include>
+                <include>equinoxSDK381:org.eclipse.equinox.console</include>
+                <include>equinoxSDK381:org.eclipse.equinox.launcher</include>
+                <include>equinoxSDK381:org.eclipse.equinox.ds</include>
+                <include>equinoxSDK381:org.eclipse.equinox.util</include>
+                <include>equinoxSDK381:org.eclipse.osgi.services</include>
+                <include>virgomirror:org.eclipse.jdt.core.compiler.batch</include>
+                <include>org.apache.felix:org.apache.felix.fileinstall</include>
+                <include>geminiweb:org.eclipse.virgo.kernel.equinox.extensions</include>
+                <include>org.slf4j:slf4j-api</include>
+                <include>ch.qos.logback:logback-core</include>
+                <include>ch.qos.logback:logback-classic</include>
+                <include>com.sun.jersey:jersey-core</include>
+                <include>com.sun.jersey:jersey-server</include>
+                <include>org.opendaylight.controller:logging.bridge</include>
+            </includes>
+            <useTransitiveDependencies>false</useTransitiveDependencies>
+            <outputFileNameMapping>
+                ${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}
+            </outputFileNameMapping>
+            <unpack>false</unpack>
+            <scope>runtime</scope>
+        </dependencySet>
+    </dependencySets>
+    <fileSets>
+        <fileSet>
+            <directory>
+                src/main/resources/
+            </directory>
+            <excludes>
+                <exclude>version.properties</exclude>
+                <exclude>configuration/config.ini</exclude>
+            </excludes>
+            <outputDirectory>
+                opendaylight/
+            </outputDirectory>
+        </fileSet>
+        <fileSet>
+            <directory>${project.build.directory}/provided-configs</directory>
+            <outputDirectory>/opendaylight/configuration</outputDirectory>
+            <excludes>
+                <exclude>META-INF</exclude>
+            </excludes>
+        </fileSet>
+    </fileSets>
+    <files>
+        <file>
+            <source>src/main/resources/version.properties</source>
+            <outputDirectory>opendaylight</outputDirectory>
+            <filtered>true</filtered>
+        </file>
+        <file>
+            <source>src/main/resources/configuration/config.ini</source>
+            <outputDirectory>opendaylight/configuration</outputDirectory>
+            <filtered>true</filtered>
+        </file>
+    </files>
+</assembly>
diff --git a/distributions/extra/toaster/src/main/resources/TOASTER.txt b/distributions/extra/toaster/src/main/resources/TOASTER.txt
new file mode 100644 (file)
index 0000000..516b165
--- /dev/null
@@ -0,0 +1,18 @@
+To request a toast, do the equivalent of:
+
+curl -v -H "Content-Type: application/yang.operation+json" -XPOST \
+    http://localhost:8080/restconf/operations/toaster:make-toast -d \
+    '{
+         "input" : {
+              "toasterDoneness" : 10,
+              "toasterToastType" : "white-bread"
+          }
+    }'
+
+Note that the darker the toast, the longer it takes to make.
+
+You can view the toaster status over by examining
+
+http://localhost:8080/restconf/operational/toaster:toaster/
+
+Happy toasting! :)
diff --git a/distributions/extra/toaster/src/main/resources/configuration/RSA.pk b/distributions/extra/toaster/src/main/resources/configuration/RSA.pk
new file mode 100644 (file)
index 0000000..c0266c7
--- /dev/null
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEogIBAAKCAQEAuC9hbEacpewvylI0mwFwjy3Wou2hpr/ncN9BBiFDSaG5yW2k
+3Oy+SCAcFCL+ZKWb6cc6Ch4gUeCwyEHRojZguuhliKtak9YQf6qbvpPLe00842Lx
+iqNAGurMpzizCDsGFq8ChaAkBZQI3TvcHuPoSUWSMJ+K8xHpRyUdVr6g2yEjezKJ
+sTXBtWaeCCh6YUafFujuDJk7fvYcPW7Je5KRBBStIKvxcMW0zB+7eq04deTHwGbJ
+gGjKWilQ72hsDDP3Hbp5CJMAYg1r4GlCmFx3KyHRGztgWgNgaD7nNpKCkTLjtmA6
+b4x7TA+jrzZ6Af2z5TMrI4dv5w1SrxHaZ+ziLQIDAQABAoIBAHTndeGgq/rQf8De
+Do+4CTaHtK0zQSAyu/azbXUzlZ7drKuCEVs8VMY4wzmwwGEnkF+A2YDkgEUX5X0l
+8aYQ97KKoS9u+43MGCrAIhyDeGrpqlT1TzRcy+qJz53v6gq2U/X/3QztiQ+VV078
+mIluxNgE9XYxPaNsYfGLSCTv1+9c8y/hjGVX2kwFK+u4ut0ZZETggNa8UxfaHVDS
+fIJQX9Gm3J3GSUV30fDGMBIUW6ESLc2L8b7u8Mp9TRP39ZeQSuEUjBe8MYKv0Rel
+oEpjZvcnniMTpFbLpndBYn7/AoIiEBvtCN8faVTuRRcvvLcsRm09IctzKQYnMh6M
+6PLKV+ECgYEA8HFRYaKHUzxpzE/fyon82GQbzqFFY0/bbWrfWICMfNbIgshJUie6
+FmH5iUFMfeqaT7v557HFM0GB9FeIeSbvd88YmiBAcRopZ3DfMkDH+DT73yJ+/TKG
+2nrQtdhyuTIs4bwHqeS2BBJYs7PK9R2rratF3l34Tf7mjlvyOgygHdUCgYEAxBo2
+8hEBlAVNcNb1hTYUxe1w1B6675/mFlmw98Xmj9dRYfICXNhahs8tX3/lsBEd+vBu
+fI0oyHaff8m5bPgGzD1ZMybfeROujNrgxaKVk7Ef0FDRRCop4bm18OroFlFAt9l8
+wMp++ToACbdvQvL/mjWMPYlIxhB/YxHswICZZvkCgYAexxKYwdo6sGAGlC7cWT9x
+X5cjowcjyEQZRHXkeUgCbufpvcOM7aLnXJE5nY8yCwbHsBM0MlBA2GDPKylAANjk
+aDEJAZneIHAuWodngl1Wi0m2bU7+ECqs6s2uiU9eH2sZVh1RBQK7kLGkBx6ys6KX
+L3ZZGYRAT6GplWFzRsx0JQKBgCeVlxPD5QqpC1nEumi6YvUVGdpnnZpzL3HBhxxs
+wT612wKnZFyze4qM1X7ahVXGDsQxtkvD/sCAWW/lG13orw6ZL6FIroF1PJ3ILOkY
+CZN3hJF7TtKwpCWhZB2OfWzL2AGEkE8mUP0j/Q/5DCd6f6f0OSvOw3bfq6cm3iB5
+lP2ZAoGAXsRN5TZTX4AQ2xTlrDQ8A5XgcvyWQpJOmEXMTyHV7VaJVzmNWFVAvndK
+5UIq8ALDwB2t7vjmMUW6euvIwqtXiop7G79UOb3e3NhzeyWFGQyBLqCRznGaXQTT
+dlFy73xhukZMhFnj006bjKCYvOPnwuGl3+0fuWil5Rq3jOuY5c8=
+-----END RSA PRIVATE KEY-----
diff --git a/distributions/extra/toaster/src/main/resources/configuration/config.ini b/distributions/extra/toaster/src/main/resources/configuration/config.ini
new file mode 100644 (file)
index 0000000..3a977b1
--- /dev/null
@@ -0,0 +1,135 @@
+osgi.bundles=\
+    reference\:file\:../lib/org.apache.felix.fileinstall-3.1.6.jar@1:start,\
+    reference\:file\:../lib/org.eclipse.jdt.core.compiler.batch-3.8.0.I20120518-2145.jar@1:start,\
+    reference\:file\:../lib/org.eclipse.equinox.ds-1.4.0.v20120522-1841.jar@2:start,\
+    reference\:file\:../lib/org.eclipse.equinox.util-1.0.400.v20120522-2049.jar@2:start,\
+    reference\:file\:../lib/org.eclipse.osgi.services-3.3.100.v20120522-1822@2:start,\
+    reference\:file\:../lib/org.eclipse.equinox.console-1.0.0.v20120522-1841.jar@start,\
+    reference\:file\:../lib/slf4j-api-1.7.2.jar@1:start,\
+    reference\:file\:../lib/logback-classic-1.0.9.jar@1:start,\
+    reference\:file\:../lib/logback-core-1.0.9.jar@1:start,\
+    reference\:file\:../lib/logging.bridge-${controller.version}@1:start,\
+    reference\:file\:../lib/jersey-core-1.17.jar@2:start,\
+    reference\:file\:../lib/jersey-server-1.17.jar@2:start
+
+# Netconf startup configuration
+netconf.tcp.address=127.0.0.1
+netconf.tcp.port=8383
+
+netconf.ssh.address=0.0.0.0
+netconf.ssh.port=1830
+netconf.ssh.pk.path = ./configuration/RSA.pk
+
+netconf.config.persister.active=1,2
+# read startup configuration
+netconf.config.persister.1.storageAdapterClass=org.opendaylight.controller.config.persist.storage.directory.xml.XmlDirectoryStorageAdapter
+netconf.config.persister.1.properties.directoryStorage=configuration/initial/
+netconf.config.persister.1.readonly=true
+
+netconf.config.persister.2.storageAdapterClass=org.opendaylight.controller.config.persist.storage.file.xml.XmlFileStorageAdapter
+netconf.config.persister.2.properties.fileStorage=configuration/current/controller.currentconfig.xml
+netconf.config.persister.2.properties.numberOfBackups=2
+
+yangstore.blacklist=.*controller.model.*
+
+# Set Default start level for framework
+osgi.bundles.defaultStartLevel=4
+# Extra packages to import from the boot class loader
+org.osgi.framework.system.packages.extra=sun.reflect,sun.reflect.misc,sun.misc,sun.nio.ch
+# This is not Eclipse App
+eclipse.ignoreApp=true
+# Don't shutdown equinox if the eclipse App has ended,
+# which is our case because we are not running any eclipse application
+osgi.noShutdown=true
+# Clean any cached data on restart of the framework
+osgi.clean=true
+# Extend the framework to avoid the resources to be presented with
+# a URL of type bundleresource: but to be presented as file:
+osgi.hook.configurators.include=org.eclipse.virgo.kernel.equinox.extensions.hooks.ExtensionsHookConfigurator
+# Directory from where the fileinstall will monitor for new bundles
+felix.fileinstall.dir=./plugins
+# Immediately learn new bundles at startup
+felix.fileinstall.noInitialDelay=true
+# Auto start the bundles at level 4
+felix.fileinstall.start.level=4
+# Avoid to auto-install following bundles, that means those need
+# to be started manually or in other way like osgi.bundles
+felix.fileinstall.filter=^(?!org.apache.felix.fileinstall).*
+
+# logback configuration
+logback.configurationFile=configuration/logback.xml
+
+# Container configuration
+container.profile = Container
+
+# Connection manager configuration
+connection.scheme = ANY_CONTROLLER_ONE_MASTER
+
+# Embedded Tomcat configuration File
+org.eclipse.gemini.web.tomcat.config.path=configuration/tomcat-server.xml
+
+# Open Flow related system parameters
+# TCP port on which the controller is listening (default 6633)
+# of.listenPort=6633
+# IP address of the controller (default: wild card)
+# of.address = 127.0.0.1
+# The time (in milliseconds) the controller will wait for a response after sending a Barrier Request or a Statistic Request message (default 2000 msec)
+# of.messageResponseTimer=2000
+# The switch liveness timeout value (default 60500 msec)
+# of.switchLivenessTimeout=60500
+# The size of the queue holding pending statistics requests (default 64). For large networks of n switches, it is recommended to set the queue size to n
+# of.statsQueueSize = 64
+# The flow statistics polling interval in second (default 10 sec)
+# of.flowStatsPollInterval=10
+# The port statistics polling interval in second (default 5 sec)
+# of.portStatsPollInterval=5
+# The description statistics polling interval in second (default 60 sec)
+# of.descStatsPollInterval=60
+# The table statistics polling interval in second (default 10 sec)
+# of.tableStatsPollInterval=10
+# The maximum number of asynchronous messages can be sent before sending a Barrier Request (default 100)
+# of.barrierMessagePriorCount=100
+# The interval which determines how often the discovery packets should be sent (default 300 sec)
+# of.discoveryInterval=300
+# The timeout multiple of discovery interval
+# of.discoveryTimeoutMultiple=2
+# For newly added ports, allow one more retry if the elapsed time exceeds this threshold (default 30 sec)
+# of.discoveryThreshold=30
+# The maximum number of ports handled in one discovery batch (default 512)
+# of.discoveryBatchMaxPorts=512
+
+# OVSDB configuration
+# ovsdb plugin supports both active and passive connections. It listens on port 6640 by default for Active connections.
+ovsdb.listenPort=6640
+
+# ovsdb creates Openflow nodes/bridges. This configuration configures the bridge's Openflow version.
+# default Openflow version = 1.0, we also support 1.3.
+# ovsdb.of.version=1.3
+
+# TLS configuration
+# To enable TLS, set secureChannelEnabled=true and specify the location of controller Java KeyStore and TrustStore files.
+# The Java KeyStore contains controller's private key and certificate. The Java TrustStore contains the trusted certificate
+# entries, including switches' Certification Authority (CA) certificates. For example,
+# secureChannelEnabled=true
+# controllerKeyStore=./configuration/ctlKeyStore
+# controllerKeyStorePassword=xxxxxxxx (this password should match the password used for KeyStore generation and at least 6 characters)
+# controllerTrustStore=./configuration/ctlTrustStore
+# controllerTrustStorePassword=xxxxxxxx (this password should match the password used for TrustStore generation and at least 6 characters)
+
+secureChannelEnabled=false
+controllerKeyStore=
+controllerKeyStorePassword=
+controllerTrustStore=
+controllerTrustStorePassword=
+
+# User Manager configurations
+enableStrongPasswordCheck = false
+
+#Jolokia configurations
+org.jolokia.listenForHttpService=false
+
+# Logging configuration for Tomcat-JUL logging
+java.util.logging.config.file=configuration/tomcat-logging.properties
+
+#Hosttracker hostsdb key scheme setting
+hosttracker.keyscheme=IP
diff --git a/distributions/extra/toaster/src/main/resources/configuration/context.xml b/distributions/extra/toaster/src/main/resources/configuration/context.xml
new file mode 100644 (file)
index 0000000..90b9ddf
--- /dev/null
@@ -0,0 +1 @@
+<Context crossContext="true" sessionCookiePath="/" useHttpOnly="false"/>
diff --git a/distributions/extra/toaster/src/main/resources/configuration/initial/00-netty.xml b/distributions/extra/toaster/src/main/resources/configuration/initial/00-netty.xml
new file mode 100644 (file)
index 0000000..2365c70
--- /dev/null
@@ -0,0 +1,60 @@
+<snapshot>
+    <required-capabilities>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:netty?module=netty&amp;revision=2013-11-19</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:netty:eventexecutor?module=netty-event-executor&amp;revision=2013-11-12</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:netty:threadgroup?module=threadgroup&amp;revision=2013-11-07</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:netty:timer?module=netty-timer&amp;revision=2013-11-19</capability>
+    </required-capabilities>
+    <configuration>
+    
+        <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+            <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+                <module>
+                    <type xmlns:netty="urn:opendaylight:params:xml:ns:yang:controller:netty:threadgroup">netty:netty-threadgroup-fixed</type>
+                    <name>global-boss-group</name>
+                </module>
+                <module>
+                    <type xmlns:netty="urn:opendaylight:params:xml:ns:yang:controller:netty:threadgroup">netty:netty-threadgroup-fixed</type>
+                    <name>global-worker-group</name>
+                </module>
+                <module>
+                    <type xmlns:netty="urn:opendaylight:params:xml:ns:yang:controller:netty:timer">netty:netty-hashed-wheel-timer</type>
+                    <name>global-timer</name>
+                </module>
+                <module>
+                    <type xmlns:netty="urn:opendaylight:params:xml:ns:yang:controller:netty:eventexecutor">netty:netty-global-event-executor</type>
+                    <name>singleton</name>
+                </module>
+            </modules>
+            
+            <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+                <service>
+                    <type xmlns:netty="urn:opendaylight:params:xml:ns:yang:controller:netty">netty:netty-threadgroup</type>
+                    <instance>
+                        <name>global-boss-group</name>
+                        <provider>/modules/module[type='netty-threadgroup-fixed'][name='global-boss-group']</provider>
+                    </instance>
+                    <instance>
+                        <name>global-worker-group</name>
+                        <provider>/modules/module[type='netty-threadgroup-fixed'][name='global-worker-group']</provider>
+                    </instance>
+                </service>
+                <service>
+                    <type xmlns:netty="urn:opendaylight:params:xml:ns:yang:controller:netty">netty:netty-event-executor</type>
+                    <instance>
+                        <name>global-event-executor</name>
+                        <provider>/modules/module[type='netty-global-event-executor'][name='singleton']</provider>
+                    </instance>
+                </service>
+                <service>
+                    <type xmlns:netty="urn:opendaylight:params:xml:ns:yang:controller:netty">netty:netty-timer</type>
+                    <instance>
+                        <name>global-timer</name>
+                        <provider>/modules/module[type='netty-hashed-wheel-timer'][name='global-timer']</provider>
+                    </instance>
+                </service>
+            </services>
+        </data>
+
+    </configuration>
+</snapshot>
diff --git a/distributions/extra/toaster/src/main/resources/configuration/initial/01-md-sal.xml b/distributions/extra/toaster/src/main/resources/configuration/initial/01-md-sal.xml
new file mode 100644 (file)
index 0000000..36a5e98
--- /dev/null
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<snapshot>
+
+    <configuration>
+    
+        <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+            <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:schema-service-singleton</type>
+                    <name>yang-schema-service</name>
+                </module>
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:hash-map-data-store</type>
+                    <name>hash-map-data-store</name>
+                </module>
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:dom-broker-impl</type>
+                    <name>dom-broker</name>
+                    <data-store xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">
+                        <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-data-store</type>
+                        <!-- to switch to the clustered data store, comment out the hash-map-data-store <name> and uncomment the cluster-data-store one -->
+                        <name>hash-map-data-store</name>
+                        <!-- <name>cluster-data-store</name> -->
+                    </data-store>
+                </module>
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-broker-impl</type>
+                    <name>binding-broker-impl</name>
+                    <notification-service xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-notification-service</type>
+                        <name>binding-notification-broker</name>
+                    </notification-service>
+                    <data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-data-broker</type>
+                        <name>binding-data-broker</name>
+                    </data-broker>
+                </module>
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:runtime-generated-mapping</type>
+                    <name>runtime-mapping-singleton</name>
+                </module>
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-notification-broker</type>
+                    <name>binding-notification-broker</name>
+                </module>
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-data-broker</type>
+                    <name>binding-data-broker</name>
+                    <dom-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
+                        <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-broker-osgi-registry</type>
+                        <name>dom-broker</name>
+                    </dom-broker>
+                    <mapping-service xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type>
+                        <name>runtime-mapping-singleton</name>
+                    </mapping-service>
+                </module>
+                
+            </modules>
+            
+            <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+                       <service>
+                               <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>
+                               <instance>
+                                       <name>yang-schema-service</name>
+                                       <provider>/modules/module[type='schema-service-singleton'][name='yang-schema-service']</provider>
+                               </instance>
+                       </service>
+                       <service>
+                               <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-notification-service</type>
+                               <instance>
+                                       <name>binding-notification-broker</name>
+                                       <provider>/modules/module[type='binding-notification-broker'][name='binding-notification-broker']</provider>
+                               </instance>
+                       </service>
+                       <service>
+                               <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-data-store</type>
+                               <instance>
+                                       <name>hash-map-data-store</name>
+                                       <provider>/modules/module[type='hash-map-data-store'][name='hash-map-data-store']</provider>
+                               </instance>
+                       </service>
+                       <service>
+                               <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-broker-osgi-registry</type>
+                               <instance>
+                                       <name>binding-osgi-broker</name>
+                                       <provider>/modules/module[type='binding-broker-impl'][name='binding-broker-impl']</provider>
+                               </instance>
+                       </service>
+                       <service>
+                               <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-rpc-registry</type>
+                               <instance>
+                                       <name>binding-rpc-broker</name>
+                                       <provider>/modules/module[type='binding-broker-impl'][name='binding-broker-impl']</provider>
+                               </instance>
+                       </service>
+                       <service>
+                               <type xmlns:binding-impl="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding-impl:binding-dom-mapping-service</type>
+                               <instance>
+                                       <name>runtime-mapping-singleton</name>
+                                       <provider>/modules/module[type='runtime-generated-mapping'][name='runtime-mapping-singleton']</provider>
+                               </instance>
+                       </service>
+                       <service>
+                       <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-broker-osgi-registry</type>
+                               <instance>
+                                       <name>dom-broker</name>
+                                       <provider>/modules/module[type='dom-broker-impl'][name='dom-broker']</provider>
+                               </instance>
+                       </service>
+                       <service>
+                               <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-data-broker</type>
+                               <instance>
+                                       <name>binding-data-broker</name>
+                                       <provider>/modules/module[type='binding-data-broker'][name='binding-data-broker']</provider>
+                               </instance>
+                       </service>
+
+            </services>
+        </data>
+
+    </configuration>
+    
+    <required-capabilities>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:netty:eventexecutor?module=netty-event-executor&amp;revision=2013-11-12</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:threadpool?module=threadpool&amp;revision=2013-04-09</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding?module=opendaylight-md-sal-binding&amp;revision=2013-10-28</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom?module=opendaylight-md-sal-dom&amp;revision=2013-10-28</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl?module=opendaylight-sal-binding-broker-impl&amp;revision=2013-10-28</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl?module=opendaylight-sal-dom-broker-impl&amp;revision=2013-10-28</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:common?module=opendaylight-md-sal-common&amp;revision=2013-10-28</capability>
+    </required-capabilities>
+
+</snapshot>
+
diff --git a/distributions/extra/toaster/src/main/resources/configuration/initial/02-toaster.xml b/distributions/extra/toaster/src/main/resources/configuration/initial/02-toaster.xml
new file mode 100644 (file)
index 0000000..6f1faa2
--- /dev/null
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
+
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ and is available at http://www.eclipse.org/legal/epl-v10.html
+-->
+<snapshot>
+    <configuration>
+        <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+            <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+                <module>
+                    <type xmlns:toaster="urn:opendaylight:params:xml:ns:yang:controller:config:toaster-provider:impl">
+                        toaster:toaster-provider-impl
+                    </type>
+                    <name>toaster-provider-impl</name>
+
+                    <rpc-registry>
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-rpc-registry</type>
+                        <name>binding-rpc-broker</name>
+                    </rpc-registry>
+
+                    <data-broker>
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-data-broker</type>
+                        <name>binding-data-broker</name>
+                    </data-broker>
+
+                    <notification-service>
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
+                            binding:binding-notification-service
+                        </type>
+                        <name>binding-notification-broker</name>
+                    </notification-service>
+                </module>
+
+                <module>
+                    <type xmlns:kitchen="urn:opendaylight:params:xml:ns:yang:controller:config:kitchen-service:impl">
+                        kitchen:kitchen-service-impl
+                    </type>
+                    <name>kitchen-service-impl</name>
+
+                    <rpc-registry>
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-rpc-registry</type>
+                        <name>binding-rpc-broker</name>
+                    </rpc-registry>
+
+                    <notification-service>
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
+                            binding:binding-notification-service
+                        </type>
+                        <name>binding-notification-broker</name>
+                    </notification-service>
+                </module>
+            </modules>
+
+            <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+                <service>
+                    <type xmlns:kitchen="urn:opendaylight:params:xml:ns:yang:controller:config:kitchen-service:impl">
+                        kitchen:kitchen-service
+                    </type>
+                    <instance>
+                        <name>kitchen-service</name>
+                        <provider>/modules/module[type='kitchen-service-impl'][name='kitchen-service-impl']</provider>
+                    </instance>
+                </service>
+            </services>
+        </data>
+
+    </configuration>
+
+    <required-capabilities>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:config:kitchen-service:impl?module=kitchen-service-impl&amp;revision=2014-01-31</capability>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:config:toaster-provider:impl?module=toaster-provider-impl&amp;revision=2014-01-31</capability>
+    </required-capabilities>
+
+</snapshot>
diff --git a/distributions/extra/toaster/src/main/resources/configuration/logback.xml b/distributions/extra/toaster/src/main/resources/configuration/logback.xml
new file mode 100644 (file)
index 0000000..88f7577
--- /dev/null
@@ -0,0 +1,99 @@
+ <configuration scan="true">
+
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <encoder>
+      <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level %logger{36} - %msg%n</pattern>
+    </encoder>
+  </appender>
+  <appender name="opendaylight.log" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <file>logs/opendaylight.log</file>
+
+    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+      <fileNamePattern>logs/opendaylight.%d.log.zip</fileNamePattern>
+      <maxHistory>1</maxHistory>
+    </rollingPolicy>
+
+    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+      <maxFileSize>10MB</maxFileSize>
+    </triggeringPolicy>
+
+    <encoder>
+      <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level %logger{35} - %msg%n</pattern>
+    </encoder>
+  </appender>
+  <appender name="audit-file" class="ch.qos.logback.core.FileAppender">
+        <file>logs/audit.log</file>
+        <append>true</append>
+        <encoder>
+            <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} %msg %n</pattern>
+        </encoder>
+  </appender>
+  <root level="error">
+    <appender-ref ref="STDOUT" />
+    <appender-ref ref="opendaylight.log" />
+  </root>
+
+  <!--  Base log level  -->
+  <logger name="org.opendaylight" level="INFO"/>
+
+
+  <!-- Controller log level -->
+  <logger name="org.opendaylight.controller" level="INFO"/>
+
+  <!-- OSGi logging bridge -->
+  <logger name="org.opendaylight.controller.logging.bridge" level="WARN"/>
+  <logger name="org.opendaylight.controller.logging.bridge.internal" level="WARN"/>
+
+  <!-- Netty -->
+  <logger name="io.netty" level="WARN"/>
+
+  <!-- Openflow Protocol Plugin -->
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow" level="INFO"/>
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.DiscoveryService" level="INFO"/>
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.InventoryService" level="INFO"/>
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.InventoryServiceShim" level="INFO"/>
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.TopologyServices" level="INFO"/>
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.TopologyServiceShim" level="INFO"/>
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow.core.internal.Controller" level="INFO"/>
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow.core.internal.SwitchHandler" level="INFO"/>
+  <logger name="org.opendaylight.controller.protocol_plugin.openflow.core.internal.SwitchIOSecureService" level="INFO"/>
+  <!-- SAL  -->
+  <logger name="org.opendaylight.controller.sal" level="INFO"/>
+  <logger name="org.opendaylight.controller.sal.implementation" level="INFO"/>
+  <logger name="org.opendaylight.controller.sal.implementation.internal.Inventory" level="INFO"/>
+  <logger name="org.opendaylight.controller.sal.implementation.internal.Topology" level="INFO"/>
+     <!-- remoterpc router and remoterpc routing table -->
+  <logger name="org.opendaylight.controller.sal.connector.remoterpc" level="INFO" />
+  <!-- Functional Modules -->
+  <logger name="org.opendaylight.controller.arphandler" level="INFO"/>
+  <logger name="org.opendaylight.controller.hosttracker" level="INFO"/>
+  <logger name="org.opendaylight.controller.routing" level="INFO"/>
+  <logger name="org.opendaylight.controller.forwardingrulesmanager" level="INFO"/>
+  <logger name="org.opendaylight.controller.forwarding.ipswitch" level="INFO"/>
+  <logger name="org.opendaylight.controller.switchmanager" level="INFO"/>
+  <logger name="org.opendaylight.controller.topologymanager" level="INFO"/>
+  <logger name="org.opendaylight.controller.usermanager" level="INFO"/>
+  <!-- Web modules -->
+  <logger name="org.opendaylight.controller.web" level="INFO"/>
+
+  <!--
+       Unsynchronized controller startup causes models to crop up in random
+       order, which results in temporary inability to fully resolve a model,
+       which is usually resolved. Do not flood console, but keep the messages,
+       as they may be indicating and error.
+  -->
+  <logger name="org.opendaylight.yangtools.yang.parser.util.ModuleDependencySort" level="INFO" additivity="false">
+    <appender-ref ref="opendaylight.log"/>
+  </logger>
+
+  <!-- To debug MD-SAL schema loading issues, uncomment this -->
+  <!--logger name="org.opendaylight.yangtools.yang.parser.impl.util.URLSchemaContextResolver" level="DEBUG"/>
+  <logger name="org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl" level="TRACE"/-->
+
+  <logger name="org.opendaylight.controller.sample.toaster" level="TRACE"/>
+
+  <!-- additivity=false ensures analytics data only goes to the analytics log -->
+  <logger name="audit" level="INFO" additivity="false">
+       <appender-ref ref="audit-file"/>
+  </logger>
+</configuration>
diff --git a/distributions/extra/toaster/src/main/resources/configuration/startup/README b/distributions/extra/toaster/src/main/resources/configuration/startup/README
new file mode 100644 (file)
index 0000000..2da70ff
--- /dev/null
@@ -0,0 +1 @@
+Directory where the opendaylight controller modules store their configuration files
diff --git a/distributions/extra/toaster/src/main/resources/configuration/tomcat-logging.properties b/distributions/extra/toaster/src/main/resources/configuration/tomcat-logging.properties
new file mode 100644 (file)
index 0000000..3dbd992
--- /dev/null
@@ -0,0 +1,42 @@
+############################################################
+# Configuration file for tomcat logging
+############################################################
+# Handlers:
+# "handlers" specifies a comma separated list of log Handler
+# classes.  These handlers will be installed during VM startup.
+# Note that these classes must be on the system classpath.
+# Following line configures a ConsoleHandler and a FileHandler
+
+handlers= java.util.logging.FileHandler,java.util.logging.ConsoleHandler
+
+############################################################
+# Handler specific properties
+# Describes specific configuration info for Handlers
+# JUL does not support rolling file handler based on date
+# For now we will keep count of files to 5 with rolling size of 10MB
+############################################################
+
+java.util.logging.FileHandler.pattern = logs/tomcat%g.log
+java.util.logging.FileHandler.limit = 104857600
+java.util.logging.FileHandler.count = 5
+java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
+java.util.logging.FileHandler.append = true
+java.util.logging.FileHandler.level = INFO
+
+# Limit the message that are printed on the console to SEVERE and above.
+java.util.logging.ConsoleHandler.level = WARNING
+java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
+
+# SimpleFormatter output format to print one-line log message like this:
+# <YYYY>-<MM>-<DD> <HH>:<MM>:<SS> <TimeZone> [<SOURCE>] ><LOG_LEVEL> <LOGGER> <MESSAGE> <THROWABLE>
+#
+java.util.logging.SimpleFormatter.format=%1$tF %1$tT %1$tZ [%3$s] %4$s %2$s %5$s%6$s%n
+
+############################################################
+# Facility specific properties.
+# Provides extra control for each logger.
+############################################################
+
+# For example, set the com.xyz.foo logger to only log SEVERE
+# messages
+#org.apache.catalina = SEVERE
diff --git a/distributions/extra/toaster/src/main/resources/configuration/tomcat-server.xml b/distributions/extra/toaster/src/main/resources/configuration/tomcat-server.xml
new file mode 100644 (file)
index 0000000..32dce77
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<Server>
+  <!--APR library loader. Documentation at /docs/apr.html -->
+  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
+  <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
+  <Listener className="org.apache.catalina.core.JasperListener" />
+  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
+  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
+  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
+  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
+
+  <Service name="Catalina">
+    <Connector port="8080" protocol="HTTP/1.1"
+               connectionTimeout="20000"
+               redirectPort="8443" />
+
+<!--
+        Please remove the comments around the following Connector tag to enable HTTPS Authentication support.
+        Remember to add a valid keystore in the configuration folder.
+        More info : http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html#Configuration
+-->
+
+ <!--
+    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
+               maxThreads="150" scheme="https" secure="true"
+               clientAuth="false" sslProtocol="TLS"
+               keystoreFile="configuration/keystore"
+               keystorePass="changeit"/>
+ -->
+
+    <Engine name="Catalina" defaultHost="localhost">
+      <Host name="localhost" appBase=""
+            unpackWARs="false" autoDeploy="false"
+            deployOnStartup="false" createDirs="false">
+        <!--Realm className="org.opendaylight.controller.security.ControllerCustomRealm" /-->
+            <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
+
+        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
+                        prefix="web_access_log_" suffix=".txt" resolveHosts="false"
+                        rotatable="true" fileDateFormat="yyyy-MM"
+                        pattern="%{yyyy-MM-dd HH:mm:ss.SSS z}t - [%a] - %r"/>
+
+      </Host>
+    </Engine>
+  </Service>
+</Server>
diff --git a/distributions/extra/toaster/src/main/resources/run.bat b/distributions/extra/toaster/src/main/resources/run.bat
new file mode 100644 (file)
index 0000000..9d6ac8d
--- /dev/null
@@ -0,0 +1,150 @@
+@ECHO OFF
+SETLOCAL ENABLEDELAYEDEXPANSION
+
+IF NOT EXIST "%JAVA_HOME%" (
+    ECHO JAVA_HOME environment variable is not set
+    EXIT /B 2
+)
+
+SET basedir=%~dp0
+SET debugport=8000
+SET consoleport=2400
+SET jmxport=1088
+SET extraJVMOpts=
+SET consoleOpts=-console -consoleLog
+SET PID=
+
+:LOOP
+IF "%~1" NEQ "" (
+    SET CARG=%~1
+    IF "!CARG!"=="-debug" (
+       SET debugEnabled=true
+       SHIFT
+       GOTO :LOOP
+    )
+    IF "!CARG!"=="-debugsuspend" (
+       SET debugEnabled=true
+       SET debugSuspended=true
+       SHIFT
+       GOTO :LOOP
+    )
+    IF "!CARG!"=="-debugport" (
+       SET debugEnabled=true
+       SET debugport=%~2
+       SHIFT & SHIFT
+       GOTO :LOOP
+    )
+    IF "!CARG!"=="-jmx" (
+       SET jmxEnabled=true
+       SHIFT
+       GOTO :LOOP
+    )
+    IF "!CARG!"=="-jmxport" (
+       SET jmxEnabled=true
+       SET jmxport=%~2
+       SHIFT & SHIFT
+       GOTO :LOOP
+    )
+    IF "!CARG!"=="-start" (
+       SET startEnabled=true
+       SHIFT
+       GOTO :LOOP
+    )
+    IF "!CARG!"=="-consoleport" (
+       SET consoleport=%~2
+       SHIFT & SHIFT
+       GOTO :LOOP
+    )
+    IF "!CARG!"=="-console" (
+       SHIFT
+       GOTO :LOOP
+    )
+    IF "!CARG!"=="-status" (
+       for /F "TOKENS=1" %%G in ('%JAVA_HOME%\bin\jps.exe -lvV ^| find /I "opendaylight"') do (
+           set PID=%%G
+       )
+       if "!PID!" NEQ "" (
+           ECHO Controller is running with PID !PID!
+       ) else (
+           ECHO Controller is not running.
+       )
+       GOTO :EOF
+    )
+    IF "!CARG!"=="-stop" (
+       for /F "TOKENS=1" %%G in ('%JAVA_HOME%\bin\jps.exe -lvV ^| find /I "opendaylight"') do (
+           set PID=%%G
+       )
+       if "!PID!" NEQ "" (
+           ECHO Stopping controller PID !PID!
+           TASKKILL /F /PID !PID!
+       ) else (
+           ECHO Controller is not running.
+       )
+       GOTO :EOF
+    )
+    IF "!CARG:~0,2!"=="-D" (
+       SET extraJVMOpts=%extraJVMOpts% !CARG!
+       SHIFT
+       GOTO :LOOP
+    )
+    IF "!CARG:~0,2!"=="-X" (
+       SET extraJVMOpts=%extraJVMOpts% !CARG!
+       SHIFT
+       GOTO :LOOP
+    )
+    IF "!CARG!"=="-help" (
+        ECHO "Usage: %0 [-jmx] [-jmxport <num>] [-debug] [-debugsuspend] [-debugport <num>] [-start] [-consoleport <num>]] [-stop] [-status] [-console] [-help] [<other args will automatically be used for the JVM>]"
+        ECHO Note: Enclose any JVM or System properties within double quotes.
+        GOTO :EOF
+    )
+
+    ECHO "Unknown option: !CARG!"
+    EXIT /B 1
+)
+
+IF "%debugEnabled%" NEQ "" (
+    REM ECHO "DEBUG enabled"
+    SET extraJVMOpts=%extraJVMOpts% -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=%debugport%
+)
+IF "%debugSuspended%" NEQ "" (
+    REM ECHO "DEBUG enabled suspended"
+    SET extraJVMOpts=%extraJVMOpts% -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=%debugport%
+)
+IF "%jmxEnabled%" NEQ "" (
+    REM ECHO "JMX enabled "
+    SET extraJVMOpts=%extraJVMOpts% -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=%jmxport% -Dcom.sun.management.jmxremote
+)
+IF "%startEnabled%" NEQ "" (
+    REM ECHO "START enabled "
+    SET consoleOpts=-console %consoleport% -consoleLog
+)
+
+REM       Check if controller is already running
+for /F "TOKENS=1" %%G in ('%JAVA_HOME%\bin\jps.exe -lvV ^| find /I "opendaylight"') do (
+    SET PID=%%G
+)
+if "!PID!" NEQ "" (
+   ECHO Controller is already running with PID !PID!
+   EXIT /B 1
+)
+
+
+REM       Now set the classpath:
+SET cp="%basedir%lib\org.eclipse.osgi-3.8.1.v20120830-144521.jar;%basedir%lib\org.eclipse.virgo.kernel.equinox.extensions-3.6.0.RELEASE.jar;%basedir%lib\org.eclipse.equinox.launcher-1.3.0.v20120522-1813.jar"
+
+REM       Now set framework classpath
+SET fwcp="file:\%basedir%lib\org.eclipse.osgi-3.8.1.v20120830-144521.jar,file:\%basedir%lib\org.eclipse.virgo.kernel.equinox.extensions-3.6.0.RELEASE.jar,file:\%basedir%lib\org.eclipse.equinox.launcher-1.3.0.v20120522-1813.jar"
+
+SET RUN_CMD="%JAVA_HOME%\bin\java.exe" -Dopendaylight.controller %extraJVMOpts% -Djava.io.tmpdir="%basedir%work\tmp" -Djava.awt.headless=true -Dosgi.install.area=%basedir% -Dosgi.configuration.area="%basedir%configuration" -Dosgi.frameworkClassPath=%fwcp% -Dosgi.framework="file:\%basedir%lib\org.eclipse.osgi-3.8.1.v20120830-144521.jar" -classpath %cp% org.eclipse.equinox.launcher.Main %consoleOpts%
+
+ECHO %RUN_CMD%
+
+if "%startEnabled%" NEQ "" (
+    START /B cmd /C CALL %RUN_CMD% > %basedir%\logs\controller.out 2>&1
+    ECHO Running controller in the background.
+) else (
+    %RUN_CMD%
+    EXIT /B %ERRORLEVEL%
+)
+
+
diff --git a/distributions/extra/toaster/src/main/resources/run.sh b/distributions/extra/toaster/src/main/resources/run.sh
new file mode 100755 (executable)
index 0000000..90e3b03
--- /dev/null
@@ -0,0 +1,240 @@
+#!/bin/bash
+
+platform='unknown'
+unamestr=`uname`
+if [[ "$unamestr" == 'Linux' ]]; then
+   platform='linux'
+elif [[ "$unamestr" == 'Darwin' ]]; then
+   platform='osx'
+fi
+
+if [[ $platform == 'linux' ]]; then
+   fullpath=`readlink -f $0`
+
+   if [[ -z ${JAVA_HOME} ]]; then
+      # Find the actual location of the Java launcher:
+      java_launcher=`which java`
+      java_launcher=`readlink -f "${java_launcher}"`
+
+      # Compute the Java home from the location of the Java launcher:
+      export JAVA_HOME="${java_launcher%/bin/java}"
+    fi
+elif [[ $platform == 'osx' ]]; then
+   TARGET_FILE=$0
+   cd `dirname "$TARGET_FILE"`
+   TARGET_FILE=`basename $TARGET_FILE`
+
+   # Iterate down a (possible) chain of symlinks
+   while [ -L "$TARGET_FILE" ]
+   do
+       TARGET_FILE=`readlink "$TARGET_FILE"`
+       cd `dirname "$TARGET_FILE"`
+       TARGET_FILE=`basename "$TARGET_FILE"`
+   done
+
+   # Compute the canonicalized name by finding the physical path
+   # for the directory we're in and appending the target file.
+   PHYS_DIR=`pwd -P`
+   RESULT=$PHYS_DIR/$TARGET_FILE
+   fullpath=$RESULT
+
+   [[ -z ${JAVA_HOME} ]] && [[ -x "/usr/libexec/java_home" ]] && export JAVA_HOME=`/usr/libexec/java_home -v 1.7`;
+
+fi
+
+[[ -z ${JAVA_HOME} ]] && echo "Need to set JAVA_HOME environment variable" && exit -1;
+[[ ! -x ${JAVA_HOME}/bin/java ]] && echo "Cannot find an executable \
+JVM at path ${JAVA_HOME}/bin/java check your JAVA_HOME" && exit -1;
+
+if [ -z ${ODL_BASEDIR} ]; then
+    basedir=`dirname "${fullpath}"`
+else
+    basedir=${ODL_BASEDIR}
+fi
+
+if [ -z ${ODL_DATADIR} ]; then
+    datadir=`dirname "${fullpath}"`
+else
+    datadir=${ODL_DATADIR}
+fi
+
+function usage {
+    echo "Usage: $0 [-jmx] [-jmxport <num>] [-debug] [-debugsuspend] [-debugport <num>] [-start [<console port>]] [-stop] [-status] [-console] [-help] [<other args will automatically be used for the JVM>]"
+    exit 1
+}
+
+if [ -z ${TMP} ]; then
+    pidfile="/tmp/opendaylight.PID"
+else
+    pidfile="${TMP}/opendaylight.PID"
+fi
+debug=0
+debugsuspend=0
+debugport=8000
+debugportread=""
+startdaemon=0
+daemonport=2400
+daemonportread=""
+jmxport=1088
+jmxportread=""
+startjmx=0
+stopdaemon=0
+statusdaemon=0
+consolestart=1
+dohelp=0
+extraJVMOpts=""
+unknown_option=0
+while true ; do
+    case "$1" in
+        -debug) debug=1; shift ;;
+        -jmx) startjmx=1; shift ;;
+        -debugsuspend) debugsuspend=1; shift ;;
+        -debugport) shift; debugportread="$1"; if [[ "${debugportread}" =~ ^[0-9]+$ ]] ; then debugport=${debugportread}; shift; else echo "-debugport expects a number but was not found"; exit -1; fi;;
+        -jmxport) shift; jmxportread="$1"; if [[ "${jmxportread}" =~ ^[0-9]+$ ]] ; then jmxport=${jmxportread}; shift; else echo "-jmxport expects a number but was not found"; exit -1; fi;;
+        -start) startdaemon=1; shift; daemonportread="$1"; if [[ "${daemonportread}" =~ ^[0-9]+$ ]] ; then daemonport=${daemonportread}; shift; fi;;
+        -stop) stopdaemon=1; shift ;;
+        -status) statusdaemon=1; shift ;;
+        -console) shift ;;
+        -help) dohelp=1; shift;;
+        -D*) extraJVMOpts="${extraJVMOpts} $1"; shift;;
+        -X*) extraJVMOpts="${extraJVMOpts} $1"; shift;;
+        "") break ;;
+        *) echo "Unknown option $1"; unknown_option=1; shift ;;
+    esac
+done
+
+# Unknown Options and help
+if [ "${unknown_option}" -eq 1 ]; then
+    usage
+fi
+
+if [ "${dohelp}" -eq 1 ]; then
+    usage
+fi
+
+# Validate debug port
+if [[ "${debugport}" -lt 1024 ]] || [[ "${debugport}" -gt 65535 ]]; then
+    echo "Debug Port not in the range [1024,65535] ${debugport}"
+    exit -1
+fi
+
+# Validate daemon console port
+if [[ "${daemonport}" -lt 1024 ]] || [[ "${daemonport}" -gt 65535 ]]; then
+    echo "Daemon console Port not in the range [1024,65535] value is ${daemonport}"
+    exit -1
+fi
+
+# Validate jmx port
+if [[ "${jmxport}" -lt 1024 ]] || [[ "${jmxport}" -gt 65535 ]]; then
+    echo "JMX Port not in the range [1024,65535] value is ${jmxport}"
+    exit -1
+fi
+
+# Debug options
+if [ "${debugsuspend}" -eq 1 ]; then
+    extraJVMOpts="${extraJVMOpts} -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=${debugport}"
+elif [ "${debug}" -eq 1 ]; then
+    extraJVMOpts="${extraJVMOpts} -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=${debugport}"
+fi
+
+# Add JMX support
+if [ "${startjmx}" -eq 1 ]; then
+    extraJVMOpts="${extraJVMOpts} -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=${jmxport} -Dcom.sun.management.jmxremote"
+fi
+
+########################################
+# Now add to classpath the OSGi JAR
+########################################
+CLASSPATH="${basedir}"/lib/org.eclipse.osgi-3.8.1.v20120830-144521.jar
+FWCLASSPATH=file:"${basedir}"/lib/org.eclipse.osgi-3.8.1.v20120830-144521.jar
+
+########################################
+# Now add the extensions
+########################################
+
+# Extension 1: this is used to be able to convert all the
+# bundleresouce: URL in file: so packages that are not OSGi ready can
+# still work. Notably this is the case for spring classes
+CLASSPATH=${CLASSPATH}:${basedir}/lib/org.eclipse.virgo.kernel.equinox.extensions-3.6.0.RELEASE.jar
+FWCLASSPATH=${FWCLASSPATH},file:${basedir}/lib/org.eclipse.virgo.kernel.equinox.extensions-3.6.0.RELEASE.jar
+
+########################################
+# Now add the launcher
+########################################
+CLASSPATH=${CLASSPATH}:${basedir}/lib/org.eclipse.equinox.launcher-1.3.0.v20120522-1813.jar
+FWCLASSPATH=${FWCLASSPATH},file:${basedir}/lib/org.eclipse.equinox.launcher-1.3.0.v20120522-1813.jar
+
+cd $basedir
+
+if [ "${stopdaemon}" -eq 1 ]; then
+    if [ -e "${pidfile}" ]; then
+        daemonpid=`cat "${pidfile}"`
+        kill "${daemonpid}"
+        rm -f "${pidfile}"
+        echo "Controller with PID: ${daemonpid} -- Stopped!"
+        exit 0
+    else
+        echo "Doesn't seem any Controller daemon is currently running"
+        exit -1
+    fi
+fi
+
+if [ "${statusdaemon}" -eq 1 ]; then
+    if [ -e "${pidfile}" ]; then
+        daemonpid=`cat "${pidfile}"`
+        ps -p ${daemonpid} > /dev/null
+        daemonexists=$?
+        if [ "${daemonexists}" -eq 0 ]; then
+            echo "Controller with PID: ${daemonpid} -- Running!"
+            exit 0
+        else
+            echo "Controller with PID: ${daemonpid} -- Doesn't seem to exist"
+            rm -f "${pidfile}"
+            exit 1
+        fi
+    else
+        echo "Doesn't seem any Controller daemon is currently running, at least no PID file has been found"
+        exit -1
+    fi
+fi
+
+iotmpdir=`echo "${datadir}" | sed 's/ /\\ /g'`
+bdir=`echo "${basedir}" | sed 's/ /\\ /g'`
+confarea=`echo "${datadir}" | sed 's/ /\\ /g'`
+fwclasspath=`echo "${FWCLASSPATH}" | sed 's/ /\\ /g'`
+
+if [ "${startdaemon}" -eq 1 ]; then
+    if [ -e "${pidfile}" ]; then
+        echo "Another instance of controller running, check with $0 -status"
+        exit -1
+    fi
+    $JAVA_HOME/bin/java ${extraJVMOpts} \
+        -Djava.io.tmpdir="${iotmpdir}/work/tmp" \
+        -Dosgi.install.area="${bdir}" \
+        -Dosgi.configuration.area="${confarea}/configuration" \
+        -Dosgi.frameworkClassPath="${fwclasspath}" \
+        -Dosgi.framework=file:"${bdir}/lib/org.eclipse.osgi-3.8.1.v20120830-144521.jar" \
+        -Djava.awt.headless=true \
+        -classpath "${CLASSPATH}" \
+        org.eclipse.equinox.launcher.Main \
+        -console ${daemonport} \
+        -consoleLog &
+    daemonpid=$!
+    echo ${daemonpid} > ${pidfile}
+elif [ "${consolestart}" -eq 1 ]; then
+    if [ -e "${pidfile}" ]; then
+        echo "Another instance of controller running, check with $0 -status"
+        exit -1
+    fi
+    $JAVA_HOME/bin/java ${extraJVMOpts} \
+        -Djava.io.tmpdir="${iotmpdir}/work/tmp" \
+        -Dosgi.install.area="${bdir}" \
+        -Dosgi.configuration.area="${confarea}/configuration" \
+        -Dosgi.frameworkClassPath="${fwclasspath}" \
+        -Dosgi.framework=file:"${bdir}/lib/org.eclipse.osgi-3.8.1.v20120830-144521.jar" \
+        -Djava.awt.headless=true \
+        -classpath "${CLASSPATH}" \
+        org.eclipse.equinox.launcher.Main \
+        -console \
+        -consoleLog
+fi
diff --git a/distributions/extra/toaster/src/main/resources/version.properties b/distributions/extra/toaster/src/main/resources/version.properties
new file mode 100644 (file)
index 0000000..90af49d
--- /dev/null
@@ -0,0 +1,6 @@
+org.opendaylight.controller.version = 0.1
+org.opendaylight.controller.build.scm.version = ${buildNumber}
+org.opendaylight.controller.build.user = ${env.USER}
+org.opendaylight.controller.build.workspace = **********
+org.opendaylight.controller.build.timestamp = ${timestamp}
+org.opendaylight.controller.build.machine = **********
index 5511f1fe4a4616a4f432871eba316054848f06e7..6ae66d3a3732a0d41c3eeb5bbc6ea99c45c5474d 100644 (file)
@@ -17,6 +17,7 @@
     <module>base/</module>
     <module>virtualization/</module>
     <module>serviceprovider/</module>
+    <module>extra/toaster</module>
   </modules>
   <profiles>
     <profile>