Package org.infoglue.deliver.portal.services

Source Code of org.infoglue.deliver.portal.services.PortletEntityRegistryServiceFileImplIG

/* ===============================================================================
*
* Part of the InfoGlue Content Management Platform (www.infoglue.org)
*
* ===============================================================================
*
*  Copyright (C)
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License version 2, as published by the
* Free Software Foundation. See the file LICENSE.html for more information.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY, including the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc. / 59 Temple
* Place, Suite 330 / Boston, MA 02111-1307 / USA.
*
* ===============================================================================
*/
package org.infoglue.deliver.portal.services;

import java.io.IOException;
import java.io.InputStream;

import javax.servlet.ServletContext;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.pluto.om.common.ObjectID;
import org.apache.pluto.om.entity.PortletApplicationEntity;
import org.apache.pluto.om.entity.PortletApplicationEntityList;
import org.apache.pluto.om.entity.PortletEntity;
import org.apache.pluto.portalImpl.services.portletentityregistry.PortletEntityRegistryService;
import org.apache.pluto.portalImpl.util.Properties;
import org.infoglue.deliver.portal.OmBuilder;
import org.infoglue.deliver.portal.OmBuilderXStreamImpl;
import org.infoglue.deliver.portal.om.PortletApplicationEntityListImpl;

/**
* @author joran
*
* @version $Revision: 1.4 $
*/
public class PortletEntityRegistryServiceFileImplIG extends PortletEntityRegistryService {
    private static final Log LOG = LogFactory.getLog(PortletEntityRegistryServiceFileImplIG.class);

    private ServletContext aContext;
    private String filename = "WEB-INF/data/portletentityregistryIG.xml";
    private OmBuilder builder = new OmBuilderXStreamImpl();
    private PortletApplicationEntityListImpl applications;

    /* (non-Javadoc)
     * @see org.apache.pluto.portalImpl.services.Service#init(javax.servlet.ServletContext, org.apache.pluto.portalImpl.util.Properties)
     */
    protected void init(ServletContext aContext, Properties aProperties) throws Exception {
        // TODO Auto-generated method stub
        super.init(aContext, aProperties);
        this.aContext = aContext;
        load();
    }

    /* (non-Javadoc)
     * @see org.apache.pluto.portalImpl.services.portletentityregistry.PortletEntityRegistryService#getPortletApplicationEntityList()
     */
    public PortletApplicationEntityList getPortletApplicationEntityList() {
        return applications;
    }

    /* (non-Javadoc)
     * @see org.apache.pluto.portalImpl.services.portletentityregistry.PortletEntityRegistryService#getPortletEntity(org.apache.pluto.om.common.ObjectID)
     */
    public PortletEntity getPortletEntity(ObjectID id) {
        String oid = id.toString();
        int dot = oid.lastIndexOf(".");
        if (dot < 0) {
            LOG.warn("ID does not contain '.' to separate application- and portlet-id: " + id);
            return null;
        }

        ObjectID appID =
            org.apache.pluto.portalImpl.util.ObjectID.createFromString(oid.substring(0, dot));

        PortletApplicationEntity appEntity = applications.get(appID);
        if (appEntity == null) {
            LOG.warn("Application not found: " + appID);
            return null;
        }
        PortletEntity portletEntity = appEntity.getPortletEntityList().get(id);
        if (portletEntity == null) {
            LOG.warn("Portlet not found: " + id);
        }

        return portletEntity;
    }

    /* (non-Javadoc)
     * @see org.apache.pluto.portalImpl.services.portletentityregistry.PortletEntityRegistryService#store()
     */
    public void store() throws IOException {
        String xml = builder.toXML(applications);
        LOG.info(xml);
    }

    /* (non-Javadoc)
     * @see org.apache.pluto.portalImpl.services.portletentityregistry.PortletEntityRegistryService#load()
     */
    public void load() throws IOException {
        LOG.info("Start building PortletApplicationList.....");
        InputStream is = aContext.getResourceAsStream(filename);
        if (is == null) {
            throw new IOException("Unable to find " + filename);
        }

        applications = builder.getPortletApplicationEntityList(is);
        is.close();
        LOG.info("Applications: " + applications);
        LOG.info("DONE!");
    }

    /* (non-Javadoc)
     * @see org.apache.pluto.portalImpl.services.portletentityregistry.PortletEntityRegistryService#refresh(org.apache.pluto.om.entity.PortletEntity)
     */
    public void refresh(PortletEntity portletEntity) {
        // TODO Auto-generated method stub
        throw new UnsupportedOperationException();

    }

    public static void main(String[] args) {
        try {
            PortletEntityRegistryServiceFileImplIG reg =
                new PortletEntityRegistryServiceFileImplIG();
            reg.load();

            reg.store();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}
TOP

Related Classes of org.infoglue.deliver.portal.services.PortletEntityRegistryServiceFileImplIG

TOP
Copyright © 2018 www.massapi.com. 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.