You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by pr...@apache.org on 2007/05/29 22:23:49 UTC

svn commit: r542643 [1/3] - in /webservices/axis2/branches/java/jaxws21/modules: jaxws-api/ jaxws-api/src/javax/xml/ws/ jaxws-api/src/javax/xml/ws/handler/ jaxws-api/src/javax/xml/ws/soap/ jaxws-api/src/javax/xml/ws/spi/ jaxws-api/src/javax/xml/ws/wsad...

Author: pradine
Date: Tue May 29 13:23:45 2007
New Revision: 542643

URL: http://svn.apache.org/viewvc?view=rev&rev=542643
Log:
First attempts.

Added:
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Action.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/EndpointReference.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/FaultAction.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/RespectBinding.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/RespectBindingFeature.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/WebServiceFeature.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/Addressing.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/AddressingFeature.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/MTOM.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/MTOMFeature.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/spi/WebServiceFeatureAnnotation.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/wsaddressing/
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/wsaddressing/W3CEndpointReference.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/wsaddressing/W3CEndpointReferenceBuilder.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/wsaddressing/package-info.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/addressing/
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/addressing/SubmissionAddressing.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/addressing/SubmissionAddressingFeature.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/addressing/SubmissionEndpointReference.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/addressing/package-info.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointReferenceBuilder.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/addressing/util/EndpointReferenceConverter.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/feature/
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/feature/WebServiceFeatureValidator.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/feature/config/
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/feature/config/MTOMConfigurator.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/feature/config/RespectBindingConfigurator.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/feature/config/W3CAndSubmissionAddressingConfigurator.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/feature/util/
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/feature/util/WebServiceFeatureConfigUtil.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/feature/util/WebServiceFeatureConfigurator.java
    webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/addressing/metadata/
    webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/addressing/metadata/InterfaceName.java
    webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/addressing/metadata/ServiceName.java
    webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/addressing/metadata/WSDLLocation.java
Removed:
    webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/addressing/ServiceName.java
Modified:
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/project.xml
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Binding.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/BindingProvider.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Endpoint.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Service.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/WebServiceContext.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/handler/MessageContext.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/spi/Provider.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/spi/ServiceDelegate.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/binding/BindingImpl.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/client/dispatch/BaseDispatch.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/client/dispatch/JAXBDispatch.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/client/dispatch/XMLDispatch.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/client/proxy/JAXWSProxyHandler.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/context/WebServiceContextImpl.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/core/controller/AxisInvocationController.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/server/endpoint/EndpointImpl.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/spi/BindingProvider.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/spi/Constants.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/spi/Provider.java
    webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java
    webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java
    webservices/axis2/branches/java/jaxws21/modules/kernel/src/org/apache/axis2/addressing/EndpointReferenceHelper.java
    webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/DescriptionFactory.java
    webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/builder/WebServiceContextAnnot.java
    webservices/axis2/branches/java/jaxws21/modules/metadata/src/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImpl.java

Modified: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/project.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/project.xml?view=diff&rev=542643&r1=542642&r2=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/project.xml (original)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/project.xml Tue May 29 13:23:45 2007
@@ -1,19 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 /*
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed 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
- *
+ * 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.
+ *      
+ * 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.
  */
  -->
 <project>
