[ 
https://issues.apache.org/jira/browse/TUSCANY-2724?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrey Utkin updated TUSCANY-2724:
----------------------------------

    Description: 
Currently it is not possible to define multiple XSD files in same namespace in 
same helper context even if extensible namespaces set to true. The last XSD 
"overwrites" previous.

Here is patch for 
/tuscany-sdo-impl/src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java
 method define(). 
It use copy of the original "targetNamespaceToEPackageMap" to track newly 
defined types instead of "touching" ecoreBuilder. 


Index: src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java
===================================================================
--- src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java      
+++ src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java      
(working copy)
@@ -239,7 +239,7 @@
                 String targetNamespace = schema.getTargetNamespace();

                 EPackage ePackage = 
extendedMetaData.getPackage(targetNamespace);

                 if (extensibleNamespaces || ePackage == null || 
TypeHelperImpl.getBuiltInModels().contains(ePackage)) {

-                    Map targetNamespaceToEPackageMap = 
ecoreBuilder.getTargetNamespaceToEPackageMap();

+                    Map targetNamespaceToEPackageMap = new 
HashMap(ecoreBuilder.getTargetNamespaceToEPackageMap());

                     targetNamespaceToEPackageMap.remove(targetNamespace);

 

                     Collection originalEPackages = new 
HashSet(targetNamespaceToEPackageMap.values());

==========

        Summary: Allow to define multiple XSD files with same namespace in same 
XSDHelper.INSTANCE  (was: Allow to define multiple XSD files with same 
namespace in same XSDHelper.INSTANCE-3)

> Allow to define multiple XSD files with same namespace in same 
> XSDHelper.INSTANCE
> ---------------------------------------------------------------------------------
>
>                 Key: TUSCANY-2724
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-2724
>             Project: Tuscany
>          Issue Type: Improvement
>          Components: Java SDO Implementation
>            Reporter: Andrey Utkin
>
> Currently it is not possible to define multiple XSD files in same namespace 
> in same helper context even if extensible namespaces set to true. The last 
> XSD "overwrites" previous.
> Here is patch for 
> /tuscany-sdo-impl/src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java
>  method define(). 
> It use copy of the original "targetNamespaceToEPackageMap" to track newly 
> defined types instead of "touching" ecoreBuilder. 
> Index: src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java
> ===================================================================
> --- src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java    
> +++ src/main/java/org/apache/tuscany/sdo/helper/XSDHelperImpl.java    
> (working copy)
> @@ -239,7 +239,7 @@
>                  String targetNamespace = schema.getTargetNamespace();
>                  EPackage ePackage = 
> extendedMetaData.getPackage(targetNamespace);
>                  if (extensibleNamespaces || ePackage == null || 
> TypeHelperImpl.getBuiltInModels().contains(ePackage)) {
> -                    Map targetNamespaceToEPackageMap = 
> ecoreBuilder.getTargetNamespaceToEPackageMap();
> +                    Map targetNamespaceToEPackageMap = new 
> HashMap(ecoreBuilder.getTargetNamespaceToEPackageMap());
>                      targetNamespaceToEPackageMap.remove(targetNamespace);
>  
>                      Collection originalEPackages = new 
> HashSet(targetNamespaceToEPackageMap.values());
> ==========

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to