From 70fb6018c7fa3891d79704539eac08108d760917 Mon Sep 17 00:00:00 2001 From: Dana Kutenicsova Date: Fri, 14 Mar 2014 12:41:37 +0100 Subject: [PATCH] BUG-64 : initial rewrite, ObjectRegistry. Change-Id: I92764b8f0c44cab1b5b5c83f60f3153be873afda Signed-off-by: Dana Kutenicsova --- .../initiated00/PcinitiateMessageParser.java | 4 +- .../Stateful02PCReplyMessageParser.java | 4 +- .../Stateful02PCReportMessageParser.java | 4 +- .../Stateful02PCRequestMessageParser.java | 4 +- ...tateful02PCUpdateRequestMessageParser.java | 4 +- .../CInitiated00PCInitiateMessageParser.java | 4 +- .../Stateful07ErrorMessageParser.java | 4 +- .../Stateful07PCReportMessageParser.java | 4 +- ...tateful07PCUpdateRequestMessageParser.java | 4 +- .../ietf/stateful07/StatefulActivator.java | 4 +- .../protocol/pcep/ietf/PCEPValidatorTest.java | 4 +- .../protocol/pcep/impl/Activator.java | 4 +- .../impl/message/PCEPCloseMessageParser.java | 4 +- .../impl/message/PCEPErrorMessageParser.java | 4 +- .../message/PCEPKeepAliveMessageParser.java | 4 +- .../PCEPNotificationMessageParser.java | 4 +- .../impl/message/PCEPOpenMessageParser.java | 4 +- .../impl/message/PCEPReplyMessageParser.java | 4 +- .../message/PCEPRequestMessageParser.java | 4 +- .../pcep/spi/AbstractMessageParser.java | 17 +++---- .../pcep/spi/ObjectHandlerRegistry.java | 15 ------ .../protocol/pcep/spi/ObjectRegistry.java | 30 ++++++++++++ .../spi/PCEPExtensionConsumerContext.java | 2 +- ...egistry.java => SimpleObjectRegistry.java} | 47 +++++++++---------- .../SimplePCEPExtensionProviderContext.java | 6 +-- 25 files changed, 101 insertions(+), 92 deletions(-) delete mode 100644 pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/ObjectHandlerRegistry.java create mode 100644 pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/ObjectRegistry.java rename pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/{SimpleObjectHandlerRegistry.java => SimpleObjectRegistry.java} (66%) diff --git a/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/crabbe/initiated00/PcinitiateMessageParser.java b/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/crabbe/initiated00/PcinitiateMessageParser.java index cf2f58b472..45184711fd 100644 --- a/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/crabbe/initiated00/PcinitiateMessageParser.java +++ b/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/crabbe/initiated00/PcinitiateMessageParser.java @@ -12,7 +12,7 @@ import io.netty.buffer.ByteBuf; import java.util.List; import org.opendaylight.protocol.pcep.spi.AbstractMessageParser; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated._00.rev140113.Pcinitiate; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated._00.rev140113.PcinitiateBuilder; @@ -37,7 +37,7 @@ import com.google.common.collect.Lists; public class PcinitiateMessageParser extends AbstractMessageParser { public static final int TYPE = 12; - public PcinitiateMessageParser(final ObjectHandlerRegistry registry) { + public PcinitiateMessageParser(final ObjectRegistry registry) { super(registry); } diff --git a/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCReplyMessageParser.java b/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCReplyMessageParser.java index 18ec0ffe40..a395f2d72a 100644 --- a/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCReplyMessageParser.java +++ b/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCReplyMessageParser.java @@ -12,7 +12,7 @@ import io.netty.buffer.ByteBuf; import java.util.List; import org.opendaylight.protocol.pcep.impl.message.PCEPReplyMessageParser; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPErrors; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.stateful._02.rev140110.Replies1; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.stateful._02.rev140110.Replies1Builder; @@ -42,7 +42,7 @@ import com.google.common.collect.Lists; */ public final class Stateful02PCReplyMessageParser extends PCEPReplyMessageParser { - public Stateful02PCReplyMessageParser(final ObjectHandlerRegistry registry) { + public Stateful02PCReplyMessageParser(final ObjectRegistry registry) { super(registry); } diff --git a/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCReportMessageParser.java b/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCReportMessageParser.java index edcaedee21..993bed5822 100644 --- a/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCReportMessageParser.java +++ b/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCReportMessageParser.java @@ -12,7 +12,7 @@ import io.netty.buffer.ByteBuf; import java.util.List; import org.opendaylight.protocol.pcep.spi.AbstractMessageParser; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; import org.opendaylight.protocol.pcep.spi.PCEPErrors; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.stateful._02.rev140110.Pcrpt; @@ -42,7 +42,7 @@ public final class Stateful02PCReportMessageParser extends AbstractMessageParser public static final int TYPE = 10; - public Stateful02PCReportMessageParser(final ObjectHandlerRegistry registry) { + public Stateful02PCReportMessageParser(final ObjectRegistry registry) { super(registry); } diff --git a/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCRequestMessageParser.java b/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCRequestMessageParser.java index 92548d11ab..fce72d3671 100644 --- a/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCRequestMessageParser.java +++ b/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCRequestMessageParser.java @@ -12,7 +12,7 @@ import io.netty.buffer.ByteBuf; import java.util.List; import org.opendaylight.protocol.pcep.impl.message.PCEPRequestMessageParser; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPErrors; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.stateful._02.rev140110.P2p1; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.stateful._02.rev140110.P2p1Builder; @@ -47,7 +47,7 @@ import com.google.common.collect.Lists; */ public final class Stateful02PCRequestMessageParser extends PCEPRequestMessageParser { - public Stateful02PCRequestMessageParser(final ObjectHandlerRegistry registry) { + public Stateful02PCRequestMessageParser(final ObjectRegistry registry) { super(registry); } diff --git a/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCUpdateRequestMessageParser.java b/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCUpdateRequestMessageParser.java index fee0a0298e..fb00c4f374 100644 --- a/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCUpdateRequestMessageParser.java +++ b/pcep/ietf-stateful02/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful02/Stateful02PCUpdateRequestMessageParser.java @@ -12,7 +12,7 @@ import io.netty.buffer.ByteBuf; import java.util.List; import org.opendaylight.protocol.pcep.spi.AbstractMessageParser; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; import org.opendaylight.protocol.pcep.spi.PCEPErrors; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.stateful._02.rev140110.Pcupd; @@ -42,7 +42,7 @@ public final class Stateful02PCUpdateRequestMessageParser extends AbstractMessag public static final int TYPE = 11; - public Stateful02PCUpdateRequestMessageParser(final ObjectHandlerRegistry registry) { + public Stateful02PCUpdateRequestMessageParser(final ObjectRegistry registry) { super(registry); } diff --git a/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/initiated00/CInitiated00PCInitiateMessageParser.java b/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/initiated00/CInitiated00PCInitiateMessageParser.java index e58e55a580..4a2ec855a1 100644 --- a/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/initiated00/CInitiated00PCInitiateMessageParser.java +++ b/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/initiated00/CInitiated00PCInitiateMessageParser.java @@ -12,7 +12,7 @@ import io.netty.buffer.ByteBuf; import java.util.List; import org.opendaylight.protocol.pcep.spi.AbstractMessageParser; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated.rev131126.Pcinitiate; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated.rev131126.PcinitiateBuilder; @@ -42,7 +42,7 @@ public final class CInitiated00PCInitiateMessageParser extends AbstractMessagePa public static final int TYPE = 12; - public CInitiated00PCInitiateMessageParser(final ObjectHandlerRegistry registry) { + public CInitiated00PCInitiateMessageParser(final ObjectRegistry registry) { super(registry); } diff --git a/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/Stateful07ErrorMessageParser.java b/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/Stateful07ErrorMessageParser.java index 16138de4f0..83a42f1700 100644 --- a/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/Stateful07ErrorMessageParser.java +++ b/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/Stateful07ErrorMessageParser.java @@ -13,7 +13,7 @@ import java.util.ArrayList; import java.util.List; import org.opendaylight.protocol.pcep.impl.message.PCEPErrorMessageParser; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; import org.opendaylight.protocol.pcep.spi.PCEPErrors; import org.opendaylight.protocol.pcep.spi.UnknownObject; @@ -45,7 +45,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ */ public final class Stateful07ErrorMessageParser extends PCEPErrorMessageParser { - public Stateful07ErrorMessageParser(final ObjectHandlerRegistry registry) { + public Stateful07ErrorMessageParser(final ObjectRegistry registry) { super(registry); } diff --git a/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/Stateful07PCReportMessageParser.java b/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/Stateful07PCReportMessageParser.java index 0972aad359..b00bc2a84f 100644 --- a/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/Stateful07PCReportMessageParser.java +++ b/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/Stateful07PCReportMessageParser.java @@ -12,7 +12,7 @@ import io.netty.buffer.ByteBuf; import java.util.List; import org.opendaylight.protocol.pcep.spi.AbstractMessageParser; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; import org.opendaylight.protocol.pcep.spi.PCEPErrors; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.Pcrpt; @@ -44,7 +44,7 @@ public final class Stateful07PCReportMessageParser extends AbstractMessageParser public static final int TYPE = 10; - public Stateful07PCReportMessageParser(final ObjectHandlerRegistry registry) { + public Stateful07PCReportMessageParser(final ObjectRegistry registry) { super(registry); } diff --git a/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/Stateful07PCUpdateRequestMessageParser.java b/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/Stateful07PCUpdateRequestMessageParser.java index c35f844f4d..5b9992721e 100644 --- a/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/Stateful07PCUpdateRequestMessageParser.java +++ b/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/Stateful07PCUpdateRequestMessageParser.java @@ -12,7 +12,7 @@ import io.netty.buffer.ByteBuf; import java.util.List; import org.opendaylight.protocol.pcep.spi.AbstractMessageParser; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; import org.opendaylight.protocol.pcep.spi.PCEPErrors; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.Pcupd; @@ -43,7 +43,7 @@ public final class Stateful07PCUpdateRequestMessageParser extends AbstractMessag public static final int TYPE = 11; - public Stateful07PCUpdateRequestMessageParser(final ObjectHandlerRegistry registry) { + public Stateful07PCUpdateRequestMessageParser(final ObjectRegistry registry) { super(registry); } diff --git a/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/StatefulActivator.java b/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/StatefulActivator.java index 0125e462f9..0733de7971 100644 --- a/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/StatefulActivator.java +++ b/pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/StatefulActivator.java @@ -10,7 +10,7 @@ package org.opendaylight.protocol.pcep.ietf.stateful07; import java.util.ArrayList; import java.util.List; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderContext; import org.opendaylight.protocol.pcep.spi.TlvRegistry; import org.opendaylight.protocol.pcep.spi.pojo.AbstractPCEPExtensionProviderActivator; @@ -30,7 +30,7 @@ public final class StatefulActivator extends AbstractPCEPExtensionProviderActiva protected List startImpl(final PCEPExtensionProviderContext context) { final List regs = new ArrayList<>(); - final ObjectHandlerRegistry objReg = context.getObjectHandlerRegistry(); + final ObjectRegistry objReg = context.getObjectHandlerRegistry(); regs.add(context.registerMessageParser(Stateful07PCUpdateRequestMessageParser.TYPE, new Stateful07PCUpdateRequestMessageParser(objReg))); regs.add(context.registerMessageSerializer(Pcupd.class, new Stateful07PCUpdateRequestMessageParser(objReg))); regs.add(context.registerMessageParser(Stateful07PCReportMessageParser.TYPE, new Stateful07PCReportMessageParser(objReg))); diff --git a/pcep/ietf-stateful07/src/test/java/org/opendaylight/protocol/pcep/ietf/PCEPValidatorTest.java b/pcep/ietf-stateful07/src/test/java/org/opendaylight/protocol/pcep/ietf/PCEPValidatorTest.java index 61ea60a922..4dd3464e78 100644 --- a/pcep/ietf-stateful07/src/test/java/org/opendaylight/protocol/pcep/ietf/PCEPValidatorTest.java +++ b/pcep/ietf-stateful07/src/test/java/org/opendaylight/protocol/pcep/ietf/PCEPValidatorTest.java @@ -31,7 +31,7 @@ import org.opendaylight.protocol.pcep.impl.message.PCEPNotificationMessageParser import org.opendaylight.protocol.pcep.impl.message.PCEPOpenMessageParser; import org.opendaylight.protocol.pcep.impl.message.PCEPReplyMessageParser; import org.opendaylight.protocol.pcep.impl.message.PCEPRequestMessageParser; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; import org.opendaylight.protocol.pcep.spi.pojo.SimplePCEPExtensionProviderContext; import org.opendaylight.protocol.util.ByteArray; @@ -148,7 +148,7 @@ import com.google.common.collect.Lists; public class PCEPValidatorTest { - private ObjectHandlerRegistry objectRegistry; + private ObjectRegistry objectRegistry; private Rp rpTrue; private Rp rpFalse; diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/Activator.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/Activator.java index fb1ba57fac..38e8b04998 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/Activator.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/Activator.java @@ -66,7 +66,7 @@ import org.opendaylight.protocol.pcep.impl.tlv.OverloadedDurationTlvParser; import org.opendaylight.protocol.pcep.impl.tlv.ReqMissingTlvParser; import org.opendaylight.protocol.pcep.spi.EROSubobjectRegistry; import org.opendaylight.protocol.pcep.spi.LabelHandlerRegistry; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderContext; import org.opendaylight.protocol.pcep.spi.RROSubobjectRegistry; import org.opendaylight.protocol.pcep.spi.TlvRegistry; @@ -187,7 +187,7 @@ public final class Activator extends AbstractPCEPExtensionProviderActivator { context.registerTlvSerializer(OfList.class, new OFListTlvParser()); context.registerTlvSerializer(Order.class, new OrderTlvParser()); - final ObjectHandlerRegistry objReg = context.getObjectHandlerRegistry(); + final ObjectRegistry objReg = context.getObjectHandlerRegistry(); context.registerObjectParser(PCEPRequestParameterObjectParser.CLASS, PCEPRequestParameterObjectParser.TYPE, new PCEPRequestParameterObjectParser(tlvReg)); context.registerObjectParser(PCEPNoPathObjectParser.CLASS, PCEPNoPathObjectParser.TYPE, new PCEPNoPathObjectParser(tlvReg)); diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPCloseMessageParser.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPCloseMessageParser.java index 2001581b16..a700f467f0 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPCloseMessageParser.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPCloseMessageParser.java @@ -12,7 +12,7 @@ import io.netty.buffer.ByteBuf; import java.util.List; import org.opendaylight.protocol.pcep.spi.AbstractMessageParser; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.Close; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.CloseBuilder; @@ -30,7 +30,7 @@ public class PCEPCloseMessageParser extends AbstractMessageParser { public static final int TYPE = 7; - public PCEPCloseMessageParser(final ObjectHandlerRegistry registry) { + public PCEPCloseMessageParser(final ObjectRegistry registry) { super(registry); } diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPErrorMessageParser.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPErrorMessageParser.java index 3b763470f2..a69d128cb1 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPErrorMessageParser.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPErrorMessageParser.java @@ -13,7 +13,7 @@ import java.util.ArrayList; import java.util.List; import org.opendaylight.protocol.pcep.spi.AbstractMessageParser; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; import org.opendaylight.protocol.pcep.spi.PCEPErrors; import org.opendaylight.protocol.pcep.spi.UnknownObject; @@ -43,7 +43,7 @@ public class PCEPErrorMessageParser extends AbstractMessageParser { public static final int TYPE = 6; - public PCEPErrorMessageParser(final ObjectHandlerRegistry registry) { + public PCEPErrorMessageParser(final ObjectRegistry registry) { super(registry); } diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPKeepAliveMessageParser.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPKeepAliveMessageParser.java index 7eedb858f0..81aaded51f 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPKeepAliveMessageParser.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPKeepAliveMessageParser.java @@ -12,7 +12,7 @@ import io.netty.buffer.ByteBuf; import java.util.List; import org.opendaylight.protocol.pcep.spi.AbstractMessageParser; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.KeepaliveBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.KeepaliveMessage; @@ -27,7 +27,7 @@ public class PCEPKeepAliveMessageParser extends AbstractMessageParser { private static final KeepaliveMessage MESSAGE = new KeepaliveBuilder().setKeepaliveMessage(new KeepaliveMessageBuilder().build()).build(); public static final int TYPE = 2; - public PCEPKeepAliveMessageParser(final ObjectHandlerRegistry registry) { + public PCEPKeepAliveMessageParser(final ObjectRegistry registry) { super(registry); } diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPNotificationMessageParser.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPNotificationMessageParser.java index ca04a80df8..ed8a40d496 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPNotificationMessageParser.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPNotificationMessageParser.java @@ -12,7 +12,7 @@ import io.netty.buffer.ByteBuf; import java.util.List; import org.opendaylight.protocol.pcep.spi.AbstractMessageParser; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; import org.opendaylight.protocol.pcep.spi.PCEPErrors; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.PcntfBuilder; @@ -36,7 +36,7 @@ public class PCEPNotificationMessageParser extends AbstractMessageParser { public static final int TYPE = 5; - public PCEPNotificationMessageParser(final ObjectHandlerRegistry registry) { + public PCEPNotificationMessageParser(final ObjectRegistry registry) { super(registry); } diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPOpenMessageParser.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPOpenMessageParser.java index 2584a0144b..81e157ed69 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPOpenMessageParser.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPOpenMessageParser.java @@ -12,7 +12,7 @@ import io.netty.buffer.ByteBuf; import java.util.List; import org.opendaylight.protocol.pcep.spi.AbstractMessageParser; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.OpenBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Message; @@ -28,7 +28,7 @@ public class PCEPOpenMessageParser extends AbstractMessageParser { public static final int TYPE = 1; - public PCEPOpenMessageParser(final ObjectHandlerRegistry registry) { + public PCEPOpenMessageParser(final ObjectRegistry registry) { super(registry); } diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPReplyMessageParser.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPReplyMessageParser.java index fba2eb3269..590b5ec00f 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPReplyMessageParser.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPReplyMessageParser.java @@ -12,7 +12,7 @@ import io.netty.buffer.ByteBuf; import java.util.List; import org.opendaylight.protocol.pcep.spi.AbstractMessageParser; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; import org.opendaylight.protocol.pcep.spi.PCEPErrors; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.Pcrep; @@ -50,7 +50,7 @@ public class PCEPReplyMessageParser extends AbstractMessageParser { public static final int TYPE = 4; - public PCEPReplyMessageParser(final ObjectHandlerRegistry registry) { + public PCEPReplyMessageParser(final ObjectRegistry registry) { super(registry); } diff --git a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPRequestMessageParser.java b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPRequestMessageParser.java index 44fbed0d2e..015ab58680 100644 --- a/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPRequestMessageParser.java +++ b/pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPRequestMessageParser.java @@ -12,7 +12,7 @@ import io.netty.buffer.ByteBuf; import java.util.List; import org.opendaylight.protocol.pcep.spi.AbstractMessageParser; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; import org.opendaylight.protocol.pcep.spi.PCEPErrors; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.Pcreq; @@ -58,7 +58,7 @@ public class PCEPRequestMessageParser extends AbstractMessageParser { public static final int TYPE = 3; - public PCEPRequestMessageParser(final ObjectHandlerRegistry registry) { + public PCEPRequestMessageParser(final ObjectRegistry registry) { super(registry); } diff --git a/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/AbstractMessageParser.java b/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/AbstractMessageParser.java index 8d865e3f77..97ce4243f3 100644 --- a/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/AbstractMessageParser.java +++ b/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/AbstractMessageParser.java @@ -53,9 +53,9 @@ public abstract class AbstractMessageParser implements MessageParser, MessageSer private static final int P_FLAG_OFFSET = 6; private static final int I_FLAG_OFFSET = 7; - private final ObjectHandlerRegistry registry; + private final ObjectRegistry registry; - protected AbstractMessageParser(final ObjectHandlerRegistry registry) { + protected AbstractMessageParser(final ObjectRegistry registry) { this.registry = Preconditions.checkNotNull(registry); } @@ -63,9 +63,7 @@ public abstract class AbstractMessageParser implements MessageParser, MessageSer if (object == null) { return new byte[] {}; } - final ObjectSerializer serializer = this.registry.getObjectSerializer(object); - LOG.trace("Choosen serializer {}", serializer); - return serializer.serializeObject(object); + return this.registry.serializeObject(object); } private List parseObjects(final byte[] bytes) throws PCEPDeserializerException { @@ -103,11 +101,10 @@ public abstract class AbstractMessageParser implements MessageParser, MessageSer offset += objLength - COMMON_OBJECT_HEADER_LENGTH; - final ObjectParser parser = Preconditions.checkNotNull(this.registry.getObjectParser(objClass, objType)); final ObjectHeader header = new ObjectHeaderImpl(flags.get(P_FLAG_OFFSET), flags.get(I_FLAG_OFFSET)); // parseObject is required to return null for P=0 errored objects - final Object o = parser.parseObject(header, bytesToPass); + final Object o = this.registry.parseObject(objClass, objType, header, bytesToPass); if (o != null) { objs.add(o); } @@ -131,9 +128,9 @@ public abstract class AbstractMessageParser implements MessageParser, MessageSer new PcerrMessageBuilder().setErrorType( new RequestCaseBuilder().setRequest( new RequestBuilder().setRps(Lists.newArrayList(new RpsBuilder().setRp(rp).build())).build()).build()).setErrors( - Arrays.asList(new ErrorsBuilder().setErrorObject( - new ErrorObjectBuilder().setType(maping.getFromErrorsEnum(e).type).setValue( - maping.getFromErrorsEnum(e).value).build()).build())).build()).build(); + Arrays.asList(new ErrorsBuilder().setErrorObject( + new ErrorObjectBuilder().setType(maping.getFromErrorsEnum(e).type).setValue( + maping.getFromErrorsEnum(e).value).build()).build())).build()).build(); } protected abstract Message validate(final List objects, final List errors) throws PCEPDeserializerException; diff --git a/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/ObjectHandlerRegistry.java b/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/ObjectHandlerRegistry.java deleted file mode 100644 index 7933b36b73..0000000000 --- a/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/ObjectHandlerRegistry.java +++ /dev/null @@ -1,15 +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.protocol.pcep.spi; - -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Object; - -public interface ObjectHandlerRegistry { - ObjectParser getObjectParser(int objectClass, int objectType); - ObjectSerializer getObjectSerializer(Object object); -} diff --git a/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/ObjectRegistry.java b/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/ObjectRegistry.java new file mode 100644 index 0000000000..248d93391b --- /dev/null +++ b/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/ObjectRegistry.java @@ -0,0 +1,30 @@ +/* + * 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.protocol.pcep.spi; + +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Object; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.ObjectHeader; + +public interface ObjectRegistry { + /** + * Finds parser for given object type and class in the registry. Delegates parsing to found parser. + * @param objectType object type + * @param objectClass object class + * @param buffer object raw binary value to be parsed + * @return null if the parser for this object could not be found + * @throws PCEPDeserializerException if the parsing did not succeed + */ + Object parseObject(final int objectClass, final int objectType, final ObjectHeader header, final byte[] buffer) throws PCEPDeserializerException; + + /** + * Find serializer for given object. Delegates parsing to found serializer. + * @param object to be parsed + * @return null if the serializer for this object could not be found + */ + byte[] serializeObject(Object object); +} diff --git a/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/PCEPExtensionConsumerContext.java b/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/PCEPExtensionConsumerContext.java index b59452d472..54867a23be 100644 --- a/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/PCEPExtensionConsumerContext.java +++ b/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/PCEPExtensionConsumerContext.java @@ -13,7 +13,7 @@ public interface PCEPExtensionConsumerContext { MessageHandlerRegistry getMessageHandlerRegistry(); - ObjectHandlerRegistry getObjectHandlerRegistry(); + ObjectRegistry getObjectHandlerRegistry(); EROSubobjectRegistry getEROSubobjectHandlerRegistry(); diff --git a/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/SimpleObjectHandlerRegistry.java b/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/SimpleObjectRegistry.java similarity index 66% rename from pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/SimpleObjectHandlerRegistry.java rename to pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/SimpleObjectRegistry.java index c93b9374c2..c123d906e5 100644 --- a/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/SimpleObjectHandlerRegistry.java +++ b/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/SimpleObjectRegistry.java @@ -8,9 +8,10 @@ package org.opendaylight.protocol.pcep.spi.pojo; import org.opendaylight.protocol.concepts.HandlerRegistry; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; import org.opendaylight.protocol.pcep.spi.ObjectParser; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.ObjectSerializer; +import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException; import org.opendaylight.protocol.pcep.spi.PCEPErrors; import org.opendaylight.protocol.pcep.spi.UnknownObject; import org.opendaylight.protocol.util.Values; @@ -23,7 +24,7 @@ import com.google.common.base.Preconditions; /** * */ -public final class SimpleObjectHandlerRegistry implements ObjectHandlerRegistry { +public final class SimpleObjectRegistry implements ObjectRegistry { private final HandlerRegistry handlers = new HandlerRegistry<>(); private static int createKey(final int objectClass, final int objectType) { @@ -43,35 +44,31 @@ public final class SimpleObjectHandlerRegistry implements ObjectHandlerRegistry } @Override - public ObjectParser getObjectParser(final int objectClass, final int objectType) { - final ObjectParser ret = this.handlers.getParser(createKey(objectClass, objectType)); - if (ret != null) { - return ret; - } + public Object parseObject(int objectClass, int objectType, ObjectHeader header, byte[] buffer) throws PCEPDeserializerException { + Preconditions.checkArgument(objectType >= 0 && objectType <= Values.UNSIGNED_SHORT_MAX_VALUE); + final ObjectParser parser = this.handlers.getParser(createKey(objectClass, objectType)); + + if (parser == null) { - final boolean foundClass = false; + final boolean foundClass = false; - // FIXME: BUG-187: search the parsers, check classes + // FIXME: BUG-187: search the parsers, check classes - if (!foundClass) { - return new ObjectParser() { - @Override - public Object parseObject(final ObjectHeader header, final byte[] buffer) { - return new UnknownObject(PCEPErrors.UNRECOGNIZED_OBJ_CLASS); - } - }; - } else { - return new ObjectParser() { - @Override - public Object parseObject(final ObjectHeader header, final byte[] buffer) { - return new UnknownObject(PCEPErrors.UNRECOGNIZED_OBJ_TYPE); - } - }; + if (!foundClass) { + return new UnknownObject(PCEPErrors.UNRECOGNIZED_OBJ_CLASS); + } else { + return new UnknownObject(PCEPErrors.UNRECOGNIZED_OBJ_TYPE); + } } + return parser.parseObject(header, buffer); } @Override - public ObjectSerializer getObjectSerializer(final Object object) { - return this.handlers.getSerializer(object.getImplementedInterface()); + public byte[] serializeObject(Object object) { + final ObjectSerializer serializer = this.handlers.getSerializer(object.getImplementedInterface()); + if (serializer == null) { + return null; + } + return serializer.serializeObject(object); } } diff --git a/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/SimplePCEPExtensionProviderContext.java b/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/SimplePCEPExtensionProviderContext.java index 27fa7be5c9..5430775500 100644 --- a/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/SimplePCEPExtensionProviderContext.java +++ b/pcep/spi/src/main/java/org/opendaylight/protocol/pcep/spi/pojo/SimplePCEPExtensionProviderContext.java @@ -18,7 +18,7 @@ import org.opendaylight.protocol.pcep.spi.LabelSerializer; import org.opendaylight.protocol.pcep.spi.MessageHandlerRegistry; import org.opendaylight.protocol.pcep.spi.MessageParser; import org.opendaylight.protocol.pcep.spi.MessageSerializer; -import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry; +import org.opendaylight.protocol.pcep.spi.ObjectRegistry; import org.opendaylight.protocol.pcep.spi.ObjectParser; import org.opendaylight.protocol.pcep.spi.ObjectSerializer; import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderContext; @@ -44,7 +44,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev public class SimplePCEPExtensionProviderContext implements PCEPExtensionProviderContext { private final SimpleLabelHandlerRegistry labelReg = new SimpleLabelHandlerRegistry(); private final SimpleMessageHandlerRegistry msgReg = new SimpleMessageHandlerRegistry(); - private final SimpleObjectHandlerRegistry objReg = new SimpleObjectHandlerRegistry(); + private final SimpleObjectRegistry objReg = new SimpleObjectRegistry(); private final SimpleEROSubobjectRegistry eroSubReg = new SimpleEROSubobjectRegistry(); private final SimpleRROSubobjectRegistry rroSubReg = new SimpleRROSubobjectRegistry(); private final SimpleXROSubobjectRegistry xroSubReg = new SimpleXROSubobjectRegistry(); @@ -61,7 +61,7 @@ public class SimplePCEPExtensionProviderContext implements PCEPExtensionProvider } @Override - public final ObjectHandlerRegistry getObjectHandlerRegistry() { + public final ObjectRegistry getObjectHandlerRegistry() { return this.objReg; } -- 2.36.6