Package org.apache.aries.blueprint

Examples of org.apache.aries.blueprint.NamespaceHandler


     *           or if the resolved prefix results as the blueprint namespace.
     */
    private ComponentMetadata handleCustomScope(Node scope, Element bean, ComponentMetadata metadata){
        URI scopeNS = getNamespaceForAttributeValue(scope);
        if(scopeNS!=null && !BLUEPRINT_NAMESPACE.equals(scopeNS.toString())){
            NamespaceHandler nsHandler = getNamespaceHandler(scopeNS);
            ParserContextImpl context = new ParserContextImpl(this, registry, metadata, scope);
            metadata = nsHandler.decorate(scope, metadata, context);
        }else if(scopeNS!=null){
            throw new ComponentDefinitionException("Custom scopes cannot use the blueprint namespace "+scope);
        }
        return metadata;
    }
View Full Code Here


        }
        return enclosingComponent;
    }
   
    private ComponentMetadata decorateCustomNode(Node node, ComponentMetadata enclosingComponent) {
        NamespaceHandler handler = getNamespaceHandler(node);
        ParserContextImpl context = new ParserContextImpl(this, registry, enclosingComponent, node);
        return handler.decorate(node, enclosingComponent, context);
    }
View Full Code Here

        ParserContextImpl context = new ParserContextImpl(this, registry, enclosingComponent, node);
        return handler.decorate(node, enclosingComponent, context);
    }

    private Metadata parseCustomElement(Element element, ComponentMetadata enclosingComponent) {
        NamespaceHandler handler = getNamespaceHandler(element);
        ParserContextImpl context = new ParserContextImpl(this, registry, enclosingComponent, element);
        return handler.parse(element, context);
    }
View Full Code Here

    private NamespaceHandler getNamespaceHandler(URI uri) {
        if (handlers == null) {
            throw new ComponentDefinitionException("Unsupported node (namespace handler registry is not set): " + uri);
        }
        NamespaceHandler handler = this.handlers.getNamespaceHandler(uri);
        if (handler == null) {
            throw new ComponentDefinitionException("Unsupported node namespace: " + uri);
        }
        return handler;
    }
View Full Code Here

        tracker.open();
    }

    public Object addingService(ServiceReference reference) {
        LOGGER.debug("Adding NamespaceHandler "+reference.toString());
        NamespaceHandler handler = (NamespaceHandler) bundleContext.getService(reference);
        if(handler!=null){
            try {
                Map<String, Object> props = new HashMap<String, Object>();
                for (String name : reference.getPropertyKeys()) {
                    props.put(name, reference.getProperty(name));
View Full Code Here

        addingService(reference);
    }

    public void removedService(ServiceReference reference, Object service) {
        try {
            NamespaceHandler handler = (NamespaceHandler) service;
            Map<String, Object> props = new HashMap<String, Object>();
            for (String name : reference.getPropertyKeys()) {
                props.put(name, reference.getProperty(name));
            }
            unregisterHandler(handler, props);
View Full Code Here

            candidates.put(ns, h);
        }
        // Exclude directly incompatible handlers
        for (URI ns : namespaces) {
            for (Iterator<NamespaceHandler> it = candidates.get(ns).iterator(); it.hasNext();) {
                NamespaceHandler h = it.next();
                Set<Class> classes = h.getManagedClasses();
                boolean compat = true;
                if (classes != null) {
                    Set<Class> allClasses = new HashSet<Class>();
                    for (Class cl : classes) {
                        for (Class c = cl; c != null; c = c.getSuperclass()) {
                            allClasses.add(c);
                            for (Class i : c.getInterfaces()) {
                                allClasses.add(i);
                            }
                        }
                    }
                    for (Class cl : allClasses) {
                        Class clb;
                        try {
                            clb = bundle.loadClass(cl.getName());
                        } catch (Throwable t) {
                            clb = null;
                        }
                        if (clb != cl) {
                            compat = false;
                            break;
                        }
                    }
                }
                if (!compat) {
                    it.remove();
                }
            }
        }
        // TODO: do we need to check if there are incompatibilities between namespaces?
        // Pick the first ones
        for (URI ns : namespaces) {
            Set<NamespaceHandler> h = candidates.get(ns);
            if (!h.isEmpty()) {
                handlers.put(ns, h.iterator().next());
            }
        }
        return handlers;
    }
View Full Code Here

     *           or if the resolved prefix results as the blueprint namespace.
     */
    private ComponentMetadata handleCustomScope(Node scope, Element bean, ComponentMetadata metadata){
        URI scopeNS = getNamespaceForAttributeValue(scope);
        if(scopeNS!=null && !BLUEPRINT_NAMESPACE.equals(scopeNS.toString())){
            NamespaceHandler nsHandler = getNamespaceHandler(scopeNS);
            ParserContextImpl context = new ParserContextImpl(this, registry, metadata, scope);
            metadata = nsHandler.decorate(scope, metadata, context);
        }else if(scopeNS!=null){
            throw new ComponentDefinitionException("Custom scopes cannot use the blueprint namespace "+scope);
        }
        return metadata;
    }
View Full Code Here

        }
        return enclosingComponent;
    }
   
    private ComponentMetadata decorateCustomNode(Node node, ComponentMetadata enclosingComponent) {
        NamespaceHandler handler = getNamespaceHandler(node);
        ParserContextImpl context = new ParserContextImpl(this, registry, enclosingComponent, node);
        return handler.decorate(node, enclosingComponent, context);
    }
View Full Code Here

        ParserContextImpl context = new ParserContextImpl(this, registry, enclosingComponent, node);
        return handler.decorate(node, enclosingComponent, context);
    }

    private Metadata parseCustomElement(Element element, ComponentMetadata enclosingComponent) {
        NamespaceHandler handler = getNamespaceHandler(element);
        ParserContextImpl context = new ParserContextImpl(this, registry, enclosingComponent, element);
        return handler.parse(element, context);
    }
View Full Code Here

TOP

Related Classes of org.apache.aries.blueprint.NamespaceHandler

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.