Exemplo n.º 1
0
 @Before
 public void createContext() {
   if (ExtensionRegistry.getInstance() == null) {
     myExtensionRegistry = new ExtensionRegistry(null, null);
     myExtensionRegistry.init();
   }
 }
Exemplo n.º 2
0
 @After
 public void checkAndCleanup() {
   if (myExtensionRegistry != null) {
     assert myExtensionRegistry == ExtensionRegistry.getInstance();
     ExtensionRegistry.getInstance().dispose();
     assertNull(ExtensionRegistry.getInstance());
     this.myExtensionRegistry = null;
   }
 }
Exemplo n.º 3
0
 @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));
 }
Exemplo n.º 4
0
 @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);
 }
Exemplo n.º 5
0
  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;
  }
Exemplo n.º 7
0
  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());
  }
Exemplo n.º 8
0
 /**
  * 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);
         }
       }
     }
   }
 }
Exemplo n.º 9
0
  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;
  }
Exemplo n.º 10
0
  @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());
 }
Exemplo n.º 12
0
 /**
  * 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);
 }
Exemplo n.º 13
0
 /**
  * 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);
 }