Example usage for com.liferay.portal.kernel.portlet PortletBagPool get

List of usage examples for com.liferay.portal.kernel.portlet PortletBagPool get

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.portlet PortletBagPool get.

Prototype

public static PortletBag get(String portletId) 

Source Link

Usage

From source file:com.liferay.alloy.mvc.BaseAlloyControllerImpl.java

License:Open Source License

protected void initIndexer() {
    indexer = buildIndexer();/*from   w w  w.  j a va2 s.  c  o  m*/

    if (indexer == null) {
        return;
    }

    indexerClassName = indexer.getClassNames()[0];

    Indexer existingIndexer = IndexerRegistryUtil.getIndexer(indexerClassName);

    if ((existingIndexer != null) && (existingIndexer == indexer)) {
        BaseAlloyIndexer baseAlloyIndexer = (BaseAlloyIndexer) indexer;

        alloyServiceInvoker = baseAlloyIndexer.getAlloyServiceInvoker();

        return;
    }

    alloyServiceInvoker = new AlloyServiceInvoker(indexerClassName);

    BaseAlloyIndexer baseAlloyIndexer = (BaseAlloyIndexer) indexer;

    baseAlloyIndexer.setAlloyServiceInvoker(alloyServiceInvoker);
    baseAlloyIndexer.setPortletId(portlet.getRootPortletId());

    PortletBag portletBag = PortletBagPool.get(portlet.getPortletId());

    List<Indexer> indexerInstances = portletBag.getIndexerInstances();

    if (existingIndexer != null) {
        IndexerRegistryUtil.unregister(existingIndexer);

        indexerInstances.remove(existingIndexer);
    }

    IndexerRegistryUtil.register(indexer);

    indexerInstances.add(indexer);
}

From source file:com.liferay.asset.internal.util.AssetHelperImpl.java

License:Open Source License

@Override
public List<AssetPublisherAddItemHolder> getAssetPublisherAddItemHolders(
        LiferayPortletRequest liferayPortletRequest, LiferayPortletResponse liferayPortletResponse,
        long groupId, long[] classNameIds, long[] classTypeIds, long[] allAssetCategoryIds,
        String[] allAssetTagNames, String redirect) throws Exception {

    ThemeDisplay themeDisplay = (ThemeDisplay) liferayPortletRequest.getAttribute(WebKeys.THEME_DISPLAY);

    Locale locale = themeDisplay.getLocale();

    List<AssetPublisherAddItemHolder> assetPublisherAddItemHolders = new ArrayList<>();

    for (long classNameId : classNameIds) {
        String className = _portal.getClassName(classNameId);

        AssetRendererFactory<?> assetRendererFactory = AssetRendererFactoryRegistryUtil
                .getAssetRendererFactoryByClassName(className);

        if (Validator.isNull(assetRendererFactory.getPortletId())) {
            continue;
        }//from www.  j a v a2s.c o m

        Portlet portlet = _portletLocalService.getPortletById(themeDisplay.getCompanyId(),
                assetRendererFactory.getPortletId());

        if (!portlet.isActive()) {
            continue;
        }

        PortletBag portletBag = PortletBagPool.get(portlet.getRootPortletId());

        if (portletBag == null) {
            continue;
        }

        ResourceBundle resourceBundle = portletBag.getResourceBundle(locale);

        ClassTypeReader classTypeReader = assetRendererFactory.getClassTypeReader();

        List<ClassType> classTypes = Collections.emptyList();

        if (!(classTypeReader instanceof NullClassTypeReader)) {
            classTypes = classTypeReader.getAvailableClassTypes(
                    _portal.getCurrentAndAncestorSiteGroupIds(groupId), themeDisplay.getLocale());
        }

        if (classTypes.isEmpty()) {
            PortletURL addPortletURL = getAddPortletURL(liferayPortletRequest, liferayPortletResponse, groupId,
                    className, 0, allAssetCategoryIds, allAssetTagNames, redirect);

            if (addPortletURL != null) {
                assetPublisherAddItemHolders.add(new AssetPublisherAddItemHolder(portlet.getPortletId(),
                        className, resourceBundle, locale, addPortletURL));
            }
        }

        for (ClassType classType : classTypes) {
            long classTypeId = classType.getClassTypeId();

            if (ArrayUtil.contains(classTypeIds, classTypeId) || (classTypeIds.length == 0)) {

                PortletURL addPortletURL = getAddPortletURL(liferayPortletRequest, liferayPortletResponse,
                        groupId, className, classTypeId, allAssetCategoryIds, allAssetTagNames, redirect);

                if (addPortletURL != null) {
                    assetPublisherAddItemHolders.add(new AssetPublisherAddItemHolder(portlet.getPortletId(),
                            classType.getName(), resourceBundle, locale, addPortletURL));
                }
            }
        }
    }

    if (assetPublisherAddItemHolders.size() <= 1) {
        return assetPublisherAddItemHolders;
    }

    assetPublisherAddItemHolders.sort(null);

    return assetPublisherAddItemHolders;
}

