You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by Simon Laws <si...@googlemail.com> on 2008/07/02 11:23:30 UTC

Re: svn commit: r673298 - in /tuscany/java/sca: modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/ modules/databinding/src/main/java/o

On Wed, Jul 2, 2008 at 7:47 AM, <rf...@apache.org> wrote:

> Author: rfeng
> Date: Tue Jul  1 23:47:40 2008
> New Revision: 673298
>
> URL: http://svn.apache.org/viewvc?rev=673298&view=rev
> Log:
> Fix for TUSCANY-2444
>
> Modified:
>
>  tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoaderTestCase.java
>
>  tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/BeanXMLStreamReaderImpl.java
>
>  tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/BeanXMLStreamReaderImpl.java
>
>  tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/JavaIntrospectionHelper.java
>
>  tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProvider.java
>
>  tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/test/OSGiTestBundles.java
>
>  tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/CodeGenerationHelper.java
>
>  tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java
>
>  tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
>
>  tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGenerator.java
>
>  tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java
>
>  tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/JavaXMLMapper.java
>
>  tuscany/java/sca/tools/java2wsdl/src/main/java/org/apache/tuscany/tools/java2wsdl/generate/SchemaBuilder.java
>
> Modified:
> tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoaderTestCase.java
> URL:
> http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoaderTestCase.java?rev=673298&r1=673297&r2=673298&view=diff
>
> ==============================================================================
> ---
> tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoaderTestCase.java
> (original)
> +++
> tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoaderTestCase.java
> Tue Jul  1 23:47:40 2008
> @@ -134,6 +134,11 @@
>
>     }
>
> +    private static String getPackageName(Class<?> cls) {
> +        String name = cls.getName();
> +        int index = name.lastIndexOf('.');
> +        return index == -1 ? "" : name.substring(0, index);
> +    }
>
>     @Test
>     public void testClassLoadingFromImportedContribution() throws
> ClassNotFoundException, MalformedURLException {
> @@ -146,7 +151,7 @@
>         exportContribList.add(contribC);
>
>         JavaImport import_ = javaImportExportFactory.createJavaImport();
> -        import_.setPackage(this.getClass().getPackage().getName());
> +        import_.setPackage(getPackageName(getClass()));
>         import_.setModelResolver(new
> JavaImportModelResolver(exportContribList, null));
>         contribB.getImports().add(import_);
>         import_ = javaImportExportFactory.createJavaImport();
> @@ -155,7 +160,7 @@
>         contribB.getImports().add(import_);
>
>         JavaExport export = javaImportExportFactory.createJavaExport();
> -        export.setPackage(this.getClass().getPackage().getName());
> +        export.setPackage(getPackageName(getClass()));
>         contribA.getExports().add(export);
>         export = javaImportExportFactory.createJavaExport();
>         export.setPackage("calculator");
> @@ -197,7 +202,7 @@
>
>         // Try to load non-existent class from imported package - should
> throw ClassNotFoundException
>         try {
> -
>  contribB.getClassLoader().loadClass(this.getClass().getPackage().getName()
> + ".NonExistentClass");
> +            contribB.getClassLoader().loadClass(getPackageName(getClass())
> + ".NonExistentClass");
>
>             Assert.assertTrue("ClassNotFoundException not thrown as
> expected", false);
>
> @@ -218,7 +223,7 @@
>         exportContribList.add(contribC);
>
>         JavaImport import_ = javaImportExportFactory.createJavaImport();
> -        import_.setPackage(this.getClass().getPackage().getName());
> +        import_.setPackage(getPackageName(getClass()));
>         import_.setModelResolver(new
> JavaImportModelResolver(exportContribList, null));
>         contribB.getImports().add(import_);
>         JavaImport import1_ = javaImportExportFactory.createJavaImport();
> @@ -227,7 +232,7 @@
>         contribB.getImports().add(import1_);
>
>         JavaExport export = javaImportExportFactory.createJavaExport();
> -        export.setPackage(this.getClass().getPackage().getName());
> +        export.setPackage(getPackageName(getClass()));
>         contribA.getExports().add(export);
>         JavaExport export1 = javaImportExportFactory.createJavaExport();
>         export1.setPackage("calculator");
>
> Modified:
> tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/BeanXMLStreamReaderImpl.java
> URL:
> http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/BeanXMLStreamReaderImpl.java?rev=673298&r1=673297&r2=673298&view=diff
>
> ==============================================================================
> ---
> tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/BeanXMLStreamReaderImpl.java
> (original)
> +++
> tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/BeanXMLStreamReaderImpl.java
> Tue Jul  1 23:47:40 2008
> @@ -196,16 +196,24 @@
>             return getStringValue(value);
>         }
>
> +        private static String getPackageName(Class<?> cls) {
> +            String name = cls.getName();
> +            int index = name.lastIndexOf('.');
> +            return index == -1 ? "" : name.substring(0, index);
> +        }
> +
>         public static QName getName(Class<?> cls) {
>             if (cls == null) {
>                 return null;
>             }
> -            Package pkg = cls.getPackage();
> -            if (pkg == null) {
> +
> +            String packageName = getPackageName(cls);
> +
> +            if ("".equals(packageName)) {
>                 return new QName("", cls.getSimpleName());
>             }
>             StringBuffer ns = new StringBuffer("http://");
> -            String[] names = pkg.getName().split("\\.");
> +            String[] names = packageName.split("\\.");
>             for (int i = names.length - 1; i >= 0; i--) {
>                 ns.append(names[i]);
>                 if (i != 0) {
> @@ -215,7 +223,6 @@
>             ns.append('/');
>             return new QName(ns.toString(), cls.getSimpleName());
>         }
> -
>     }
>
>     public BeanXMLStreamReaderImpl(QName name, Object bean) {
>
> Modified:
> tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/BeanXMLStreamReaderImpl.java
> URL:
> http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/BeanXMLStreamReaderImpl.java?rev=673298&r1=673297&r2=673298&view=diff
>
> ==============================================================================
> ---
> tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/BeanXMLStreamReaderImpl.java
> (original)
> +++
> tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/BeanXMLStreamReaderImpl.java
> Tue Jul  1 23:47:40 2008
> @@ -150,17 +150,25 @@
>         public String getValue() {
>             return getStringValue(value);
>         }
> +
> +        private static String getPackageName(Class<?> cls) {
> +            String name = cls.getName();
> +            int index = name.lastIndexOf('.');
> +            return index == -1 ? "" : name.substring(0, index);
> +        }
>
>         public static QName getName(Class<?> cls) {
>             if (cls == null) {
>                 return null;
>             }
> -            Package pkg = cls.getPackage();
> -            if (pkg == null) {
> +
> +            String packageName = getPackageName(cls);
> +
> +            if ("".equals(packageName)) {
>                 return new QName("", cls.getSimpleName());
>             }
>             StringBuffer ns = new StringBuffer("http://");
> -            String[] names = pkg.getName().split("\\.");
> +            String[] names = packageName.split("\\.");
>             for (int i = names.length - 1; i >= 0; i--) {
>                 ns.append(names[i]);
>                 if (i != 0) {
>
> Modified:
> tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/JavaIntrospectionHelper.java
> URL:
> http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/JavaIntrospectionHelper.java?rev=673298&r1=673297&r2=673298&view=diff
>
> ==============================================================================
> ---
> tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/JavaIntrospectionHelper.java
> (original)
> +++
> tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/JavaIntrospectionHelper.java
> Tue Jul  1 23:47:40 2008
> @@ -68,7 +68,7 @@
>
>     private static void checkInvalidAnnotations(AnnotatedElement element) {
>         for (Annotation a : element.getAnnotations()) {
> -            if
> ("org.osoa.sca.annotations".equals(a.annotationType().getPackage().getName()))
> {
> +            if
> (a.annotationType().getName().startsWith("org.osoa.sca.annotations.")) {
>                 logger.warning("Invalid annotation " + a + " is found on "
> + element);
>             }
>         }
>
> Modified:
> tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProvider.java
> URL:
> http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProvider.java?rev=673298&r1=673297&r2=673298&view=diff
>
> ==============================================================================
> ---
> tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProvider.java
> (original)
> +++
> tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProvider.java
> Tue Jul  1 23:47:40 2008
> @@ -550,7 +550,7 @@
>         String EOL = System.getProperty("line.separator");
>
>         String interfaceName = interfaceClass.getName();
> -        String packageName = interfaceClass.getPackage().getName();
> +        String packageName = getPackageName(interfaceClass);
>         String bundleName = "dummy.sca." + packageName;
>
>         String manifestStr = "Manifest-Version: 1.0" + EOL
> @@ -645,6 +645,11 @@
>             return exp.getExportingBundle();
>     }
>
> +    private static String getPackageName(Class<?> cls) {
> +        String name = cls.getName();
> +        int index = name.lastIndexOf('.');
> +        return index == -1 ? "" : name.substring(0, index);
> +    }
>
>     private Bundle installDummyBundle(Class<?> interfaceClass)
>             throws Exception {
> @@ -660,7 +665,7 @@
>         ArrayList<Class<?>> dummyClasses = new ArrayList<Class<?>>();
>
>         String interfaceName = interfaceClass.getName();
> -        String packageName = interfaceClass.getPackage().getName();
> +        String packageName = getPackageName(interfaceClass);
>         String bundleName = "dummy.sca." + interfaceName;
>
>
>
> Modified:
> tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/test/OSGiTestBundles.java
> URL:
> http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/test/OSGiTestBundles.java?rev=673298&r1=673297&r2=673298&view=diff
>
> ==============================================================================
> ---
> tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/test/OSGiTestBundles.java
> (original)
> +++
> tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/test/OSGiTestBundles.java
> Tue Jul  1 23:47:40 2008
> @@ -36,6 +36,11 @@
>  * @version $Rev$ $Date$
>  */
>  public class OSGiTestBundles {
> +    private static String getPackageName(Class<?> cls) {
> +        String name = cls.getName();
> +        int index = name.lastIndexOf('.');
> +        return index == -1 ? "" : name.substring(0, index);
> +    }
>
>     public static void createBundle(String jarName,
>             Class<?> interfaceClass, Class<?> implClass) throws Exception {
> @@ -44,7 +49,7 @@
>
>         String EOL = System.getProperty("line.separator");
>
> -        String packageName = interfaceClass.getPackage().getName();
> +        String packageName = getPackageName(interfaceClass);
>         String bundleName = interfaceClass.getName();
>
>         String manifestStr = "Manifest-Version: 1.0" + EOL
>
> Modified:
> tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/CodeGenerationHelper.java
> URL:
> http://svn.apache.org/viewvc/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/CodeGenerationHelper.java?rev=673298&r1=673297&r2=673298&view=diff
>
> ==============================================================================
> ---
> tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/CodeGenerationHelper.java
> (original)
> +++
> tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/CodeGenerationHelper.java
> Tue Jul  1 23:47:40 2008
> @@ -261,5 +261,20 @@
>         return Opcodes.ARETURN;
>
>     }
> +
> +    /**
> +     * Get the package prefix for generated JAXWS artifacts
> +     * @param cls
> +     * @return
> +     */
> +    public static String getPackagePrefix(Class<?> cls) {
> +        String name = cls.getName();
> +        int index = name.lastIndexOf('.');
> +        if (index == -1) {
> +            return "jaxws.";
> +        } else {
> +            return name.substring(0, index) + ".jaxws.";
> +        }
> +    }
>
>  }
>
> Modified:
> tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java
> URL:
> http://svn.apache.org/viewvc/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java?rev=673298&r1=673297&r2=673298&view=diff
>
> ==============================================================================
> ---
> tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java
> (original)
> +++
> tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java
> Tue Jul  1 23:47:40 2008
> @@ -293,7 +293,7 @@
>         }
>
>         if (faultBean == null) {
> -            final String faultBeanClassName = cls.getPackage().getName() +
> ".jaxws." + cls.getSimpleName() + "Bean";
> +            final String faultBeanClassName =
> CodeGenerationHelper.getPackagePrefix(cls) + cls.getSimpleName() + "Bean";
>             final QName qname = faultName;
>             faultType = AccessController.doPrivileged(new
> PrivilegedAction<DataType<XMLType>>() {
>                 public DataType<XMLType> run() {
>
> Modified:
> tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
> URL:
> http://svn.apache.org/viewvc/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java?rev=673298&r1=673297&r2=673298&view=diff
>
> ==============================================================================
> ---
> tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
> (original)
> +++
> tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
> Tue Jul  1 23:47:40 2008
> @@ -188,7 +188,7 @@
>                     requestWrapper == null ? operationName :
> getValue(requestWrapper.localName(), operationName);
>                 String wrapperBeanName = requestWrapper == null ? "" :
> requestWrapper.className();
>                 if ("".equals(wrapperBeanName)) {
> -                    wrapperBeanName = clazz.getPackage().getName() +
> ".jaxws." + capitalize(method.getName());
> +                    wrapperBeanName =
> CodeGenerationHelper.getPackagePrefix(clazz) + capitalize(method.getName());
>                 }
>
>                 DataType<XMLType> inputWrapperDT = null;
> @@ -222,7 +222,7 @@
>                 wrapperBeanName = responseWrapper == null ? "" :
> responseWrapper.className();
>                 if ("".equals(wrapperBeanName)) {
>                     wrapperBeanName =
> -                        clazz.getPackage().getName() + ".jaxws." +
> capitalize(method.getName()) + "Response";
> +                        CodeGenerationHelper.getPackagePrefix(clazz) +
> capitalize(method.getName()) + "Response";
>                 }
>
>                 DataType<XMLType> outputWrapperDT = null;
>
> Modified:
> tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGenerator.java
> URL:
> http://svn.apache.org/viewvc/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGenerator.java?rev=673298&r1=673297&r2=673298&view=diff
>
> ==============================================================================
> ---
> tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGenerator.java
> (original)
> +++
> tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGenerator.java
> Tue Jul  1 23:47:40 2008
> @@ -50,7 +50,7 @@
>         String wrapperNamespace = JavaInterfaceUtil.getNamespace(sei);
>         String wrapperName = m.getName();
>         String wrapperBeanName = capitalize(wrapperName);
> -        String wrapperClassName = sei.getPackage().getName() + ".jaxws." +
> wrapperBeanName;
> +        String wrapperClassName =
> CodeGenerationHelper.getPackagePrefix(sei) + wrapperBeanName;
>
>         return generateRequestWrapper(m, wrapperClassName,
> wrapperNamespace, wrapperName, cl);
>     }
> @@ -111,7 +111,7 @@
>
>         String wrapperName = m.getName() + "Response";
>         String wrapperBeanName = capitalize(wrapperName);
> -        String wrapperClassName = sei.getPackage().getName() + ".jaxws." +
> wrapperBeanName;
> +        String wrapperClassName =
> CodeGenerationHelper.getPackagePrefix(sei) + wrapperBeanName;
>         return generateResponseWrapper(m, wrapperClassName,
> wrapperNamespace, wrapperName, cl);
>
>     }
>
> Modified:
> tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java
> URL:
> http://svn.apache.org/viewvc/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java?rev=673298&r1=673297&r2=673298&view=diff
>
> ==============================================================================
> ---
> tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java
> (original)
> +++
> tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java
> Tue Jul  1 23:47:40 2008
> @@ -147,13 +147,19 @@
>
>     }
>
> +    private static String getPackageName(Class<?> cls) {
> +        String name = cls.getName();
> +        int index = name.lastIndexOf('.');
> +        return index == -1 ? "" : name.substring(0, index);
> +    }
> +
>     public static String getNamespace(Class<?> cls) {
> -        Package pkg = cls.getPackage();
> -        if (pkg == null) {
> +        String packageName = getPackageName(cls);
> +        if ("".equals(packageName)) {
>             return "";
>         }
>         StringBuffer ns = new StringBuffer("http://");
> -        String[] names = pkg.getName().split("\\.");
> +        String[] names = packageName.split("\\.");
>         for (int i = names.length - 1; i >= 0; i--) {
>             ns.append(names[i]);
>             if (i != 0) {
>
> Modified:
> tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/JavaXMLMapper.java
> URL:
> http://svn.apache.org/viewvc/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/JavaXMLMapper.java?rev=673298&r1=673297&r2=673298&view=diff
>
> ==============================================================================
> ---
> tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/JavaXMLMapper.java
> (original)
> +++
> tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/JavaXMLMapper.java
> Tue Jul  1 23:47:40 2008
> @@ -117,13 +117,19 @@
>         return JAVA2XML.get(javaType);
>     }
>
> +    private static String getPackageName(Class<?> cls) {
> +        String name = cls.getName();
> +        int index = name.lastIndexOf('.');
> +        return index == -1 ? "" : name.substring(0, index);
> +    }
> +
>     public static String getNamespace(Class<?> cls) {
> -        Package pkg = cls.getPackage();
> -        if (pkg == null) {
> +        String packageName = getPackageName(cls);
> +        if ("".equals(packageName)) {
>             return "";
>         }
>         StringBuffer ns = new StringBuffer("http://");
> -        String[] names = pkg.getName().split("\\.");
> +        String[] names = packageName.split("\\.");
>         for (int i = names.length - 1; i >= 0; i--) {
>             ns.append(names[i]);
>             if (i != 0) {
>
> Modified:
> tuscany/java/sca/tools/java2wsdl/src/main/java/org/apache/tuscany/tools/java2wsdl/generate/SchemaBuilder.java
> URL:
> http://svn.apache.org/viewvc/tuscany/java/sca/tools/java2wsdl/src/main/java/org/apache/tuscany/tools/java2wsdl/generate/SchemaBuilder.java?rev=673298&r1=673297&r2=673298&view=diff
>
> ==============================================================================
> ---
> tuscany/java/sca/tools/java2wsdl/src/main/java/org/apache/tuscany/tools/java2wsdl/generate/SchemaBuilder.java
> (original)
> +++
> tuscany/java/sca/tools/java2wsdl/src/main/java/org/apache/tuscany/tools/java2wsdl/generate/SchemaBuilder.java
> Tue Jul  1 23:47:40 2008
> @@ -554,14 +554,19 @@
>         this.elementFormDefault = elementFormDefault;
>     }
>
> -
> +    private static String getPackageName(Class<?> cls) {
> +        String name = cls.getName();
> +        int index = name.lastIndexOf('.');
> +        return index == -1 ? "" : name.substring(0, index);
> +    }
> +
>     /**
>      * Recognize the pattern of generated SDO type names vs. SDO factory
> names.
>      * E.g. SDO class:   test.sca.w2j.gen.Company will be associated with
>      *      SDO factory: test.sca.w2j.gen.GenFactory
>      */
>     private void detectAndRegisterFactory(Class sdoClass) {
> -        String pkgName = sdoClass.getPackage().getName();
> +        String pkgName = getPackageName(sdoClass);
>
>         // Find last segment, e.g. from 'test.sca.w2j.gen' produce 'gen'.
>         int lastDot = pkgName.lastIndexOf('.');
>
>
>
Looking at TUSCANY-2444 is this a fix we should have in R1.3 while we still
have the chance?

Simon

Re: svn commit: r673298 - in /tuscany/java/sca: modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/ modules/databinding/src/main/java/o

Posted by Raymond Feng <en...@gmail.com>.
Yes, I'll merge it into 1.3 branch.

Thanks,
Raymond


From: Simon Laws 
Sent: Wednesday, July 02, 2008 2:23 AM
To: dev@tuscany.apache.org 
Subject: Re: svn commit: r673298 - in /tuscany/java/sca: modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/ modules/databinding/src/main/java/o





On Wed, Jul 2, 2008 at 7:47 AM, <rf...@apache.org> wrote:

  Author: rfeng
  Date: Tue Jul  1 23:47:40 2008
  New Revision: 673298

  URL: http://svn.apache.org/viewvc?rev=673298&view=rev
  Log:
  Fix for TUSCANY-2444

  Modified:
     tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoaderTestCase.java
     tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/BeanXMLStreamReaderImpl.java
     tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/BeanXMLStreamReaderImpl.java
     tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/JavaIntrospectionHelper.java
     tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProvider.java
     tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/test/OSGiTestBundles.java
     tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/CodeGenerationHelper.java
     tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java
     tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
     tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGenerator.java
     tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java
     tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/JavaXMLMapper.java
     tuscany/java/sca/tools/java2wsdl/src/main/java/org/apache/tuscany/tools/java2wsdl/generate/SchemaBuilder.java

  Modified: tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoaderTestCase.java
  URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoaderTestCase.java?rev=673298&r1=673297&r2=673298&view=diff
  ==============================================================================
  --- tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoaderTestCase.java (original)
  +++ tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoaderTestCase.java Tue Jul  1 23:47:40 2008
  @@ -134,6 +134,11 @@

      }

  +    private static String getPackageName(Class<?> cls) {
  +        String name = cls.getName();
  +        int index = name.lastIndexOf('.');
  +        return index == -1 ? "" : name.substring(0, index);
  +    }

      @Test
      public void testClassLoadingFromImportedContribution() throws ClassNotFoundException, MalformedURLException {
  @@ -146,7 +151,7 @@
          exportContribList.add(contribC);

          JavaImport import_ = javaImportExportFactory.createJavaImport();
  -        import_.setPackage(this.getClass().getPackage().getName());
  +        import_.setPackage(getPackageName(getClass()));
          import_.setModelResolver(new JavaImportModelResolver(exportContribList, null));
          contribB.getImports().add(import_);
          import_ = javaImportExportFactory.createJavaImport();
  @@ -155,7 +160,7 @@
          contribB.getImports().add(import_);

          JavaExport export = javaImportExportFactory.createJavaExport();
  -        export.setPackage(this.getClass().getPackage().getName());
  +        export.setPackage(getPackageName(getClass()));
          contribA.getExports().add(export);
          export = javaImportExportFactory.createJavaExport();
          export.setPackage("calculator");
  @@ -197,7 +202,7 @@

          // Try to load non-existent class from imported package - should throw ClassNotFoundException
          try {
  -            contribB.getClassLoader().loadClass(this.getClass().getPackage().getName() + ".NonExistentClass");
  +            contribB.getClassLoader().loadClass(getPackageName(getClass()) + ".NonExistentClass");

              Assert.assertTrue("ClassNotFoundException not thrown as expected", false);

  @@ -218,7 +223,7 @@
          exportContribList.add(contribC);

          JavaImport import_ = javaImportExportFactory.createJavaImport();
  -        import_.setPackage(this.getClass().getPackage().getName());
  +        import_.setPackage(getPackageName(getClass()));
          import_.setModelResolver(new JavaImportModelResolver(exportContribList, null));
          contribB.getImports().add(import_);
          JavaImport import1_ = javaImportExportFactory.createJavaImport();
  @@ -227,7 +232,7 @@
          contribB.getImports().add(import1_);

          JavaExport export = javaImportExportFactory.createJavaExport();
  -        export.setPackage(this.getClass().getPackage().getName());
  +        export.setPackage(getPackageName(getClass()));
          contribA.getExports().add(export);
          JavaExport export1 = javaImportExportFactory.createJavaExport();
          export1.setPackage("calculator");

  Modified: tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/BeanXMLStreamReaderImpl.java
  URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/BeanXMLStreamReaderImpl.java?rev=673298&r1=673297&r2=673298&view=diff
  ==============================================================================
  --- tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/BeanXMLStreamReaderImpl.java (original)
  +++ tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/BeanXMLStreamReaderImpl.java Tue Jul  1 23:47:40 2008
  @@ -196,16 +196,24 @@
              return getStringValue(value);
          }

  +        private static String getPackageName(Class<?> cls) {
  +            String name = cls.getName();
  +            int index = name.lastIndexOf('.');
  +            return index == -1 ? "" : name.substring(0, index);
  +        }
  +
          public static QName getName(Class<?> cls) {
              if (cls == null) {
                  return null;
              }
  -            Package pkg = cls.getPackage();
  -            if (pkg == null) {
  +
  +            String packageName = getPackageName(cls);
  +
  +            if ("".equals(packageName)) {
                  return new QName("", cls.getSimpleName());
              }
              StringBuffer ns = new StringBuffer("http://");
  -            String[] names = pkg.getName().split("\\.");
  +            String[] names = packageName.split("\\.");
              for (int i = names.length - 1; i >= 0; i--) {
                  ns.append(names[i]);
                  if (i != 0) {
  @@ -215,7 +223,6 @@
              ns.append('/');
              return new QName(ns.toString(), cls.getSimpleName());
          }
  -
      }

      public BeanXMLStreamReaderImpl(QName name, Object bean) {

  Modified: tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/BeanXMLStreamReaderImpl.java
  URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/BeanXMLStreamReaderImpl.java?rev=673298&r1=673297&r2=673298&view=diff
  ==============================================================================
  --- tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/BeanXMLStreamReaderImpl.java (original)
  +++ tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/BeanXMLStreamReaderImpl.java Tue Jul  1 23:47:40 2008
  @@ -150,17 +150,25 @@
          public String getValue() {
              return getStringValue(value);
          }
  +
  +        private static String getPackageName(Class<?> cls) {
  +            String name = cls.getName();
  +            int index = name.lastIndexOf('.');
  +            return index == -1 ? "" : name.substring(0, index);
  +        }

          public static QName getName(Class<?> cls) {
              if (cls == null) {
                  return null;
              }
  -            Package pkg = cls.getPackage();
  -            if (pkg == null) {
  +
  +            String packageName = getPackageName(cls);
  +
  +            if ("".equals(packageName)) {
                  return new QName("", cls.getSimpleName());
              }
              StringBuffer ns = new StringBuffer("http://");
  -            String[] names = pkg.getName().split("\\.");
  +            String[] names = packageName.split("\\.");
              for (int i = names.length - 1; i >= 0; i--) {
                  ns.append(names[i]);
                  if (i != 0) {

  Modified: tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/JavaIntrospectionHelper.java
  URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/JavaIntrospectionHelper.java?rev=673298&r1=673297&r2=673298&view=diff
  ==============================================================================
  --- tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/JavaIntrospectionHelper.java (original)
  +++ tuscany/java/sca/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/JavaIntrospectionHelper.java Tue Jul  1 23:47:40 2008
  @@ -68,7 +68,7 @@

      private static void checkInvalidAnnotations(AnnotatedElement element) {
          for (Annotation a : element.getAnnotations()) {
  -            if ("org.osoa.sca.annotations".equals(a.annotationType().getPackage().getName())) {
  +            if (a.annotationType().getName().startsWith("org.osoa.sca.annotations.")) {
                  logger.warning("Invalid annotation " + a + " is found on " + element);
              }
          }

  Modified: tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProvider.java
  URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProvider.java?rev=673298&r1=673297&r2=673298&view=diff
  ==============================================================================
  --- tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProvider.java (original)
  +++ tuscany/java/sca/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/invocation/OSGiImplementationProvider.java Tue Jul  1 23:47:40 2008
  @@ -550,7 +550,7 @@
          String EOL = System.getProperty("line.separator");

          String interfaceName = interfaceClass.getName();
  -        String packageName = interfaceClass.getPackage().getName();
  +        String packageName = getPackageName(interfaceClass);
          String bundleName = "dummy.sca." + packageName;

          String manifestStr = "Manifest-Version: 1.0" + EOL
  @@ -645,6 +645,11 @@
              return exp.getExportingBundle();
      }

  +    private static String getPackageName(Class<?> cls) {
  +        String name = cls.getName();
  +        int index = name.lastIndexOf('.');
  +        return index == -1 ? "" : name.substring(0, index);
  +    }

      private Bundle installDummyBundle(Class<?> interfaceClass)
              throws Exception {
  @@ -660,7 +665,7 @@
          ArrayList<Class<?>> dummyClasses = new ArrayList<Class<?>>();

          String interfaceName = interfaceClass.getName();
  -        String packageName = interfaceClass.getPackage().getName();
  +        String packageName = getPackageName(interfaceClass);
          String bundleName = "dummy.sca." + interfaceName;



  Modified: tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/test/OSGiTestBundles.java
  URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/test/OSGiTestBundles.java?rev=673298&r1=673297&r2=673298&view=diff
  ==============================================================================
  --- tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/test/OSGiTestBundles.java (original)
  +++ tuscany/java/sca/modules/implementation-osgi/src/test/java/org/apache/tuscany/sca/implementation/osgi/test/OSGiTestBundles.java Tue Jul  1 23:47:40 2008
  @@ -36,6 +36,11 @@
   * @version $Rev$ $Date$
   */
   public class OSGiTestBundles {
  +    private static String getPackageName(Class<?> cls) {
  +        String name = cls.getName();
  +        int index = name.lastIndexOf('.');
  +        return index == -1 ? "" : name.substring(0, index);
  +    }

      public static void createBundle(String jarName,
              Class<?> interfaceClass, Class<?> implClass) throws Exception {
  @@ -44,7 +49,7 @@

          String EOL = System.getProperty("line.separator");

  -        String packageName = interfaceClass.getPackage().getName();
  +        String packageName = getPackageName(interfaceClass);
          String bundleName = interfaceClass.getName();

          String manifestStr = "Manifest-Version: 1.0" + EOL

  Modified: tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/CodeGenerationHelper.java
  URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/CodeGenerationHelper.java?rev=673298&r1=673297&r2=673298&view=diff
  ==============================================================================
  --- tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/CodeGenerationHelper.java (original)
  +++ tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/CodeGenerationHelper.java Tue Jul  1 23:47:40 2008
  @@ -261,5 +261,20 @@
          return Opcodes.ARETURN;

      }
  +
  +    /**
  +     * Get the package prefix for generated JAXWS artifacts
  +     * @param cls
  +     * @return
  +     */
  +    public static String getPackagePrefix(Class<?> cls) {
  +        String name = cls.getName();
  +        int index = name.lastIndexOf('.');
  +        if (index == -1) {
  +            return "jaxws.";
  +        } else {
  +            return name.substring(0, index) + ".jaxws.";
  +        }
  +    }

   }

  Modified: tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java
  URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java?rev=673298&r1=673297&r2=673298&view=diff
  ==============================================================================
  --- tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java (original)
  +++ tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSFaultExceptionMapper.java Tue Jul  1 23:47:40 2008
  @@ -293,7 +293,7 @@
          }

          if (faultBean == null) {
  -            final String faultBeanClassName = cls.getPackage().getName() + ".jaxws." + cls.getSimpleName() + "Bean";
  +            final String faultBeanClassName = CodeGenerationHelper.getPackagePrefix(cls) + cls.getSimpleName() + "Bean";
              final QName qname = faultName;
              faultType = AccessController.doPrivileged(new PrivilegedAction<DataType<XMLType>>() {
                  public DataType<XMLType> run() {

  Modified: tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
  URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java?rev=673298&r1=673297&r2=673298&view=diff
  ==============================================================================
  --- tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java (original)
  +++ tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java Tue Jul  1 23:47:40 2008
  @@ -188,7 +188,7 @@
                      requestWrapper == null ? operationName : getValue(requestWrapper.localName(), operationName);
                  String wrapperBeanName = requestWrapper == null ? "" : requestWrapper.className();
                  if ("".equals(wrapperBeanName)) {
  -                    wrapperBeanName = clazz.getPackage().getName() + ".jaxws." + capitalize(method.getName());
  +                    wrapperBeanName = CodeGenerationHelper.getPackagePrefix(clazz) + capitalize(method.getName());
                  }

                  DataType<XMLType> inputWrapperDT = null;
  @@ -222,7 +222,7 @@
                  wrapperBeanName = responseWrapper == null ? "" : responseWrapper.className();
                  if ("".equals(wrapperBeanName)) {
                      wrapperBeanName =
  -                        clazz.getPackage().getName() + ".jaxws." + capitalize(method.getName()) + "Response";
  +                        CodeGenerationHelper.getPackagePrefix(clazz) + capitalize(method.getName()) + "Response";
                  }

                  DataType<XMLType> outputWrapperDT = null;

  Modified: tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGenerator.java
  URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGenerator.java?rev=673298&r1=673297&r2=673298&view=diff
  ==============================================================================
  --- tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGenerator.java (original)
  +++ tuscany/java/sca/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/WrapperBeanGenerator.java Tue Jul  1 23:47:40 2008
  @@ -50,7 +50,7 @@
          String wrapperNamespace = JavaInterfaceUtil.getNamespace(sei);
          String wrapperName = m.getName();
          String wrapperBeanName = capitalize(wrapperName);
  -        String wrapperClassName = sei.getPackage().getName() + ".jaxws." + wrapperBeanName;
  +        String wrapperClassName = CodeGenerationHelper.getPackagePrefix(sei) + wrapperBeanName;

          return generateRequestWrapper(m, wrapperClassName, wrapperNamespace, wrapperName, cl);
      }
  @@ -111,7 +111,7 @@

          String wrapperName = m.getName() + "Response";
          String wrapperBeanName = capitalize(wrapperName);
  -        String wrapperClassName = sei.getPackage().getName() + ".jaxws." + wrapperBeanName;
  +        String wrapperClassName = CodeGenerationHelper.getPackagePrefix(sei) + wrapperBeanName;
          return generateResponseWrapper(m, wrapperClassName, wrapperNamespace, wrapperName, cl);

      }

  Modified: tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java
  URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java?rev=673298&r1=673297&r2=673298&view=diff
  ==============================================================================
  --- tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java (original)
  +++ tuscany/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtil.java Tue Jul  1 23:47:40 2008
  @@ -147,13 +147,19 @@

      }

  +    private static String getPackageName(Class<?> cls) {
  +        String name = cls.getName();
  +        int index = name.lastIndexOf('.');
  +        return index == -1 ? "" : name.substring(0, index);
  +    }
  +
      public static String getNamespace(Class<?> cls) {
  -        Package pkg = cls.getPackage();
  -        if (pkg == null) {
  +        String packageName = getPackageName(cls);
  +        if ("".equals(packageName)) {
              return "";
          }
          StringBuffer ns = new StringBuffer("http://");
  -        String[] names = pkg.getName().split("\\.");
  +        String[] names = packageName.split("\\.");
          for (int i = names.length - 1; i >= 0; i--) {
              ns.append(names[i]);
              if (i != 0) {

  Modified: tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/JavaXMLMapper.java
  URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/JavaXMLMapper.java?rev=673298&r1=673297&r2=673298&view=diff
  ==============================================================================
  --- tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/JavaXMLMapper.java (original)
  +++ tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/JavaXMLMapper.java Tue Jul  1 23:47:40 2008
  @@ -117,13 +117,19 @@
          return JAVA2XML.get(javaType);
      }

  +    private static String getPackageName(Class<?> cls) {
  +        String name = cls.getName();
  +        int index = name.lastIndexOf('.');
  +        return index == -1 ? "" : name.substring(0, index);
  +    }
  +
      public static String getNamespace(Class<?> cls) {
  -        Package pkg = cls.getPackage();
  -        if (pkg == null) {
  +        String packageName = getPackageName(cls);
  +        if ("".equals(packageName)) {
              return "";
          }
          StringBuffer ns = new StringBuffer("http://");
  -        String[] names = pkg.getName().split("\\.");
  +        String[] names = packageName.split("\\.");
          for (int i = names.length - 1; i >= 0; i--) {
              ns.append(names[i]);
              if (i != 0) {

  Modified: tuscany/java/sca/tools/java2wsdl/src/main/java/org/apache/tuscany/tools/java2wsdl/generate/SchemaBuilder.java
  URL: http://svn.apache.org/viewvc/tuscany/java/sca/tools/java2wsdl/src/main/java/org/apache/tuscany/tools/java2wsdl/generate/SchemaBuilder.java?rev=673298&r1=673297&r2=673298&view=diff
  ==============================================================================
  --- tuscany/java/sca/tools/java2wsdl/src/main/java/org/apache/tuscany/tools/java2wsdl/generate/SchemaBuilder.java (original)
  +++ tuscany/java/sca/tools/java2wsdl/src/main/java/org/apache/tuscany/tools/java2wsdl/generate/SchemaBuilder.java Tue Jul  1 23:47:40 2008
  @@ -554,14 +554,19 @@
          this.elementFormDefault = elementFormDefault;
      }

  -
  +    private static String getPackageName(Class<?> cls) {
  +        String name = cls.getName();
  +        int index = name.lastIndexOf('.');
  +        return index == -1 ? "" : name.substring(0, index);
  +    }
  +
      /**
       * Recognize the pattern of generated SDO type names vs. SDO factory names.
       * E.g. SDO class:   test.sca.w2j.gen.Company will be associated with
       *      SDO factory: test.sca.w2j.gen.GenFactory
       */
      private void detectAndRegisterFactory(Class sdoClass) {
  -        String pkgName = sdoClass.getPackage().getName();
  +        String pkgName = getPackageName(sdoClass);

          // Find last segment, e.g. from 'test.sca.w2j.gen' produce 'gen'.
          int lastDot = pkgName.lastIndexOf('.');




Looking at TUSCANY-2444 is this a fix we should have in R1.3 while we still have the chance?

Simon