@@ -95,6 +98,14 @@
             <groupId>javax.xml.bind</groupId>
             <artifactId>jaxb-api</artifactId>
             <version>${jaxbapi.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>stax</groupId>
+            <artifactId>stax-api</artifactId>
+            <version>${stax.api.version}</version>
+            <properties>
+                <module>true</module>
+            </properties>
         </dependency>
     </dependencies>
 </project>

Added: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Action.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Action.java?view=auto&rev=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Action.java (added)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Action.java Tue May 29 13:23:45 2007
@@ -0,0 +1,39 @@
+/*
+ * 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 javax.xml.ws;                                                                                         
+                                                                                                              
+import java.lang.annotation.RetentionPolicy;                                                                  
+import java.lang.annotation.ElementType;                                                                      
+import java.lang.annotation.Retention;                                                                        
+import java.lang.annotation.Target;                                                                           
+import java.lang.annotation.Documented;                                                                       
+                                                                                                              
+@Documented                                                                                                   
+@Retention(value=RetentionPolicy.RUNTIME)                                                                     
+@Target(value=ElementType.METHOD)                                                                               
+                                                                                                              
+public @interface Action {                                                                            
+                                                                                                              
+    public FaultAction[] fault() default {};
+    
+    public String input() default "";
+    
+    public String output() default "";
+                                                                                                              
+}

Modified: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Binding.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Binding.java?view=diff&rev=542643&r1=542642&r2=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Binding.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Binding.java Tue May 29 13:23:45 2007
@@ -1,18 +1,21 @@
 /*
-* Copyright 2004,2005 The Apache Software Foundation.
-*
-* Licensed 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.
-*/
+ * 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 javax.xml.ws;
 
 import javax.xml.ws.handler.Handler;
@@ -20,6 +23,9 @@
 
 public interface Binding {
 
+    //TODO
+    public abstract String getBindingID();
+    
     public abstract List<Handler> getHandlerChain();
 
     public abstract void setHandlerChain(List<Handler> list);

Modified: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/BindingProvider.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/BindingProvider.java?view=diff&rev=542643&r1=542642&r2=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/BindingProvider.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/BindingProvider.java Tue May 29 13:23:45 2007
@@ -1,23 +1,31 @@
 /*
-* Copyright 2004,2005 The Apache Software Foundation.
-*
-* Licensed 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.
-*/
+ * 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 javax.xml.ws;
 
 import java.util.Map;
 
 public interface BindingProvider {
+    //TODO
+    public abstract EndpointReference getEndpointReference();
+    
+    //TODO
+    public abstract <T extends EndpointReference> T getEndpointReference(Class<T> clazz);
 
     public abstract Map<java.lang.String, java.lang.Object>      getRequestContext();
 

Modified: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Endpoint.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Endpoint.java?view=diff&rev=542643&r1=542642&r2=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Endpoint.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Endpoint.java Tue May 29 13:23:45 2007
@@ -64,6 +64,12 @@
 
     public abstract void setProperties(Map<java.lang.String, java.lang.Object> map);
 
+    //TODO
+    public abstract EndpointReference getEndpointReference(org.w3c.dom.Element... referenceParameters);
+
+    //TODO
+    public abstract <T extends EndpointReference> T getEndpointReference(Class<T> clazz, org.w3c.dom.Element... referenceParameters);
+
     public static final String WSDL_SERVICE = "javax.xml.ws.wsdl.service";
     public static final String WSDL_PORT = "javax.xml.ws.wsdl.port";
 }

Added: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/EndpointReference.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/EndpointReference.java?view=auto&rev=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/EndpointReference.java (added)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/EndpointReference.java Tue May 29 13:23:45 2007
@@ -0,0 +1,38 @@
+/*
+ * 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 javax.xml.ws;
+
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+import javax.xml.ws.spi.Provider;
+
+public abstract class EndpointReference {
+    protected EndpointReference() {
+    }
+    
+    public static EndpointReference readFrom(Source eprInfoset) {
+        return Provider.provider().readEndpointReference(eprInfoset);
+    }
+    
+    public abstract void writeTo(Result result);
+    
+    public <T> T getPort(Class<T> serviceEndpointInterface, WebServiceFeature... features) {
+        return Provider.provider().getPort(this, serviceEndpointInterface, features);
+    }
+}

Added: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/FaultAction.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/FaultAction.java?view=auto&rev=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/FaultAction.java (added)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/FaultAction.java Tue May 29 13:23:45 2007
@@ -0,0 +1,37 @@
+/*
+ * 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 javax.xml.ws;                                                                                         
+                                                                                                              
+import java.lang.annotation.RetentionPolicy;                                                                  
+import java.lang.annotation.ElementType;                                                                      
+import java.lang.annotation.Retention;                                                                        
+import java.lang.annotation.Target;                                                                           
+import java.lang.annotation.Documented;                                                                       
+                                                                                                              
+@Documented                                                                                                   
+@Retention(value=RetentionPolicy.RUNTIME)                                                                     
+@Target(value=ElementType.METHOD)                                                                               
+                                                                                                              
+public @interface FaultAction {                                                                            
+    
+    public Class className();
+    
+    public String value() default "";
+                                                                                                              
+}

Added: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/RespectBinding.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/RespectBinding.java?view=auto&rev=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/RespectBinding.java (added)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/RespectBinding.java Tue May 29 13:23:45 2007
@@ -0,0 +1,38 @@
+/*
+ * 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 javax.xml.ws;                                                                                         
+                                                                                                              
+import java.lang.annotation.RetentionPolicy;                                                                  
+import java.lang.annotation.ElementType;                                                                      
+import java.lang.annotation.Retention;                                                                        
+import java.lang.annotation.Target;                                                                           
+import java.lang.annotation.Documented;                                                                       
+
+import javax.xml.ws.spi.WebServiceFeatureAnnotation;
+                                                                                                              
+@Documented                                                                                                   
+@Retention(value=RetentionPolicy.RUNTIME)                                                                     
+@Target(value=ElementType.TYPE)                                                                               
+@WebServiceFeatureAnnotation(id=RespectBindingFeature.ID, bean=RespectBindingFeature.class)                                                                                                              
+
+public @interface RespectBinding {                                                                            
+                                                                                                              
+    public boolean enabled() default true;
+                                                                                                              
+}

Added: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/RespectBindingFeature.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/RespectBindingFeature.java?view=auto&rev=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/RespectBindingFeature.java (added)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/RespectBindingFeature.java Tue May 29 13:23:45 2007
@@ -0,0 +1,37 @@
+/*
+ * 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 javax.xml.ws;
+
+public final class RespectBindingFeature extends WebServiceFeature {
+    public static final String ID = "javax.xml.ws.RespectBindingFeature";
+    
+    public RespectBindingFeature() {
+        this(true);
+    }
+    
+    public RespectBindingFeature(boolean enabled) {
+        super();
+        this.enabled = enabled;
+    }
+    
+    @Override
+    public String getID() {
+        return ID;
+    }
+}

Modified: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Service.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Service.java?view=diff&rev=542643&r1=542642&r2=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Service.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/Service.java Tue May 29 13:23:45 2007
@@ -1,18 +1,21 @@
 /*
-* Copyright 2004,2005 The Apache Software Foundation.
-*
-* Licensed 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.
-*/
+ * 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 javax.xml.ws;
 
 import javax.xml.bind.JAXBContext;
@@ -20,7 +23,6 @@
 import javax.xml.ws.handler.HandlerResolver;
 import javax.xml.ws.spi.Provider;
 import javax.xml.ws.spi.ServiceDelegate;
-import java.net.URI;
 import java.net.URL;
 import java.util.Iterator;
 import java.util.concurrent.Executor;
@@ -41,6 +43,21 @@
         return (T) _delegate.getPort(serviceEndpointInterface);
     }
 
+    //TODO
+    public <T> T getPort(QName portName, Class<T> serviceEndpointInterface, WebServiceFeature... features) {
+        return (T) _delegate.getPort(portName, serviceEndpointInterface, features);
+    }
+    
+    //TODO
+    public <T> T getPort(Class<T> serviceEndpointInterface, WebServiceFeature... features) {
+        return (T) _delegate.getPort(serviceEndpointInterface, features);
+    }
+    
+    //TODO
+    public <T> T getPort(EndpointReference endpointReference, Class<T> serviceEndpointInterface, WebServiceFeature... features) {
+        return (T) _delegate.getPort(endpointReference, serviceEndpointInterface, features);
+    }
+    
     public void addPort(QName portName, String bindingId, String endpointAddress) {
         _delegate.addPort(portName, bindingId, endpointAddress);
     }
@@ -49,15 +66,35 @@
         return _delegate.createDispatch(portName, type, mode);
     }
 
-    public Dispatch<java.lang.Object> createDispatch(QName portName, JAXBContext context, Mode mode) {
+    public Dispatch<Object> createDispatch(QName portName, JAXBContext context, Mode mode) {
         return _delegate.createDispatch(portName, context, mode);
     }
 
+    //TODO
+    public <T> Dispatch<T> createDispatch(QName portName, Class<T> type, Service.Mode mode, WebServiceFeature... features) {
+        return _delegate.createDispatch(portName, type, mode, features);
+    }
+    
+    //TODO
+    public <T> Dispatch<T> createDispatch(EndpointReference endpointReference, Class<T> type, Service.Mode mode, WebServiceFeature... features) {
+        return _delegate.createDispatch(endpointReference, type, mode, features);
+    }
+    
+    //TODO
+    public Dispatch<Object> createDispatch(QName portName, JAXBContext context, Service.Mode mode, WebServiceFeature... features) {
+        return _delegate.createDispatch(portName, context, mode, features);
+    }
+    
+    //TODO
+    public Dispatch<Object> createDispatch(EndpointReference endpointReference, JAXBContext context, Service.Mode mode, WebServiceFeature... features) {
+        return _delegate.createDispatch(endpointReference, context, mode, features);
+    }
+    
     public QName getServiceName() {
         return _delegate.getServiceName();
     }
 
-    public Iterator<javax.xml.namespace.QName> getPorts() {
+    public Iterator<QName> getPorts() {
         return _delegate.getPorts();
     }
 

Modified: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/WebServiceContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/WebServiceContext.java?view=diff&rev=542643&r1=542642&r2=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/WebServiceContext.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/WebServiceContext.java Tue May 29 13:23:45 2007
@@ -1,24 +1,33 @@
 /*
-* Copyright 2004,2005 The Apache Software Foundation.
-*
-* Licensed 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.
-*/
+ * 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 javax.xml.ws;
 
 import javax.xml.ws.handler.MessageContext;
 import java.security.Principal;
 
 public interface WebServiceContext {
+
+    //TODO
+    public abstract EndpointReference getEndpointReference(org.w3c.dom.Element... referenceParameters);
+
+    //TODO
+    public abstract <T extends EndpointReference> T getEndpointReference(Class<T> clazz, org.w3c.dom.Element... referenceParameters);
 
     public abstract MessageContext getMessageContext();
 

Added: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/WebServiceFeature.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/WebServiceFeature.java?view=auto&rev=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/WebServiceFeature.java (added)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/WebServiceFeature.java Tue May 29 13:23:45 2007
@@ -0,0 +1,32 @@
+/*
+ * 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 javax.xml.ws;
+
+public abstract class WebServiceFeature {
+    protected boolean enabled;
+    
+    protected WebServiceFeature() {
+    }
+    
+    public abstract String getID();
+    
+    public boolean isEnabled() {
+        return enabled;
+    }
+}

Modified: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/handler/MessageContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/handler/MessageContext.java?view=diff&rev=542643&r1=542642&r2=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/handler/MessageContext.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/handler/MessageContext.java Tue May 29 13:23:45 2007
@@ -1,18 +1,21 @@
 /*
-* Copyright 2004,2005 The Apache Software Foundation.
-*
-* Licensed 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.
-*/
+ * 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 javax.xml.ws.handler;
 
 import java.util.Map;
@@ -35,6 +38,7 @@
     public static final String WSDL_INTERFACE = "javax.xml.ws.wsdl.interface";
     public static final String WSDL_OPERATION = "javax.xml.ws.wsdl.operation";
     public static final String HTTP_RESPONSE_CODE = "javax.xml.ws.http.response.code";
+    public static final String REFERENCE_PARAMETERS = "javax.xml.ws.reference.parameters";
     public static final String HTTP_REQUEST_HEADERS = "javax.xml.ws.http.request.headers";
     public static final String HTTP_RESPONSE_HEADERS = "javax.xml.ws.http.response.headers";
     public static final String HTTP_REQUEST_METHOD = "javax.xml.ws.http.request.method";

Added: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/Addressing.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/Addressing.java?view=auto&rev=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/Addressing.java (added)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/Addressing.java Tue May 29 13:23:45 2007
@@ -0,0 +1,40 @@
+/*
+ * 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 javax.xml.ws.soap;                                                                                         
+                                                                                                              
+import java.lang.annotation.RetentionPolicy;                                                                  
+import java.lang.annotation.ElementType;                                                                      
+import java.lang.annotation.Retention;                                                                        
+import java.lang.annotation.Target;                                                                           
+import java.lang.annotation.Documented;
+
+import javax.xml.ws.spi.WebServiceFeatureAnnotation;
+                                                                                                              
+@Documented                                                                                                   
+@Retention(value=RetentionPolicy.RUNTIME)                                                                     
+@Target(value=ElementType.TYPE)                                                                               
+@WebServiceFeatureAnnotation(id=AddressingFeature.ID, bean=AddressingFeature.class)
+                                                                                                              
+public @interface Addressing {                                                                            
+                                                                                                              
+    public boolean enabled() default true;
+    
+    public boolean required() default false;
+                                                                                                              
+}

Added: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/AddressingFeature.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/AddressingFeature.java?view=auto&rev=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/AddressingFeature.java (added)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/AddressingFeature.java Tue May 29 13:23:45 2007
@@ -0,0 +1,49 @@
+/*
+ * 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 javax.xml.ws.soap;
+
+import javax.xml.ws.WebServiceFeature;
+
+public final class AddressingFeature extends WebServiceFeature {
+    public static final String ID = "http://www.w3.org/2005/08/addressing/module";
+    
+    protected boolean required;
+    
+    public AddressingFeature() {
+        this(true, false);
+    }
+    
+    public AddressingFeature(boolean enabled) {
+        this(enabled, false);
+    }
+    
+    public AddressingFeature(boolean enabled, boolean required) {
+        this.enabled  = enabled;
+        this.required = required;
+    }
+
+    public boolean isRequired() {
+        return required;
+    }
+    
+    @Override
+    public String getID() {
+        return ID;
+    }
+}

Added: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/MTOM.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/MTOM.java?view=auto&rev=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/MTOM.java (added)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/MTOM.java Tue May 29 13:23:45 2007
@@ -0,0 +1,40 @@
+/*
+ * 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 javax.xml.ws.soap;                                                                                         
+                                                                                                              
+import java.lang.annotation.RetentionPolicy;                                                                  
+import java.lang.annotation.ElementType;                                                                      
+import java.lang.annotation.Retention;                                                                        
+import java.lang.annotation.Target;                                                                           
+import java.lang.annotation.Documented;                                                                       
+
+import javax.xml.ws.spi.WebServiceFeatureAnnotation;
+                                                                                                              
+@Documented                                                                                                   
+@Retention(value=RetentionPolicy.RUNTIME)                                                                     
+@Target(value=ElementType.TYPE)                                                                               
+@WebServiceFeatureAnnotation(id=MTOMFeature.ID, bean=MTOMFeature.class)
+                                                                                                              
+public @interface MTOM {                                                                            
+                                                                                                              
+    public boolean enabled() default true;
+    
+    public int threshold() default 0;
+                                                                                                              
+}

Added: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/MTOMFeature.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/MTOMFeature.java?view=auto&rev=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/MTOMFeature.java (added)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/soap/MTOMFeature.java Tue May 29 13:23:45 2007
@@ -0,0 +1,60 @@
+/*
+ * 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 javax.xml.ws.soap;
+
+import javax.xml.ws.WebServiceException;
+import javax.xml.ws.WebServiceFeature;
+
+public final class MTOMFeature extends WebServiceFeature {
+    public static final String ID = "http://www.w3.org/2004/08/soap/features/http-optimization";
+    
+    protected int threshold;
+    
+    public MTOMFeature() {
+        this(true, 0);
+    }
+    
+    public MTOMFeature(boolean enabled) {
+        this(enabled, 0);
+    }
+    
+    public MTOMFeature(int threshold) {
+        this(true, threshold);
+    }
+    
+    public MTOMFeature(boolean enabled, int threshold) {
+        super();
+        
+        //TODO NLS enable
+        if (threshold < 0)
+            throw new WebServiceException("MTOM threshold size cannot be less than zero. It was " + threshold);
+        
+        this.enabled   = enabled;
+        this.threshold = threshold;
+    }
+
+    public int getThreshold() {
+        return threshold;
+    }
+    
+    @Override
+    public String getID() {
+        return ID;
+    }
+}

Modified: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/spi/Provider.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/spi/Provider.java?view=diff&rev=542643&r1=542642&r2=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/spi/Provider.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/spi/Provider.java Tue May 29 13:23:45 2007
@@ -1,24 +1,34 @@
 /*
-* Copyright 2004,2005 The Apache Software Foundation.
-*
-* Licensed 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.
-*/
-
+ * 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 javax.xml.ws.spi;
 
 import javax.xml.namespace.QName;
+import javax.xml.transform.Source;
 import javax.xml.ws.Endpoint;
+import javax.xml.ws.EndpointReference;
+import javax.xml.ws.WebServiceFeature;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+import org.w3c.dom.Element;
+
 import java.net.URL;
+import java.util.List;
 
 public abstract class Provider {
 
@@ -26,7 +36,7 @@
     }
 
     public static Provider provider() {
-        return (Provider) FactoryFinder.find("javax.xml.ws.spi.Provider", DEFAULT_JAXWSPROVIDER);
+        return (Provider) FactoryFinder.find(JAXWSPROVIDER_PROPERTY, DEFAULT_JAXWSPROVIDER);
     }
 
     public abstract ServiceDelegate createServiceDelegate(URL url, QName qname, Class class1);
@@ -35,6 +45,20 @@
 
     public abstract Endpoint createAndPublishEndpoint(String s, Object obj);
 
+    //TODO
+    public abstract EndpointReference readEndpointReference(Source eprInfoset);
+    
+    //TODO
+    public abstract <T> T getPort(EndpointReference endpointReference, Class<T> serviceEndpointInterface, WebServiceFeature... features);
+    
+    //TODO
+    public abstract W3CEndpointReference createW3CEndpointReference(String address,
+            QName serviceName,
+            QName portName,
+            List<Element> metadata,
+            String wsdlDocumentLocation,
+            List<Element> referenceParameters);
+    
     public static final String JAXWSPROVIDER_PROPERTY = "javax.xml.ws.spi.Provider";
     private static final String DEFAULT_JAXWSPROVIDER = "org.apache.axis2.jaxws.spi.Provider";
 }

Modified: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/spi/ServiceDelegate.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/spi/ServiceDelegate.java?view=diff&rev=542643&r1=542642&r2=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/spi/ServiceDelegate.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/spi/ServiceDelegate.java Tue May 29 13:23:45 2007
@@ -1,23 +1,29 @@
 /*
-* Copyright 2004,2005 The Apache Software Foundation.
-*
-* Licensed 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.
-*/
+ * 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 javax.xml.ws.spi;
 
 import javax.xml.bind.JAXBContext;
 import javax.xml.namespace.QName;
 import javax.xml.ws.Dispatch;
+import javax.xml.ws.EndpointReference;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebServiceFeature;
 import javax.xml.ws.handler.HandlerResolver;
 import java.net.URI;
 import java.net.URL;
@@ -33,15 +39,36 @@
 
     public abstract <T> T getPort(Class<T> class1);
 
+    //TODO
+    public abstract <T> T getPort(QName portName, Class<T> serviceEndpointInterface, WebServiceFeature... features);
+    
+    //TODO
+    public abstract <T> T getPort(EndpointReference endpointReference, Class<T> serviceEndpointInterface, WebServiceFeature... features);
+    
+    //TODO
+    public abstract <T> T getPort(Class<T> serviceEndpointInterface, WebServiceFeature... features);
+    
     public abstract void addPort(QName qname, String bindingId, String s);
 
-    public abstract <T>Dispatch<T> createDispatch(QName qname, Class<T> class1, javax.xml.ws.Service.Mode mode);
+    public abstract <T>Dispatch<T> createDispatch(QName qname, Class<T> class1, Service.Mode mode);
 
-    public abstract Dispatch<java.lang.Object> createDispatch(QName qname, JAXBContext jaxbcontext, javax.xml.ws.Service.Mode mode);
+    public abstract Dispatch<Object> createDispatch(QName qname, JAXBContext jaxbcontext, javax.xml.ws.Service.Mode mode);
 
+    //TODO
+    public abstract <T> Dispatch<T> createDispatch(QName portName, Class<T> type, Service.Mode mode, WebServiceFeature... features);
+    
+    //TODO
+    public abstract <T> Dispatch<T> createDispatch(EndpointReference endpointReference, Class<T> type, Service.Mode mode, WebServiceFeature... features);
+    
+    //TODO
+    public abstract Dispatch<Object> createDispatch(QName portName, JAXBContext context, Service.Mode mode, WebServiceFeature... features);
+    
+    //TODO
+    public abstract Dispatch<Object> createDispatch(EndpointReference endpointReference, JAXBContext context, Service.Mode mode, WebServiceFeature... features);
+    
     public abstract QName getServiceName();
 
-    public abstract Iterator<javax.xml.namespace.QName> getPorts();
+    public abstract Iterator<QName> getPorts();
 
     public abstract URL getWSDLDocumentLocation();
 

Added: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/spi/WebServiceFeatureAnnotation.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/spi/WebServiceFeatureAnnotation.java?view=auto&rev=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/spi/WebServiceFeatureAnnotation.java (added)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/spi/WebServiceFeatureAnnotation.java Tue May 29 13:23:45 2007
@@ -0,0 +1,39 @@
+/*
+ * 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 javax.xml.ws.spi;                                                                                         
+                                                                                                              
+import java.lang.annotation.RetentionPolicy;                                                                  
+import java.lang.annotation.ElementType;                                                                      
+import java.lang.annotation.Retention;                                                                        
+import java.lang.annotation.Target;                                                                           
+import java.lang.annotation.Documented;                                                                       
+
+import javax.xml.ws.WebServiceFeature;
+                                                                                                              
+@Documented                                                                                                   
+@Retention(value=RetentionPolicy.RUNTIME)                                                                     
+@Target(value=ElementType.ANNOTATION_TYPE)                                                                               
+                                                                                                              
+public @interface WebServiceFeatureAnnotation {                                                                            
+                                                                                                              
+    public String id();
+    
+    public Class<? extends WebServiceFeature> bean();
+                                                                                                              
+}

Added: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/wsaddressing/W3CEndpointReference.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/wsaddressing/W3CEndpointReference.java?view=auto&rev=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/wsaddressing/W3CEndpointReference.java (added)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/wsaddressing/W3CEndpointReference.java Tue May 29 13:23:45 2007
@@ -0,0 +1,234 @@
+/*
+ * 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 javax.xml.ws.wsaddressing;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.namespace.QName;
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+import javax.xml.ws.EndpointReference;
+import javax.xml.ws.WebServiceException;
+
+/**
+ * <p>Java class for EndpointReferenceType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="EndpointReferenceType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="Address" type="{http://www.w3.org/2005/08/addressing}AttributedURIType"/>
+ *         &lt;element ref="{http://www.w3.org/2005/08/addressing}ReferenceParameters" minOccurs="0"/>
+ *         &lt;element ref="{http://www.w3.org/2005/08/addressing}Metadata" minOccurs="0"/>
+ *         &lt;any/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "EndpointReferenceType", propOrder = {
+    "address",
+    "referenceParameters",
+    "metadata",
+    "any"
+})
+public final class W3CEndpointReference extends EndpointReference {
+    @XmlTransient
+    private static volatile JAXBContext jaxbContext;
+    @XmlTransient
+    protected static final String NS = "http://www.w3.org/2005/08/addressing";
+    
+    @XmlElement(name = "Address", required = true)
+    protected AttributedURIType address;
+    @XmlElement(name = "ReferenceParameters")
+    protected ReferenceParametersType referenceParameters;
+    @XmlElement(name = "Metadata")
+    protected MetadataType metadata;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    protected W3CEndpointReference() {
+    }
+    
+    public W3CEndpointReference(Source eprInfoset) {
+        super();
+        
+        try {
+            JAXBContext jaxbContext = getJAXBContext();
+            Unmarshaller um = jaxbContext.createUnmarshaller();
+            W3CEndpointReference w3cEPR =
+                (W3CEndpointReference) um.unmarshal(eprInfoset);
+            
+            address = w3cEPR.address;
+            referenceParameters = w3cEPR.referenceParameters;
+            metadata = w3cEPR.metadata;
+            any = w3cEPR.any;
+            otherAttributes.putAll(w3cEPR.otherAttributes);
+        }
+        catch (Exception e) {
+            throw new WebServiceException("Unable to create W3C endpoint reference.", e);
+        }
+    }
+    
+    @Override
+    public void writeTo(Result result) {
+        if (result == null) {
+            //TODO NLS enable
+            throw new IllegalArgumentException("Null is not allowed.");
+        }
+        
+        try {
+            JAXBContext jaxbContext = getJAXBContext();
+            Marshaller m = jaxbContext.createMarshaller();
+            m.marshal(this, result);
+        }
+        catch (Exception e) {
+            //TODO NLS enable
+            throw new WebServiceException("writeTo failure.", e);
+        }
+    }
+    
+    private JAXBContext getJAXBContext() throws JAXBException {
+        //This is an implementation of double-checked locking.
+        //It works because jaxbContext is volatile.
+        if (jaxbContext == null) {
+            synchronized (W3CEndpointReference.class) {
+                if (jaxbContext == null)
+                    jaxbContext = JAXBContext.newInstance(W3CEndpointReference.class);
+            }
+        }
+        
+        return jaxbContext;
+    }
+
+    /**
+     * <p>Java class for AttributedURIType complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType name="AttributedURIType">
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>anyURI">
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "AttributedURIType", propOrder = {
+        "value"
+    })
+    private static class AttributedURIType {
+
+        @XmlValue
+        @XmlSchemaType(name = "anyURI")
+        protected String value;
+        @XmlAnyAttribute
+        private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+    }
+
+    /**
+     * <p>Java class for ReferenceParametersType complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType name="ReferenceParametersType">
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       &lt;sequence>
+     *         &lt;any/>
+     *       &lt;/sequence>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "ReferenceParametersType", propOrder = {
+        "any"
+    })
+    private static class ReferenceParametersType {
+
+        @XmlAnyElement(lax = true)
+        protected List<Object> any;
+        @XmlAnyAttribute
+        private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+    }
+
+    /**
+     * <p>Java class for MetadataType complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType name="MetadataType">
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       &lt;sequence>
+     *         &lt;any/>
+     *       &lt;/sequence>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "MetadataType", propOrder = {
+        "any"
+    })
+    private static class MetadataType {
+
+        @XmlAnyElement(lax = true)
+        protected List<Object> any;
+        @XmlAnyAttribute
+        private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+    }
+}

Added: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/wsaddressing/W3CEndpointReferenceBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/wsaddressing/W3CEndpointReferenceBuilder.java?view=auto&rev=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/wsaddressing/W3CEndpointReferenceBuilder.java (added)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/wsaddressing/W3CEndpointReferenceBuilder.java Tue May 29 13:23:45 2007
@@ -0,0 +1,107 @@
+/*
+ * 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 javax.xml.ws.wsaddressing;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.spi.Provider;
+
+import org.w3c.dom.Element;
+
+public final class W3CEndpointReferenceBuilder {
+    private String address;
+    private QName serviceName;
+    private QName endpointName;
+    private String wsdlDocumentLocation;
+    private List<Element> referenceParameters;
+    private List<Element> metadataElements;
+    
+    public W3CEndpointReferenceBuilder() {
+    }
+    
+    public W3CEndpointReferenceBuilder address(String address) {
+        this.address = address;
+        return this;
+    }
+    
+    public W3CEndpointReferenceBuilder serviceName(QName serviceName) {
+        this.serviceName = serviceName;
+        return this;
+    }
+    
+    public W3CEndpointReferenceBuilder endpointName(QName endpointName) {
+        //TODO NLS enable
+        if (this.serviceName == null) {
+            throw new IllegalStateException("The endpoint qname cannot be set before the service qname.");
+        }
+        
+        this.endpointName = endpointName;
+        return this;
+    }
+    
+    public W3CEndpointReferenceBuilder wsdlDocumentLocation(String wsdlDocumentLocation) {
+        this.wsdlDocumentLocation = wsdlDocumentLocation;
+        return this;
+    }
+    
+    public W3CEndpointReferenceBuilder referenceParameter(Element referenceParameter) {
+        //TODO NLS enable
+        if (referenceParameter == null) {
+            throw new IllegalArgumentException("A reference parameter cannot be null.");
+        }
+        
+        if (this.referenceParameters == null) {
+            this.referenceParameters = new ArrayList<Element>();
+        }
+        
+        this.referenceParameters.add(referenceParameter);
+        return this;
+    }
+    
+    public W3CEndpointReferenceBuilder metadata(Element metadataElement) {
+        //TODO NLS enable
+        if (metadataElement == null) {
+            throw new IllegalArgumentException("A metadata element cannot be null.");
+        }
+        
+        if (this.metadataElements == null) {
+            this.metadataElements = new ArrayList<Element>();
+        }
+        
+        this.metadataElements.add(metadataElement);
+        return this;
+    }
+    
+    public W3CEndpointReference build() {
+        return Provider.provider().createW3CEndpointReference(address,
+                serviceName,
+                endpointName,
+                metadataElements,
+                wsdlDocumentLocation,
+                referenceParameters);
+    }
+
+    @Override
+    public String toString() {
+        // TODO Auto-generated method stub
+        return super.toString();
+    }
+}

Added: webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/wsaddressing/package-info.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/wsaddressing/package-info.java?view=auto&rev=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/wsaddressing/package-info.java (added)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws-api/src/javax/xml/ws/wsaddressing/package-info.java Tue May 29 13:23:45 2007
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.w3.org/2005/08/addressing", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package javax.xml.ws.wsaddressing;

Modified: webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java?view=diff&rev=542643&r1=542642&r2=542643
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java Tue May 29 13:23:45 2007
@@ -18,24 +18,40 @@
  */
 package org.apache.axis2.jaxws;
 
+import org.apache.axis2.addressing.EndpointReferenceHelper;
+import org.apache.axis2.addressing.AddressingConstants.Final;
+import org.apache.axis2.addressing.AddressingConstants.Submission;
+import org.apache.axis2.addressing.metadata.ServiceName;
+import org.apache.axis2.addressing.metadata.WSDLLocation;
+import org.apache.axis2.jaxws.addressing.SubmissionAddressingFeature;
+import org.apache.axis2.jaxws.addressing.SubmissionEndpointReference;
+import org.apache.axis2.jaxws.addressing.util.EndpointReferenceConverter;
+import org.apache.axis2.jaxws.binding.BindingUtils;
 import org.apache.axis2.jaxws.binding.SOAPBinding;
 import org.apache.axis2.jaxws.client.PropertyValidator;
 import org.apache.axis2.jaxws.core.InvocationContext;
 import org.apache.axis2.jaxws.core.MessageContext;
 import org.apache.axis2.jaxws.description.EndpointDescription;
+import org.apache.axis2.jaxws.description.ServiceDescriptionWSDL;
+import org.apache.axis2.jaxws.feature.WebServiceFeatureValidator;
 import org.apache.axis2.jaxws.handler.HandlerResolverImpl;
 import org.apache.axis2.jaxws.i18n.Messages;
 import org.apache.axis2.jaxws.spi.ServiceDelegate;
 import org.apache.axis2.transport.http.HTTPConstants;
 
+import javax.xml.namespace.QName;
 import javax.xml.ws.Binding;
+import javax.xml.ws.EndpointReference;
+import javax.xml.ws.WebServiceFeature;
 import javax.xml.ws.handler.HandlerResolver;
+import javax.xml.ws.soap.AddressingFeature;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
 
+import java.net.URL;
 import java.util.Hashtable;
 import java.util.Map;
 
 public class BindingProvider implements org.apache.axis2.jaxws.spi.BindingProvider {
-
     protected Map<String, Object> requestContext;
 
     protected Map<String, Object> responseContext;
@@ -43,13 +59,26 @@
     protected EndpointDescription endpointDesc;
 
     protected ServiceDelegate serviceDelegate;
+    
+    protected WebServiceFeatureValidator validator;
+    
+    protected org.apache.axis2.addressing.EndpointReference epr;
+    
+    protected String addressingNamespace;
 
     private Binding binding;  // force subclasses to use the lazy getter
 
-    public BindingProvider(ServiceDelegate svcDelegate, EndpointDescription epDesc) {
-        endpointDesc = epDesc;
-        serviceDelegate = svcDelegate;
-
+    public BindingProvider(ServiceDelegate svcDelegate,
+                           EndpointDescription epDesc,
+                           org.apache.axis2.addressing.EndpointReference epr,
+                           String addressingNamespace,
+                           WebServiceFeature... features) {
+        this.endpointDesc = epDesc;
+        this.serviceDelegate = svcDelegate;
+        this.epr = epr;
+        this.addressingNamespace = addressingNamespace;
+        this.validator = new WebServiceFeatureValidator(false, features);
+        
         initialize();
     }
 
@@ -59,15 +88,24 @@
     private void initialize() {
         requestContext = new ValidatingClientContext();
         responseContext = new ValidatingClientContext();
-
+        
         // Setting standard property defaults for the request context
-        requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, new Boolean(false));
-        requestContext.put(BindingProvider.SOAPACTION_USE_PROPERTY, new Boolean(true));
-
+        requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, Boolean.FALSE);
+        
+        WebServiceFeature addressingFeature = validator.get(AddressingFeature.ID);
+        WebServiceFeature submissionAddressingFeature = validator.get(SubmissionAddressingFeature.ID);
+        String bindingID = endpointDesc.getClientBindingID();
+        
+        if (BindingUtils.isSOAPBinding(bindingID) &&
+                (addressingFeature.isEnabled() || submissionAddressingFeature.isEnabled()))
+            requestContext.put(BindingProvider.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
+        else
+            requestContext.put(BindingProvider.SOAPACTION_USE_PROPERTY, Boolean.FALSE);
+        
         // Set the endpoint address
-        String endpointAddress = endpointDesc.getEndpointAddress();
-        if (endpointAddress != null) {
-            requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointAddress);
+        String endpointAddress = (epr != null ) ? epr.getAddress() : endpointDesc.getEndpointAddress();        
+        if (endpointAddress != null && !"".equals(endpointAddress)) {
+            requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointAddress);                
         }
     }
 
@@ -188,10 +226,88 @@
         }
     }
 
+    public EndpointReference getEndpointReference() {
+        return getEndpointReference(W3CEndpointReference.class);
+    }
+
+    public <T extends EndpointReference> T getEndpointReference(Class<T> clazz) {
+        //TODO NLS enable.
+        if (!SubmissionEndpointReference.class.isAssignableFrom(clazz) &&
+            !W3CEndpointReference.class.isAssignableFrom(clazz))
+            throw ExceptionFactory.makeWebServiceException("Unrecognized class type " + clazz.getCanonicalName());
+        
+        T jaxwsEPR = null;
+        String bindingID = endpointDesc.getClientBindingID();
+        String addressingNamespace =
+            SubmissionEndpointReference.class.isAssignableFrom(clazz) ? Submission.WSA_NAMESPACE : Final.WSA_NAMESPACE;
+        
+        if (BindingUtils.isSOAPBinding(bindingID)) {
+            try {
+                if (epr == null) {
+                    String address = endpointDesc.getEndpointAddress();
+                    org.apache.axis2.addressing.EndpointReference epr =
+                        new org.apache.axis2.addressing.EndpointReference(address);
+                    QName service = endpointDesc.getServiceQName();
+                    QName port = endpointDesc.getPortQName();
+                    URL wsdlURL = ((ServiceDescriptionWSDL) endpointDesc.getServiceDescription()).getWSDLLocation();
+                    ServiceName serviceName = new ServiceName(service, port.getLocalPart());
+                    WSDLLocation wsdlLocation = new WSDLLocation(port.getNamespaceURI(), wsdlURL.toString());
+                    EndpointReferenceHelper.setServiceNameMetadata(epr, addressingNamespace, serviceName);
+                    EndpointReferenceHelper.setWSDLLocationMetadata(epr, addressingNamespace, wsdlLocation);
+                    this.epr = epr;
+                    this.addressingNamespace = addressingNamespace;
+                }
+                else if (!addressingNamespace.equals(this.addressingNamespace)) {
+                    String address = this.epr.getAddress();
+                    org.apache.axis2.addressing.EndpointReference epr =
+                        new org.apache.axis2.addressing.EndpointReference(address);
+                    QName service = endpointDesc.getServiceQName();
+                    QName port = endpointDesc.getPortQName();
+                    URL wsdlURL = ((ServiceDescriptionWSDL) endpointDesc.getServiceDescription()).getWSDLLocation();
+                    ServiceName serviceName = new ServiceName(service, port.getLocalPart());
+                    WSDLLocation wsdlLocation = new WSDLLocation(port.getNamespaceURI(), wsdlURL.toString());
+                    EndpointReferenceHelper.setServiceNameMetadata(epr, addressingNamespace, serviceName);
+                    EndpointReferenceHelper.setWSDLLocationMetadata(epr, addressingNamespace, wsdlLocation);
+                    EndpointReferenceHelper.transferReferenceParameters(this.epr, epr);
+                    this.epr = epr;
+                    this.addressingNamespace = addressingNamespace;                    
+                }
+            
+                jaxwsEPR = EndpointReferenceConverter.convertFromAxis2(epr, clazz);
+            }
+            catch (Exception e) {
+                //TODO NLS enable.
+                throw ExceptionFactory.makeWebServiceException("Error creating endpoint reference", e);
+            }
+        }
+        else {
+            //TODO NLS enable.
+            throw new UnsupportedOperationException("This method is not supported with a binding of " + bindingID);
+        }
+        
+        return jaxwsEPR;
+    }
+    
+    public String getAddressingNamespace() {
+        return addressingNamespace;
+    }
+
+    public org.apache.axis2.addressing.EndpointReference getAxis2EndpointReference() {
+        return epr;
+    }    
+
+    public WebServiceFeatureValidator getWebServiceFeatureValidator() {
+        return validator;
+    }    
+    
     /*
     * An inner class used to validate properties as they are set by the client.
     */
     class ValidatingClientContext extends Hashtable<String, Object> {
+        /**
+         * 
+         */
+        private static final long serialVersionUID = 3485112205801917858L;
 
         @Override
         public synchronized Object put(String key, Object value) {
@@ -204,4 +320,6 @@
             }
         }
     }
+
+
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org