[ 
https://issues.apache.org/jira/browse/ARIES-1540?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15408734#comment-15408734
 ] 

Niten Aggarwal commented on ARIES-1540:
---------------------------------------

Hi Guillaume,

Could you please let me know how to apply this fix in Karaf 4.0.5 as we are 
facing same issue and cannot change aries blueprint version just by changing 
features.xml. We are on karaf 4.0.5 and feature will be installed through nexus 
repository directly so we cannot update this feature just for blueprint.core 
version.

<feature name="aries-blueprint" description="Aries Blueprint" version="4.0.5">
        <feature prerequisite="false" dependency="false">aries-proxy</feature>
        <bundle 
start-level="20">mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.api/1.0.1</bundle>
        <bundle 
start-level="20">mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.cm/1.0.8</bundle>
        <bundle 
start-level="20">mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.core.compatibility/1.0.0</bundle>
        <bundle 
start-level="20">mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.core/1.6.1</bundle>
        <conditional>
            <condition>bundle</condition>
            <bundle 
start-level="30">mvn:org.apache.karaf.bundle/org.apache.karaf.bundle.blueprintstate/4.0.5</bundle>
        </conditional>
        <capability>
            
osgi.service;effective:=active;objectClass=org.apache.aries.blueprint.services.ParserService,
            osgi.extender; 
osgi.extender="osgi.blueprint";uses:="org.osgi.service.blueprint.container,org.osgi.service.blueprint.reflect";version:Version="1.0"
        </capability>
    </feature>

