Package org.apache.avalon.framework.component

Examples of org.apache.avalon.framework.component.ComponentSelector


     */
    protected void storeKeyValue( Configuration tableConf, Column key, int rowIndex, Connection conn,
                                  Statement statement, Request request, Map results )
        throws SQLException, ConfigurationException, ComponentException {
       
        ComponentSelector autoincrSelector = null;
        AutoIncrementModule autoincr = null;
        try {
            autoincrSelector=(ComponentSelector) this.manager.lookup(DATABASE_MODULE_SELECTOR);
            if (key.mode != null && autoincrSelector != null && autoincrSelector.hasComponent(key.mode)){
                autoincr = (AutoIncrementModule) autoincrSelector.select(key.mode);
            }

            if (!autoincr.includeAsValue()) {
                String keyname = getOutputName( tableConf, key.columnConf, rowIndex );
                Object value = autoincr.getPostValue( tableConf, key.columnConf, key.modeConf, conn, statement, request );
                if (getLogger().isDebugEnabled())
                    getLogger().debug( "Retrieving autoincrement for " + keyname + "as " + value );
                setRequestAttribute( request, keyname, value );
                results.put( keyname, String.valueOf( value ) );
            }

        } finally {
            if (autoincrSelector != null) {
                if (autoincr != null)
                    autoincrSelector.release(autoincr);
                this.manager.release(autoincrSelector);
            }
         }
       
    }
View Full Code Here


        throws ConfigurationException, SQLException, ComponentException, Exception {

        int columnCount = 0;

       
        ComponentSelector autoincrSelector = null;
        AutoIncrementModule autoincr = null;
        try {
            autoincrSelector=(ComponentSelector) this.manager.lookup(DATABASE_MODULE_SELECTOR);
            if (column.mode != null && autoincrSelector != null && autoincrSelector.hasComponent(column.mode)){
                autoincr = (AutoIncrementModule) autoincrSelector.select(column.mode);
            }

            if ( autoincr.includeInQuery() ) {
                if ( autoincr.includeAsValue() ) {
                    Object value = autoincr.getPreValue( table, column.columnConf, column.modeConf, conn, request );
                    String keyname = this.getOutputName( table, column.columnConf, rowIndex );
                    if (getLogger().isDebugEnabled())
                        getLogger().debug( "Setting key " + keyname + " to " + value );
                    statement.setObject( currentIndex, value );
                    setRequestAttribute( request, keyname, value );
                    results.put( keyname, String.valueOf( value ) );
                    columnCount = 1;
                }
            } else {
                if (getLogger().isDebugEnabled())
                    getLogger().debug( "Automatically setting key" );
            }

        } finally {
            if (autoincrSelector != null) {
                if (autoincr != null)
                    autoincrSelector.release(autoincr);
                this.manager.release(autoincrSelector);
            }
         }

        return columnCount;
View Full Code Here

        }
    }
   
    private Connection getConnection() throws ProcessingException {

        ComponentSelector selector = null;
        DataSourceComponent datasource = null;

        try {
            try {
                selector = (ComponentSelector)this.manager.lookup(DataSourceComponent.ROLE + "Selector");
                   
                datasource = (DataSourceComponent)selector.select(this.datasourceName);
   
            } catch(Exception e) {
                String msg = "Cannot get datasource '" + this.datasourceName + "'";
                getLogger().error(msg);
                throw new ProcessingException(msg, e);
            }
           
            try {
                return datasource.getConnection();
            } catch(Exception e) {
                String msg = "Cannot get connection for datasource '" + this .datasourceName + "'";
                getLogger().error(msg);
                throw new ProcessingException(msg, e);
            }

        } finally {
            if (datasource != null) {
                selector.release(datasource);
            }
        }
    }