From source file:com.liferay.exportimport.test.ExportedMissingReferenceExportImportTest.java

License:Open Source License

protected List<PortletDataHandler> setPortletDataHandler(String portletId,
        List<PortletDataHandler> portletDataHandlerInstances) throws Exception {

    Field portletDataHandlerInstancesField = ReflectionUtil.getDeclaredField(PortletBagImpl.class,
            "_portletDataHandlerInstances");

    PortletBag portletBag = PortletBagPool.get(portletId);

    List<PortletDataHandler> oldDataHandlerInstances = portletBag.getPortletDataHandlerInstances();

    portletDataHandlerInstancesField.set(portletBag, portletDataHandlerInstances);

    return oldDataHandlerInstances;
}

From source file:com.liferay.faces.test.hooks.TestSetupAction.java

License:Open Source License

protected void setupPage(long companyId, long userId, long groupId, PortalPage portalPage,
        boolean privateLayout) throws Exception {
    String portalPageName = portalPage.getName();
    String[] portletIds = portalPage.getPortletIds();
    Layout portalPageLayout = getPortalPageLayout(userId, groupId, portalPageName, privateLayout);
    LayoutTypePortlet layoutTypePortlet = (LayoutTypePortlet) portalPageLayout.getLayoutType();

    layoutTypePortlet.setLayoutTemplateId(userId, portalPage.getLayoutTemplateId(), false);

    int columnNumber = 1;

    for (String portletId : portletIds) {

        if (portletId.endsWith("_INSTANCE_")) {
            portletId = portletId + "ABCD";
        }//from w  ww  . j av a  2 s  .c  o m

        addPortlet(layoutTypePortlet, userId, columnNumber, portletId);

        // Store the preferences for the portlet, if any
        PortletPreferences portletPreferences = PortletPreferencesFactoryUtil
                .getLayoutPortletSetup(portalPageLayout, portletId);
        Portlet portlet = PortletLocalServiceUtil.getPortletById(companyId, portletId);
        PortletBag portletBag = PortletBagPool.get(portlet.getRootPortletId());

        if (portletBag != null) {
            portletPreferences.store();
        }

        columnNumber++;
    }

    LayoutLocalServiceUtil.updateLayout(portalPageLayout);

    logger.info("Setting up page name=[" + portalPageName + "]");
}

From source file:com.liferay.opensocial.service.impl.GadgetLocalServiceImpl.java

License:Open Source License

protected Portlet getPortlet(String uuid, long companyId, String name) throws Exception {

    Portlet portlet = _portletsPool.get(uuid);

    if (portlet != null) {
        return portlet;
    }/*from   w  ww  . j  av  a2  s . co m*/

    String portletId = getPortletId(uuid);

    portlet = PortletLocalServiceUtil.clonePortlet(_GADGET_PORTLET_ID);

    portlet.setCompanyId(companyId);
    portlet.setPortletId(portletId);

    PortletApp portletApp = PortletLocalServiceUtil.getPortletApp(ClpSerializer.getServletContextName());

    portlet.setPortletApp(portletApp);

    portlet.setPortletName(portletId);
    portlet.setDisplayName(portletId);
    portlet.setPortletClass(GadgetPortlet.class.getName());

    Map<String, String> initParams = portlet.getInitParams();

    initParams.put(InvokerPortlet.INIT_INVOKER_PORTLET_NAME, _GADGET_PORTLET_NAME);

    addPortletExtraInfo(portlet, portletApp, name);

    _portletsPool.put(uuid, portlet);

    PortletBag portletBag = PortletBagPool.get(_GADGET_PORTLET_ID);

    portletBag = (PortletBag) portletBag.clone();

    portletBag.setPortletName(portletId);
    portletBag.setPortletInstance(new GadgetPortlet());

    PortletBagPool.put(portletId, portletBag);

    return portlet;
}

From source file:com.liferay.portlet.PortletContextFactory.java

License:Open Source License

