From 9b8841d9c7c5dc29eb0a77ead6bbc0ebe3d6875f Mon Sep 17 00:00:00 2001 From: Vaclav Demcak Date: Fri, 25 Apr 2014 13:44:51 +0200 Subject: [PATCH] Bug 618 - convert xtend to java in md-sal/inventory-manager Change-Id: I53ecde22fc659d34cd1e8b076efb5e129a040bbe Signed-off-by: Vaclav Demcak --- opendaylight/md-sal/inventory-manager/pom.xml | 8 --- .../manager/FlowCapableInventoryProvider.java | 67 +++++++++++++++++++ .../FlowCapableInventoryProvider.xtend | 63 ----------------- .../inventory/manager/InventoryActivator.java | 34 ++++++++++ .../manager/InventoryActivator.xtend | 30 --------- .../inventory/manager/InventoryMapping.java | 44 ++++++++++++ .../inventory/manager/InventoryMapping.xtend | 46 ------------- .../inventory/manager/NodeChangeCommiter.java | 35 +++------- 8 files changed, 156 insertions(+), 171 deletions(-) create mode 100644 opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/FlowCapableInventoryProvider.java delete mode 100644 opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/FlowCapableInventoryProvider.xtend create mode 100644 opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryActivator.java delete mode 100644 opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryActivator.xtend create mode 100644 opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryMapping.java delete mode 100644 opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryMapping.xtend diff --git a/opendaylight/md-sal/inventory-manager/pom.xml b/opendaylight/md-sal/inventory-manager/pom.xml index 40a79033a7..1706996ce4 100644 --- a/opendaylight/md-sal/inventory-manager/pom.xml +++ b/opendaylight/md-sal/inventory-manager/pom.xml @@ -15,10 +15,6 @@ com.google.guava guava - - org.eclipse.xtend - org.eclipse.xtend.lib - org.opendaylight.controller sal-binding-api @@ -50,10 +46,6 @@ - - org.eclipse.xtend - xtend-maven-plugin - diff --git a/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/FlowCapableInventoryProvider.java b/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/FlowCapableInventoryProvider.java new file mode 100644 index 0000000000..7e4190f1df --- /dev/null +++ b/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/FlowCapableInventoryProvider.java @@ -0,0 +1,67 @@ +/** + * 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 + */ +package org.opendaylight.controller.md.inventory.manager; + +import org.opendaylight.controller.sal.binding.api.NotificationProviderService; +import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction; +import org.opendaylight.controller.sal.binding.api.data.DataProviderService; +import org.opendaylight.yangtools.concepts.Registration; +import org.opendaylight.yangtools.yang.binding.NotificationListener; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class FlowCapableInventoryProvider implements AutoCloseable { + + private final static Logger LOG = LoggerFactory.getLogger(FlowCapableInventoryProvider.class); + + private DataProviderService dataService; + private NotificationProviderService notificationService; + private Registration listenerRegistration; + private final NodeChangeCommiter changeCommiter = new NodeChangeCommiter(FlowCapableInventoryProvider.this); + + public void start() { + this.listenerRegistration = this.notificationService.registerNotificationListener(this.changeCommiter); + LOG.info("Flow Capable Inventory Provider started."); + } + + protected DataModificationTransaction startChange() { + DataProviderService _dataService = this.dataService; + return _dataService.beginTransaction(); + } + + @Override + public void close() { + try { + LOG.info("Flow Capable Inventory Provider stopped."); + if (this.listenerRegistration != null) { + this.listenerRegistration.close(); + } + } catch (Exception e) { + String errMsg = "Error by stop Flow Capable Inventory Provider."; + LOG.error(errMsg, e); + throw new RuntimeException(errMsg, e); + } + } + + public DataProviderService getDataService() { + return this.dataService; + } + + public void setDataService(final DataProviderService dataService) { + this.dataService = dataService; + } + + public NotificationProviderService getNotificationService() { + return this.notificationService; + } + + public void setNotificationService( + final NotificationProviderService notificationService) { + this.notificationService = notificationService; + } +} diff --git a/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/FlowCapableInventoryProvider.xtend b/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/FlowCapableInventoryProvider.xtend deleted file mode 100644 index ec8da8693f..0000000000 --- a/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/FlowCapableInventoryProvider.xtend +++ /dev/null @@ -1,63 +0,0 @@ -/* - * 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 - */ -package org.opendaylight.controller.md.inventory.manager - -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.OpendaylightInventoryListener -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRemoved -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorUpdated -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRemoved -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeUpdated -import org.opendaylight.controller.sal.binding.api.NotificationProviderService -import org.opendaylight.controller.sal.binding.api.data.DataProviderService -import org.opendaylight.yangtools.concepts.Registration -import org.opendaylight.yangtools.yang.binding.NotificationListener -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier -import org.opendaylight.yangtools.yang.binding.DataObject -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorBuilder -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnectorUpdated -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeUpdated -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey -import static extension org.opendaylight.controller.md.inventory.manager.InventoryMapping.* -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey -import org.slf4j.LoggerFactory - -class FlowCapableInventoryProvider implements AutoCloseable { - - - static val LOG = LoggerFactory.getLogger(FlowCapableInventoryProvider); - - @Property - DataProviderService dataService; - - @Property - NotificationProviderService notificationService; - val NodeChangeCommiter changeCommiter = new NodeChangeCommiter(this); - - Registration listenerRegistration - - def void start() { - listenerRegistration = notificationService.registerNotificationListener(changeCommiter); - LOG.info("Flow Capable Inventory Provider started."); - - } - - protected def startChange() { - return dataService.beginTransaction; - } - - override close() { - LOG.info("Flow Capable Inventory Provider stopped."); - listenerRegistration?.close(); - } - -} \ No newline at end of file diff --git a/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryActivator.java b/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryActivator.java new file mode 100644 index 0000000000..6c06088fc4 --- /dev/null +++ b/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryActivator.java @@ -0,0 +1,34 @@ +/** + * 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 + */ +package org.opendaylight.controller.md.inventory.manager; + +import org.opendaylight.controller.sal.binding.api.AbstractBindingAwareProvider; +import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext; +import org.opendaylight.controller.sal.binding.api.NotificationProviderService; +import org.opendaylight.controller.sal.binding.api.data.DataProviderService; +import org.osgi.framework.BundleContext; + +public class InventoryActivator extends AbstractBindingAwareProvider { + + private static FlowCapableInventoryProvider provider = new FlowCapableInventoryProvider(); + + @Override + public void onSessionInitiated(final ProviderContext session) { + DataProviderService salDataService = session. getSALService(DataProviderService.class); + NotificationProviderService salNotifiService = + session. getSALService(NotificationProviderService.class); + InventoryActivator.provider.setDataService(salDataService); + InventoryActivator.provider.setNotificationService(salNotifiService); + InventoryActivator.provider.start(); + } + + @Override + protected void stopImpl(final BundleContext context) { + InventoryActivator.provider.close(); + } +} diff --git a/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryActivator.xtend b/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryActivator.xtend deleted file mode 100644 index 5d76924be7..0000000000 --- a/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryActivator.xtend +++ /dev/null @@ -1,30 +0,0 @@ -/* - * 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 - */ -package org.opendaylight.controller.md.inventory.manager - -import org.opendaylight.controller.sal.binding.api.AbstractBindingAwareProvider -import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext -import org.osgi.framework.BundleContext -import org.opendaylight.controller.sal.binding.api.data.DataProviderService -import org.opendaylight.controller.sal.binding.api.NotificationProviderService - -class InventoryActivator extends AbstractBindingAwareProvider { - - static var FlowCapableInventoryProvider provider = new FlowCapableInventoryProvider(); - - override onSessionInitiated(ProviderContext session) { - provider.dataService = session.getSALService(DataProviderService) - provider.notificationService = session.getSALService(NotificationProviderService) - provider.start(); - } - - override protected stopImpl(BundleContext context) { - provider.close(); - } - -} diff --git a/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryMapping.java b/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryMapping.java new file mode 100644 index 0000000000..928ae761f2 --- /dev/null +++ b/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryMapping.java @@ -0,0 +1,44 @@ +/** + * 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 + */ +package org.opendaylight.controller.md.inventory.manager; + +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnectorBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowNode; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowNodeConnector; + +public class InventoryMapping { + + public static FlowCapableNodeConnector toInventoryAugment(final FlowNodeConnector updated) { + if ((updated instanceof FlowCapableNodeConnector)) { + return ((FlowCapableNodeConnector) updated); + } + final FlowCapableNodeConnectorBuilder builder = new FlowCapableNodeConnectorBuilder(); + builder.setAdvertisedFeatures(updated.getAdvertisedFeatures()); + builder.setConfiguration(updated.getConfiguration()); + builder.setCurrentFeature(updated.getCurrentFeature()); + builder.setCurrentSpeed(updated.getCurrentSpeed()); + builder.setHardwareAddress(updated.getHardwareAddress()); + builder.setMaximumSpeed(updated.getMaximumSpeed()); + builder.setName(updated.getName()); + builder.setPeerFeatures(updated.getPeerFeatures()); + builder.setPortNumber(updated.getPortNumber()); + builder.setState(updated.getState()); + builder.setSupported(updated.getSupported()); + return builder.build(); + } + + public static FlowCapableNode toInventoryAugment(final FlowNode source) { + if ((source instanceof FlowCapableNode)) { + return ((FlowCapableNode) source); + } + return (new FlowCapableNodeBuilder(source)).build(); + } +} diff --git a/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryMapping.xtend b/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryMapping.xtend deleted file mode 100644 index 6f1ef5e5bb..0000000000 --- a/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/InventoryMapping.xtend +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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 - */ -package org.opendaylight.controller.md.inventory.manager - -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowNodeConnector -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnectorBuilder -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowNode -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeBuilder - -class InventoryMapping { - - static def FlowCapableNodeConnector toInventoryAugment(FlowNodeConnector updated) { - if (updated instanceof FlowCapableNodeConnector) { - return updated as FlowCapableNodeConnector; - } - val it = new FlowCapableNodeConnectorBuilder(); - advertisedFeatures = updated.advertisedFeatures - configuration = updated.configuration - currentFeature = updated.currentFeature - currentSpeed = updated.currentSpeed - hardwareAddress = updated.hardwareAddress - maximumSpeed = updated.maximumSpeed - name = updated.name - peerFeatures = updated.peerFeatures - portNumber = updated.portNumber - state = updated.state - supported = updated.supported - return build(); - } - - static def FlowCapableNode toInventoryAugment(FlowNode source) { - if (source instanceof FlowCapableNode) { - return source as FlowCapableNode; - } - val it = new FlowCapableNodeBuilder(source); - return build(); - } - -} diff --git a/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/NodeChangeCommiter.java b/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/NodeChangeCommiter.java index ebb3de7dca..03cdf973af 100644 --- a/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/NodeChangeCommiter.java +++ b/opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/NodeChangeCommiter.java @@ -20,7 +20,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeCon import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRemoved; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorUpdated; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRemoved; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeUpdated; @@ -39,8 +38,8 @@ import org.slf4j.LoggerFactory; import com.google.common.base.Objects; -@SuppressWarnings("all") public class NodeChangeCommiter implements OpendaylightInventoryListener { + private final static Logger LOG = LoggerFactory.getLogger(NodeChangeCommiter.class); private final FlowCapableInventoryProvider manager; @@ -75,7 +74,7 @@ public class NodeChangeCommiter implements OpendaylightInventoryListener { final NodeConnectorRef ref = connector.getNodeConnectorRef(); final FlowCapableNodeConnectorUpdated flowConnector = connector .getAugmentation(FlowCapableNodeConnectorUpdated.class); - final DataModificationTransaction it = this.getManager().startChange(); + final DataModificationTransaction it = this.manager.startChange(); final NodeConnectorBuilder data = new NodeConnectorBuilder(connector); NodeConnectorId id = connector.getId(); NodeConnectorKey nodeConnectorKey = new NodeConnectorKey(id); @@ -86,12 +85,9 @@ public class NodeChangeCommiter implements OpendaylightInventoryListener { data.addAugmentation(FlowCapableNodeConnector.class, augment); } InstanceIdentifier value = ref.getValue(); - String string = value.toString(); - String plus = ("updating node connector : " + string); - NodeChangeCommiter.LOG.debug(plus); - InstanceIdentifier value1 = ref.getValue(); + NodeChangeCommiter.LOG.debug("updating node connector : {}.", value); NodeConnector build = data.build(); - it.putOperationalData((value1), build); + it.putOperationalData((value), build); Future> commitResult = it.commit(); try { commitResult.get(); @@ -105,14 +101,9 @@ public class NodeChangeCommiter implements OpendaylightInventoryListener { public synchronized void onNodeRemoved(final NodeRemoved node) { final NodeRef ref = node.getNodeRef(); - FlowCapableInventoryProvider manager = this.getManager(); - final DataModificationTransaction it = manager.startChange(); - InstanceIdentifier value = ref.getValue(); - String string = value.toString(); - String plus = ("removing node : " + string); - NodeChangeCommiter.LOG.debug(plus); - InstanceIdentifier value1 = ref.getValue(); - it.removeOperationalData((value1)); + final DataModificationTransaction it = this.manager.startChange(); + NodeChangeCommiter.LOG.debug("removing node : {}", ref.getValue()); + it.removeOperationalData((ref.getValue())); Future> commitResult = it.commit(); try { commitResult.get(); @@ -127,19 +118,15 @@ public class NodeChangeCommiter implements OpendaylightInventoryListener { final NodeRef ref = node.getNodeRef(); final FlowCapableNodeUpdated flowNode = node . getAugmentation(FlowCapableNodeUpdated.class); - FlowCapableInventoryProvider manager = this.getManager(); - final DataModificationTransaction it = manager.startChange(); - NodeBuilder nodeBuilder = new NodeBuilder(node); - final NodeBuilder data = nodeBuilder; - NodeId id = node.getId(); - NodeKey nodeKey = new NodeKey(id); - data.setKey(nodeKey); + final DataModificationTransaction it = this.manager.startChange(); + final NodeBuilder nodeBuilder = new NodeBuilder(node); + nodeBuilder.setKey(new NodeKey(node.getId())); boolean equals = Objects.equal(flowNode, null); if (equals) { return; } final FlowCapableNode augment = InventoryMapping.toInventoryAugment(flowNode); - data.addAugmentation(FlowCapableNode.class, augment); + nodeBuilder.addAugmentation(FlowCapableNode.class, augment); InstanceIdentifier value = ref.getValue(); InstanceIdentifierBuilder builder = InstanceIdentifier. builder(((InstanceIdentifier) value)); InstanceIdentifierBuilder augmentation = builder -- 2.36.6