Package org.apache.avalon.framework.service

Examples of org.apache.avalon.framework.service.ServiceSelector


    protected void checkPublication(Session session, DocumentFactory factory, Publication pub)
            throws ServiceException, SiteException, DocumentBuildException, PublicationException,
            RepositoryException {
        DocumentManager docManager = null;
        ServiceSelector selector = null;
        SiteManager siteManager = null;
        ServiceSelector resourceTypeSelector = null;

        try {
            selector = (ServiceSelector) getManager().lookup(SiteManager.ROLE + "Selector");
            siteManager = (SiteManager) selector.select(pub.getSiteManagerHint());
            SiteStructure structure = siteManager.getSiteStructure(factory, pub,
                    Publication.AUTHORING_AREA);

            docManager = (DocumentManager) getManager().lookup(DocumentManager.ROLE);

            resourceTypeSelector = (ServiceSelector) getManager().lookup(
                    ResourceType.ROLE + "Selector");
            ResourceType type = (ResourceType) resourceTypeSelector.select("entry");
            String contentSourceUri = "context://sitemap.xmap";

            Document doc = docManager.add(factory, type, contentSourceUri, pub,
                    Publication.AUTHORING_AREA, "en", "xml");
View Full Code Here


        DocumentWorkflowable workflowable = (DocumentWorkflowable) instance;
        ServiceManager manager = workflowable.getServiceManager();
        String url = workflowable.getDocument().getCanonicalWebappURL();

        ServiceSelector selector = null;
        AccessControllerResolver acResolver = null;
        AccessController accessController = null;
        try {

            selector = (ServiceSelector) manager.lookup(AccessControllerResolver.ROLE + "Selector");
            acResolver = (AccessControllerResolver) selector
                    .select(AccessControllerResolver.DEFAULT_RESOLVER);
            accessController = acResolver.resolveAccessController(url);

            PolicyManager policyManager = accessController.getPolicyManager();
            Identity identity = workflowable.getSession().getIdentity();
            AccreditableManager accreditableMgr = accessController
            .getAccreditableManager();
            Policy policy = policyManager.getPolicy(accreditableMgr, url);
            RoleManager roleManager = accreditableMgr.getRoleManager();
           
            boolean complied = false;
           
            for (Iterator i = this.roleIds.iterator(); i.hasNext(); ) {
                String roleId = (String) i.next();
                Role role = roleManager.getRole(roleId);
                if (policy.check(identity, role) == Policy.RESULT_GRANTED) {
                    complied = true;
                }
            }

            return complied;

        } catch (final Exception e) {
            throw new RuntimeException(e);
        } finally {
            if (selector != null) {
                if (acResolver != null) {
                    if (accessController != null) {
                        acResolver.release(accessController);
                    }
                    selector.release(acResolver);
                }
                manager.release(selector);
            }
        }
View Full Code Here

        getLogger().info("Migrating document [" + doc + "]");

        DocumentManager docManager = null;
        SiteManager siteManager = null;
        ServiceSelector selector = null;
        SourceResolver resolver = null;
        try {
            docManager = (DocumentManager) getManager().lookup(DocumentManager.ROLE);
            selector = (ServiceSelector) getManager().lookup(SiteManager.ROLE + "Selector");
            siteManager = (SiteManager) selector.select(doc.getPublication().getSiteManagerHint());
            resolver = (SourceResolver) getManager().lookup(SourceResolver.ROLE);

            String path = doc.getPath();

            Node node = siteManager.getSiteStructure(doc.getFactory(),
                    doc.getPublication(),
                    doc.getArea()).getRepositoryNode();

            if (!node.isLocked()) {
                node.lock();
            }

            Document newDoc;
/*
            String docId = doc.getUUID();
            if (this.migratedDocs.containsKey(docId)) {
                Document migratedDoc = (Document) this.migratedDocs.get(docId);
                newDoc = docManager.addVersion(migratedDoc, doc.getArea(), doc.getLanguage(), false);
                SourceUtil.copy(resolver, doc.getSourceURI(), newDoc.getSourceURI());
            } else {
                newDoc = docManager.add(doc.getFactory(),
                        doc.getResourceType(),
                        doc.getSourceURI(),
                        doc.getPublication(),
                        doc.getArea(),
                        doc.getLanguage(),
                        doc.getExtension());

                migratedDocs.put(docId, newDoc);
                siteManager.set(path, newDoc);
            }

            String[] uris = doc.getMetaDataNamespaceUris();
            for (int i = 0; i < uris.length; i++) {
                newDoc.getMetaData(uris[i]).replaceBy(doc.getMetaData(uris[i]));
            }
*/
            doc.delete();

        } finally {
            if (docManager != null) {
                getManager().release(docManager);
            }
            if (selector != null) {
                if (siteManager != null) {
                    selector.release(siteManager);
                }
                getManager().release(selector);
            }
            if (resolver != null) {
                getManager().release(resolver);
View Full Code Here

            DocumentFactory map = document.getFactory();
            SiteStructure liveSite = publication.getArea(Publication.LIVE_AREA).getSite();

            List missingDocuments = new ArrayList();

            ServiceSelector selector = null;
            SiteManager siteManager = null;
            try {
                selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE + "Selector");
                siteManager = (SiteManager) selector.select(publication.getSiteManagerHint());

                if (!liveSite.contains(document.getPath())) {
                    DocumentLocator liveLoc = document.getLocator().getAreaVersion(
                            Publication.LIVE_AREA);
                    DocumentLocator[] requiredNodes = siteManager
                            .getRequiredResources(map, liveLoc);
                    for (int i = 0; i < requiredNodes.length; i++) {
                        String path = requiredNodes[i].getPath();
                        if (!liveSite.contains(path)) {
                            Link link = getExistingLink(path, document);
                            if (link != null) {
                                missingDocuments.add(link.getDocument());
                            }
                        }

                    }
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            } finally {
                if (selector != null) {
                    if (siteManager != null) {
                        selector.release(siteManager);
                    }
                    this.manager.release(selector);
                }
            }
View Full Code Here

    protected Document[] getDocuments() throws PublicationException, SiteException {
        Publication publication = getPublication();
        DocumentFactory identityMap = getDocumentFactory();
        Document[] documents;

        ServiceSelector selector = null;
        SiteManager siteManager = null;
        try {
            selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE + "Selector");
            siteManager = (SiteManager) selector.select(publication.getSiteManagerHint());
            documents = siteManager.getDocuments(identityMap, publication,
                    Publication.AUTHORING_AREA);
        } catch (ServiceException e) {
            throw new RuntimeException(e);
        } finally {
            if (selector != null) {
                if (siteManager != null) {
                    selector.release(siteManager);
                }
                this.manager.release(selector);
            }
        }
View Full Code Here

     */
    protected UsecaseMessage[] getErrorMessages(Tab tab) {

        UsecaseMessage[] messages;

        ServiceSelector selector = null;
        AccessControllerResolver acResolver = null;
        AccessController accessController = null;
        UsecaseResolver usecaseResolver = null;
        UsecaseAuthorizer authorizer = null;
        try {

            selector = (ServiceSelector) this.manager.lookup(AccessControllerResolver.ROLE
                    + "Selector");
            acResolver = (AccessControllerResolver) selector.select(AccessControllerResolver.DEFAULT_RESOLVER);
            accessController = acResolver.resolveAccessController(this.webappUrl);

            Authorizer[] authorizers = accessController.getAuthorizers();
            for (int i = 0; i < authorizers.length; i++) {
                if (authorizers[i] instanceof UsecaseAuthorizer) {
                    authorizer = (UsecaseAuthorizer) authorizers[i];
                }
            }

            usecaseResolver = (UsecaseResolver) this.manager.lookup(UsecaseResolver.ROLE);

            // filter item if usecase not allowed
            if (tab.getUsecase() != null) {
                if (getLogger().isDebugEnabled()) {
                    getLogger().debug("Found usecase [" + tab.getUsecase() + "]");
                }

                DocumentFactory factory;
                ContextUtility util = null;
                try {
                    util = (ContextUtility) this.manager.lookup(ContextUtility.ROLE);
                    Request request = util.getRequest();
                    factory = DocumentUtil.getDocumentFactory(this.manager, request);
                } finally {
                    if (util != null) {
                        this.manager.release(util);
                    }
                }

                Publication pub = PublicationUtil.getPublicationFromUrl(this.manager,
                        factory,
                        this.webappUrl);
                if (!authorizer.authorizeUsecase(tab.getUsecase(), this.roles, pub)) {
                    if (getLogger().isDebugEnabled()) {
                        getLogger().debug("Usecase not authorized");
                    }
                    messages = new UsecaseMessage[1];
                    messages[0] = new UsecaseMessage("Access denied");
                }
            }

            if (usecaseResolver.isRegistered(this.webappUrl, tab.getUsecase())) {
                Usecase usecase = null;
                try {
                    usecase = usecaseResolver.resolve(this.webappUrl, tab.getUsecase());
                    usecase.setSourceURL(this.webappUrl);
                    usecase.setName(tab.getUsecase());
                    String[] keys = tab.getParameterNames();
                    for (int i = 0; i < keys.length; i++) {
                        usecase.setParameter(keys[i], tab.getParameter(keys[i]));
                    }
                    usecase.checkPreconditions();
                    if (usecase.hasErrors()) {
                        if (getLogger().isDebugEnabled()) {
                            getLogger().debug("Usecase preconditions not complied");
                        }

                        List msgs = usecase.getErrorMessages();
                        messages = (UsecaseMessage[]) msgs.toArray(new UsecaseMessage[msgs.size()]);
                    } else {
                        messages = new UsecaseMessage[0];
                    }
                } finally {
                    if (usecase != null) {
                        usecaseResolver.release(usecase);
                    }
                }
            } else {
                messages = new UsecaseMessage[1];
                messages[0] = new UsecaseMessage("Usecase [" + tab.getUsecase()
                        + "] is not registered!", null);
            }
        } catch (final Exception e) {
            throw new RuntimeException(e);
        } finally {
            if (usecaseResolver != null) {
                this.manager.release(usecaseResolver);
            }
            if (selector != null) {
                if (acResolver != null) {
                    if (accessController != null) {
                        acResolver.release(accessController);
                    }
                    selector.release(acResolver);
                }
                this.manager.release(selector);
            }
        }

View Full Code Here

    protected void doExecute() throws Exception {
        super.doExecute();
        String pubId = getParameterAsString(PUBLICATION);
        DocumentFactory factory = getDocumentFactory();
        ServiceSelector selector = null;
        SiteManager siteManager = null;
        SourceResolver resolver = null;
        try {
            resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
            Publication pub = factory.getPublication(pubId);
            selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE + "Selector");
            siteManager = (SiteManager) selector.select(pub.getSiteManagerHint());

            List nodes = new ArrayList();
            Map uri2meta = new HashMap();

            String[] areas = { Publication.AUTHORING_AREA, Publication.LIVE_AREA,
                    Publication.TRASH_AREA, Publication.ARCHIVE_AREA };
            for (int i = 0; i < areas.length; i++) {
                Document[] docs = siteManager.getDocuments(factory, pub, areas[i]);
                for (int j = 0; j < docs.length; j++) {
                    nodes.add(docs[j].getRepositoryNode());
                    /*
                    final String lenyaUri = docs[j].getSourceURI();
                    final String sourcePath = lenyaUri.substring("lenya://".length());
                    final String contextUri = "context://" + sourcePath + ".meta";
                     * MetaDataManager meta = new MetaDataManager(contextUri, this.manager,
                     * getLogger()); uri2meta.put(docs[j].getSourceURI(), meta);
                     */
                }
                nodes.add(siteManager.getSiteStructure(factory, pub, areas[i]).getRepositoryNode());
            }

            for (Iterator i = nodes.iterator(); i.hasNext();) {
                Node node = (Node) i.next();
                final String lenyaUri = node.getSourceURI();
                final String sourcePath = lenyaUri.substring("lenya://".length());
                final String contextUri = "context://" + sourcePath;
                final String jcrUri = "jcr://" + sourcePath;
                if (SourceUtil.exists(contextUri, this.manager)) {
                    SourceUtil.copy(resolver, contextUri, jcrUri);
                    /*
                     * MetaDataManager sourceMgr = (MetaDataManager) uri2meta.get(lenyaUri); if
                     * (sourceMgr != null) { MetaDataManager jcrMgr = new JCRMetaDataManager(jcrUri,
                     * this.manager, getLogger()); jcrMgr.replaceMetaData(sourceMgr); }
                     */
                } else {
                    addInfoMessage("The source [" + contextUri + "] does not exist.");
                }
            }

        } finally {
            if (selector != null) {
                if (siteManager != null) {
                    selector.release(siteManager);
                }
                this.manager.release(selector);
            }
            if (resolver != null) {
                this.manager.release(resolver);
View Full Code Here

                    STRUCT_ATTR_NAME, "CDATA", String.valueOf(structure));
        }
        this.contentHandler.startElement(URI, BLOG_NODE_NAME, PREFIX + ':'
                + BLOG_NODE_NAME, attributes);

        ServiceSelector selector = null;
        SiteManager siteManager = null;
        try {           
            Session session = RepositoryUtil.getSession(this.manager, request);
            DocumentFactory map = DocumentUtil.createDocumentFactory(this.manager, session);
            Publication publication = PublicationUtil.getPublication(
                    this.manager, request);
           
           
            selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE
                    + "Selector");
            siteManager = (SiteManager) selector.select(publication
                    .getSiteManagerHint());

            Document[] docs = siteManager.getDocuments(map, publication, area);
            ArrayList filteredDocs = new ArrayList(1);         
            for (int i=0; i<docs.length; i++) {
                String path = docs[i].getPath();
                if (path.startsWith("/entries/")) {
                    int eYear = 0;
                    int eMonth = 0;
                    int eDay = 0;
                    boolean add = false;
                    String[] patterns = path.split("/");
                    eYear = Integer.parseInt(patterns[2]);
                    eMonth = Integer.parseInt(patterns[3]);
                    eDay = Integer.parseInt(patterns[4]);
                    /* determine matching documents */
                    if (year > 0) {
                        if (year == eYear) {
                            if (month > 0) {
                                if (month == eMonth) {
                                    if (day > 0) {
                                        if (day == eDay) {
                                            /* add */
                                            add = true;
                                        }
                                    } else {
                                        /* add */
                                        add = true;
                                    }
                                }
                            } else {
                                if (day > 0) {
                                    if (day == eDay) {
                                        /* add */
                                        add = true;
                                    }
                                } else {
                                    /* add */
                                    add = true;
                                }
                            }
                        }
                    } else if (month > 0l) {
                        if (month == eMonth) {
                            if (day > 0) {
                                if (day == eDay) {
                                    /* add */
                                    add = true;
                                }
                            } else {
                                /* add */
                                add = true;
                            }
                        }
                    } else {
                        if (day > 0) {
                            if (day == eDay) {
                                /* add */
                                add = true;
                            }
                        } else {
                            /* add */
                            add = true;
                        }
                    }
                    if (add) {                      
                        filteredDocs.add((Object)docs[i]);                       
                    }
                }                               
            }

            /* sort entries by year -> month -> day -> lastModified */
            Object[] sortedList = filteredDocs.toArray();           
            Arrays.sort(sortedList, new Comparator() {
                public int compare(Object o1, Object o2) {
                    Document d1,d2;
                    int year1,month1,day1;
                    int year2,month2,day2;
                   
                    d1 = (Document)o1;
                    d2 = (Document)o2;
                   
                    String[] patterns;
                    try {
                        patterns = d1.getPath().split("/");
                    } catch (DocumentException e) {
                        throw new RuntimeException(e);
                    }                   
                    year1 = Integer.parseInt(patterns[2]);
                    month1 = Integer.parseInt(patterns[3]);
                    day1 = Integer.parseInt(patterns[4]);
                   
                    try {
                        patterns = d2.getPath().split("/");
                    } catch (DocumentException e) {
                        throw new RuntimeException(e);
                    }                   
                    year2 = Integer.parseInt(patterns[2]);
                    month2 = Integer.parseInt(patterns[3]);
                    day2 = Integer.parseInt(patterns[4]);                   
                                       
                    if (year1 > year2) {
                        return 1;
                    } else if (year1 == year2) {
                        if (month1 > month2) {
                            return 1;
                        } else if (month1 == month2) {
                            if (day1 > day2) {
                                return 1;
                            } else if (day1 == day2) {
                                /* newest first */
                                try {
                                    Date date1 = new Date(d1.getLastModified());
                                    Date date2 = new Date(d2.getLastModified());
                                    return date2.compareTo(date1);
                                } catch (DocumentException e) {
                                    throw new RuntimeException(e);
                                }
                            } else {
                                return -1;
                            }
                        } else {
                            return -1;
                        }
                    } else {
                        return -1;
                    }
                }
            });           
           
            /* group entries by year -> month -> day */
            /* works because the list is sorted =) */
            int currentYear = 0;
            int currentMonth = 0;
            int currentDay = 0;
            boolean yearOpen = false;
            boolean monthOpen = false;
            boolean dayOpen = false;           
            for (int i=0; i<sortedList.length; i++) {
                Document doc = ((Document)sortedList[i]);
                String[] patterns = doc.getPath().split("/");                  
                int year =  Integer.parseInt(patterns[2]);
                int month = Integer.parseInt(patterns[3]);
                int day = Integer.parseInt(patterns[4]);
                if (year != currentYear) {
                    if (dayOpen) {
                        dayOpen = false;
                        this.contentHandler.endElement(URI, DAY_NODE_NAME, PREFIX + ':'
                                + DAY_NODE_NAME);
                    }
                    if (monthOpen) {
                        monthOpen = false;
                        this.contentHandler.endElement(URI, MONTH_NODE_NAME, PREFIX + ':'
                                + MONTH_NODE_NAME);
                    }
                    if (yearOpen) {
                        this.contentHandler.endElement(URI, YEAR_NODE_NAME, PREFIX + ':'
                                + YEAR_NODE_NAME);
                    }
                    this.attributes.clear();
                    attributes.addAttribute("", ID_ATTR_NAME,
                            ID_ATTR_NAME, "CDATA", String.valueOf(year));
                    this.contentHandler.startElement(URI, YEAR_NODE_NAME, PREFIX + ':'
                            + YEAR_NODE_NAME, attributes);
                    yearOpen = true;
                    currentYear = year;
                    currentMonth = 0;
                    currentDay = 0;                   
                }
                if (month != currentMonth) {
                    if (dayOpen) {
                        dayOpen = false;
                        this.contentHandler.endElement(URI, DAY_NODE_NAME, PREFIX + ':'
                                + DAY_NODE_NAME);
                    }
                    if (monthOpen) {
                        this.contentHandler.endElement(URI, MONTH_NODE_NAME, PREFIX + ':'
                                + MONTH_NODE_NAME);
                    }
                    this.attributes.clear();
                    attributes.addAttribute("", ID_ATTR_NAME,
                            ID_ATTR_NAME, "CDATA", String.valueOf(month));
                    this.contentHandler.startElement(URI, MONTH_NODE_NAME, PREFIX + ':'
                            + MONTH_NODE_NAME, attributes);
                    monthOpen = true;
                    currentMonth = month;
                    currentDay = 0;
                }
                if (day != currentDay) {
                    if (dayOpen) {
                        this.contentHandler.endElement(URI, DAY_NODE_NAME, PREFIX + ':'
                                + DAY_NODE_NAME);
                    }
                    this.attributes.clear();
                    attributes.addAttribute("", ID_ATTR_NAME,
                            ID_ATTR_NAME, "CDATA", String.valueOf(day));
                    this.contentHandler.startElement(URI, DAY_NODE_NAME, PREFIX + ':'
                            + DAY_NODE_NAME, attributes);
                    dayOpen = true;
                    currentDay = day;
                }               
                if (structure == null) {
                    attributes.clear();
                    attributes.addAttribute("", PATH_ATTR_NAME,
                            PATH_ATTR_NAME, "CDATA", doc.getPath());
                    attributes.addAttribute("", URL_ATTR_NAME,
                            URL_ATTR_NAME, "CDATA", doc.getCanonicalWebappURL());
                    org.w3c.dom.Document docDOM = DocumentHelper.readDocument(doc.getInputStream());
                    Element parent = docDOM.getDocumentElement();
                    Element element = (Element) XPathAPI.selectSingleNode(parent,
                        "/*[local-name() = 'entry']/*[local-name() = 'title']");
                    attributes.addAttribute("", TITLE_ATTR_NAME,
                            TITLE_ATTR_NAME, "CDATA",DocumentHelper.getSimpleElementText(element));
                    attributes.addAttribute("", LASTMOD_ATTR_NAME,
                            LASTMOD_ATTR_NAME, "CDATA", String.valueOf(doc.getLastModified()));
                    DocumentHelper.getSimpleElementText(element);
                    this.contentHandler.startElement(URI, ENTRY_NODE_NAME,
                            PREFIX + ':' + ENTRY_NODE_NAME, attributes);
                    this.contentHandler.endElement(URI, ENTRY_NODE_NAME, PREFIX
                            + ':' + ENTRY_NODE_NAME);
                }
            }
           
            if (dayOpen) {
                this.contentHandler.endElement(URI, DAY_NODE_NAME, PREFIX + ':'
                        + DAY_NODE_NAME);
            }
            if (monthOpen) {
                this.contentHandler.endElement(URI, MONTH_NODE_NAME, PREFIX + ':'
                        + MONTH_NODE_NAME);
            }
            if (yearOpen) {
                this.contentHandler.endElement(URI, YEAR_NODE_NAME, PREFIX + ':'
                        + YEAR_NODE_NAME);
            }
           
        } catch (Exception e) {
            throw new RuntimeException(e);
        } finally {
            if (selector != null) {
                if (siteManager != null) {
                    selector.release(siteManager);
                }
                this.manager.release(selector);
            }
        }

View Full Code Here

        this.contentHandler.startElement(URI,
                BLOG_NODE_NAME,
                PREFIX + ':' + BLOG_NODE_NAME,
                attributes);

        ServiceSelector selector = null;
        SiteManager siteManager = null;
        try {
            Request request = ObjectModelHelper.getRequest(this.objectModel);
            Session session = RepositoryUtil.getSession(this.manager, request);
            DocumentFactory map = DocumentUtil.createDocumentFactory(this.manager, session);
            Publication publication = PublicationUtil.getPublication(this.manager, request);

            selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE + "Selector");
            siteManager = (SiteManager) selector.select(publication.getSiteManagerHint());

            Document[] docs = siteManager.getDocuments(map, publication, area);
            Arrays.sort((Object[]) docs, new Comparator() {
                public int compare(Object o1, Object o2) {
                    try {
                        Date d1 = new Date(((Document) o2).getLastModified());
                        Date d2 = new Date(((Document) o1).getLastModified());
                        return d2.compareTo(d1);
                    }
                    catch (DocumentException e) {
                        throw new RuntimeException(e);
                    }
                }
            });

            for (int i = 0; i < docs.length; i++) {
                if (numrecent > 0 && numrecent <= i)
                    break;
                String path = docs[i].getPath();
                if (path.startsWith("/entries/")) {
                    attributes.clear();
                    attributes.addAttribute("", PATH_ATTR_NAME, PATH_ATTR_NAME, "CDATA", path);
                    attributes.addAttribute("",
                            LASTMOD_ATTR_NAME,
                            LASTMOD_ATTR_NAME,
                            "CDATA",
                            String.valueOf(docs[i].getLastModified()));

                    this.contentHandler.startElement(URI, ENTRY_NODE_NAME, PREFIX + ':'
                            + ENTRY_NODE_NAME, attributes);
                    this.contentHandler.endElement(URI, ENTRY_NODE_NAME, PREFIX + ':'
                            + ENTRY_NODE_NAME);
                }
            }

        } catch (Exception e) {
            throw new RuntimeException(e);
        } finally {
            if (selector != null) {
                if (siteManager != null) {
                    selector.release(siteManager);
                }
                this.manager.release(selector);
            }
        }
View Full Code Here

        // create new document
        // implementation note: since blog does not have a hierarchy,
        // document id (full path) and document id-name (this leaf's id)
        // are the same
        DocumentManager documentManager = null;
        ServiceSelector selector = null;
        ResourceType resourceType = null;

        try {
            selector = (ServiceSelector) this.manager.lookup(ResourceType.ROLE + "Selector");
            resourceType = (ResourceType) selector.select(getDocumentTypeName());

            documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);

            DocumentFactory map = getDocumentFactory();

            String documentId = getDocumentID();
           
            String sampleName = resourceType.getSampleNames()[0];
            String sampleUri = resourceType.getSample(sampleName).getUri();

            Document document = documentManager.add(map,
                    resourceType,
                    sampleUri,
                    getSourceDocument().getPublication(),
                    getSourceDocument().getArea(),
                    documentId,
                    language,
                    "xml",
                    getParameterAsString(DublinCore.ELEMENT_TITLE),
                    true);

            transformXML(document);
        } finally {
            if (documentManager != null) {
                this.manager.release(documentManager);
            }
            if (selector != null) {
                if (resourceType != null) {
                    selector.release(resourceType);
                }
                this.manager.release(selector);
            }
        }
    }
View Full Code Here

TOP

Related Classes of org.apache.avalon.framework.service.ServiceSelector

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.