private PortletContext _create(Portlet portlet, ServletContext servletContext) {

    Map<String, PortletContext> portletContexts = _pool.get(portlet.getRootPortletId());

    if (portletContexts == null) {
        portletContexts = new ConcurrentHashMap<String, PortletContext>();

        _pool.put(portlet.getRootPortletId(), portletContexts);
    }/*from w  w w. j a va 2  s  . c  om*/

    PortletContext portletContext = portletContexts.get(portlet.getPortletId());

    if (portletContext == null) {
        PortletApp portletApp = portlet.getPortletApp();

        if (portletApp.isWARFile()) {
            PortletBag portletBag = PortletBagPool.get(portlet.getRootPortletId());

            if (portletBag == null) {
                _log.error("Portlet " + portlet.getRootPortletId() + " has a null portlet bag");
            }

            //String mainPath = (String)ctx.getAttribute(WebKeys.MAIN_PATH);

            servletContext = portletBag.getServletContext();

            // Context path for the portal must be passed to individual
            // portlets

            //ctx.setAttribute(WebKeys.MAIN_PATH, mainPath);
        }

        portletContext = new PortletContextImpl(portlet, servletContext);

        portletContexts.put(portlet.getPortletId(), portletContext);
    }

    return portletContext;
}

From source file:com.liferay.portlet.PortletInstanceFactoryImpl.java

License:Open Source License

public InvokerPortlet create(Portlet portlet, ServletContext servletContext) throws PortletException {

    boolean instanceable = false;

    if ((portlet.isInstanceable()) && (PortletConstants.getInstanceId(portlet.getPortletId()) != null)) {

        instanceable = true;//from   ww  w  .  j ava  2s .c  o  m
    }

    Map<String, InvokerPortlet> portletInstances = _pool.get(portlet.getRootPortletId());

    if (portletInstances == null) {
        portletInstances = new ConcurrentHashMap<String, InvokerPortlet>();

        _pool.put(portlet.getRootPortletId(), portletInstances);
    }

    InvokerPortlet instanceInvokerPortletInstance = null;

    if (instanceable) {
        instanceInvokerPortletInstance = portletInstances.get(portlet.getPortletId());
    }

    InvokerPortlet rootInvokerPortletInstance = null;

    if (instanceInvokerPortletInstance == null) {
        rootInvokerPortletInstance = portletInstances.get(portlet.getRootPortletId());

        if (rootInvokerPortletInstance == null) {
            PortletBag portletBag = PortletBagPool.get(portlet.getRootPortletId());

            // Portlet bag should never be null unless the portlet has been
            // undeployed

            if (portletBag == null) {
                PortletBagFactory portletBagFactory = new PortletBagFactory();

                portletBagFactory.setClassLoader(PortalClassLoaderUtil.getClassLoader());
                portletBagFactory.setServletContext(servletContext);
                portletBagFactory.setWARFile(false);

                try {
                    portletBag = portletBagFactory.create(portlet);
                } catch (Exception e) {
                    throw new PortletException(e);
                }
            }

            PortletConfig portletConfig = PortletConfigFactoryUtil.create(portlet, servletContext);

            rootInvokerPortletInstance = init(portlet, portletConfig, portletBag.getPortletInstance());

            portletInstances.put(portlet.getRootPortletId(), rootInvokerPortletInstance);
        }
    }

    if (instanceable) {
        if (instanceInvokerPortletInstance == null) {
            javax.portlet.Portlet portletInstance = rootInvokerPortletInstance.getPortletInstance();

            PortletConfig portletConfig = PortletConfigFactoryUtil.create(portlet, servletContext);

            PortletContext portletContext = portletConfig.getPortletContext();
            boolean checkAuthToken = rootInvokerPortletInstance.isCheckAuthToken();
            boolean facesPortlet = rootInvokerPortletInstance.isFacesPortlet();
            boolean strutsPortlet = rootInvokerPortletInstance.isStrutsPortlet();
            boolean strutsBridgePortlet = rootInvokerPortletInstance.isStrutsBridgePortlet();

            instanceInvokerPortletInstance = _internalInvokerPortletPrototype.create(portlet, portletInstance,
                    portletConfig, portletContext, checkAuthToken, facesPortlet, strutsPortlet,
                    strutsBridgePortlet);

            portletInstances.put(portlet.getPortletId(), instanceInvokerPortletInstance);
        }
    } else {
        if (rootInvokerPortletInstance != null) {
            instanceInvokerPortletInstance = rootInvokerPortletInstance;
        }
    }

    return instanceInvokerPortletInstance;
}

From source file:com.liferay.wsrp.service.impl.WSRPConsumerPortletLocalServiceImpl.java

License:Open Source License

