summaryrefslogtreecommitdiffstats
path: root/framework/src/onos/core/api/src/main/java/org/onosproject/app
diff options
context:
space:
mode:
authorAshlee Young <ashlee@onosfw.com>2015-09-09 22:15:21 -0700
committerAshlee Young <ashlee@onosfw.com>2015-09-09 22:15:21 -0700
commit13d05bc8458758ee39cb829098241e89616717ee (patch)
tree22a4d1ce65f15952f07a3df5af4b462b4697cb3a /framework/src/onos/core/api/src/main/java/org/onosproject/app
parent6139282e1e93c2322076de4b91b1c85d0bc4a8b3 (diff)
ONOS checkin based on commit tag e796610b1f721d02f9b0e213cf6f7790c10ecd60
Change-Id: Ife8810491034fe7becdba75dda20de4267bd15cd
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/app')
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationAdminService.java70
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationDescription.java89
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationEvent.java75
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationException.java49
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationListener.java24
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationService.java70
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationState.java33
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationStore.java108
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationStoreDelegate.java24
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/app/DefaultApplicationDescription.java125
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/app/package-info.java20
11 files changed, 687 insertions, 0 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationAdminService.java b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationAdminService.java
new file mode 100644
index 00000000..3713e218
--- /dev/null
+++ b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationAdminService.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed 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.
+ */
+package org.onosproject.app;
+
+import org.onosproject.core.Application;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.security.Permission;
+
+import java.io.InputStream;
+import java.util.Set;
+
+/**
+ * Service for managing network control applications.
+ */
+public interface ApplicationAdminService extends ApplicationService {
+
+ /**
+ * Installs the application contained in the specified application archive
+ * input stream. This can be either a ZIP stream containing a compressed
+ * application archive or a plain XML stream containing just the
+ * {@code app.xml} application descriptor file.
+ *
+ * @param appDescStream application descriptor input stream
+ * @return installed application descriptor
+ * @throws org.onosproject.app.ApplicationException if unable to read the app archive stream
+ */
+ Application install(InputStream appDescStream);
+
+ /**
+ * Uninstalls the specified application.
+ *
+ * @param appId application identifier
+ */
+ void uninstall(ApplicationId appId);
+
+ /**
+ * Activates the specified application.
+ *
+ * @param appId application identifier
+ */
+ void activate(ApplicationId appId);
+
+ /**
+ * Deactivates the specified application.
+ *
+ * @param appId application identifier
+ */
+ void deactivate(ApplicationId appId);
+
+ /**
+ * Updates the permissions granted to the applications.
+ *
+ * @param appId application identifier
+ * @param permissions set of granted permissions
+ */
+ void setPermissions(ApplicationId appId, Set<Permission> permissions);
+}
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationDescription.java b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationDescription.java
new file mode 100644
index 00000000..2561280b
--- /dev/null
+++ b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationDescription.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed 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.
+ */
+package org.onosproject.app;
+
+import org.onosproject.core.ApplicationRole;
+import org.onosproject.core.Version;
+import org.onosproject.security.Permission;
+
+import java.net.URI;
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
+
+/**
+ * Description of a network control/management application.
+ */
+public interface ApplicationDescription {
+
+ /**
+ * Returns the application name id.
+ *
+ * @return application identifier
+ */
+ String name();
+
+ /**
+ * Returns the application version.
+ *
+ * @return application version
+ */
+ Version version();
+
+ /**
+ * Returns description of the application.
+ *
+ * @return application description text
+ */
+ String description();
+
+ /**
+ * Returns the name of the application origin, group or company.
+ *
+ * @return application origin
+ */
+ String origin();
+
+ /**
+ * Returns the role of the application.
+ *
+ * @return application role
+ */
+ ApplicationRole role();
+
+ /**
+ * Returns the permissions requested by the application.
+ *
+ * @return requested permissions
+ */
+ Set<Permission> permissions();
+
+ /**
+ * Returns the feature repository URI. Null value signifies that the
+ * application did not provide its own features repository.
+ *
+ * @return optional feature repo URL
+ */
+ Optional<URI> featuresRepo();
+
+ /**
+ * Returns the list of features comprising the application. At least one
+ * feature must be given.
+ *
+ * @return application features
+ */
+ List<String> features();
+}
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationEvent.java b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationEvent.java
new file mode 100644
index 00000000..5bf1323d
--- /dev/null
+++ b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationEvent.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed 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.
+ */
+package org.onosproject.app;
+
+import org.onosproject.core.Application;
+import org.onosproject.event.AbstractEvent;
+
+/**
+ * Describes application lifecycle event.
+ */
+public class ApplicationEvent extends AbstractEvent<ApplicationEvent.Type, Application> {
+
+ public enum Type {
+ /**
+ * Signifies that an application has been installed.
+ */
+ APP_INSTALLED,
+
+ /**
+ * Signifies that an application has been activated.
+ */
+ APP_ACTIVATED,
+
+ /**
+ * Signifies that an application has been deactivated.
+ */
+ APP_DEACTIVATED,
+
+ /**
+ * Signifies that an application has been uninstalled.
+ */
+ APP_UNINSTALLED,
+
+ /**
+ * Signifies that application granted permissions have changed.
+ */
+ APP_PERMISSIONS_CHANGED
+ }
+
+ /**
+ * Creates an event of a given type and for the specified app and the
+ * current time.
+ *
+ * @param type app event type
+ * @param app event app subject
+ */
+ public ApplicationEvent(Type type, Application app) {
+ super(type, app);
+ }
+
+ /**
+ * Creates an event of a given type and for the specified app and time.
+ *
+ * @param type app event type
+ * @param app event app subject
+ * @param time occurrence time
+ */
+ public ApplicationEvent(Type type, Application app, long time) {
+ super(type, app, time);
+ }
+
+}
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationException.java b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationException.java
new file mode 100644
index 00000000..2888c70b
--- /dev/null
+++ b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationException.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed 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.
+ */
+package org.onosproject.app;
+
+/**
+ * Represents class of errors related to application management.
+ */
+public class ApplicationException extends RuntimeException {
+
+ private static final long serialVersionUID = -2287403908433720122L;
+
+ /**
+ * Constructs an exception with no message and no underlying cause.
+ */
+ public ApplicationException() {
+ }
+
+ /**
+ * Constructs an exception with the specified message.
+ *
+ * @param message the message describing the specific nature of the error
+ */
+ public ApplicationException(String message) {
+ super(message);
+ }
+
+ /**
+ * Constructs an exception with the specified message and the underlying cause.
+ *
+ * @param message the message describing the specific nature of the error
+ * @param cause the underlying cause of this error
+ */
+ public ApplicationException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationListener.java b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationListener.java
new file mode 100644
index 00000000..7a680572
--- /dev/null
+++ b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationListener.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed 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.
+ */
+package org.onosproject.app;
+
+import org.onosproject.event.EventListener;
+
+/**
+ * Entity capable of receiving application related events.
+ */
+public interface ApplicationListener extends EventListener<ApplicationEvent> {
+}
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationService.java b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationService.java
new file mode 100644
index 00000000..73dcc86c
--- /dev/null
+++ b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationService.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed 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.
+ */
+package org.onosproject.app;
+
+import org.onosproject.core.Application;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.event.ListenerService;
+import org.onosproject.security.Permission;
+
+import java.util.Set;
+
+/**
+ * Service for inspecting inventory of network control applications.
+ */
+public interface ApplicationService
+ extends ListenerService<ApplicationEvent, ApplicationListener> {
+
+ /**
+ * Returns the set of all installed applications.
+ *
+ * @return set of installed apps
+ */
+ Set<Application> getApplications();
+
+ /**
+ * Returns the registered id of the application with the given name.
+ *
+ * @param name application name
+ * @return registered application id
+ */
+ ApplicationId getId(String name);
+
+ /**
+ * Returns the application with the supplied application identifier.
+ *
+ * @param appId application identifier
+ * @return application descriptor
+ */
+ Application getApplication(ApplicationId appId);
+
+ /**
+ * Return the application state.
+ *
+ * @param appId application identifier
+ * @return application state
+ */
+ ApplicationState getState(ApplicationId appId);
+
+ /**
+ * Returns the permissions currently granted to the applications.
+ *
+ * @param appId application identifier
+ * @return set of granted permissions
+ */
+ Set<Permission> getPermissions(ApplicationId appId);
+
+}
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationState.java b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationState.java
new file mode 100644
index 00000000..c480a0c7
--- /dev/null
+++ b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationState.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed 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.
+ */
+package org.onosproject.app;
+
+/**
+ * Representation of an application state.
+ */
+public enum ApplicationState {
+
+ /**
+ * Indicates that application has been installed, but is not running.
+ */
+ INSTALLED,
+
+ /**
+ * Indicates that application is active.
+ */
+ ACTIVE
+
+}
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationStore.java b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationStore.java
new file mode 100644
index 00000000..b3cdc43e
--- /dev/null
+++ b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationStore.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed 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.
+ */
+package org.onosproject.app;
+
+import org.onosproject.core.Application;
+import org.onosproject.core.ApplicationId;
+import org.onosproject.security.Permission;
+import org.onosproject.store.Store;
+
+import java.io.InputStream;
+import java.util.Set;
+
+/**
+ * Service for managing network control applications.
+ */
+public interface ApplicationStore extends Store<ApplicationEvent, ApplicationStoreDelegate> {
+
+ /**
+ * Returns the set of all installed applications.
+ *
+ * @return set of installed apps
+ */
+ Set<Application> getApplications();
+
+ /**
+ * Returns the registered id of the application with the given name.
+ *
+ * @param name application name
+ * @return registered application id
+ */
+ ApplicationId getId(String name);
+
+ /**
+ * Returns the application with the supplied application identifier.
+ *
+ * @param appId application identifier
+ * @return application descriptor
+ */
+ Application getApplication(ApplicationId appId);
+
+ /**
+ * Returns the current application state.
+ *
+ * @param appId application identifier
+ * @return application state
+ */
+ ApplicationState getState(ApplicationId appId);
+
+ /**
+ * Creates the application from the specified application descriptor
+ * input stream.
+ *
+ * @param appDescStream application archive input stream
+ * @return application descriptor
+ */
+ Application create(InputStream appDescStream);
+
+ /**
+ * Removes the specified application.
+ *
+ * @param appId application identifier
+ */
+ void remove(ApplicationId appId);
+
+ /**
+ * Mark the application as actived.
+ *
+ * @param appId application identifier
+ */
+ void activate(ApplicationId appId);
+
+ /**
+ * Mark the application as deactivated.
+ *
+ * @param appId application identifier
+ */
+ void deactivate(ApplicationId appId);
+
+ /**
+ * Returns the permissions granted to the applications.
+ *
+ * @param appId application identifier
+ * @return set of granted permissions
+ */
+ Set<Permission> getPermissions(ApplicationId appId);
+
+ /**
+ * Updates the permissions granted to the applications.
+ *
+ * @param appId application identifier
+ * @param permissions set of granted permissions
+ */
+ void setPermissions(ApplicationId appId, Set<Permission> permissions);
+
+}
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationStoreDelegate.java b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationStoreDelegate.java
new file mode 100644
index 00000000..f339e685
--- /dev/null
+++ b/framework/src/onos/core/api/src/main/java/org/onosproject/app/ApplicationStoreDelegate.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed 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.
+ */
+package org.onosproject.app;
+
+import org.onosproject.store.StoreDelegate;
+
+/**
+ * Application store delegate abstraction.
+ */
+public interface ApplicationStoreDelegate extends StoreDelegate<ApplicationEvent> {
+}
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/app/DefaultApplicationDescription.java b/framework/src/onos/core/api/src/main/java/org/onosproject/app/DefaultApplicationDescription.java
new file mode 100644
index 00000000..710d0f9c
--- /dev/null
+++ b/framework/src/onos/core/api/src/main/java/org/onosproject/app/DefaultApplicationDescription.java
@@ -0,0 +1,125 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed 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.
+ */
+package org.onosproject.app;
+
+import org.onosproject.core.ApplicationRole;
+import org.onosproject.core.Version;
+import org.onosproject.security.Permission;
+
+import java.net.URI;
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
+
+import static com.google.common.base.MoreObjects.toStringHelper;
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Preconditions.checkNotNull;
+
+/**
+ * Default implementation of network control/management application descriptor.
+ */
+public class DefaultApplicationDescription implements ApplicationDescription {
+
+ private final String name;
+ private final Version version;
+ private final String description;
+ private final String origin;
+ private final ApplicationRole role;
+ private final Set<Permission> permissions;
+ private final Optional<URI> featuresRepo;
+ private final List<String> features;
+
+ /**
+ * Creates a new application descriptor using the supplied data.
+ *
+ * @param name application name
+ * @param version application version
+ * @param description application description
+ * @param origin origin company
+ * @param role application role
+ * @param permissions requested permissions
+ * @param featuresRepo optional features repo URI
+ * @param features application features
+ */
+ public DefaultApplicationDescription(String name, Version version,
+ String description, String origin,
+ ApplicationRole role, Set<Permission> permissions,
+ URI featuresRepo, List<String> features) {
+ this.name = checkNotNull(name, "Name cannot be null");
+ this.version = checkNotNull(version, "Version cannot be null");
+ this.description = checkNotNull(description, "Description cannot be null");
+ this.origin = checkNotNull(origin, "Origin cannot be null");
+ this.role = checkNotNull(role, "Role cannot be null");
+ this.permissions = checkNotNull(permissions, "Permissions cannot be null");
+ this.featuresRepo = Optional.ofNullable(featuresRepo);
+ this.features = checkNotNull(features, "Features cannot be null");
+ checkArgument(!features.isEmpty(), "There must be at least one feature");
+ }
+
+ @Override
+ public String name() {
+ return name;
+ }
+
+ @Override
+ public Version version() {
+ return version;
+ }
+
+ @Override
+ public String description() {
+ return description;
+ }
+
+ @Override
+ public String origin() {
+ return origin;
+ }
+
+ @Override
+ public ApplicationRole role() {
+ return role;
+ }
+
+ @Override
+ public Set<Permission> permissions() {
+ return permissions;
+ }
+
+ @Override
+ public Optional<URI> featuresRepo() {
+ return featuresRepo;
+ }
+
+ @Override
+ public List<String> features() {
+ return features;
+ }
+
+ @Override
+ public String toString() {
+ return toStringHelper(this)
+ .add("name", name)
+ .add("version", version)
+ .add("description", description)
+ .add("origin", origin)
+ .add("role", role)
+ .add("permissions", permissions)
+ .add("featuresRepo", featuresRepo)
+ .add("features", features)
+ .toString();
+ }
+}
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/app/package-info.java b/framework/src/onos/core/api/src/main/java/org/onosproject/app/package-info.java
new file mode 100644
index 00000000..f8e5465d
--- /dev/null
+++ b/framework/src/onos/core/api/src/main/java/org/onosproject/app/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed 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.
+ */
+
+/**
+ * Set of abstractions for managing network control applications.
+ */
+package org.onosproject.app; \ No newline at end of file