View Full Code Here

                                      + "' from '" + inputName + "': " + e.getMessage());
            }
        } else {
            // input was not thread safe
            // so acquire it again
            ComponentSelector iputSelector = null;
            InputModule iput = null;
            try {
                // obtain input module
                iputSelector=(ComponentSelector) this.manager.lookup(INPUT_MODULE_SELECTOR);
                if (inputName != null && iputSelector != null && iputSelector.hasComponent(inputName)){
                    iput = (InputModule) iputSelector.select(inputName);
                }
                if (iput != null) {
                    result = iput.getAttribute(paramName, this.inputConf, ObjectModelHelper.getRequest(objectModel));
                }
            } catch (Exception e) {
                if (getLogger().isWarnEnabled())
                    getLogger().warn("A problem occurred acquiring Parameter '" + paramName
                                     + "' from '" + inputName + "': " + e.getMessage());
            } finally {
                // release components
                if (iputSelector != null) {
                    if (iput != null)
                        iputSelector.release(iput);
                    this.manager.release(iputSelector);
                }
            }
        }
View Full Code Here

                getLogger().warn("No input module given. FAILING");
            return null;
        }

        InputModule input = null;
        ComponentSelector inputSelector = null;
        Object result = null;

        // one could test whether the input module is ThreadSafe and
        // keep a reference for that instance. Then one would need
        // to implement Disposable in order to release it at EOL
        // That would probably speed up things a lot. Especially, since
        // matchers are invoked very often.
        // Perhaps a CachingWildcardMatcher ?

        try {
            // obtain input module
            inputSelector=(ComponentSelector) this.manager.lookup(INPUT_MODULE_SELECTOR);
            if (inputName != null && inputSelector != null && inputSelector.hasComponent(inputName)){
                input = (InputModule) inputSelector.select(inputName);
            }
            if (input != null) {
                result = input.getAttribute(paramName, this.inputConf,
                                                     ObjectModelHelper.getRequest(objectModel));
            }
        } catch (Exception e) {
            if (getLogger().isWarnEnabled())
                getLogger().warn("A problem occurred acquiring Parameter '" + paramName
                                 + "' from '" + inputName + "': " + e.getMessage());
        } finally {
            // release components
            if (inputSelector != null) {
                if (input != null)
                    inputSelector.release(input);
                this.manager.release(inputSelector);
            }
        }

        if (getLogger().isDebugEnabled())