protected Portlet getPortlet(long companyId, long wsrpConsumerId, String wsrpConsumerPortletUuid, String name,
        String portletHandle) throws Exception {

    Portlet portlet = _portletsPool.get(wsrpConsumerPortletUuid);

    if ((portlet != null) && portlet.isActive()) {
        return portlet;
    }//from ww w.  j  a  v  a 2  s  . c  om

    String portletId = getPortletId(wsrpConsumerPortletUuid);

    portlet = PortletLocalServiceUtil.clonePortlet(_CONSUMER_PORTLET_ID);

    portlet.setCompanyId(companyId);
    portlet.setPortletId(portletId);

    PortletApp portletApp = PortletLocalServiceUtil.getPortletApp(ClpSerializer.getServletContextName());

    portlet.setPortletApp(portletApp);

    portlet.setPortletName(portletId);
    portlet.setDisplayName(portletId);

    Map<String, String> initParams = portlet.getInitParams();

    initParams.put(InvokerPortlet.INIT_INVOKER_PORTLET_NAME, _CONSUMER_PORTLET_NAME);

    WSRPConsumer wsrpConsumer = wsrpConsumerPersistence.findByPrimaryKey(wsrpConsumerId);

    PortletDescription portletDescription = null;

    try {
        WSRPConsumerManager wsrpConsumerManager = WSRPConsumerManagerFactory
                .getWSRPConsumerManager(wsrpConsumer);

        portletDescription = wsrpConsumerManager.getPortletDescription(portletHandle);
    } catch (Exception e) {
        if (_log.isWarnEnabled()) {
            _log.warn("Unable to connect to WSRP producer for portlet " + wsrpConsumerPortletUuid, e);
        }
    }

    if (portletDescription != null) {
        addPortletExtraInfo(portlet, portletApp, portletDescription, name);

        portlet.setActive(true);
    } else {
        PortletInfo portletInfo = new PortletInfo(name, name, StringPool.BLANK, StringPool.BLANK);

        portlet.setPortletInfo(portletInfo);
    }

    _portletsPool.put(wsrpConsumerPortletUuid, portlet);

    PortletBag portletBag = PortletBagPool.get(_CONSUMER_PORTLET_ID);

    portletBag = (PortletBag) portletBag.clone();

    portletBag.setPortletName(portletId);

    ConsumerPortlet consumerPortletInstance = getConsumerPortletInstance(portlet);

    portletBag.setPortletInstance(consumerPortletInstance);

    PortletBagPool.put(portletId, portletBag);

    return portlet;
}

From source file:jp.aegif.liferay.experiment.mryoshio.rr.ReservationPortlet.java

License:Open Source License

@Override
public void serveResource(ResourceRequest req, ResourceResponse res) throws IOException, PortletException {

    if (logger.isDebugEnabled())
        debug(req);//  www. ja  v a2  s .  co m

    try {
        String rid = req.getResourceID();
        PortletBag pbag = PortletBagPool.get(PortalUtil.getPortletId(req));
        String ajaxResponse = null;
        if ("add-view".equals(rid) || "update-view".equals(rid)) {
            ajaxResponse = PortalUtil.renderPage(pbag.getServletContext(),
                    PortalUtil.getHttpServletRequest(req), PortalUtil.getHttpServletResponse(res), editJSP,
                    false);
        } else if ("list-view".equals(rid)) {
            ajaxResponse = getListDataAsJson(Integer.parseInt(req.getParameter("itemPerPage")),
                    Integer.parseInt(req.getParameter("targetPage")));
        } else if ("update-reservation".equals(rid)) {
            updateReservation(req);
        } else if ("delete-reservation".equals(rid)) {
            deleteReservation(req);
        } else {
            ajaxResponse = ERR_NO_TYPE_SPECIFIED;
        }
        PrintWriter writer = res.getWriter();
        writer.write(ajaxResponse);
        writer.flush();
        writer.close();
    } catch (ServletException e) {
        throw new PortletException(e);
    }
}

From source file:jp.aegif.liferay.experiment.mryoshio.rr.RoomPortlet.java

License:Open Source License

@Override
public void serveResource(ResourceRequest req, ResourceResponse res) throws IOException, PortletException {

    if (logger.isDebugEnabled())
        debug(req);/*from  w  ww  .j a  v a 2  s.  c  o  m*/

    try {
        String rid = req.getResourceID();
        PortletBag pbag = PortletBagPool.get(PortalUtil.getPortletId(req));
        String ajaxResponse = null;

        if ("add-view".equals(rid) || "update-view".equals(rid)) {
            ajaxResponse = PortalUtil.renderPage(pbag.getServletContext(),
                    PortalUtil.getHttpServletRequest(req), PortalUtil.getHttpServletResponse(res), editJSP,
                    false);
        } else if ("list-view".equals(rid)) {
            ajaxResponse = getListDataAsJson(Integer.parseInt(req.getParameter("itemPerPage")),
                    Integer.parseInt(req.getParameter("targetPage")));
        } else if ("update-room".equals(rid)) {
            updateRoom(req);
        } else if ("delete-room".equals(rid)) {
            deleteRoom(req);
        } else {
            ajaxResponse = ERR_NO_TYPE_SPECIFIED;
        }
        PrintWriter writer = res.getWriter();
        writer.write(ajaxResponse);
        writer.flush();
        writer.close();
    } catch (ServletException e) {
        throw new PortletException(e);
    }
}