> Blueprint NamespaceHandler can't resolve XSD in offline mode
> ------------------------------------------------------------
>
>                 Key: ARIES-1540
>                 URL: https://issues.apache.org/jira/browse/ARIES-1540
>             Project: Aries
>          Issue Type: Bug
>          Components: Blueprint
>    Affects Versions: blueprint-core-1.6.1
>            Reporter: Jean-Baptiste Onofré
>            Assignee: Guillaume Nodet
>             Fix For: blueprint-core-1.6.2
>
>
> When the NamespaceHandler is offline, it fails to resolve the XSD:
> {code}
> 17:18:44,952 | WARN  | pool-27-thread-1 | l$NamespaceHandlerSetImpl$Loader  
> 544 | 16 - org.apache.aries.blueprint.core - 1.6.1 | Dynamically adding 
> namespace handler http://cxf.apache.org/configuration/beans to bundle 
> org.talend.esb.job.controller/6.2.0.SNAPSHOT
> 17:18:44,955 | WARN  | pool-27-thread-1 | l$NamespaceHandlerSetImpl$Loader  
> 544 | 16 - org.apache.aries.blueprint.core - 1.6.1 | Dynamically adding 
> namespace handler http://cxf.apache.org/configuration/parameterized-types to 
> bundle org.talend.esb.job.controller/6.2.0.SNAPSHOT
> 17:18:44,956 | ERROR | pool-27-thread-1 | container.BlueprintContainerImpl  
> 437 | 16 - org.apache.aries.blueprint.core - 1.6.1 | Unable to start 
> blueprint container for bundle org.talend.esb.job.controller/6.2.0.SNAPSHOT
> org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name 
> 'ptp:ParameterizedInt' to a(n) 'simpleType definition' component.
>     at 
> org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown 
> Source)[:]
>     at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)[:]
>     at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)[:]
>     at 
> org.apache.xerces.impl.xs.traversers.XSDHandler.reportSchemaError(Unknown 
> Source)[:]
>     at 
> org.apache.xerces.impl.xs.traversers.XSDHandler.reportSchemaError(Unknown 
> Source)[:]
>     at 
> org.apache.xerces.impl.xs.traversers.XSDAbstractTraverser.reportSchemaError(Unknown
>  Source)[:]
>     at 
> org.apache.xerces.impl.xs.traversers.XSDAttributeTraverser.traverseNamedAttr(Unknown
>  Source)[:]
>     at 
> org.apache.xerces.impl.xs.traversers.XSDAttributeTraverser.traverseLocal(Unknown
>  Source)[:]
>     at 
> org.apache.xerces.impl.xs.traversers.XSDAbstractTraverser.traverseAttrsAndAttrGrps(Unknown
>  Source)[:]
>     at 
> org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser.processComplexContent(Unknown
>  Source)[:]
>     at 
> org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser.traverseComplexTypeDecl(Unknown
>  Source)[:]
>     at 
> org.apache.xerces.impl.xs.traversers.XSDComplexTypeTraverser.traverseLocal(Unknown
>  Source)[:]
>     at 
> org.apache.xerces.impl.xs.traversers.XSDElementTraverser.traverseNamedElement(Unknown
>  Source)[:]
>     at 
> org.apache.xerces.impl.xs.traversers.XSDElementTraverser.traverseGlobal(Unknown
>  Source)[:]
>     at 
> org.apache.xerces.impl.xs.traversers.XSDHandler.traverseSchemas(Unknown 
> Source)[:]
>     at org.apache.xerces.impl.xs.traversers.XSDHandler.parseSchema(Unknown 
> Source)[:]
>     at org.apache.xerces.impl.xs.XMLSchemaLoader.loadSchema(Unknown Source)[:]
>     at org.apache.xerces.impl.xs.XMLSchemaLoader.loadGrammar(Unknown 
> Source)[:]
>     at org.apache.xerces.impl.xs.XMLSchemaLoader.loadGrammar(Unknown 
> Source)[:]
>     at org.apache.xerces.jaxp.validation.XMLSchemaFactory.newSchema(Unknown 
> Source)[:]
>     at 
> org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl$NamespaceHandlerSetImpl.createSchema(NamespaceHandlerRegistryImpl.java:637)[16:org.apache.aries.blueprint.core:1.6.1]
>     at 
> org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl$NamespaceHandlerSetImpl.doGetSchema(NamespaceHandlerRegistryImpl.java:458)[16:org.apache.aries.blueprint.core:1.6.1]
>     at 
> org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl$NamespaceHandlerSetImpl.getSchema(NamespaceHandlerRegistryImpl.java:443)[16:org.apache.aries.blueprint.core:1.6.1]
>     at 
> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:343)[16:org.apache.aries.blueprint.core:1.6.1]
>     at 
> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:276)[16:org.apache.aries.blueprint.core:1.6.1]
>     at 
> org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:300)[16:org.apache.aries.blueprint.core:1.6.1]
>     at 
> org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:269)[16:org.apache.aries.blueprint.core:1.6.1]
>     at 
> org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:265)[16:org.apache.aries.blueprint.core:1.6.1]
>     at 
> org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:255)[16:org.apache.aries.blueprint.core:1.6.1]
>     at 
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)[26:org.apache.aries.util:1.1.1]
>     at 
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)[26:org.apache.aries.util:1.1.1]
>     at 
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)[26:org.apache.aries.util:1.1.1]
>     at 
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)[26:org.apache.aries.util:1.1.1]
>     at 
> org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)[26:org.apache.aries.util:1.1.1]
>     at 
> org.eclipse.osgi.internal.framework.EquinoxEventPublisher$2.call(EquinoxEventPublisher.java:189)[org.eclipse.osgi-3.10.2.jar:]
>     at 
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1280)[org.eclipse.osgi-3.10.2.jar:]
>     at 
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1263)[org.eclipse.osgi-3.10.2.jar:]
>     at 
> org.eclipse.osgi.internal.framework.EquinoxEventPublisher.notifyEventHooksPrivileged(EquinoxEventPublisher.java:186)[org.eclipse.osgi-3.10.2.jar:]
>     at 
> org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:146)[org.eclipse.osgi-3.10.2.jar:]
>     at 
> org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:75)[org.eclipse.osgi-3.10.2.jar:]
>     at 
> org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:67)[org.eclipse.osgi-3.10.2.jar:]
>     at 
> org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:102)[org.eclipse.osgi-3.10.2.jar:]
>     at 
> org.eclipse.osgi.container.Module.publishEvent(Module.java:466)[org.eclipse.osgi-3.10.2.jar:]
>     at 
> org.eclipse.osgi.container.Module.start(Module.java:457)[org.eclipse.osgi-3.10.2.jar:]
>     at 
> org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:392)[org.eclipse.osgi-3.10.2.jar:]
>     at 
> org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:411)[org.eclipse.osgi-3.10.2.jar:]
>     at 
> org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1262)[9:org.apache.karaf.features.core:4.0.5]
>     at 
> org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:840)[9:org.apache.karaf.features.core:4.0.5]
>     at 
> org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1152)[9:org.apache.karaf.features.core:4.0.5]
>     at 
> org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:1048)[9:org.apache.karaf.features.core:4.0.5]
>     at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_60]
>     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_60]
>     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_60]
>     at java.lang.Thread.run(Thread.java:745)[:1.8.0_60]
> {code}
> The problem is located on the NamespaceHandler. The following fix does the 
> trick:
> {code}
> diff --git 
> a/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java
>  
> b/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java
> index 86ad15b..fd8ea52 100644
> --- 
> a/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java
> +++ 
> b/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java
> @@ -541,16 +541,20 @@ public class NamespaceHandlerRegistryImpl implements 
> NamespaceHandlerRegistry, S
>                          }
>                      }
>                      // Find a compatible namespace handler
> -                    LOGGER.warn("Dynamically adding namespace handler {} to 
> bundle {}/{}",
> -                            nsUri, bundle.getSymbolicName(), 
> bundle.getVersion());
>                      h = findCompatibleNamespaceHandler(nsUri);
>                      if (h != null) {
> -                        URL url = h.getSchemaLocation(rid);
> +                        URL url = h.getSchemaLocation(namespaceURI);
> +                        if (url == null) {
> +                           url = h.getSchemaLocation(rid);
> +                       }
>                          if (isCorrectUrl(url)) {
> +                            LOGGER.warn("Dynamically adding namespace 
> handler {} to bundle {}/{}",
> +                               nsUri, bundle.getSymbolicName(), 
> bundle.getVersion());
>                              return createLSInput(url, id, namespaceURI);
>                          }
>                      }
>                  }
> +                LOGGER.warn("Unable to find namespace handler for {}", 
> namespaceURI); 
>                  return null;
>              }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to