View Full Code Here

            String local_serializer = a.getValue("",SWT_SERIALIZER_ATTRIBUTE);
            if (local_serializer != null) this.serializer_name = local_serializer;
            if (this.serializer_name != null) {
              // Lookup the Serializer
              this.message = "that Serializer does not exist";
              ComponentSelector selector = (ComponentSelector)manager.lookup(Serializer.ROLE + "Selector");
              this.ch = (Serializer)selector.select(this.serializer_name);
              this.message = "Could not open the source for writing";
              this.os = this.wsource.getOutputStream();
              this.message = "could not write the file";
              ((Serializer)this.ch).setOutputStream(this.os);                  // Is there a way to avoid this casting?
              this.isSerializer = true;
View Full Code Here

                        queryBuffer.append( ", " );
                        valueBuffer.append( ", " );
                    }
                    if ( queryData.columns[i].isKey && queryData.columns[i].isAutoIncrement ) {

                        ComponentSelector autoincrSelector = null;
                        AutoIncrementModule autoincr = null;
                        try {
                            autoincrSelector=(ComponentSelector) this.manager.lookup(DATABASE_MODULE_SELECTOR);
                            if (queryData.columns[i].mode != null && autoincrSelector != null && autoincrSelector.hasComponent(queryData.columns[i].mode)){
                                autoincr = (AutoIncrementModule) autoincrSelector.select(queryData.columns[i].mode);
                            }

                            if ( autoincr.includeInQuery() ) {
                                actualColumns++;
                                queryBuffer.append( queryData.columns[i].columnConf.getAttribute( "name" ) );
                                if ( autoincr.includeAsValue() ) {
                                    valueBuffer.append( "?" );
                                } else {
                                    valueBuffer.append(
                                                       autoincr.getSubquery( table, queryData.columns[i].columnConf,
                                                                             queryData.columns[i].modeConf ) );
                                }
                            }
                           
                        } finally {
                            if (autoincrSelector != null) {
                                if (autoincr != null)
                                    autoincrSelector.release(autoincr);
                                this.manager.release(autoincrSelector);
                            }
                        }

                    } else {
View Full Code Here

                XMLConsumer nextConsumer = compiler;
                NodeList transformations = XMLUtil.selectNodeList(sunletConf,
                                                        "transformation/stylesheet");
                Transformer xslT = null;
                ArrayList transformers = new ArrayList();
                ComponentSelector selector = null;
                Request request = ObjectModelHelper.getRequest(this.objectModel);

                try {
                    if (transformations != null && transformations.getLength() > 0) {
                        selector = (ComponentSelector) this.manager.lookup(Transformer.ROLE + "Selector");
                        nextConsumer = new IncludeXMLConsumer(nextConsumer);
                        for(int k = transformations.getLength()-1; k >=0; k--) {
                            xslT = (Transformer)selector.select("xslt");
                            transformers.add(xslT);
                            xslT.setup(resolver,
                                       objectModel,
                                       XMLUtil.getValueOfNode(transformations.item(k)),
                                       new Parameters());
                            xslT.setConsumer(nextConsumer);
                            nextConsumer = xslT;
                        }
                        nextConsumer.startDocument();
                    }
                    switch (resource.getResourceType()) {
                        case ResourceConnector.RESOURCE_TYPE_CLASS: {
                             Sunlet theSunlet;
                             try {
                                 Class loaderClass = Class.forName(resource.getResourceIdentifier());
                                 theSunlet = (Sunlet)loaderClass.newInstance();
                             } catch (ClassNotFoundException cnfException) {
                                 throw new ProcessingException("getSunlet: Class not found: " + resource.getResourceIdentifier(), cnfException);
                             } catch (IllegalAccessException iaException) {
                                 throw new ProcessingException("getSunlet: Illegal Access: " + resource.getResourceIdentifier(), iaException);
                             } catch (InstantiationException iException) {
                                 throw new ProcessingException("getSunlet: Instantion exception: " + resource.getResourceIdentifier(), iException);
                             }
                             theSunlet.init(objectModel, p);
                             theSunlet.execute(nextConsumer, nextConsumer, objectModel, p);
                             break;
                        }
                        default: {
                            boolean includeFragment = true;
                            boolean handlesParameters = XMLUtil.getValueAsBooleanOf(sunletConf, "configuration/handlesParameters", true);
                            String size = p.getParameter("size", "max");
                            if (resource.getResourceType() == ResourceConnector.RESOURCE_TYPE_FILE) {
                                // files have no possibility to evaluate minimized, so if they are not maximized
                                // they will be neglected
                                includeFragment = size.equals("max");

                            } else {
                                includeFragment = size.equals("max");
                                if (includeFragment == false) {
                                    if (this.logger.isWarnEnabled() == true) {
                                        this.logger.warn("Minimized sunlet '"+sunletID+"' not handled correctly.");
                                    }
                                }
                            }
                            if ( includeFragment == true) {
                                String res;

                                if (resource.getResourceType() == ResourceConnector.RESOURCE_TYPE_URI) {
                                     if (this.response != null) {
                                         res = this.response.encodeURL(resource.getResourceIdentifier());
                                     } else {
                                         res = resource.getResourceIdentifier();
                                     }
                                } else {
                                     res = resource.getResourceIdentifier();
                                }
                                if (this.logger.isDebugEnabled() == true) {
                                    this.logger.debug("sunSpot Loading sunlet " + sunletID);
                                }
                                // add the parameters to the request attributes
                                Map info = new HashMap(3);
                                SessionContextImpl.sunLetInfo.set(info);
                                info.put(Constants.SUNLETINFO_PARAMETERS, p);
                                info.put(Constants.SUNLETINFO_PORTALURI, request.getRequestURI());
                                info.put(Constants.SUNLETINFO_STATUSPROFILE, loadedSunlet[7]);
                                this.resourceConnector.streamXML(resource.getResourceType(), null,
                                           res, (handlesParameters == true ? p : null),
                                             new IncludeXMLConsumer(nextConsumer), null);
                                if (this.logger.isDebugEnabled() == true) {
                                    this.logger.debug("sunSpot: Loaded sunlet " + sunletID);
                                }
                            }
                        }
                    }
                    if (xslT != null) {
                        xslT.endDocument();
                        xslT = null;
                    }
                } finally {
                    SessionContextImpl.sunLetInfo.set(null);
                    if (selector != null) {
                        for(int i=0; i<transformers.size(); i++) {
                            selector.release((Component)transformers.get(i));
                        }
                        this.manager.release((Component)selector);
                    }
                }
                transformers.clear();
View Full Code Here

     * @param source Source for the action.
     * @param parameters Action parameters.
     */
    public final Map act(String type, String source, Parameters parameters) {

        ComponentSelector selector = null;
        Action action = null;
        SourceResolver resolver = null;

        Map result = null;
        try {
            selector = (ComponentSelector) this.manager.lookup(Action.ROLE +
                "Selector");
            assertNotNull("Test lookup of action selector", selector);

            resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
            assertNotNull("Test lookup of source resolver", resolver);

            assertNotNull("Test if action name is not null", type);
            action = (Action) selector.select(type);
            assertNotNull("Test lookup of action", action);

            result = action.act(redirector, new SourceResolverAdapter(resolver, this.manager),
                                objectmodel, source, parameters);

        } catch (ComponentException ce) {
            getLogger().error("Could not retrieve generator", ce);
            fail("Could not retrieve generator: " + ce.toString());
        } catch (Exception e) {
            getLogger().error("Could not execute test", e);
            fail("Could not execute test: " + e);
        } finally {
            if (action != null) {
                selector.release(action);
            }
            this.manager.release(selector);
            this.manager.release(resolver);
        }
        return result;
View Full Code Here

     * @param source Source for the generator.
     * @param parameters Generator parameters.
     */
    public final Document generate(String type, String source, Parameters parameters) {

        ComponentSelector selector = null;
        Generator generator = null;
        SourceResolver resolver = null;
        SAXParser parser = null;

        Document document = null;
        try {
            selector = (ComponentSelector) this.manager.lookup(Generator.ROLE +
                "Selector");
            assertNotNull("Test lookup of generator selector", selector);

            resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
            assertNotNull("Test lookup of source resolver", resolver);

            parser = (SAXParser) this.manager.lookup(SAXParser.ROLE);
            assertNotNull("Test lookup of parser", parser);

            assertNotNull("Test if generator name is not null", type);

            generator = (Generator) selector.select(type);
            assertNotNull("Test lookup of generator", generator);

            generator.setup(new SourceResolverAdapter(resolver, this.manager),
                            objectmodel, source, parameters);

            DOMBuilder builder = new DOMBuilder();
            generator.setConsumer(new WhitespaceFilter(builder));

            generator.generate();

            document = builder.getDocument();

            assertNotNull("Test for generator document", document);

        } catch (ComponentException ce) {
            getLogger().error("Could not retrieve generator", ce);
            fail("Could not retrieve generator: " + ce.toString());
        } catch (Exception e) {
            getLogger().error("Could not execute test", e);
            fail("Could not execute test: " + e);
        } finally {
            if (generator != null) {
                selector.release(generator);
            }
            this.manager.release(selector);
            this.manager.release(resolver);
            this.manager.release((Component) parser);
        }
View Full Code Here

TOP

Related Classes of org.apache.avalon.framework.component.ComponentSelector

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.