Touch-ups to patchpanel app, including adding to Buck build.
Change-Id: I212a575d50f3a38dea83b9ebe0c004b6267b0cbf
diff --git a/apps/patchpanel/src/main/java/org/onosproject/patchpanel/cli/PatchPanelCommand.java b/apps/patchpanel/src/main/java/org/onosproject/patchpanel/cli/PatchPanelCommand.java
index bac3221..5b6221a 100644
--- a/apps/patchpanel/src/main/java/org/onosproject/patchpanel/cli/PatchPanelCommand.java
+++ b/apps/patchpanel/src/main/java/org/onosproject/patchpanel/cli/PatchPanelCommand.java
@@ -28,10 +28,11 @@
import org.onosproject.net.DeviceId;
import org.onosproject.patchpanel.impl.PatchPanelService;
-//name of command and description
+/**
+ * Command for adding a new patch.
+ */
@Command(scope = "onos", name = "patch",
description = "Gets the 2 ports of one ConnectPoint that will be patched")
-
public class PatchPanelCommand extends AbstractShellCommand {
//the 2 arguments, both connect points
@Argument(index = 0, name = "switch/portNumber", description = "ConnectPoint and first port number",
diff --git a/apps/patchpanel/src/main/java/org/onosproject/patchpanel/cli/package-info.java b/apps/patchpanel/src/main/java/org/onosproject/patchpanel/cli/package-info.java
index 85a7842..f4e7c9e 100644
--- a/apps/patchpanel/src/main/java/org/onosproject/patchpanel/cli/package-info.java
+++ b/apps/patchpanel/src/main/java/org/onosproject/patchpanel/cli/package-info.java
@@ -15,7 +15,7 @@
*/
/**
- * patch panel-related CLI commands(in cli folder).
+ * Patch panel-related CLI commands(in cli folder).
*/
package org.onosproject.patchpanel.cli;
diff --git a/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/PatchPanel.java b/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/PatchPanel.java
index 068ae00..b08be7e 100644
--- a/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/PatchPanel.java
+++ b/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/PatchPanel.java
@@ -14,15 +14,6 @@
* limitations under the License.
*/
-/**
- * This class acts as a software patch panel application.
- * The user specifies 2 connectpoint on the same device that he/she would like to patch.
- * Using a flow rule, the 2 connectpoints are patched.
- *
- * @author Parvahti Meyyappan
- * @version %I%, %G%
- */
-
package org.onosproject.patchpanel.impl;
import org.apache.felix.scr.annotations.Component;
@@ -31,6 +22,7 @@
import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Deactivate;
+import org.onosproject.cli.net.ConnectPointCompleter;
import org.onosproject.core.ApplicationId;
import org.onosproject.core.CoreService;
import org.onosproject.net.PortNumber;
@@ -46,11 +38,19 @@
import java.util.ArrayList;
import java.util.List;
-
+/**
+ * This class acts as a software patch panel application.
+ * The user specifies 2 connectpoint on the same device that he/she would like to patch.
+ * Using a flow rule, the 2 connectpoints are patched.
+ */
@Component(immediate = true)
@Service
public class PatchPanel implements PatchPanelService {
+ // OSGI: help bundle plugin discover runtime package dependency.
+ @SuppressWarnings("unused")
+ private ConnectPointCompleter connectPointCompleter;
+
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
protected FlowRuleService flowRuleService;
@@ -65,12 +65,8 @@
@Activate
protected void activate() throws NullPointerException {
+ appId = coreService.registerApplication("org.onosproject.patchpanel");
log.info("Started");
- try {
- appId = coreService.getAppId("org.onosproject.patchPanel");
- } catch (NullPointerException e) {
- throw new NullPointerException("ERROR:App Id is null");
- }
}
@Deactivate
@@ -101,10 +97,18 @@
.withSelector(DefaultTrafficSelector.builder().matchInPort(inPort).build())
.withTreatment(DefaultTrafficTreatment.builder().setOutput(outPort).build())
.withPriority(PacketPriority.REACTIVE.priorityValue())
- .makeTemporary(5)
+ .makePermanent()
.fromApp(appId).build();
- flowRuleService.applyFlowRules(fr);
+ FlowRule fr2 = DefaultFlowRule.builder()
+ .forDevice(cp1.deviceId())
+ .withSelector(DefaultTrafficSelector.builder().matchInPort(outPort).build())
+ .withTreatment(DefaultTrafficTreatment.builder().setOutput(inPort).build())
+ .withPriority(PacketPriority.REACTIVE.priorityValue())
+ .makePermanent()
+ .fromApp(appId).build();
+
+ flowRuleService.applyFlowRules(fr, fr2);
}
diff --git a/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/PatchPanelService.java b/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/PatchPanelService.java
index 64754c0..f37df1d 100644
--- a/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/PatchPanelService.java
+++ b/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/PatchPanelService.java
@@ -18,17 +18,15 @@
import org.onosproject.net.ConnectPoint;
/**
- * A service for the patch panel application to
- * export and use with the cli .
+ * A service for the patch panel application to export and use with the cli.
*/
public interface PatchPanelService {
/**
- * Get the connectPoints that need to be patched.
+ * Adds a new patch between two connect points.
+ *
* @param cp the first connect point
* @param cp2 the second connect point
- * @return void
*/
- public boolean addPatch(ConnectPoint cp, ConnectPoint cp2);
-
-}
\ No newline at end of file
+ boolean addPatch(ConnectPoint cp, ConnectPoint cp2);
+}
diff --git a/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/AppUiComponent.java b/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/PatchPanelUiComponent.java
similarity index 95%
rename from apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/AppUiComponent.java
rename to apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/PatchPanelUiComponent.java
index 8402cb1..ea2f085 100644
--- a/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/AppUiComponent.java
+++ b/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/PatchPanelUiComponent.java
@@ -34,7 +34,7 @@
* ONOS UI Custom-View application component for the Patch Panel Application.
*/
@Component(immediate = true)
-public class AppUiComponent {
+public class PatchPanelUiComponent {
private static final String VIEW_ID = "sampleCustom";
private static final String VIEW_TEXT = "Patch Panel Application";
@@ -51,7 +51,7 @@
// Factory for UI message handlers
private final UiMessageHandlerFactory messageHandlerFactory =
- () -> ImmutableList.of(new AppUiMessageHandler());
+ () -> ImmutableList.of(new PatchPanelUiMessageHandler());
// Application UI extension
protected UiExtension extension =
diff --git a/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/AppUiMessageHandler.java b/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/PatchPanelUiMessageHandler.java
similarity index 98%
rename from apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/AppUiMessageHandler.java
rename to apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/PatchPanelUiMessageHandler.java
index 431f4d0..b03bb02 100644
--- a/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/AppUiMessageHandler.java
+++ b/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/PatchPanelUiMessageHandler.java
@@ -40,7 +40,7 @@
* to each event. In this particular implementation the second message
* handler creates the patch and the first message handler loads the data
*/
-public class AppUiMessageHandler extends UiMessageHandler {
+public class PatchPanelUiMessageHandler extends UiMessageHandler {
private static final String SAMPLE_CUSTOM_DATA_REQ = "sampleCustomDataRequest";
private static final String SAMPLE_CUSTOM_DATA_RESP = "sampleCustomDataResponse";
@@ -136,4 +136,4 @@
sendMessage(SAMPLE_CUSTOM_DATA_RESP3, sid, payload);
}
}
-}
\ No newline at end of file
+}
diff --git a/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/package-info.java b/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/package-info.java
index 6bee0e2..7c109d2 100644
--- a/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/package-info.java
+++ b/apps/patchpanel/src/main/java/org/onosproject/patchpanel/impl/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * patch panel-related CLI commands(in implementation folder).
+ * Patch panel-related CLI commands(in implementation folder).
*/
package org.onosproject.patchpanel.impl;