/**
* Service.create(QName) with a composite that specifies a wsdlLocation override
*/
public void test1ArgServiceOverrideWsdlLocation() {
QName serviceQName = new QName(namespaceURI, svcLocalPart);
DescriptionBuilderComposite composite = new DescriptionBuilderComposite();
WebServiceClientAnnot wsClientAnno =
WebServiceClientAnnot.createWebServiceClientAnnotImpl(null, null, getWsdlLocation(overridenWsdl));
composite.setWebServiceClientAnnot(wsClientAnno);
// Use the proprietary SPI to create a service with additional metadata specified
ServiceDelegate.setServiceMetadata(composite);
Service service = Service.create(serviceQName);
assertNotNull(service);
// Verify that the composite has been reset so that it would not affect the next Service
assertNull(ServiceDelegate.getServiceMetadata());
ServiceDelegate serviceDelegate = DescriptionTestUtils2.getServiceDelegate(service);
assertNotNull(serviceDelegate);
ServiceDescription serviceDesc = serviceDelegate.getServiceDescription();
assertNotNull(serviceDesc);
DescriptionBuilderComposite dbcInServiceDesc = DescriptionTestUtils2.getServiceDescriptionComposite(serviceDesc);
assertSame(composite, dbcInServiceDesc.getSparseComposite(serviceDelegate));
assertEquals(Service.class, dbcInServiceDesc.getCorrespondingClass());
// This is a generic Service with overrides, there will be WebServiceClient annotation
WebServiceClient wsClient = dbcInServiceDesc.getWebServiceClientAnnot();
assertNull(wsClient);
wsClient = dbcInServiceDesc.getWebServiceClientAnnot(serviceDelegate);
assertNotNull(wsClient);
assertEquals(getWsdlLocation(overridenWsdl), wsClient.wsdlLocation());
assertNull(wsClient.targetNamespace());
assertNull(wsClient.name());