Remove RESTCONF client dependency on YMS and reinstall BUCK files
Change-Id: Icd6f4cb73a95044cfbd3fa938070c29d26c7cbe1
diff --git a/modules.defs b/modules.defs
index 751ce70..e03e8f2 100644
--- a/modules.defs
+++ b/modules.defs
@@ -55,8 +55,8 @@
'//protocols/lisp/msg:onos-protocols-lisp-msg',
'//protocols/tl1/api:onos-protocols-tl1-api',
'//protocols/tl1/ctl:onos-protocols-tl1-ctl',
-# '//protocols/restconf/client/api:onos-protocols-restconf-client-api',
-# '//protocols/restconf/client/ctl:onos-protocols-restconf-client-ctl',
+ '//protocols/restconf/client/api:onos-protocols-restconf-client-api',
+ '//protocols/restconf/client/ctl:onos-protocols-restconf-client-ctl',
'//drivers/utilities:onos-drivers-utilities',
diff --git a/protocols/pom.xml b/protocols/pom.xml
index 537d3d9..152a0aa 100644
--- a/protocols/pom.xml
+++ b/protocols/pom.xml
@@ -42,9 +42,7 @@
<module>snmp</module>
<module>bmv2</module>
<module>lisp</module>
- <!-- This currently does not work
<module>restconf</module>
- -->
<module>tl1</module>
</modules>
diff --git a/protocols/restconf/client/api/BUCK b/protocols/restconf/client/api/BUCK
new file mode 100644
index 0000000..c1f3e2c
--- /dev/null
+++ b/protocols/restconf/client/api/BUCK
@@ -0,0 +1,10 @@
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//incubator/api:onos-incubator-api',
+ '//utils/rest:onlab-rest',
+ '//protocols/rest/api:onos-protocols-rest-api',
+]
+
+osgi_jar_with_tests (
+ deps = COMPILE_DEPS,
+)
diff --git a/protocols/restconf/client/ctl/BUCK b/protocols/restconf/client/ctl/BUCK
new file mode 100644
index 0000000..ce0292e
--- /dev/null
+++ b/protocols/restconf/client/ctl/BUCK
@@ -0,0 +1,19 @@
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:jersey-client',
+ '//lib:jersey-common',
+ '//lib:httpclient-osgi',
+ '//lib:httpcore-osgi',
+ '//lib:javax.ws.rs-api',
+ '//lib:hk2-api',
+ '//lib:jersey-guava',
+ '//lib:aopalliance-repackaged',
+ '//lib:javax.inject',
+ '//protocols/restconf/client/api:onos-protocols-restconf-client-api',
+ '//protocols/rest/api:onos-protocols-rest-api',
+]
+
+osgi_jar_with_tests (
+ deps = COMPILE_DEPS,
+)
+
diff --git a/protocols/restconf/client/ctl/pom.xml b/protocols/restconf/client/ctl/pom.xml
index 159f582..c51054b 100644
--- a/protocols/restconf/client/ctl/pom.xml
+++ b/protocols/restconf/client/ctl/pom.xml
@@ -67,23 +67,6 @@
<version>${project.version}</version>
<type>bundle</type>
</dependency>
- <dependency>
- <groupId>org.onosproject</groupId>
- <artifactId>onos-restconf-server-utils</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.onosproject</groupId>
- <artifactId>onos-app-yms-api</artifactId>
- <version>${project.version}</version>
- <type>bundle</type>
- </dependency>
- <dependency>
- <groupId>org.onosproject</groupId>
- <artifactId>onos-ietfte-provider-utils</artifactId>
- <version>${project.version}</version>
- <type>bundle</type>
- </dependency>
</dependencies>
<build>
diff --git a/protocols/restconf/client/ctl/src/main/java/org/onosproject/protocol/restconf/ctl/JsonYdtCodec.java b/protocols/restconf/client/ctl/src/main/java/org/onosproject/protocol/restconf/ctl/JsonYdtCodec.java
deleted file mode 100644
index 6fda6cd..0000000
--- a/protocols/restconf/client/ctl/src/main/java/org/onosproject/protocol/restconf/ctl/JsonYdtCodec.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright 2016 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.protocol.restconf.ctl;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-import org.apache.commons.io.IOUtils;
-import org.onosproject.protocol.restconf.server.utils.parser.json.ParserUtils;
-import org.onosproject.provider.te.utils.YangCompositeEncodingImpl;
-import org.onosproject.yms.ych.YangCompositeEncoding;
-import org.onosproject.yms.ych.YangDataTreeCodec;
-import org.onosproject.yms.ych.YangResourceIdentifierType;
-import org.onosproject.yms.ydt.YdtBuilder;
-import org.onosproject.yms.ydt.YdtContext;
-import org.onosproject.yms.ydt.YmsOperationType;
-import org.onosproject.yms.ymsm.YmsService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import static org.onosproject.protocol.restconf.server.utils.parser.json.ParserUtils.convertYdtToJson;
-import static org.onosproject.protocol.restconf.server.utils.parser.json.ParserUtils.findTopNodeInCompositeYdt;
-import static org.onosproject.protocol.restconf.server.utils.parser.json.ParserUtils.getJsonNameFromYdtNode;
-import static org.onosproject.protocol.restconf.server.utils.parser.json.ParserUtils.getUriInCompositeYdt;
-import static org.onosproject.yms.ydt.YdtContextOperationType.NONE;
-
-
-/**
- * JSON/YDT Codec implementation.
- */
-public class JsonYdtCodec implements YangDataTreeCodec {
- private static final String RESTCONF_ROOT = "restconf/data";
- private static final String EMPTY_JSON_OBJECT = "{}";
-
- protected final YmsService ymsService;
-
- private final Logger log = LoggerFactory.getLogger(getClass());
-
- public JsonYdtCodec(YmsService service) {
- ymsService = service;
- }
-
- @Override
- public String encodeYdtToProtocolFormat(YdtBuilder builder) {
- return convertYdtToJson(getJsonNameFromYdtNode(builder.getRootNode()),
- builder.getRootNode(),
- ymsService.getYdtWalker()).textValue();
- }
-
- @Override
- public YangCompositeEncoding encodeYdtToCompositeProtocolFormat(YdtBuilder builder) {
- String uriString = getUriInCompositeYdt(builder);
- YdtContext topNode = findTopNodeInCompositeYdt(builder);
- if (topNode != null) {
- ObjectNode objectNode = convertYdtToJson(getJsonNameFromYdtNode(topNode),
- topNode,
- ymsService.getYdtWalker());
- return new YangCompositeEncodingImpl(YangResourceIdentifierType.URI,
- uriString,
- objectNode.toString());
- }
-
- return new YangCompositeEncodingImpl(YangResourceIdentifierType.URI,
- uriString,
- EMPTY_JSON_OBJECT);
- }
-
- @Override
- public YdtBuilder decodeProtocolDataToYdt(String protocolData,
- Object schemaRegistryForYdt,
- YmsOperationType opType) {
- // Get a new builder
- YdtBuilder builder = ymsService.getYdtBuilder(RESTCONF_ROOT,
- null,
- opType,
- schemaRegistryForYdt);
- ParserUtils.convertJsonToYdt(getObjectNode(protocolData), builder);
- return builder;
- }
-
- @Override
- public YdtBuilder decodeCompositeProtocolDataToYdt(YangCompositeEncoding protocolData,
- Object schemaRegistryForYdt,
- YmsOperationType opType) {
- // opType should be QUERY_REPLY
- // Get a new builder
- YdtBuilder builder = ymsService.getYdtBuilder(RESTCONF_ROOT,
- null,
- opType,
- schemaRegistryForYdt);
- // Convert the URI to ydtBuilder
-
- // YdtContextOperationType should be NONE for URI in QUERY_RESPONSE.
- ParserUtils.convertUriToYdt(protocolData.getResourceIdentifier(), builder, NONE);
- // Set default operation type for the payload node, is this for resource data?
- // NULL/EMPTY for Resource data
- builder.setDefaultEditOperationType(null);
-
- // Convert the payload json body to ydt
- ParserUtils.convertJsonToYdt(getObjectNode(protocolData.getResourceInformation()), builder);
- return builder;
- }
-
- // Returns an ObjectNode from s JSON string.
- private ObjectNode getObjectNode(String json) {
- InputStream stream = IOUtils.toInputStream(json);
-
- ObjectNode rootNode;
- ObjectMapper mapper = new ObjectMapper();
- try {
- rootNode = (ObjectNode) mapper.readTree(stream);
- } catch (IOException e) {
- log.error("Can't read stream as a JSON ObjectNode: {}", e);
- return null;
- }
- return rootNode;
- }
-}
diff --git a/protocols/restconf/client/ctl/src/main/java/org/onosproject/protocol/restconf/ctl/RestConfSBControllerImpl.java b/protocols/restconf/client/ctl/src/main/java/org/onosproject/protocol/restconf/ctl/RestConfSBControllerImpl.java
index 897f6c7..1d812b5 100644
--- a/protocols/restconf/client/ctl/src/main/java/org/onosproject/protocol/restconf/ctl/RestConfSBControllerImpl.java
+++ b/protocols/restconf/client/ctl/src/main/java/org/onosproject/protocol/restconf/ctl/RestConfSBControllerImpl.java
@@ -18,8 +18,6 @@
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.apache.felix.scr.annotations.Service;
import org.glassfish.jersey.client.ChunkedInput;
import org.onlab.packet.IpAddress;
@@ -28,8 +26,6 @@
import org.onosproject.protocol.rest.RestSBDevice;
import org.onosproject.protocol.restconf.RestConfSBController;
import org.onosproject.protocol.restconf.RestconfNotificationEventListener;
-import org.onosproject.yms.ych.YangProtocolEncodingFormat;
-import org.onosproject.yms.ymsm.YmsService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -67,19 +63,11 @@
restconfNotificationListenerMap = new ConcurrentHashMap<>();
private Map<DeviceId, GetChunksRunnable> runnableTable = new ConcurrentHashMap<>();
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected YmsService ymsService;
-
ExecutorService executor = Executors.newCachedThreadPool();
@Activate
public void activate() {
log.info("RESTCONF SBI Started");
- if (ymsService != null) {
- ymsService
- .registerDefaultCodec(new JsonYdtCodec(ymsService),
- YangProtocolEncodingFormat.JSON);
- }
}
@Deactivate