Skip to content

Instantly share code, notes, and snippets.

Created June 25, 2011 11:18
Show Gist options
  • Select an option

  • Save anonymous/1046378 to your computer and use it in GitHub Desktop.

Select an option

Save anonymous/1046378 to your computer and use it in GitHub Desktop.
Index: server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/CxfJaxWsProviderTest.java
===================================================================
--- server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/CxfJaxWsProviderTest.java (révision 1139507)
+++ server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/CxfJaxWsProviderTest.java (copie de travail)
@@ -19,14 +19,11 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Properties;
-
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
-
import junit.framework.TestCase;
-
import org.apache.openejb.server.cxf.fault.AuthenticatorService;
import org.apache.openejb.server.cxf.fault.WrongPasswordException;
import org.apache.openejb.server.cxf.fault.WrongPasswordRuntimeException;
Index: server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbEndpoint.java
===================================================================
--- server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbEndpoint.java (révision 1139507)
+++ server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbEndpoint.java (copie de travail)
@@ -17,6 +17,8 @@
*/
package org.apache.openejb.server.cxf.ejb;
+import java.util.List;
+import javax.xml.ws.WebServiceException;
import org.apache.cxf.Bus;
import org.apache.cxf.binding.soap.SoapBinding;
import org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor;
@@ -26,6 +28,7 @@
import org.apache.cxf.jaxws.handler.logical.LogicalHandlerInInterceptor;
import org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor;
import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
+import org.apache.cxf.message.Message;
import org.apache.openejb.BeanContext;
import org.apache.openejb.core.webservices.JaxWsUtils;
import org.apache.openejb.core.webservices.PortData;
@@ -35,9 +38,6 @@
import org.apache.openejb.server.cxf.HttpTransportFactory;
import org.apache.openejb.server.cxf.JaxWsImplementorInfoImpl;
-import javax.xml.ws.WebServiceException;
-import java.util.List;
-
/**
* A web service endpoint which invokes an EJB container.
*/
@@ -96,7 +96,7 @@
}
- private static void removeHandlerInterceptors(List<Interceptor> interceptors) {
+ private static void removeHandlerInterceptors(List<Interceptor<? extends Message>> interceptors) {
for (Interceptor interceptor : interceptors) {
if (interceptor instanceof MustUnderstandInterceptor || interceptor instanceof LogicalHandlerInInterceptor || interceptor instanceof SOAPHandlerInterceptor) {
interceptors.remove(interceptor);
Index: server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java
===================================================================
--- server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java (révision 1139507)
+++ server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ejb/EjbWsContainer.java (copie de travail)
@@ -32,8 +32,7 @@
}
protected EjbEndpoint createEndpoint() {
- EjbEndpoint ep = new EjbEndpoint(bus, port, beanContext, httpTransportFactory);
- return ep;
+ return new EjbEndpoint(bus, port, beanContext, httpTransportFactory);
}
public void start() {
Index: server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/HttpDestination.java
===================================================================
--- server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/HttpDestination.java (révision 1139507)
+++ server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/HttpDestination.java (copie de travail)
@@ -17,46 +17,50 @@
*/
package org.apache.openejb.server.cxf;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.security.Principal;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Logger;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.xml.ws.handler.MessageContext;
import org.apache.cxf.Bus;
import org.apache.cxf.binding.Binding;
+import org.apache.cxf.common.util.Base64Exception;
+import org.apache.cxf.common.util.Base64Utility;
+import org.apache.cxf.common.util.StringUtils;
+import org.apache.cxf.configuration.security.AuthorizationPolicy;
import org.apache.cxf.message.ExchangeImpl;
import org.apache.cxf.message.Message;
import org.apache.cxf.message.MessageImpl;
import org.apache.cxf.security.SecurityContext;
import org.apache.cxf.service.model.EndpointInfo;
import org.apache.cxf.transport.Conduit;
-import org.apache.cxf.transport.ConduitInitiator;
import org.apache.cxf.transport.Destination;
import org.apache.cxf.transport.MessageObserver;
import org.apache.cxf.transport.http.AbstractHTTPDestination;
+import org.apache.cxf.transport.http.DestinationRegistry;
import org.apache.cxf.transport.http.HTTPSession;
import org.apache.cxf.ws.addressing.EndpointReferenceType;
import org.apache.openejb.server.httpd.HttpRequest;
import org.apache.openejb.server.httpd.HttpResponse;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.xml.ws.handler.MessageContext;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.security.Principal;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.logging.Logger;
-
public class HttpDestination extends AbstractHTTPDestination {
private MessageObserver messageObserver;
private boolean passSecurityContext = false;
private CxfEndpoint endpoint;
- public HttpDestination(Bus bus, ConduitInitiator conduitInitiator, EndpointInfo endpointInfo) throws IOException {
- super(bus, conduitInitiator, endpointInfo, true);
+ public HttpDestination(Bus bus, DestinationRegistry registry, EndpointInfo endpointInfo) throws IOException {
+ super(bus, registry, endpointInfo, getAddressValue(endpointInfo).getAddress(), true);
this.endpoint = bus.getExtension(CxfEndpoint.class);
}
@@ -106,7 +110,33 @@
}
// this calls copyRequestHeaders()
- setHeaders(message);
+ Map<String, List<String>> requestHeaders = new HashMap<String, List<String>> ();
+ copyRequestHeaders(message, requestHeaders);
+ message.put(Message.PROTOCOL_HEADERS, requestHeaders);
+ if (requestHeaders.containsKey("Authorization")) {
+ List<String> authorizationLines = requestHeaders.get("Authorization");
+ String credentials = authorizationLines.get(0);
+ if (credentials != null && !StringUtils.isEmpty(credentials.trim())) {
+ String authType = credentials.split(" ")[0];
+ if ("Basic".equals(authType)) {
+ String authEncoded = credentials.split(" ")[1];
+ try {
+ String authDecoded = new String(Base64Utility.decode(authEncoded));
+ String authInfo[] = authDecoded.split(":");
+ String username = (authInfo.length > 0) ? authInfo[0] : "";
+ // Below line for systems that blank out password after authentication;
+ // see CXF-1495 for more info
+ String password = (authInfo.length > 1) ? authInfo[1] : "";
+ AuthorizationPolicy policy = new AuthorizationPolicy();
+ policy.setUserName(username);
+ policy.setPassword(password);
+ message.put(AuthorizationPolicy.class, policy);
+ } catch (Base64Exception ex) {
+ //ignore, we'll leave things alone. They can try decoding it themselves
+ }
+ }
+ }
+ }
message.put(Message.HTTP_REQUEST_METHOD, request.getMethod().toString());
message.put(Message.PATH_INFO, request.getURI().getPath());
@@ -115,7 +145,7 @@
if (servletRequest != null) {
message.put(Message.ENCODING, getCharacterEncoding(servletRequest.getCharacterEncoding()));
}
-
+
ExchangeImpl exchange = new ExchangeImpl();
exchange.setInMessage(getBinding().createMessage(message));
exchange.setSession(new HTTPSession(servletRequest));
@@ -176,7 +206,7 @@
partialResponse.put(Message.RESPONSE_CODE, HttpURLConnection.HTTP_ACCEPTED);
backChannel = new BackChannelConduit(address, inMessage);
} else {
- backChannel = conduitInitiator.getConduit(endpointInfo, address);
+ backChannel = getBackChannel(inMessage, partialResponse, address);
// ensure decoupled back channel input stream is closed
backChannel.setMessageObserver(new MessageObserver() {
public void onMessage(Message m) {
@@ -229,6 +259,11 @@
// shouldn't be called for a back channel conduit
}
+ @Override public MessageObserver getMessageObserver() {
+ // shouldn't be called for a back channel conduit
+ return null;
+ }
+
public void prepare(Message message) throws IOException {
send(message);
}
@@ -243,7 +278,7 @@
HttpResponse response = request.get(HttpResponse.class);
// handle response headers
- updateResponseHeaders(message);
+ flushHeaders(message);
Map<String, List<String>> protocolHeaders = getProtocolHeaders(message);
Index: server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfEndpoint.java
===================================================================
--- server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfEndpoint.java (révision 1139507)
+++ server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfEndpoint.java (copie de travail)
@@ -17,6 +17,17 @@
*/
package org.apache.openejb.server.cxf;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.Executor;
+import javax.naming.Context;
+import javax.xml.transform.Source;
+import javax.xml.ws.Binding;
+import javax.xml.ws.handler.Handler;
+import javax.xml.ws.http.HTTPBinding;
+import javax.xml.ws.soap.SOAPBinding;
import org.apache.cxf.Bus;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.endpoint.ServerImpl;
@@ -30,18 +41,6 @@
import org.apache.openejb.core.webservices.HandlerResolverImpl;
import org.apache.openejb.core.webservices.PortData;
-import javax.xml.transform.Source;
-import javax.xml.ws.Binding;
-import javax.xml.ws.handler.Handler;
-import javax.xml.ws.http.HTTPBinding;
-import javax.xml.ws.soap.SOAPBinding;
-import javax.naming.Context;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.Executor;
-
public abstract class CxfEndpoint {
protected Bus bus;
@@ -164,15 +163,15 @@
// disable CXF resource injection
doInit = false;
}
-
+
@Override
protected BindingInfo createBindingInfo() {
BindingInfo bindingInfo = super.createBindingInfo();
-
+
if(httpTransportFactory != null) {
httpTransportFactory.registerDestinationFactory();
}
-
+
return bindingInfo;
}
}
Index: server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ResourceManager.java
===================================================================
--- server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ResourceManager.java (révision 1139507)
+++ server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ResourceManager.java (copie de travail)
@@ -1,29 +0,0 @@
-/**
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.openejb.server.cxf;
-
-import org.apache.cxf.bus.resource.ResourceManagerImpl;
-import org.apache.cxf.resource.ResourceResolver;
-
-import java.util.List;
-
-public class ResourceManager extends ResourceManagerImpl {
- public ResourceManager(List<ResourceResolver> r) {
- super(r);
- }
-}
Index: server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/HttpTransportFactory.java
===================================================================
--- server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/HttpTransportFactory.java (révision 1139507)
+++ server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/HttpTransportFactory.java (copie de travail)
@@ -22,11 +22,11 @@
import org.apache.cxf.transport.Destination;
import org.apache.cxf.transport.DestinationFactory;
import org.apache.cxf.transport.DestinationFactoryManager;
-import org.apache.cxf.transport.http.AbstractHTTPTransportFactory;
import java.io.IOException;
+import org.apache.cxf.transport.http.HTTPTransportFactory;
-public class HttpTransportFactory extends AbstractHTTPTransportFactory implements DestinationFactory {
+public class HttpTransportFactory extends HTTPTransportFactory implements DestinationFactory {
public HttpTransportFactory() {
super();
}
@@ -36,7 +36,7 @@
}
public Destination getDestination(EndpointInfo endpointInfo) throws IOException {
- HttpDestination destination = new HttpDestination(getBus(), this, endpointInfo);
+ HttpDestination destination = new HttpDestination(getBus(), getRegistry(), endpointInfo);
configure(destination);
return destination;
}
Index: server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ServerPasswordHandler.java
===================================================================
--- server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ServerPasswordHandler.java (révision 1139507)
+++ server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/ServerPasswordHandler.java (copie de travail)
@@ -36,7 +36,7 @@
try {
securityService.disassociate();
- token = securityService.login(pc.getIdentifer(), pc.getPassword());
+ token = securityService.login(pc.getIdentifier(), pc.getPassword());
securityService.associate(token);
} catch (LoginException e) {
throw new SecurityException("wrong password");
Index: server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/WsdlQueryHandler.java
===================================================================
--- server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/WsdlQueryHandler.java (révision 1139507)
+++ server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/WsdlQueryHandler.java (copie de travail)
@@ -17,26 +17,24 @@
*/
package org.apache.openejb.server.cxf;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import javax.wsdl.Definition;
+import javax.wsdl.Port;
+import javax.wsdl.Service;
+import javax.wsdl.extensions.ExtensibilityElement;
+import javax.wsdl.extensions.schema.SchemaReference;
+import javax.xml.namespace.QName;
import org.apache.cxf.Bus;
import org.apache.cxf.service.model.EndpointInfo;
import org.apache.cxf.tools.common.extensions.soap.SoapAddress;
import org.apache.cxf.tools.util.SOAPBindingUtil;
-import org.apache.cxf.transport.http.WSDLQueryHandler;
import org.apache.cxf.wsdl.http.AddressType;
-import org.apache.openejb.util.Logger;
import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.util.Logger;
-import javax.wsdl.Definition;
-import javax.wsdl.Port;
-import javax.wsdl.Service;
-import javax.wsdl.extensions.ExtensibilityElement;
-import javax.wsdl.extensions.schema.SchemaReference;
-import javax.xml.namespace.QName;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
public class WsdlQueryHandler extends WSDLQueryHandler {
private static final Logger logger = Logger.getInstance(LogCategory.CXF, WsdlQueryHandler.class);
Index: server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/WSDLQueryHandler.java
===================================================================
--- server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/WSDLQueryHandler.java (révision 0)
+++ server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/WSDLQueryHandler.java (révision 0)
@@ -0,0 +1,560 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openejb.server.cxf;
+
+import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLDecoder;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import javax.wsdl.Definition;
+import javax.wsdl.Import;
+import javax.wsdl.Port;
+import javax.wsdl.Service;
+import javax.wsdl.Types;
+import javax.wsdl.extensions.ExtensibilityElement;
+import javax.wsdl.extensions.schema.Schema;
+import javax.wsdl.extensions.schema.SchemaImport;
+import javax.wsdl.extensions.schema.SchemaReference;
+import javax.wsdl.extensions.soap.SOAPAddress;
+import javax.wsdl.extensions.soap12.SOAP12Address;
+import javax.wsdl.xml.WSDLWriter;
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamWriter;
+import org.apache.cxf.Bus;
+import org.apache.cxf.catalog.OASISCatalogManager;
+import org.apache.cxf.common.injection.NoJSR250Annotations;
+import org.apache.cxf.frontend.WSDLQueryException;
+import org.apache.cxf.helpers.CastUtils;
+import org.apache.cxf.helpers.DOMUtils;
+import org.apache.cxf.helpers.XMLUtils;
+import org.apache.cxf.message.MessageUtils;
+import org.apache.cxf.service.model.EndpointInfo;
+import org.apache.cxf.staxutils.StaxUtils;
+import org.apache.cxf.transport.http.UrlUtilities;
+import org.apache.cxf.transports.http.StemMatchingQueryHandler;
+import org.apache.cxf.wsdl.WSDLManager;
+import org.apache.cxf.wsdl11.ResourceManagerWSDLLocator;
+import org.apache.cxf.wsdl11.ServiceWSDLBuilder;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.xml.sax.InputSource;
+
+
+/**
+ * took from cxf 2.3
+ */
+@NoJSR250Annotations
+public class WSDLQueryHandler implements StemMatchingQueryHandler {
+ private Bus bus;
+
+ public WSDLQueryHandler() {
+ // no-op
+ }
+
+ public WSDLQueryHandler(Bus b) {
+ bus = b;
+ }
+
+ public String getResponseContentType(String baseUri, String ctx) {
+ if (baseUri.toLowerCase().contains("?wsdl")
+ || baseUri.toLowerCase().contains("?xsd=")) {
+ return "text/xml";
+ }
+ return null;
+ }
+
+ public boolean isRecognizedQuery(String baseUri, String ctx,
+ EndpointInfo endpointInfo, boolean contextMatchExact) {
+ if (baseUri != null
+ && (baseUri.contains("?")
+ && (baseUri.toLowerCase().contains("wsdl")
+ || baseUri.toLowerCase().contains("xsd=")))) {
+
+ int idx = baseUri.indexOf("?");
+ Map<String, String> map = UrlUtilities.parseQueryString(baseUri.substring(idx + 1));
+ if (map.containsKey("wsdl")
+ || map.containsKey("xsd")) {
+ if (contextMatchExact) {
+ return endpointInfo.getAddress().contains(ctx);
+ } else {
+ // contextMatchStrategy will be "stem"
+ return endpointInfo.getAddress().
+ contains(UrlUtilities.getStem(baseUri.substring(0, idx)));
+ }
+ }
+ }
+ return false;
+ }
+
+ public void writeResponse(String baseUri, String ctxUri,
+ EndpointInfo endpointInfo, OutputStream os) {
+ try {
+ int idx = baseUri.toLowerCase().indexOf("?");
+ Map<String, String> params = UrlUtilities.parseQueryString(baseUri.substring(idx + 1));
+
+ String base;
+
+ if (endpointInfo.getProperty("publishedEndpointUrl") != null) {
+ base = String.valueOf(endpointInfo.getProperty("publishedEndpointUrl"));
+ } else {
+ base = baseUri.substring(0, baseUri.toLowerCase().indexOf("?"));
+ }
+
+ String wsdl = params.get("wsdl");
+ if (wsdl != null) {
+ // Always use the URL decoded version to ensure that we have a
+ // canonical representation of the import URL for lookup.
+ wsdl = URLDecoder.decode(wsdl, "utf-8");
+ }
+
+ String xsd = params.get("xsd");
+ if (xsd != null) {
+ // Always use the URL decoded version to ensure that we have a
+ // canonical representation of the import URL for lookup.
+ xsd = URLDecoder.decode(xsd, "utf-8");
+ }
+
+ Map<String, Definition> mp = CastUtils.cast((Map)endpointInfo.getService()
+ .getProperty(WSDLQueryHandler.class.getName()));
+ Map<String, SchemaReference> smp = CastUtils.cast((Map)endpointInfo.getService()
+ .getProperty(WSDLQueryHandler.class.getName()
+ + ".Schemas"));
+
+ if (mp == null) {
+ endpointInfo.getService().setProperty(WSDLQueryHandler.class.getName(),
+ new ConcurrentHashMap());
+ mp = CastUtils.cast((Map)endpointInfo.getService()
+ .getProperty(WSDLQueryHandler.class.getName()));
+ }
+ if (smp == null) {
+ endpointInfo.getService().setProperty(WSDLQueryHandler.class.getName()
+ + ".Schemas",
+ new ConcurrentHashMap());
+ smp = CastUtils.cast((Map)endpointInfo.getService()
+ .getProperty(WSDLQueryHandler.class.getName()
+ + ".Schemas"));
+ }
+
+ if (!mp.containsKey("")) {
+ Definition def = new ServiceWSDLBuilder(bus, endpointInfo.getService()).build();
+
+ mp.put("", def);
+ updateDefinition(def, mp, smp, base, endpointInfo);
+ }
+
+
+ Document doc;
+ if (xsd == null) {
+ Definition def = mp.get(wsdl);
+ if (def == null) {
+ String wsdl2 = resolveWithCatalogs(OASISCatalogManager.getCatalogManager(bus),
+ wsdl,
+ base);
+ if (wsdl2 != null) {
+ def = mp.get(wsdl2);
+ }
+ }
+ if (def == null) {
+ throw new RuntimeException("wsdl not found", null);
+ }
+
+ synchronized (def) {
+ //writing a def is not threadsafe. Sync on it to make sure
+ //we don't get any ConcurrentModificationExceptions
+ if (endpointInfo.getProperty("publishedEndpointUrl") != null) {
+ String publishingUrl =
+ String.valueOf(endpointInfo.getProperty("publishedEndpointUrl"));
+ updatePublishedEndpointUrl(publishingUrl, def, endpointInfo.getName());
+ }
+
+ WSDLWriter wsdlWriter = bus.getExtension(WSDLManager.class)
+ .getWSDLFactory().newWSDLWriter();
+ def.setExtensionRegistry(bus.getExtension(WSDLManager.class).getExtensionRegistry());
+ doc = wsdlWriter.getDocument(def);
+ }
+ } else {
+ SchemaReference si = smp.get(xsd);
+ if (si == null) {
+ String xsd2 = resolveWithCatalogs(OASISCatalogManager.getCatalogManager(bus),
+ xsd,
+ base);
+ if (xsd2 != null) {
+ si = smp.get(xsd2);
+ }
+ }
+ if (si == null) {
+ throw new RuntimeException("schema not found", null);
+ }
+
+ String uri = si.getReferencedSchema().getDocumentBaseURI();
+ uri = resolveWithCatalogs(OASISCatalogManager.getCatalogManager(bus),
+ uri,
+ si.getReferencedSchema().getDocumentBaseURI());
+ if (uri == null) {
+ uri = si.getReferencedSchema().getDocumentBaseURI();
+ }
+ ResourceManagerWSDLLocator rml = new ResourceManagerWSDLLocator(uri,
+ bus);
+
+ InputSource src = rml.getBaseInputSource();
+ doc = XMLUtils.getParser().parse(src);
+ }
+
+ updateDoc(doc, base, mp, smp, endpointInfo);
+ String enc = null;
+ try {
+ enc = doc.getXmlEncoding();
+ } catch (Exception ex) {
+ //ignore - not dom level 3
+ }
+ if (enc == null) {
+ enc = "utf-8";
+ }
+
+ XMLStreamWriter writer = StaxUtils.createXMLStreamWriter(os,
+ enc);
+ StaxUtils.writeNode(doc, writer, true);
+ writer.flush();
+ } catch (WSDLQueryException wex) {
+ throw wex;
+ } catch (Exception wex) {
+ throw new RuntimeException("can't provide wsdl", wex);
+ }
+ }
+
+ protected void updateDoc(Document doc, String base,
+ Map<String, Definition> mp,
+ Map<String, SchemaReference> smp,
+ EndpointInfo ei) {
+ List<Element> elementList = null;
+
+ try {
+ elementList = DOMUtils.findAllElementsByTagNameNS(doc.getDocumentElement(),
+ "http://www.w3.org/2001/XMLSchema",
+ "import");
+ for (Element el : elementList) {
+ String sl = el.getAttribute("schemaLocation");
+ if (smp.containsKey(URLDecoder.decode(sl, "utf-8"))) {
+ el.setAttribute("schemaLocation", base + "?xsd=" + sl.replace(" ", "%20"));
+ }
+ }
+
+ elementList = DOMUtils.findAllElementsByTagNameNS(doc.getDocumentElement(),
+ "http://www.w3.org/2001/XMLSchema",
+ "include");
+ for (Element el : elementList) {
+ String sl = el.getAttribute("schemaLocation");
+ if (smp.containsKey(URLDecoder.decode(sl, "utf-8"))) {
+ el.setAttribute("schemaLocation", base + "?xsd=" + sl.replace(" ", "%20"));
+ }
+ }
+ elementList = DOMUtils.findAllElementsByTagNameNS(doc.getDocumentElement(),
+ "http://www.w3.org/2001/XMLSchema",
+ "redefine");
+ for (Element el : elementList) {
+ String sl = el.getAttribute("schemaLocation");
+ if (smp.containsKey(URLDecoder.decode(sl, "utf-8"))) {
+ el.setAttribute("schemaLocation", base + "?xsd=" + sl.replace(" ", "%20"));
+ }
+ }
+ elementList = DOMUtils.findAllElementsByTagNameNS(doc.getDocumentElement(),
+ "http://schemas.xmlsoap.org/wsdl/",
+ "import");
+ for (Element el : elementList) {
+ String sl = el.getAttribute("location");
+ if (mp.containsKey(URLDecoder.decode(sl, "utf-8"))) {
+ el.setAttribute("location", base + "?wsdl=" + sl.replace(" ", "%20"));
+ }
+ }
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException("can't provide wsdl", e);
+ }
+
+ Object rewriteSoapAddress = ei.getProperty("autoRewriteSoapAddress");
+
+ if (rewriteSoapAddress != null && MessageUtils.isTrue(rewriteSoapAddress)) {
+ List<Element> serviceList = DOMUtils.findAllElementsByTagNameNS(doc.getDocumentElement(),
+ "http://schemas.xmlsoap.org/wsdl/",
+ "service");
+ for (Element serviceEl : serviceList) {
+ String serviceName = serviceEl.getAttribute("name");
+ if (serviceName.equals(ei.getService().getName().getLocalPart())) {
+ elementList = DOMUtils.findAllElementsByTagNameNS(doc.getDocumentElement(),
+ "http://schemas.xmlsoap.org/wsdl/",
+ "port");
+ for (Element el : elementList) {
+ String name = el.getAttribute("name");
+ if (name.equals(ei.getName().getLocalPart())) {
+ rewriteAddress(base, el, "http://schemas.xmlsoap.org/wsdl/soap/");
+ rewriteAddress(base, el, "http://schemas.xmlsoap.org/wsdl/soap12/");
+ }
+ }
+ }
+ }
+ }
+ try {
+ doc.setXmlStandalone(true);
+ } catch (Exception ex) {
+ //likely not DOM level 3
+ }
+ }
+
+ static String resolveWithCatalogs(OASISCatalogManager catalogs, String start, String base) {
+ if (catalogs == null) {
+ return null;
+ }
+ String resolvedSchemaLocation = null;
+ try {
+ resolvedSchemaLocation = catalogs.resolveSystem(start);
+ if (resolvedSchemaLocation == null) {
+ resolvedSchemaLocation = catalogs.resolveURI(start);
+ }
+ if (resolvedSchemaLocation == null) {
+ resolvedSchemaLocation = catalogs.resolvePublic(start, base);
+ }
+ } catch (Exception ex) {
+ //ignore
+ }
+ return resolvedSchemaLocation;
+ }
+
+ protected void updateDefinition(Definition def, Map<String, Definition> done,
+ Map<String, SchemaReference> doneSchemas,
+ String base, EndpointInfo ei) {
+ OASISCatalogManager catalogs = OASISCatalogManager.getCatalogManager(bus);
+
+ Collection<List<?>> imports = CastUtils.cast((Collection<?>)def.getImports().values());
+ for (List<?> lst : imports) {
+ List<Import> impLst = CastUtils.cast(lst);
+ for (Import imp : impLst) {
+
+ String start = imp.getLocationURI();
+ String decodedStart = null;
+ // Always use the URL decoded version to ensure that we have a
+ // canonical representation of the import URL for lookup.
+ try {
+ decodedStart = URLDecoder.decode(start, "utf-8");
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException("can't provide wsdl", e);
+ }
+
+ String resolvedSchemaLocation = resolveWithCatalogs(catalogs, start, base);
+
+ if (resolvedSchemaLocation == null) {
+ try {
+ //check to see if it's already in a URL format. If so, leave it.
+ new URL(start);
+ } catch (MalformedURLException e) {
+ if (done.put(decodedStart, imp.getDefinition()) == null) {
+ updateDefinition(imp.getDefinition(), done, doneSchemas, base, ei);
+ }
+ }
+ } else {
+ if (done.put(decodedStart, imp.getDefinition()) == null) {
+ done.put(resolvedSchemaLocation, imp.getDefinition());
+ updateDefinition(imp.getDefinition(), done, doneSchemas, base, ei);
+ }
+ }
+ }
+ }
+
+
+ /* This doesn't actually work. Setting setSchemaLocationURI on the import
+ * for some reason doesn't actually result in the new URI being written
+ * */
+ Types types = def.getTypes();
+ if (types != null) {
+ for (ExtensibilityElement el
+ : CastUtils.cast((List)types.getExtensibilityElements(), ExtensibilityElement.class)) {
+ if (el instanceof Schema) {
+ Schema see = (Schema)el;
+ updateSchemaImports(see, doneSchemas, base);
+ }
+ }
+ }
+ }
+
+ protected void updatePublishedEndpointUrl(String publishingUrl, Definition def, QName name) {
+ Collection<Service> services = CastUtils.cast(def.getAllServices().values());
+ for (Service service : services) {
+ Collection<Port> ports = CastUtils.cast(service.getPorts().values());
+ if (ports.isEmpty()) {
+ continue;
+ }
+
+ if (name == null) {
+ setSoapAddressLocationOn(ports.iterator().next(), publishingUrl);
+ break; // only update the first port since we don't target any specific port
+ } else {
+ for (Port port : ports) {
+ if (name.getLocalPart().equals(port.getName())) {
+ setSoapAddressLocationOn(port, publishingUrl);
+ }
+ }
+ }
+ }
+ }
+
+ private void setSoapAddressLocationOn(Port port, String url) {
+ List<?> extensions = port.getExtensibilityElements();
+ for (Object extension : extensions) {
+ if (extension instanceof SOAP12Address) {
+ ((SOAP12Address)extension).setLocationURI(url);
+ } else if (extension instanceof SOAPAddress) {
+ ((SOAPAddress)extension).setLocationURI(url);
+ }
+ }
+ }
+
+ protected void updateSchemaImports(Schema schema,
+ Map<String, SchemaReference> doneSchemas,
+ String base) {
+ OASISCatalogManager catalogs = OASISCatalogManager.getCatalogManager(bus);
+ Collection<List<?>> imports = CastUtils.cast((Collection<?>)schema.getImports().values());
+ for (List<?> lst : imports) {
+ List<SchemaImport> impLst = CastUtils.cast(lst);
+ for (SchemaImport imp : impLst) {
+ String start = imp.getSchemaLocationURI();
+
+ if (start != null) {
+ String decodedStart = null;
+ // Always use the URL decoded version to ensure that we have a
+ // canonical representation of the import URL for lookup.
+ try {
+ decodedStart = URLDecoder.decode(start, "utf-8");
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException("can't provide wsdl", e);
+ }
+
+ if (!doneSchemas.containsKey(decodedStart)) {
+ String resolvedSchemaLocation = resolveWithCatalogs(catalogs, start, base);
+ if (resolvedSchemaLocation == null) {
+ try {
+ //check to see if it's already in a URL format. If so, leave it.
+ new URL(start);
+ } catch (MalformedURLException e) {
+ if (doneSchemas.put(decodedStart, imp) == null) {
+ updateSchemaImports(imp.getReferencedSchema(), doneSchemas, base);
+ }
+ }
+ } else {
+ if (doneSchemas.put(decodedStart, imp) == null) {
+ doneSchemas.put(resolvedSchemaLocation, imp);
+ updateSchemaImports(imp.getReferencedSchema(), doneSchemas, base);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ List<SchemaReference> includes = CastUtils.cast(schema.getIncludes());
+ for (SchemaReference included : includes) {
+ String start = included.getSchemaLocationURI();
+
+ if (start != null) {
+ String decodedStart = null;
+ // Always use the URL decoded version to ensure that we have a
+ // canonical representation of the import URL for lookup.
+ try {
+ decodedStart = URLDecoder.decode(start, "utf-8");
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException("can't provide wsdl", e);
+ }
+
+ String resolvedSchemaLocation = resolveWithCatalogs(catalogs, start, base);
+ if (resolvedSchemaLocation == null) {
+ if (!doneSchemas.containsKey(decodedStart)) {
+ try {
+ //check to see if it's aleady in a URL format. If so, leave it.
+ new URL(start);
+ } catch (MalformedURLException e) {
+ if (doneSchemas.put(decodedStart, included) == null) {
+ updateSchemaImports(included.getReferencedSchema(), doneSchemas, base);
+ }
+ }
+ }
+ } else if (!doneSchemas.containsKey(decodedStart)
+ || !doneSchemas.containsKey(resolvedSchemaLocation)) {
+ doneSchemas.put(decodedStart, included);
+ doneSchemas.put(resolvedSchemaLocation, included);
+ updateSchemaImports(included.getReferencedSchema(), doneSchemas, base);
+ }
+ }
+ }
+ List<SchemaReference> redefines = CastUtils.cast(schema.getRedefines());
+ for (SchemaReference included : redefines) {
+ String start = included.getSchemaLocationURI();
+
+ if (start != null) {
+ String decodedStart = null;
+ // Always use the URL decoded version to ensure that we have a
+ // canonical representation of the import URL for lookup.
+ try {
+ decodedStart = URLDecoder.decode(start, "utf-8");
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException("can't provide wsdl", e);
+ }
+
+ String resolvedSchemaLocation = resolveWithCatalogs(catalogs, start, base);
+ if (resolvedSchemaLocation == null) {
+ if (!doneSchemas.containsKey(decodedStart)) {
+ try {
+ //check to see if it's aleady in a URL format. If so, leave it.
+ new URL(start);
+ } catch (MalformedURLException e) {
+ if (doneSchemas.put(decodedStart, included) == null) {
+ updateSchemaImports(included.getReferencedSchema(), doneSchemas, base);
+ }
+ }
+ }
+ } else if (!doneSchemas.containsKey(decodedStart)
+ || !doneSchemas.containsKey(resolvedSchemaLocation)) {
+ doneSchemas.put(decodedStart, included);
+ doneSchemas.put(resolvedSchemaLocation, included);
+ updateSchemaImports(included.getReferencedSchema(), doneSchemas, base);
+ }
+ }
+ }
+ }
+
+ public boolean isRecognizedQuery(String baseUri, String ctx, EndpointInfo endpointInfo) {
+ return isRecognizedQuery(baseUri, ctx, endpointInfo, false);
+ }
+
+ public void setBus(Bus bus) {
+ this.bus = bus;
+ }
+
+ private void rewriteAddress(String base, Element el, String soapNS) {
+ List<Element> sadEls = DOMUtils.findAllElementsByTagNameNS(el,
+ soapNS,
+ "address");
+ for (Element soapAddress : sadEls) {
+ soapAddress.setAttribute("location", base);
+ }
+ }
+
+}
+
Index: server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java
===================================================================
--- server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java (révision 1139507)
+++ server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfWsContainer.java (copie de travail)
@@ -17,21 +17,20 @@
*/
package org.apache.openejb.server.cxf;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.List;
import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
import org.apache.cxf.bus.extension.ExtensionManagerBus;
import org.apache.cxf.service.model.EndpointInfo;
import org.apache.openejb.core.webservices.PortData;
+import org.apache.openejb.server.httpd.HttpListener;
import org.apache.openejb.server.httpd.HttpRequest;
import org.apache.openejb.server.httpd.HttpResponse;
-import org.apache.openejb.server.httpd.HttpListener;
import org.apache.openejb.server.webservices.saaj.SaajUniverse;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.List;
-
public abstract class CxfWsContainer implements HttpListener {
protected final Bus bus;
protected final PortData port;
Index: server/openejb-cxf/src/main/resources/META-INF/cxf-extension-openejb.xml
===================================================================
--- server/openejb-cxf/src/main/resources/META-INF/cxf-extension-openejb.xml (révision 1139507)
+++ server/openejb-cxf/src/main/resources/META-INF/cxf-extension-openejb.xml (copie de travail)
@@ -22,17 +22,6 @@
xmlns:foo="http://cxf.apache.org/configuration/foo"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
-
- <bean id="org.apache.cxf.resource.ResourceManager" class="org.apache.openejb.server.cxf.ResourceManager">
- <constructor-arg>
- <list>
- <bean class="org.apache.cxf.resource.ClasspathResolver"/>
- <bean class="org.apache.cxf.resource.ClassLoaderResolver"/>
- </list>
- </constructor-arg>
- <property name="bus" ref="cxf"/>
- </bean>
-
<bean class="org.apache.openejb.server.cxf.HttpTransportFactory" lazy-init="true">
<property name="bus" ref="cxf"/>
<property name="transportIds">
Index: server/openejb-cxf/pom.xml
===================================================================
--- server/openejb-cxf/pom.xml (révision 1139507)
+++ server/openejb-cxf/pom.xml (copie de travail)
@@ -35,6 +35,7 @@
org.apache.xml.resolver*;resolution:=optional,
*
</openejb.osgi.import.pkg>
+ <jetty.version>7.0.2.v20100331</jetty.version>
</properties>
<build>
<plugins>
@@ -103,67 +104,71 @@
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-bundle</artifactId>
- <version>2.2.10</version>
+ <version>2.4.1</version>
<exclusions>
<exclusion>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
</exclusion>
<exclusion>
+ <groupId>asm</groupId>
+ <artifactId>asm</artifactId>
+ </exclusion>
+ <exclusion>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
</exclusion>
<exclusion>
- <groupId>asm</groupId>
- <artifactId>asm</artifactId>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
</exclusion>
<exclusion>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-continuation</artifactId>
</exclusion>
<exclusion>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-xjc</artifactId>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-io</artifactId>
</exclusion>
<exclusion>
- <groupId>com.sun.xml.fastinfoset</groupId>
- <artifactId>FastInfoset</artifactId>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-http</artifactId>
</exclusion>
<exclusion>
- <groupId>javax.jw.rs</groupId>
- <artifactId>jsr311-api</artifactId>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-security</artifactId>
</exclusion>
<exclusion>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
</exclusion>
<exclusion>
- <groupId>javax.xml.soap</groupId>
- <artifactId>saaj-api</artifactId>
+ <groupId>org.codehaus.jettison</groupId>
+ <artifactId>jettison</artifactId>
</exclusion>
<exclusion>
- <groupId>jaxen</groupId>
- <artifactId>jaxen</artifactId>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>jsr311-api</artifactId>
</exclusion>
<exclusion>
- <groupId>org.apache.abdera</groupId>
- <artifactId>abdera-core</artifactId>
+ <groupId>org.apache.xmlbeans</groupId>
+ <artifactId>xmlbeans</artifactId>
</exclusion>
<exclusion>
- <groupId>org.apache.abdera</groupId>
- <artifactId>abdera-extensions-json</artifactId>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>woodstox-core-asl</artifactId>
</exclusion>
<exclusion>
- <groupId>org.apache.abdera</groupId>
- <artifactId>abdera-extensions-main</artifactId>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>stax2-api</artifactId>
</exclusion>
<exclusion>
- <groupId>org.apache.abdera</groupId>
- <artifactId>abdera-i18n</artifactId>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-servlet_3.0_spec</artifactId>
</exclusion>
<exclusion>
- <groupId>org.apache.abdera</groupId>
- <artifactId>abdera-parser</artifactId>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-stax-api_1.0_spec</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
@@ -179,83 +184,67 @@
</exclusion>
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jaxws_2.1_spec</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_1.1_spec</artifactId>
</exclusion>
<exclusion>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-servlet_2.5_spec</artifactId>
+ <groupId>org.codehaus.jra</groupId>
+ <artifactId>jra</artifactId>
</exclusion>
<exclusion>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-stax-api_1.0_spec</artifactId>
+ <groupId>rhino</groupId>
+ <artifactId>js</artifactId>
</exclusion>
<exclusion>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
+ <groupId>xalan</groupId>
+ <artifactId>serializer</artifactId>
</exclusion>
<exclusion>
- <groupId>org.apache.neethi</groupId>
- <artifactId>neethi</artifactId>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
</exclusion>
<exclusion>
- <groupId>org.apache.santuario</groupId>
- <artifactId>xmlsec</artifactId>
- </exclusion>
- <exclusion>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
</exclusion>
<exclusion>
- <groupId>org.apache.ws.commons.axiom</groupId>
- <artifactId>axiom-api</artifactId>
+ <groupId>oro</groupId>
+ <artifactId>oro</artifactId>
</exclusion>
<exclusion>
- <groupId>org.apache.ws.commons.axiom</groupId>
- <artifactId>axiom-impl</artifactId>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
</exclusion>
<exclusion>
- <groupId>org.apache.ws.security</groupId>
- <artifactId>wss4j</artifactId>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-xjc</artifactId>
</exclusion>
<exclusion>
- <groupId>org.apache.xmlbeans</groupId>
- <artifactId>xmlbeans</artifactId>
+ <groupId>javax.xml.soap</groupId>
+ <artifactId>saaj-api</artifactId>
</exclusion>
<exclusion>
- <groupId>org.bouncycastle</groupId>
- <artifactId>bcprov-jdk15</artifactId>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
</exclusion>
<exclusion>
- <groupId>org.codehaus.jettison</groupId>
- <artifactId>jettison</artifactId>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jaxws_2.2_spec</artifactId>
</exclusion>
<exclusion>
- <groupId>org.codehaus.jra</groupId>
- <artifactId>jra</artifactId>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
</exclusion>
<exclusion>
- <groupId>org.codehaus.woodstox</groupId>
- <artifactId>wstx-asl</artifactId>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-expression</artifactId>
</exclusion>
<exclusion>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>jetty</artifactId>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-aop</artifactId>
</exclusion>
<exclusion>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>jetty-util</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </exclusion>
- <exclusion>
<groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
+ <artifactId>spring-asm</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
@@ -263,10 +252,6 @@
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
- <artifactId>spring-context-support</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
<exclusion>
@@ -281,26 +266,23 @@
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</exclusion>
+
<exclusion>
- <groupId>oro</groupId>
- <artifactId>oro</artifactId>
+ <groupId>joda-time</groupId>
+ <artifactId>joda-time</artifactId>
</exclusion>
<exclusion>
- <groupId>rhino</groupId>
- <artifactId>js</artifactId>
+ <groupId>org.opensaml</groupId>
+ <artifactId>opensaml</artifactId>
</exclusion>
<exclusion>
- <groupId>xalan</groupId>
- <artifactId>serializer</artifactId>
+ <groupId>org.opensaml</groupId>
+ <artifactId>openws</artifactId>
</exclusion>
<exclusion>
- <groupId>xalan</groupId>
- <artifactId>xalan</artifactId>
+ <groupId>org.opensaml</groupId>
+ <artifactId>xmltooling</artifactId>
</exclusion>
- <exclusion>
- <groupId>xml-resolver</groupId>
- <artifactId>xml-resolver</artifactId>
- </exclusion>
</exclusions>
</dependency>
<dependency>
Index: pom.xml
===================================================================
--- pom.xml (révision 1139507)
+++ pom.xml (copie de travail)
@@ -1021,7 +1021,7 @@
<dependency>
<groupId>org.apache.neethi</groupId>
<artifactId>neethi</artifactId>
- <version>2.0.4</version>
+ <version>3.0.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.ws.commons.axiom</groupId>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment