You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2013/09/03 10:34:52 UTC

svn commit: r1519597 - in /cxf/trunk: core/src/main/java/org/apache/cxf/common/jaxb/ systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/ systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/ systests/databinding/src/t...

Author: ffang
Date: Tue Sep  3 08:34:51 2013
New Revision: 1519597

URL: http://svn.apache.org/r1519597
Log:
[CXF-5246]Conflicting schema namespaces for services with same set of schema classes

Added:
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/MultipleServiceShareClassTest.java
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/NameElement.java
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/bar/
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/bar/BarName.java
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/foo/
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/foo/FooName.java
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/server/
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/server/bar/
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/server/bar/BarServiceImpl.java
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/server/foo/
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/server/foo/FooServiceImpl.java
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/Getter.java
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/bar/
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/bar/BarService.java
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/foo/
    cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/foo/FooService.java
Modified:
    cxf/trunk/core/src/main/java/org/apache/cxf/common/jaxb/JAXBContextCache.java

Modified: cxf/trunk/core/src/main/java/org/apache/cxf/common/jaxb/JAXBContextCache.java
URL: http://svn.apache.org/viewvc/cxf/trunk/core/src/main/java/org/apache/cxf/common/jaxb/JAXBContextCache.java?rev=1519597&r1=1519596&r2=1519597&view=diff
==============================================================================
--- cxf/trunk/core/src/main/java/org/apache/cxf/common/jaxb/JAXBContextCache.java (original)
+++ cxf/trunk/core/src/main/java/org/apache/cxf/common/jaxb/JAXBContextCache.java Tue Sep  3 08:34:51 2013
@@ -31,6 +31,7 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Set;
 import java.util.regex.Pattern;
 
@@ -120,8 +121,8 @@ public final class JAXBContextCache {  
         }
     }   
     
-    private static final Map<Set<Class<?>>, CachedContextAndSchemasInternal> JAXBCONTEXT_CACHE
-        = new CacheMap<Set<Class<?>>, CachedContextAndSchemasInternal>();
+    private static final Map<Set<Class<?>>, Map<String, CachedContextAndSchemasInternal>> JAXBCONTEXT_CACHE
+        = new CacheMap<Set<Class<?>>, Map<String, CachedContextAndSchemasInternal>>();
 
     private static final Map<Package, CachedClass> OBJECT_FACTORY_CACHE
         = new CacheMap<Package, CachedClass>(); 
@@ -188,15 +189,27 @@ public final class JAXBContextCache {  
         }
         CachedContextAndSchemasInternal cachedContextAndSchemasInternal = null;
         JAXBContext context = null;
+        Map<String, CachedContextAndSchemasInternal> cachedContextAndSchemasInternalMap = null;
         if (typeRefs == null || typeRefs.isEmpty()) {
             synchronized (JAXBCONTEXT_CACHE) {
+                
                 if (exact) {
-                    cachedContextAndSchemasInternal = JAXBCONTEXT_CACHE.get(classes);
+                    cachedContextAndSchemasInternalMap
+                        = JAXBCONTEXT_CACHE.get(classes);
+                    if (cachedContextAndSchemasInternalMap != null && defaultNs != null) {
+                        cachedContextAndSchemasInternal = cachedContextAndSchemasInternalMap.get(defaultNs);
+                    }
                 } else {
-                    for (Map.Entry<Set<Class<?>>, CachedContextAndSchemasInternal> k : JAXBCONTEXT_CACHE.entrySet()) {
+                    for (Entry<Set<Class<?>>, Map<String, CachedContextAndSchemasInternal>> k 
+                            : JAXBCONTEXT_CACHE.entrySet()) {
                         Set<Class<?>> key = k.getKey();
                         if (key != null && key.containsAll(classes)) {
-                            cachedContextAndSchemasInternal = k.getValue();
+                            cachedContextAndSchemasInternalMap = k.getValue();
+                            if (defaultNs != null) {
+                                cachedContextAndSchemasInternal = cachedContextAndSchemasInternalMap.get(defaultNs);
+                            } else {
+                                cachedContextAndSchemasInternal = cachedContextAndSchemasInternalMap.get("");
+                            }
                             break;
                         }
                     }
@@ -237,7 +250,13 @@ public final class JAXBContextCache {  
         cachedContextAndSchemasInternal = new CachedContextAndSchemasInternal(context, classes);
         synchronized (JAXBCONTEXT_CACHE) {
             if (typeRefs == null || typeRefs.isEmpty()) {
-                JAXBCONTEXT_CACHE.put(classes, cachedContextAndSchemasInternal);
+                if (cachedContextAndSchemasInternalMap == null) {
+                    cachedContextAndSchemasInternalMap 
+                        = new CacheMap<String, CachedContextAndSchemasInternal>();
+                } 
+                cachedContextAndSchemasInternalMap.put((defaultNs != null) ? defaultNs : "", 
+                    cachedContextAndSchemasInternal);
+                JAXBCONTEXT_CACHE.put(classes, cachedContextAndSchemasInternalMap);
             }
         }
 

Added: cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/MultipleServiceShareClassTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/MultipleServiceShareClassTest.java?rev=1519597&view=auto
==============================================================================
--- cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/MultipleServiceShareClassTest.java (added)
+++ cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/MultipleServiceShareClassTest.java Tue Sep  3 08:34:51 2013
@@ -0,0 +1,113 @@
+/**
+ * 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.cxf.systest.jaxb;
+
+
+import org.apache.cxf.interceptor.LoggingInInterceptor;
+import org.apache.cxf.interceptor.LoggingOutInterceptor;
+import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
+import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
+import org.apache.cxf.systest.jaxb.shareclasses.model.NameElement;
+import org.apache.cxf.systest.jaxb.shareclasses.model.bar.BarName;
+import org.apache.cxf.systest.jaxb.shareclasses.model.foo.FooName;
+import org.apache.cxf.systest.jaxb.shareclasses.server.bar.BarServiceImpl;
+import org.apache.cxf.systest.jaxb.shareclasses.server.foo.FooServiceImpl;
+import org.apache.cxf.systest.jaxb.shareclasses.service.Getter;
+import org.apache.cxf.systest.jaxb.shareclasses.service.bar.BarService;
+import org.apache.cxf.systest.jaxb.shareclasses.service.foo.FooService;
+import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
+import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * 
+ */
+public class MultipleServiceShareClassTest extends AbstractBusClientServerTestBase {
+    static final String PORT = allocatePort(MultipleServiceShareClassTest.class);
+    static final String ADDRESS1 = "http://localhost:" + PORT + "/BarService";
+    static final String ADDRESS2 = "http://localhost:" + PORT + "/FooService";
+    
+    public static class Server extends AbstractBusTestServerBase {        
+
+        protected void run() {
+            registerService(FooService.class, new FooServiceImpl());
+            registerService(BarService.class, new BarServiceImpl());
+
+        }
+        
+        private void registerService(final Class<?> service, final Object serviceImpl) {
+            final JaxWsServerFactoryBean builder = new JaxWsServerFactoryBean();
+            builder.setBus(getBus());
+            builder.setAddress("http://localhost:" + PORT + "/" + service.getSimpleName());
+            builder.setServiceBean(serviceImpl);
+            builder.setServiceClass(service);
+            builder.create();
+        }
+
+        public static void main(String[] args) {
+            try {
+                Server s = new Server();
+                s.start();
+            } catch (Exception ex) {
+                ex.printStackTrace();
+                System.exit(-1);
+            } finally {
+                System.out.println("done!");
+            }
+        }
+    }
+    @BeforeClass
+    public static void startServers() throws Exception {
+        assertTrue("server did not launch correctly", launchServer(Server.class, false));
+    }
+    
+    @Test
+    public void testCallMultipleService() throws Exception {
+        
+        final NameElement barName = new BarName();
+        barName.setName("Bob");
+        callBar(barName);
+        final NameElement fooName = new FooName();
+        fooName.setName("Alice");
+        callFoo(fooName);
+
+    }
+    
+    private void callFoo(final NameElement nameElement) {
+        FooService fooClient = createGetterService(FooService.class);
+        assertEquals(fooClient.getName(nameElement), "Alice");
+    }
+
+    private void callBar(final NameElement nameElement) {
+        BarService barClient = createGetterService(BarService.class);
+        assertEquals(barClient.getName(nameElement), "Bob");
+    }
+
+    private <T extends Getter> T createGetterService(final Class<T> serviceClass) {
+        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
+        factory.setAddress("http://localhost:" + PORT + "/" + serviceClass.getSimpleName());
+        factory.getInInterceptors().add(new LoggingInInterceptor());
+        factory.getOutInterceptors().add(new LoggingOutInterceptor());
+        return factory.create(serviceClass);
+    }
+
+}

Added: cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/NameElement.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/NameElement.java?rev=1519597&view=auto
==============================================================================
--- cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/NameElement.java (added)
+++ cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/NameElement.java Tue Sep  3 08:34:51 2013
@@ -0,0 +1,42 @@
+/**
+ * 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.cxf.systest.jaxb.shareclasses.model;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSeeAlso;
+
+import org.apache.cxf.systest.jaxb.shareclasses.model.bar.BarName;
+import org.apache.cxf.systest.jaxb.shareclasses.model.foo.FooName;
+
+@XmlRootElement
+@XmlSeeAlso({
+    FooName.class, BarName.class
+})
+public abstract class NameElement {
+    private String name;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+    
+}

Added: cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/bar/BarName.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/bar/BarName.java?rev=1519597&view=auto
==============================================================================
--- cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/bar/BarName.java (added)
+++ cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/bar/BarName.java Tue Sep  3 08:34:51 2013
@@ -0,0 +1,28 @@
+/**
+ * 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.cxf.systest.jaxb.shareclasses.model.bar;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.cxf.systest.jaxb.shareclasses.model.NameElement;
+
+@XmlRootElement
+public class BarName extends NameElement {
+
+}

Added: cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/foo/FooName.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/foo/FooName.java?rev=1519597&view=auto
==============================================================================
--- cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/foo/FooName.java (added)
+++ cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/model/foo/FooName.java Tue Sep  3 08:34:51 2013
@@ -0,0 +1,29 @@
+/**
+ * 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.cxf.systest.jaxb.shareclasses.model.foo;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.cxf.systest.jaxb.shareclasses.model.NameElement;
+
+@XmlRootElement
+public class FooName extends NameElement {
+
+}

Added: cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/server/bar/BarServiceImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/server/bar/BarServiceImpl.java?rev=1519597&view=auto
==============================================================================
--- cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/server/bar/BarServiceImpl.java (added)
+++ cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/server/bar/BarServiceImpl.java Tue Sep  3 08:34:51 2013
@@ -0,0 +1,31 @@
+/**
+ * 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.cxf.systest.jaxb.shareclasses.server.bar;
+
+import org.apache.cxf.systest.jaxb.shareclasses.model.NameElement;
+import org.apache.cxf.systest.jaxb.shareclasses.service.bar.BarService;
+
+public class BarServiceImpl implements BarService {
+
+    @Override
+    public String getName(final NameElement nameElement) {
+        return nameElement.getName();
+    }
+
+}

Added: cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/server/foo/FooServiceImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/server/foo/FooServiceImpl.java?rev=1519597&view=auto
==============================================================================
--- cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/server/foo/FooServiceImpl.java (added)
+++ cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/server/foo/FooServiceImpl.java Tue Sep  3 08:34:51 2013
@@ -0,0 +1,31 @@
+/**
+ * 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.cxf.systest.jaxb.shareclasses.server.foo;
+
+import org.apache.cxf.systest.jaxb.shareclasses.model.NameElement;
+import org.apache.cxf.systest.jaxb.shareclasses.service.foo.FooService;
+
+public class FooServiceImpl implements FooService {
+
+    @Override
+    public String getName(final NameElement nameElement) {
+        return nameElement.getName();
+    }
+
+}

Added: cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/Getter.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/Getter.java?rev=1519597&view=auto
==============================================================================
--- cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/Getter.java (added)
+++ cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/Getter.java Tue Sep  3 08:34:51 2013
@@ -0,0 +1,25 @@
+/**
+ * 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.cxf.systest.jaxb.shareclasses.service;
+
+import org.apache.cxf.systest.jaxb.shareclasses.model.NameElement;
+
+public interface Getter {
+    String getName(NameElement nameElement);
+}

Added: cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/bar/BarService.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/bar/BarService.java?rev=1519597&view=auto
==============================================================================
--- cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/bar/BarService.java (added)
+++ cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/bar/BarService.java Tue Sep  3 08:34:51 2013
@@ -0,0 +1,27 @@
+/**
+ * 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.cxf.systest.jaxb.shareclasses.service.bar;
+
+import javax.jws.WebService;
+
+import org.apache.cxf.systest.jaxb.shareclasses.service.Getter;
+
+@WebService
+public interface BarService extends Getter {
+}

Added: cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/foo/FooService.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/foo/FooService.java?rev=1519597&view=auto
==============================================================================
--- cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/foo/FooService.java (added)
+++ cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/jaxb/shareclasses/service/foo/FooService.java Tue Sep  3 08:34:51 2013
@@ -0,0 +1,27 @@
+/**
+ * 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.cxf.systest.jaxb.shareclasses.service.foo;
+
+import javax.jws.WebService;
+
+import org.apache.cxf.systest.jaxb.shareclasses.service.Getter;
+
+@WebService
+public interface FooService extends Getter {
+}