From 13d05bc8458758ee39cb829098241e89616717ee Mon Sep 17 00:00:00 2001 From: Ashlee Young Date: Wed, 9 Sep 2015 22:15:21 -0700 Subject: ONOS checkin based on commit tag e796610b1f721d02f9b0e213cf6f7790c10ecd60 Change-Id: Ife8810491034fe7becdba75dda20de4267bd15cd --- framework/src/onos/utils/rest/pom.xml | 53 ++++++++++++++++++++ .../src/main/java/org/onlab/rest/BaseResource.java | 57 ++++++++++++++++++++++ .../src/main/java/org/onlab/rest/package-info.java | 20 ++++++++ 3 files changed, 130 insertions(+) create mode 100644 framework/src/onos/utils/rest/pom.xml create mode 100644 framework/src/onos/utils/rest/src/main/java/org/onlab/rest/BaseResource.java create mode 100644 framework/src/onos/utils/rest/src/main/java/org/onlab/rest/package-info.java (limited to 'framework/src/onos/utils/rest') diff --git a/framework/src/onos/utils/rest/pom.xml b/framework/src/onos/utils/rest/pom.xml new file mode 100644 index 00000000..ce2bd845 --- /dev/null +++ b/framework/src/onos/utils/rest/pom.xml @@ -0,0 +1,53 @@ + + + + 4.0.0 + + + org.onosproject + onlab-utils + 1.3.0-SNAPSHOT + ../pom.xml + + + onlab-rest + bundle + + ON.Lab JAX-RS utilities + + + + com.sun.jersey.jersey-test-framework + jersey-test-framework-core + test + + + com.sun.jersey.jersey-test-framework + jersey-test-framework-grizzly2 + test + + + + org.onosproject + onlab-osgi + ${project.version} + + + + diff --git a/framework/src/onos/utils/rest/src/main/java/org/onlab/rest/BaseResource.java b/framework/src/onos/utils/rest/src/main/java/org/onlab/rest/BaseResource.java new file mode 100644 index 00000000..50b4d0f1 --- /dev/null +++ b/framework/src/onos/utils/rest/src/main/java/org/onlab/rest/BaseResource.java @@ -0,0 +1,57 @@ +/* + * Copyright 2014 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.onlab.rest; + +import org.onlab.osgi.DefaultServiceDirectory; +import org.onlab.osgi.ServiceDirectory; + +import javax.ws.rs.core.Response; + +/** + * Base abstraction of a JAX-RS resource. + */ +public abstract class BaseResource { + + private static ServiceDirectory services = new DefaultServiceDirectory(); + + /** + * Sets alternate service directory to be used for lookups. + *

+ * Intended to ease unit testing and not intended for use in production. + *

+ * + * @param serviceDirectory alternate service directory + */ + public static void setServiceDirectory(ServiceDirectory serviceDirectory) { + services = serviceDirectory; + } + + /** + * Returns reference to the specified service implementation. + * + * @param service service class + * @param type of service + * @return service implementation + */ + public T get(Class service) { + return services.get(service); + } + + protected static Response.ResponseBuilder ok(Object obj) { + return Response.ok(obj); + } + +} diff --git a/framework/src/onos/utils/rest/src/main/java/org/onlab/rest/package-info.java b/framework/src/onos/utils/rest/src/main/java/org/onlab/rest/package-info.java new file mode 100644 index 00000000..4f9c523d --- /dev/null +++ b/framework/src/onos/utils/rest/src/main/java/org/onlab/rest/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright 2014 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. + */ + +/** + * Facilities for building JAX-RS web resources. + */ +package org.onlab.rest; -- cgit 1.2.3-korg