@Before public void createContext() { if (ExtensionRegistry.getInstance() == null) { myExtensionRegistry = new ExtensionRegistry(null, null); myExtensionRegistry.init(); } }
@After public void checkAndCleanup() { if (myExtensionRegistry != null) { assert myExtensionRegistry == ExtensionRegistry.getInstance(); ExtensionRegistry.getInstance().dispose(); assertNull(ExtensionRegistry.getInstance()); this.myExtensionRegistry = null; } }
@Test public void singleExtension() { ExtensionPoint ep1 = mockExtensionPoint("ep1", EP1); ExtensionDescriptor ed = mockExtensionDescriptor( "ed1", new ExtensionPoint[] {ep1}, new Extension[] {mockExtension("e1", EP1)}); ExtensionRegistry.getInstance().registerExtensionDescriptor(ed); assertEquals(ep1, ExtensionRegistry.getInstance().getExtensionPoint(EP1)); ExtensionRegistry.getInstance().unregisterExtensionDescriptor(ed); assertNull(ExtensionRegistry.getInstance().getExtensionPoint(EP1)); }
@Test public void reversedExtensions() { ExtensionPoint ep1 = mockExtensionPoint("ep1", EP1); ExtensionDescriptor ed1 = mockExtensionDescriptor("ed1", new ExtensionPoint[] {ep1}, new Extension[] {}); ExtensionDescriptor ed2 = mockExtensionDescriptor( "ed2", new ExtensionPoint[] {}, new Extension[] {mockExtension("e1", EP1)}); ExtensionRegistry.getInstance().registerExtensionDescriptor(ed2); ExtensionRegistry.getInstance().registerExtensionDescriptor(ed1); ExtensionRegistry.getInstance().unregisterExtensionDescriptor(ed1); ExtensionRegistry.getInstance().unregisterExtensionDescriptor(ed2); }
public void testParseExtensions() throws Exception { // TestAllTypes and TestAllExtensions should have compatible wire formats, // so if we serealize a TestAllTypes then parse it as TestAllExtensions // it should work. TestAllTypes message = TestUtil.getAllSet(); ByteString rawBytes = message.toByteString(); ExtensionRegistry registry = ExtensionRegistry.newInstance(); TestUtil.registerAllExtensions(registry); registry = registry.getUnmodifiable(); TestAllExtensions message2 = TestAllExtensions.parseFrom(rawBytes, registry); TestUtil.assertAllExtensionsSet(message2); }
public ExtensibilityElement unmarshall( Class parentType, QName elementType, Element el, Definition def, ExtensionRegistry extReg) throws WSDLException { SOAPBody soapBody = (SOAPBody) extReg.createExtension(parentType, elementType); String partsStr = DOMUtils.getAttribute(el, SOAPConstants.ATTR_PARTS); String use = DOMUtils.getAttribute(el, SOAPConstants.ATTR_USE); String encStyleStr = DOMUtils.getAttribute(el, SOAPConstants.ATTR_ENCODING_STYLE); String namespaceURI = DOMUtils.getAttribute(el, Constants.ATTR_NAMESPACE); String requiredStr = DOMUtils.getAttributeNS(el, Constants.NS_URI_WSDL, Constants.ATTR_REQUIRED); if (partsStr != null) { soapBody.setParts(StringUtils.parseNMTokens(partsStr)); } if (use != null) { soapBody.setUse(use); } if (encStyleStr != null) { soapBody.setEncodingStyles(StringUtils.parseNMTokens(encStyleStr)); } if (namespaceURI != null) { soapBody.setNamespaceURI(namespaceURI); } if (requiredStr != null) { soapBody.setRequired(new Boolean(requiredStr)); } return soapBody; }
public void testParseMessageSet() throws Exception { ExtensionRegistry extensionRegistry = ExtensionRegistry.newInstance(); extensionRegistry.add(TestMessageSetExtension1.messageSetExtension); extensionRegistry.add(TestMessageSetExtension2.messageSetExtension); // Set up a RawMessageSet with two known messages and an unknown one. RawMessageSet raw = RawMessageSet.newBuilder() .addItem( RawMessageSet.Item.newBuilder() .setTypeId(TYPE_ID_1) .setMessage( TestMessageSetExtension1.newBuilder().setI(123).build().toByteString()) .build()) .addItem( RawMessageSet.Item.newBuilder() .setTypeId(TYPE_ID_2) .setMessage( TestMessageSetExtension2.newBuilder().setStr("foo").build().toByteString()) .build()) .addItem( RawMessageSet.Item.newBuilder() .setTypeId(UNKNOWN_TYPE_ID) .setMessage(ByteString.copyFromUtf8("bar")) .build()) .build(); ByteString data = raw.toByteString(); // Parse as a TestMessageSet and check the contents. TestMessageSet messageSet = TestMessageSet.parseFrom(data, extensionRegistry); assertEquals(123, messageSet.getExtension(TestMessageSetExtension1.messageSetExtension).getI()); assertEquals( "foo", messageSet.getExtension(TestMessageSetExtension2.messageSetExtension).getStr()); // Check for unknown field with type LENGTH_DELIMITED, // number UNKNOWN_TYPE_ID, and contents "bar". UnknownFieldSet unknownFields = messageSet.getUnknownFields(); assertEquals(1, unknownFields.asMap().size()); assertTrue(unknownFields.hasField(UNKNOWN_TYPE_ID)); UnknownFieldSet.Field field = unknownFields.getField(UNKNOWN_TYPE_ID); assertEquals(1, field.getLengthDelimitedList().size()); assertEquals("bar", field.getLengthDelimitedList().get(0).toStringUtf8()); }
/** * Creates a new Wire that can encode and decode the extensions specified in {@code * extensionClasses}. Typically the classes in this list are generated and start with the "Ext_" * prefix. */ public Wire(List<Class<?>> extensionClasses) { this.registry = new ExtensionRegistry(); for (Class<?> extensionClass : extensionClasses) { for (Field field : extensionClass.getDeclaredFields()) { if (field.getType().equals(Extension.class)) { try { Extension extension = (Extension) field.get(null); registry.add(extension); } catch (IllegalAccessException e) { throw new AssertionError(e); } } } } }
public ExtensibilityElement unmarshall( Class parentType, QName elementType, Element el, Definition def, ExtensionRegistry extReg) throws WSDLException { MIMEContent mimeContent = (MIMEContent) extReg.createExtension(parentType, elementType); String part = DOMUtils.getAttribute(el, MIMEConstants.ATTR_PART); String type = DOMUtils.getAttribute(el, Constants.ATTR_TYPE); String requiredStr = DOMUtils.getAttributeNS(el, Constants.NS_URI_WSDL, Constants.ATTR_REQUIRED); if (part != null) { mimeContent.setPart(part); } if (type != null) { mimeContent.setType(type); } if (requiredStr != null) { mimeContent.setRequired(new Boolean(requiredStr)); } return mimeContent; }
@Test public void allExtensions() { ExtensionPoint ep1 = mockExtensionPoint("ep1", EP1); ExtensionDescriptor ed1 = mockExtensionDescriptor("ed1", new ExtensionPoint[] {ep1}, new Extension[] {}); ExtensionDescriptor ed2 = mockExtensionDescriptor( "ed2", new ExtensionPoint[] {}, new Extension[] {mockExtension("e1", EP1)}); ExtensionDescriptor ed3 = mockExtensionDescriptor( "ed3", new ExtensionPoint[] {}, new Extension[] {mockExtension("e2", EP1)}); ExtensionRegistry.getInstance().registerExtensionDescriptor(ed3); ExtensionRegistry.getInstance().registerExtensionDescriptor(ed2); ExtensionRegistry.getInstance().registerExtensionDescriptor(ed1); Iterable<Extension<?>> extensions = ep1.getExtensions(); List<Extension> extensionList = new ArrayList(); for (Iterator<Extension> it = ExtensionRegistry.getInstance().getExtensions(ep1).iterator(); it.hasNext(); ) { extensionList.add(it.next()); } assertSame(2, extensionList.size()); Collections.sort( extensionList, new Comparator<Extension>() { @Override public int compare(Extension o1, Extension o2) { return String.CASE_INSENSITIVE_ORDER.compare(String.valueOf(o1), String.valueOf(o2)); } }); assertEquals("[e1, e2]", extensionList.toString()); ExtensionRegistry.getInstance().unregisterExtensionDescriptor(ed3); ExtensionRegistry.getInstance().unregisterExtensionDescriptor(ed2); ExtensionRegistry.getInstance().unregisterExtensionDescriptor(ed1); }
@Override public BuilderType mergeFrom(final CodedInputStream input) throws IOException { return mergeFrom(input, ExtensionRegistry.getEmptyRegistry()); }
/** * Parse a text-format message from {@code input} and merge the contents * into {@code builder}. */ public void merge(final CharSequence input, final Message.Builder builder) throws ParseException { merge(input, ExtensionRegistry.getEmptyRegistry(), builder); }
/** * Parse a text-format message from {@code input} and merge the contents * into {@code builder}. */ public void merge(final Readable input, final Message.Builder builder) throws IOException { merge(input, ExtensionRegistry.getEmptyRegistry(), builder); }