Example usage for org.apache.commons.lang.time StopWatch StopWatch

List of usage examples for org.apache.commons.lang.time StopWatch StopWatch

Introduction

In this page you can find the example usage for org.apache.commons.lang.time StopWatch StopWatch.

Prototype

public StopWatch() 

Source Link

Document

Constructor.

Usage

From source file:com.liferay.portal.lar.LayoutImporter.java

protected void doImportLayouts(long userId, long groupId, boolean privateLayout,
        Map<String, String[]> parameterMap, File file) throws Exception {

    boolean deleteMissingLayouts = MapUtil.getBoolean(parameterMap,
            PortletDataHandlerKeys.DELETE_MISSING_LAYOUTS, Boolean.TRUE.booleanValue());
    boolean deletePortletData = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.DELETE_PORTLET_DATA);
    boolean importCategories = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.CATEGORIES);
    boolean importPermissions = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PERMISSIONS);
    boolean importPublicLayoutPermissions = MapUtil.getBoolean(parameterMap,
            PortletDataHandlerKeys.PUBLIC_LAYOUT_PERMISSIONS);
    boolean importUserPermissions = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.USER_PERMISSIONS);
    boolean importPortletData = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PORTLET_DATA);
    boolean importPortletSetup = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PORTLET_SETUP);
    boolean importPortletArchivedSetups = MapUtil.getBoolean(parameterMap,
            PortletDataHandlerKeys.PORTLET_ARCHIVED_SETUPS);
    boolean importPortletUserPreferences = MapUtil.getBoolean(parameterMap,
            PortletDataHandlerKeys.PORTLET_USER_PREFERENCES);
    boolean importTheme = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.THEME);
    boolean importThemeSettings = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.THEME_REFERENCE);
    boolean layoutSetPrototypeLinkEnabled = MapUtil.getBoolean(parameterMap,
            PortletDataHandlerKeys.LAYOUT_SET_PROTOTYPE_LINK_ENABLED, true);
    boolean publishToRemote = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PUBLISH_TO_REMOTE);
    String layoutsImportMode = MapUtil.getString(parameterMap, PortletDataHandlerKeys.LAYOUTS_IMPORT_MODE,
            PortletDataHandlerKeys.LAYOUTS_IMPORT_MODE_MERGE_BY_LAYOUT_UUID);
    String portletsMergeMode = MapUtil.getString(parameterMap, PortletDataHandlerKeys.PORTLETS_MERGE_MODE,
            PortletDataHandlerKeys.PORTLETS_MERGE_MODE_REPLACE);
    String userIdStrategy = MapUtil.getString(parameterMap, PortletDataHandlerKeys.USER_ID_STRATEGY);

    if (_log.isDebugEnabled()) {
        _log.debug("Delete portlet data " + deletePortletData);
        _log.debug("Import categories " + importCategories);
        _log.debug("Import permissions " + importPermissions);
        _log.debug("Import user permissions " + importUserPermissions);
        _log.debug("Import portlet data " + importPortletData);
        _log.debug("Import portlet setup " + importPortletSetup);
        _log.debug("Import portlet archived setups " + importPortletArchivedSetups);
        _log.debug("Import portlet user preferences " + importPortletUserPreferences);
        _log.debug("Import theme " + importTheme);
    }/*  w ww  .  jav  a  2s.c  o m*/

    StopWatch stopWatch = null;

    if (_log.isInfoEnabled()) {
        stopWatch = new StopWatch();

        stopWatch.start();
    }

    LayoutCache layoutCache = new LayoutCache();

    LayoutSet layoutSet = LayoutSetLocalServiceUtil.getLayoutSet(groupId, privateLayout);

    long companyId = layoutSet.getCompanyId();

    User user = UserUtil.findByPrimaryKey(userId);

    UserIdStrategy strategy = _portletImporter.getUserIdStrategy(user, userIdStrategy);

    ZipReader zipReader = ZipReaderFactoryUtil.getZipReader(file);

    PortletDataContext portletDataContext = new PortletDataContextImpl(companyId, groupId, parameterMap,
            new HashSet<String>(), strategy, zipReader);

    portletDataContext.setPortetDataContextListener(new PortletDataContextListenerImpl(portletDataContext));

    portletDataContext.setPrivateLayout(privateLayout);

    // Zip

    Element rootElement = null;
    InputStream themeZip = null;

    // Manifest

    String xml = portletDataContext.getZipEntryAsString("/manifest.xml");

    if (xml == null) {
        throw new LARFileException("manifest.xml not found in the LAR");
    }

    try {
        Document document = SAXReaderUtil.read(xml);

        rootElement = document.getRootElement();
    } catch (Exception e) {
        throw new LARFileException(e);
    }

    // Build compatibility

    Element headerElement = rootElement.element("header");

    int buildNumber = ReleaseInfo.getBuildNumber();

    int importBuildNumber = GetterUtil.getInteger(headerElement.attributeValue("build-number"));

    if (buildNumber != importBuildNumber) {
        throw new LayoutImportException("LAR build number " + importBuildNumber + " does not match "
                + "portal build number " + buildNumber);
    }

    // Type compatibility

    String larType = headerElement.attributeValue("type");

    if (!larType.equals("layout-set")) {
        throw new LARTypeException("Invalid type of LAR file (" + larType + ")");
    }

    // Group id

    long sourceGroupId = GetterUtil.getLong(headerElement.attributeValue("group-id"));

    portletDataContext.setSourceGroupId(sourceGroupId);

    // Layout set prototype

    String layoutSetPrototypeUuid = headerElement.attributeValue("layout-set-prototype-uuid");

    ServiceContext serviceContext = ServiceContextThreadLocal.getServiceContext();

    if (Validator.isNotNull(layoutSetPrototypeUuid)) {
        if (layoutSetPrototypeLinkEnabled) {
            if (publishToRemote) {
                importLayoutSetPrototype(portletDataContext, user, layoutSetPrototypeUuid, serviceContext);
            }
        }

        layoutSet.setLayoutSetPrototypeUuid(layoutSetPrototypeUuid);
        layoutSet.setLayoutSetPrototypeLinkEnabled(layoutSetPrototypeLinkEnabled);

        LayoutSetLocalServiceUtil.updateLayoutSet(layoutSet);
    }

    // Look and feel

    if (importTheme) {
        themeZip = portletDataContext.getZipEntryAsInputStream("theme.zip");
    }

    // Look and feel

    String themeId = layoutSet.getThemeId();
    String colorSchemeId = layoutSet.getColorSchemeId();

    if (importThemeSettings) {
        Attribute themeIdAttribute = headerElement.attribute("theme-id");

        if (themeIdAttribute != null) {
            themeId = themeIdAttribute.getValue();
        }

        Attribute colorSchemeIdAttribute = headerElement.attribute("color-scheme-id");

        if (colorSchemeIdAttribute != null) {
            colorSchemeId = colorSchemeIdAttribute.getValue();
        }
    }

    String css = GetterUtil.getString(headerElement.elementText("css"));

    if (themeZip != null) {
        String importThemeId = importTheme(layoutSet, themeZip);

        if (importThemeId != null) {
            themeId = importThemeId;
            colorSchemeId = ColorSchemeImpl.getDefaultRegularColorSchemeId();
        }

        if (_log.isDebugEnabled()) {
            _log.debug("Importing theme takes " + stopWatch.getTime() + " ms");
        }
    }

    boolean wapTheme = false;

    LayoutSetLocalServiceUtil.updateLookAndFeel(groupId, privateLayout, themeId, colorSchemeId, css, wapTheme);

    // Read asset categories, asset tags, comments, locks, permissions, and
    // ratings entries to make them available to the data handlers through
    // the context

    if (importPermissions) {
        _permissionImporter.readPortletDataPermissions(portletDataContext);
    }

    if (importCategories) {
        _portletImporter.readAssetCategories(portletDataContext);
    }

    _portletImporter.readAssetTags(portletDataContext);
    _portletImporter.readComments(portletDataContext);
    _portletImporter.readExpandoTables(portletDataContext);
    _portletImporter.readLocks(portletDataContext);
    _portletImporter.readRatingsEntries(portletDataContext);

    // Layouts

    List<Layout> previousLayouts = LayoutUtil.findByG_P(groupId, privateLayout);

    // Remove layouts that were deleted from the layout set prototype

    if (Validator.isNotNull(layoutSetPrototypeUuid) && layoutSetPrototypeLinkEnabled) {

        LayoutSetPrototype layoutSetPrototype = LayoutSetPrototypeLocalServiceUtil
                .getLayoutSetPrototypeByUuid(layoutSetPrototypeUuid);

        Group group = layoutSetPrototype.getGroup();

        for (Layout layout : previousLayouts) {
            String sourcePrototypeLayoutUuid = layout.getSourcePrototypeLayoutUuid();

            if (Validator.isNull(layout.getSourcePrototypeLayoutUuid())) {
                continue;
            }

            Layout sourcePrototypeLayout = LayoutUtil.fetchByUUID_G(sourcePrototypeLayoutUuid,
                    group.getGroupId());

            if (sourcePrototypeLayout == null) {
                LayoutLocalServiceUtil.deleteLayout(layout, false, serviceContext);
            }
        }
    }

    List<Layout> newLayouts = new ArrayList<Layout>();

    Set<Long> newLayoutIds = new HashSet<Long>();

    Map<Long, Layout> newLayoutsMap = (Map<Long, Layout>) portletDataContext.getNewPrimaryKeysMap(Layout.class);

    Element layoutsElement = rootElement.element("layouts");

    List<Element> layoutElements = layoutsElement.elements("layout");

    if (_log.isDebugEnabled()) {
        if (layoutElements.size() > 0) {
            _log.debug("Importing layouts");
        }
    }

    for (Element layoutElement : layoutElements) {
        importLayout(portletDataContext, user, layoutCache, previousLayouts, newLayouts, newLayoutsMap,
                newLayoutIds, portletsMergeMode, themeId, colorSchemeId, layoutsImportMode, privateLayout,
                importPermissions, importPublicLayoutPermissions, importUserPermissions, importThemeSettings,
                rootElement, layoutElement);
    }

    Element portletsElement = rootElement.element("portlets");

    List<Element> portletElements = portletsElement.elements("portlet");

    // Delete portlet data

    if (deletePortletData) {
        if (_log.isDebugEnabled()) {
            if (portletElements.size() > 0) {
                _log.debug("Deleting portlet data");
            }
        }

        for (Element portletElement : portletElements) {
            String portletId = portletElement.attributeValue("portlet-id");
            long layoutId = GetterUtil.getLong(portletElement.attributeValue("layout-id"));
            long plid = newLayoutsMap.get(layoutId).getPlid();

            portletDataContext.setPlid(plid);

            _portletImporter.deletePortletData(portletDataContext, portletId, plid);
        }
    }

    // Import portlets

    if (_log.isDebugEnabled()) {
        if (portletElements.size() > 0) {
            _log.debug("Importing portlets");
        }
    }

    for (Element portletElement : portletElements) {
        String portletPath = portletElement.attributeValue("path");
        String portletId = portletElement.attributeValue("portlet-id");
        long layoutId = GetterUtil.getLong(portletElement.attributeValue("layout-id"));
        long plid = newLayoutsMap.get(layoutId).getPlid();
        long oldPlid = GetterUtil.getLong(portletElement.attributeValue("old-plid"));

        Portlet portlet = PortletLocalServiceUtil.getPortletById(portletDataContext.getCompanyId(), portletId);

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

        Layout layout = null;

        try {
            layout = LayoutUtil.findByPrimaryKey(plid);
        } catch (NoSuchLayoutException nsle) {
            continue;
        }

        portletDataContext.setPlid(plid);
        portletDataContext.setOldPlid(oldPlid);

        Document portletDocument = SAXReaderUtil.read(portletDataContext.getZipEntryAsString(portletPath));

        portletElement = portletDocument.getRootElement();

        // The order of the import is important. You must always import
        // the portlet preferences first, then the portlet data, then
        // the portlet permissions. The import of the portlet data
        // assumes that portlet preferences already exist.

        _portletImporter.setPortletScope(portletDataContext, portletElement);

        try {

            // Portlet preferences

            _portletImporter.importPortletPreferences(portletDataContext, layoutSet.getCompanyId(),
                    layout.getGroupId(), layout, null, portletElement, importPortletSetup,
                    importPortletArchivedSetups, importPortletUserPreferences, false);

            // Portlet data

            Element portletDataElement = portletElement.element("portlet-data");

            if (importPortletData && (portletDataElement != null)) {
                _portletImporter.importPortletData(portletDataContext, portletId, plid, portletDataElement);
            }
        } finally {
            _portletImporter.resetPortletScope(portletDataContext, layout.getGroupId());
        }

        // Portlet permissions

        if (importPermissions) {
            _permissionImporter.importPortletPermissions(layoutCache, companyId, groupId, userId, layout,
                    portletElement, portletId, importUserPermissions);
        }

        // Archived setups

        _portletImporter.importPortletPreferences(portletDataContext, layoutSet.getCompanyId(), groupId, null,
                null, portletElement, importPortletSetup, importPortletArchivedSetups,
                importPortletUserPreferences, false);
    }

    if (importPermissions) {
        if ((userId > 0) && ((PropsValues.PERMISSIONS_USER_CHECK_ALGORITHM == 5)
                || (PropsValues.PERMISSIONS_USER_CHECK_ALGORITHM == 6))) {

            Indexer indexer = IndexerRegistryUtil.getIndexer(User.class);

            indexer.reindex(userId);
        }
    }

    // Asset links

    _portletImporter.readAssetLinks(portletDataContext);

    // Delete missing layouts

    if (deleteMissingLayouts) {
        deleteMissingLayouts(groupId, privateLayout, newLayoutIds, previousLayouts, serviceContext);
    }

    // Page count

    LayoutSetLocalServiceUtil.updatePageCount(groupId, privateLayout);

    if (_log.isInfoEnabled()) {
        _log.info("Importing layouts takes " + stopWatch.getTime() + " ms");
    }

    // Site

    GroupLocalServiceUtil.updateSite(groupId, true);

    // Web content layout type

    for (Layout layout : newLayouts) {
        UnicodeProperties typeSettingsProperties = layout.getTypeSettingsProperties();

        String articleId = typeSettingsProperties.getProperty("article-id");

        if (Validator.isNotNull(articleId)) {
            Map<String, String> articleIds = (Map<String, String>) portletDataContext
                    .getNewPrimaryKeysMap(JournalArticle.class + ".articleId");

            typeSettingsProperties.setProperty("article-id",
                    MapUtil.getString(articleIds, articleId, articleId));

            LayoutUtil.update(layout, false);
        }
    }

    zipReader.close();
}

From source file:com.liferay.portal.lar.PlaytechPortalLayoutImporter.java

protected void doImportLayouts(long userId, long groupId, boolean privateLayout,
        Map<String, String[]> parameterMap, File file) throws Exception {

    boolean deleteMissingLayouts = MapUtil.getBoolean(parameterMap,
            PortletDataHandlerKeys.DELETE_MISSING_LAYOUTS, Boolean.TRUE.booleanValue());
    boolean deletePortletData = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.DELETE_PORTLET_DATA);
    boolean importCategories = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.CATEGORIES);
    boolean importPermissions = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PERMISSIONS);
    boolean importPublicLayoutPermissions = MapUtil.getBoolean(parameterMap,
            PortletDataHandlerKeys.PUBLIC_LAYOUT_PERMISSIONS);
    boolean importUserPermissions = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.USER_PERMISSIONS);
    boolean importPortletData = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PORTLET_DATA);
    boolean importPortletSetup = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PORTLET_SETUP);
    boolean importPortletArchivedSetups = MapUtil.getBoolean(parameterMap,
            PortletDataHandlerKeys.PORTLET_ARCHIVED_SETUPS);
    boolean importPortletUserPreferences = MapUtil.getBoolean(parameterMap,
            PortletDataHandlerKeys.PORTLET_USER_PREFERENCES);
    boolean importTheme = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.THEME);
    boolean importThemeSettings = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.THEME_REFERENCE);
    boolean importLogo = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.LOGO);
    boolean importLayoutSetSettings = MapUtil.getBoolean(parameterMap,
            PortletDataHandlerKeys.LAYOUT_SET_SETTINGS);

    boolean layoutSetPrototypeLinkEnabled = MapUtil.getBoolean(parameterMap,
            PortletDataHandlerKeys.LAYOUT_SET_PROTOTYPE_LINK_ENABLED, true);

    Group group = GroupLocalServiceUtil.getGroup(groupId);

    if (group.isLayoutSetPrototype()) {
        layoutSetPrototypeLinkEnabled = false;
    }//from   ww  w . j a  v  a 2 s  .c  om

    //boolean publishToRemote = MapUtil.getBoolean(
    //   parameterMap, PortletDataHandlerKeys.PUBLISH_TO_REMOTE);
    String layoutsImportMode = MapUtil.getString(parameterMap, PortletDataHandlerKeys.LAYOUTS_IMPORT_MODE,
            PortletDataHandlerKeys.LAYOUTS_IMPORT_MODE_MERGE_BY_LAYOUT_UUID);
    String portletsMergeMode = MapUtil.getString(parameterMap, PortletDataHandlerKeys.PORTLETS_MERGE_MODE,
            PortletDataHandlerKeys.PORTLETS_MERGE_MODE_REPLACE);
    String userIdStrategy = MapUtil.getString(parameterMap, PortletDataHandlerKeys.USER_ID_STRATEGY);

    if (_log.isDebugEnabled()) {
        _log.debug("Delete portlet data " + deletePortletData);
        _log.debug("Import categories " + importCategories);
        _log.debug("Import permissions " + importPermissions);
        _log.debug("Import user permissions " + importUserPermissions);
        _log.debug("Import portlet data " + importPortletData);
        _log.debug("Import portlet setup " + importPortletSetup);
        _log.debug("Import portlet archived setups " + importPortletArchivedSetups);
        _log.debug("Import portlet user preferences " + importPortletUserPreferences);
        _log.debug("Import theme " + importTheme);
    }

    StopWatch stopWatch = null;

    if (_log.isInfoEnabled()) {
        stopWatch = new StopWatch();

        stopWatch.start();
    }

    long processedItems = 0;

    FinderCacheUtil.clearCache();
    LayoutCache layoutCache = new LayoutCache();

    LayoutSet layoutSet = LayoutSetLocalServiceUtil.getLayoutSet(groupId, privateLayout);

    long companyId = layoutSet.getCompanyId();

    User user = UserUtil.findByPrimaryKey(userId);

    UserIdStrategy strategy = _portletImporter.getUserIdStrategy(user, userIdStrategy);

    ZipReader zipReader = ZipReaderFactoryUtil.getZipReader(file);

    PortletDataContext portletDataContext = new PortletDataContextImpl(companyId, groupId, parameterMap,
            new HashSet<String>(), strategy, zipReader);

    portletDataContext.setPortetDataContextListener(new PortletDataContextListenerImpl(portletDataContext));

    portletDataContext.setPrivateLayout(privateLayout);

    // Zip

    Element rootElement = null;
    InputStream themeZip = null;

    // Manifest

    String xml = portletDataContext.getZipEntryAsString("/manifest.xml");

    if (xml == null) {
        throw new LARFileException("manifest.xml not found in the LAR");
    }

    try {
        Document document = SAXReaderUtil.read(xml);

        rootElement = document.getRootElement();
    } catch (Exception e) {
        throw new LARFileException(e);
    }

    // Build compatibility

    Element headerElement = rootElement.element("header");

    int buildNumber = ReleaseInfo.getBuildNumber();

    int importBuildNumber = GetterUtil.getInteger(headerElement.attributeValue("build-number"));

    if (buildNumber != importBuildNumber) {
        throw new LayoutImportException("LAR build number " + importBuildNumber + " does not match "
                + "portal build number " + buildNumber);
    }

    // Type

    String larType = headerElement.attributeValue("type");

    if (!larType.equals("layout-prototype") && !larType.equals("layout-set")
            && !larType.equals("layout-set-prototype")) {

        throw new LARTypeException("Invalid type of LAR file (" + larType + ")");
    }

    // Available locales

    Locale[] sourceAvailableLocales = LocaleUtil
            .fromLanguageIds(StringUtil.split(headerElement.attributeValue("available-locales")));

    Locale[] targetAvailableLocales = LanguageUtil.getAvailableLocales();

    for (Locale sourceAvailableLocale : sourceAvailableLocales) {
        if (!ArrayUtil.contains(targetAvailableLocales, sourceAvailableLocale)) {

            LocaleException le = new LocaleException();

            le.setSourceAvailableLocales(sourceAvailableLocales);
            le.setTargetAvailableLocales(targetAvailableLocales);

            throw le;
        }
    }

    // Layout prototypes validity

    Element layoutsElement = rootElement.element("layouts");

    List<Element> layoutElements = layoutsElement.elements("layout");

    validateLayoutPrototypes(layoutsElement, layoutElements);

    // Group id

    long sourceGroupId = GetterUtil.getLong(headerElement.attributeValue("group-id"));

    portletDataContext.setSourceGroupId(sourceGroupId);

    // Layout and layout set prototype

    String layoutSetPrototypeUuid = layoutsElement.attributeValue("layout-set-prototype-uuid");

    if (group.isLayoutPrototype() && larType.equals("layout-prototype")) {
        LayoutPrototype layoutPrototype = LayoutPrototypeLocalServiceUtil
                .getLayoutPrototype(group.getClassPK());

        String layoutPrototypeUuid = GetterUtil.getString(headerElement.attributeValue("type-uuid"));

        LayoutPrototype existingLayoutPrototype = null;

        if (Validator.isNotNull(layoutPrototypeUuid)) {
            try {
                existingLayoutPrototype = LayoutPrototypeLocalServiceUtil
                        .getLayoutPrototypeByUuid(layoutPrototypeUuid);
            } catch (NoSuchLayoutPrototypeException nslpe) {
            }
        }

        if (existingLayoutPrototype == null) {
            layoutPrototype.setUuid(layoutPrototypeUuid);

            LayoutPrototypeLocalServiceUtil.updateLayoutPrototype(layoutPrototype);
        }
    } else if (group.isLayoutSetPrototype() && larType.equals("layout-set-prototype")) {

        LayoutSetPrototype layoutSetPrototype = LayoutSetPrototypeLocalServiceUtil
                .getLayoutSetPrototype(group.getClassPK());

        String importedLayoutSetPrototypeUuid = GetterUtil.getString(headerElement.attributeValue("type-uuid"));

        LayoutSetPrototype existingLayoutSetPrototype = null;

        if (Validator.isNotNull(importedLayoutSetPrototypeUuid)) {
            try {
                existingLayoutSetPrototype = LayoutSetPrototypeLocalServiceUtil
                        .getLayoutSetPrototypeByUuid(importedLayoutSetPrototypeUuid);
            } catch (NoSuchLayoutSetPrototypeException nslspe) {
            }
        }

        if (existingLayoutSetPrototype == null) {
            layoutSetPrototype.setUuid(importedLayoutSetPrototypeUuid);

            LayoutSetPrototypeLocalServiceUtil.updateLayoutSetPrototype(layoutSetPrototype);
        }
    } else if (larType.equals("layout-set-prototype")) {
        layoutSetPrototypeUuid = GetterUtil.getString(headerElement.attributeValue("type-uuid"));
    }

    ServiceContext serviceContext = ServiceContextThreadLocal.getServiceContext();

    if (Validator.isNotNull(layoutSetPrototypeUuid)) {
        layoutSet.setLayoutSetPrototypeUuid(layoutSetPrototypeUuid);
        layoutSet.setLayoutSetPrototypeLinkEnabled(layoutSetPrototypeLinkEnabled);

        LayoutSetLocalServiceUtil.updateLayoutSet(layoutSet);
    }

    // Look and feel

    if (importTheme) {
        themeZip = portletDataContext.getZipEntryAsInputStream("theme.zip");
    }

    // Look and feel

    String themeId = layoutSet.getThemeId();
    String colorSchemeId = layoutSet.getColorSchemeId();

    if (importThemeSettings) {
        Attribute themeIdAttribute = headerElement.attribute("theme-id");

        if (themeIdAttribute != null) {
            themeId = themeIdAttribute.getValue();
        }

        Attribute colorSchemeIdAttribute = headerElement.attribute("color-scheme-id");

        if (colorSchemeIdAttribute != null) {
            colorSchemeId = colorSchemeIdAttribute.getValue();
        }
    }

    if (importLogo) {
        String logoPath = headerElement.attributeValue("logo-path");

        byte[] iconBytes = portletDataContext.getZipEntryAsByteArray(logoPath);

        if ((iconBytes != null) && (iconBytes.length > 0)) {
            File logo = FileUtil.createTempFile(iconBytes);

            LayoutSetLocalServiceUtil.updateLogo(groupId, privateLayout, true, logo);
        } else {
            LayoutSetLocalServiceUtil.updateLogo(groupId, privateLayout, false, (File) null);
        }
    }

    if (importLayoutSetSettings) {
        String settings = GetterUtil.getString(headerElement.elementText("settings"));

        LayoutSetLocalServiceUtil.updateSettings(groupId, privateLayout, settings);
    }

    String css = GetterUtil.getString(headerElement.elementText("css"));

    if (themeZip != null) {
        String importThemeId = importTheme(layoutSet, themeZip);

        if (importThemeId != null) {
            themeId = importThemeId;
            colorSchemeId = ColorSchemeImpl.getDefaultRegularColorSchemeId();
        }

        if (_log.isDebugEnabled()) {
            _log.debug("Importing theme takes " + stopWatch.getTime() + " ms");
        }
    }

    boolean wapTheme = false;

    LayoutSetLocalServiceUtil.updateLookAndFeel(groupId, privateLayout, themeId, colorSchemeId, css, wapTheme);

    // Read asset categories, asset tags, comments, locks, permissions, and
    // ratings entries to make them available to the data handlers through
    // the context

    if (importPermissions) {
        _permissionImporter.readPortletDataPermissions(portletDataContext);
    }

    if (importCategories || group.isCompany()) {
        _portletImporter.readAssetCategories(portletDataContext);
        if (_log.isInfoEnabled()) {
            _log.info("Categories imported in " + stopWatch.getTime());
        }
    }

    _portletImporter.readAssetTags(portletDataContext);
    if (_log.isInfoEnabled()) {
        _log.info("Asset tags imported in " + stopWatch.getTime());
    }

    _portletImporter.readComments(portletDataContext);
    if (_log.isInfoEnabled()) {
        _log.info("Comments imported in " + stopWatch.getTime());
    }

    _portletImporter.readExpandoTables(portletDataContext);
    if (_log.isInfoEnabled()) {
        _log.info("Expando tables imported in " + stopWatch.getTime());
    }

    _portletImporter.readLocks(portletDataContext);
    if (_log.isInfoEnabled()) {
        _log.info("Locks imported in " + stopWatch.getTime());
    }

    _portletImporter.readRatingsEntries(portletDataContext);
    if (_log.isInfoEnabled()) {
        _log.info("Ratings imported in " + stopWatch.getTime());
    }

    // Layouts

    List<Layout> previousLayouts = LayoutUtil.findByG_P(groupId, privateLayout);

    //Modification start
    //We need modifiable list. So...
    List<Layout> prevTMP = new ArrayList();
    prevTMP.addAll(previousLayouts);
    previousLayouts = prevTMP;
    //Modification end

    // Remove layouts that were deleted from the layout set prototype

    if (Validator.isNotNull(layoutSetPrototypeUuid) && layoutSetPrototypeLinkEnabled) {

        LayoutSetPrototype layoutSetPrototype = LayoutSetPrototypeLocalServiceUtil
                .getLayoutSetPrototypeByUuid(layoutSetPrototypeUuid);

        Group layoutSetPrototypeGroup = layoutSetPrototype.getGroup();

        for (Layout layout : previousLayouts) {
            String sourcePrototypeLayoutUuid = layout.getSourcePrototypeLayoutUuid();

            if (Validator.isNull(layout.getSourcePrototypeLayoutUuid())) {
                continue;
            }

            Layout sourcePrototypeLayout = LayoutUtil.fetchByUUID_G(sourcePrototypeLayoutUuid,
                    layoutSetPrototypeGroup.getGroupId());

            if (sourcePrototypeLayout == null) {
                LayoutLocalServiceUtil.deleteLayout(layout, false, serviceContext);
            }
        }
    }

    StagingProgressUpdaterThreadLocal.getMonitor().getComponent(PublishProcessProgressMonitor.COMPONENT_LAYOUTS)
            .setItemsCount(layoutElements.size());

    List<Layout> newLayouts = new ArrayList<Layout>();

    Set<Long> newLayoutIds = new HashSet<Long>();

    Map<Long, Layout> newLayoutsMap = (Map<Long, Layout>) portletDataContext.getNewPrimaryKeysMap(Layout.class);

    if (_log.isDebugEnabled()) {
        if (layoutElements.size() > 0) {
            _log.debug("Importing layouts");
        }
    }

    for (Element layoutElement : layoutElements) {

        StagingProgressUpdaterThreadLocal.getMonitor()
                .getComponent(PublishProcessProgressMonitor.COMPONENT_LAYOUTS)
                .setItemsProcessed(processedItems++);

        importLayout(portletDataContext, user, layoutCache, previousLayouts, newLayouts, newLayoutsMap,
                newLayoutIds, portletsMergeMode, themeId, colorSchemeId, layoutsImportMode, privateLayout,
                importPermissions, importPublicLayoutPermissions, importUserPermissions, importThemeSettings,
                rootElement, layoutElement);
    }

    Element portletsElement = rootElement.element("portlets");

    List<Element> portletElements = portletsElement.elements("portlet");

    // Delete portlet data

    if (deletePortletData) {
        if (_log.isDebugEnabled()) {
            if (portletElements.size() > 0) {
                _log.debug("Deleting portlet data");
            }
        }

        for (Element portletElement : portletElements) {
            String portletId = portletElement.attributeValue("portlet-id");
            long layoutId = GetterUtil.getLong(portletElement.attributeValue("layout-id"));
            long plid = newLayoutsMap.get(layoutId).getPlid();

            portletDataContext.setPlid(plid);

            _portletImporter.deletePortletData(portletDataContext, portletId, plid);
        }
    }

    // Import portlets

    if (_log.isDebugEnabled()) {
        if (portletElements.size() > 0) {
            _log.debug("Importing portlets");
        }
    }

    StagingProgressUpdaterThreadLocal.getMonitor()
            .getComponent(PublishProcessProgressMonitor.COMPONENT_PORTLETS)
            .setItemsCount(portletElements.size());
    processedItems = 0;

    Layout defaultLayoutForNoPagesScope = null;
    String scope = MapUtil.getString(parameterMap, "scope");
    if ("no-pages".equals(scope) || "selected-pages".equals(scope)) {
        defaultLayoutForNoPagesScope = new LayoutImpl();
        defaultLayoutForNoPagesScope.setGroupId(groupId);
        defaultLayoutForNoPagesScope.setCompanyId(companyId);
        defaultLayoutForNoPagesScope.setPlid(LayoutConstants.DEFAULT_PLID);
    }

    for (Element portletElement : portletElements) {
        String portletPath = portletElement.attributeValue("path");
        String portletId = portletElement.attributeValue("portlet-id");
        long layoutId = GetterUtil.getLong(portletElement.attributeValue("layout-id"));
        long oldPlid = GetterUtil.getLong(portletElement.attributeValue("old-plid"));

        Portlet portlet = PortletLocalServiceUtil.getPortletById(portletDataContext.getCompanyId(), portletId);

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

        StagingProgressUpdaterThreadLocal.getMonitor()
                .getComponent(PublishProcessProgressMonitor.COMPONENT_PORTLETS)
                .setItemsProcessed(processedItems++);
        Layout layout = newLayoutsMap.get(layoutId);

        long plid = LayoutConstants.DEFAULT_PLID;

        if (layout != null) {
            plid = layout.getPlid();
        }

        layout = LayoutUtil.fetchByPrimaryKey(plid);
        if (layout == null && defaultLayoutForNoPagesScope != null) {
            layout = defaultLayoutForNoPagesScope;
        }
        if ((layout == null) && !group.isCompany()) {
            continue;
        }

        portletDataContext.setPlid(plid);
        portletDataContext.setOldPlid(oldPlid);

        Document portletDocument = SAXReaderUtil.read(portletDataContext.getZipEntryAsString(portletPath));

        portletElement = portletDocument.getRootElement();

        // The order of the import is important. You must always import
        // the portlet preferences first, then the portlet data, then
        // the portlet permissions. The import of the portlet data
        // assumes that portlet preferences already exist.

        _portletImporter.setPortletScope(portletDataContext, portletElement);

        long portletPreferencesGroupId = groupId;

        Element portletDataElement = portletElement.element("portlet-data");

        boolean importData = importPortletData && (portletDataElement != null);

        try {
            if ((layout != null) && !group.isCompany()) {
                portletPreferencesGroupId = layout.getGroupId();
            }

            // Portlet preferences
            _log.info("Importing portlet " + portletId + " on layout " + layout.getFriendlyURL() + " in group "
                    + groupId);
            _portletImporter.importPortletPreferences(portletDataContext, layoutSet.getCompanyId(),
                    portletPreferencesGroupId, layout, null, portletElement, importPortletSetup,
                    importPortletArchivedSetups, importPortletUserPreferences, false, importData);

            // Portlet data

            if (importData) {
                try {
                    _portletImporter.importPortletData(portletDataContext, portletId, plid, portletDataElement);
                } catch (Throwable e) {
                    _log.error("Portlet data import error", e);
                    throw e;
                }
            }
        } finally {
            _portletImporter.resetPortletScope(portletDataContext, portletPreferencesGroupId);
        }

        // Portlet permissions

        if (importPermissions) {
            _permissionImporter.importPortletPermissions(layoutCache, companyId, groupId, userId, layout,
                    portletElement, portletId, importUserPermissions);
        }

        // Archived setups

        _portletImporter.importPortletPreferences(portletDataContext, layoutSet.getCompanyId(), groupId, null,
                null, portletElement, importPortletSetup, importPortletArchivedSetups,
                importPortletUserPreferences, false, importData);
    }

    if (importPermissions) {
        if ((userId > 0) && ((PropsValues.PERMISSIONS_USER_CHECK_ALGORITHM == 5)
                || (PropsValues.PERMISSIONS_USER_CHECK_ALGORITHM == 6))) {

            Indexer indexer = IndexerRegistryUtil.nullSafeGetIndexer(User.class);

            indexer.reindex(userId);
        }
    }

    // Asset links

    _portletImporter.readAssetLinks(portletDataContext);

    // Delete missing layouts

    if (deleteMissingLayouts) {
        deleteMissingLayouts(groupId, privateLayout, newLayoutIds, previousLayouts, serviceContext);
    }

    // Page count

    LayoutSetLocalServiceUtil.updatePageCount(groupId, privateLayout);

    if (_log.isInfoEnabled()) {
        _log.info("Importing layouts takes " + stopWatch.getTime() + " ms");
    }

    // Site

    GroupLocalServiceUtil.updateSite(groupId, true);

    // Web content layout type

    for (Layout layout : newLayouts) {
        UnicodeProperties typeSettingsProperties = layout.getTypeSettingsProperties();

        String articleId = typeSettingsProperties.getProperty("article-id");

        if (Validator.isNotNull(articleId)) {
            Map<String, String> articleIds = (Map<String, String>) portletDataContext
                    .getNewPrimaryKeysMap(JournalArticle.class + ".articleId");

            typeSettingsProperties.setProperty("article-id",
                    MapUtil.getString(articleIds, articleId, articleId));

            LayoutUtil.update(layout, false);
        }
    }

    zipReader.close();
}

From source file:eagle.service.generic.GenericEntityServiceResource.java

/**
 * @param value rowkey value//from w w w . j  a v a  2  s .  co  m
 * @param serviceName entity service name
 * @return GenericServiceAPIResponseEntity
 */
@GET
@Path(ROWKEY_PATH)
@Produces(MediaType.APPLICATION_JSON)
public GenericServiceAPIResponseEntity search(@QueryParam("value") String value,
        @QueryParam("serviceName") String serviceName) {
    GenericServiceAPIResponseEntity response = new GenericServiceAPIResponseEntity();
    Map<String, Object> meta = new HashMap<>();
    DataStorage dataStorage;
    StopWatch stopWatch = null;
    try {
        if (serviceName == null)
            throw new IllegalArgumentException("serviceName is null");
        RowkeyQueryStatement queryStatement = new RowkeyQueryStatement(value, serviceName);
        stopWatch = new StopWatch();
        stopWatch.start();
        dataStorage = DataStorageManager.getDataStorageByEagleConfig();
        if (dataStorage == null) {
            LOG.error("Data storage is null");
            throw new IllegalDataStorageException("data storage is null");
        }
        QueryResult<?> result = queryStatement.execute(dataStorage);
        if (result.isSuccess()) {
            meta.put(FIRST_TIMESTAMP, result.getFirstTimestamp());
            meta.put(LAST_TIMESTAMP, result.getLastTimestamp());
            meta.put(TOTAL_RESULTS, result.getSize());
            meta.put(ELAPSEDMS, stopWatch.getTime());
            response.setObj(result.getData());
            response.setType(result.getEntityType());
            response.setSuccess(true);
            response.setMeta(meta);
            return response;
        }
    } catch (Exception e) {
        response.setException(e);
        LOG.error(e.getMessage(), e);
    } finally {
        if (stopWatch != null)
            stopWatch.stop();
    }
    return response;
}

From source file:com.liferay.portlet.documentlibrary.util.VideoProcessorImpl.java

private void _generateVideoXuggler(FileVersion fileVersion, File srcFile, File destFile, String containerType)
        throws Exception {

    if (!_isGeneratePreview(fileVersion, containerType)) {
        return;/*from  ww  w.  j  av  a2  s .  c om*/
    }

    StopWatch stopWatch = null;

    if (_log.isInfoEnabled()) {
        stopWatch = new StopWatch();

        stopWatch.start();
    }

    if (PropsValues.DL_FILE_ENTRY_PREVIEW_FORK_PROCESS_ENABLED) {
        ProcessCallable<String> processCallable = new LiferayVideoProcessCallable(ServerDetector.getServerId(),
                PropsUtil.get(PropsKeys.LIFERAY_HOME), Log4JUtil.getCustomLogSettings(),
                srcFile.getCanonicalPath(), destFile.getCanonicalPath(), FileUtil.createTempFileName(),
                PropsUtil.getProperties(PropsKeys.DL_FILE_ENTRY_PREVIEW_VIDEO, false),
                PropsUtil.getProperties(PropsKeys.XUGGLER_FFPRESET, true));

        ProcessExecutor.execute(processCallable, ClassPathUtil.getPortalClassPath());
    } else {
        LiferayConverter liferayConverter = new LiferayVideoConverter(srcFile.getCanonicalPath(),
                destFile.getCanonicalPath(), FileUtil.createTempFileName(),
                PropsUtil.getProperties(PropsKeys.DL_FILE_ENTRY_PREVIEW_VIDEO, false),
                PropsUtil.getProperties(PropsKeys.XUGGLER_FFPRESET, true));

        liferayConverter.convert();
    }

    addFileToStore(fileVersion.getCompanyId(), PREVIEW_PATH, getPreviewFilePath(fileVersion, containerType),
            destFile);

    if (_log.isInfoEnabled()) {
        _log.info("Xuggler generated a " + containerType + " preview video for " + fileVersion.getTitle()
                + " in " + stopWatch);
    }
}

From source file:com.auditbucket.test.functional.TestAuditIntegration.java

@Test
public void createHeaderTimeLogsWithSearchActivated() throws Exception {
    assumeTrue(!ignoreMe);/*from www. ja va 2s.c o m*/
    int max = 3;
    String ahKey;
    logger.info("createHeaderTimeLogsWithSearchActivated started");
    SecurityContextHolder.getContext().setAuthentication(authA);
    String company = "Monowai";
    regService.registerSystemUser(new RegistrationBean(company, email, "bah"));
    Fortress fo = fortressService.registerFortress(new FortressInputBean("111", false));

    MetaInputBean inputBean = new MetaInputBean(fo.getName(), "wally", "TestTrack", new DateTime(), "ABC123");
    TrackResultBean auditResult;
    auditResult = mediationFacade.createHeader(inputBean, null);
    ahKey = auditResult.getMetaKey();

    assertNotNull(ahKey);

    MetaHeader metaHeader = trackService.getHeader(ahKey);
    assertNotNull(metaHeader);
    assertNotNull(trackService.findByCallerRef(fo, "TestTrack", "ABC123"));
    assertNotNull(fortressService.getFortressUser(fo, "wally", true));
    assertNull(fortressService.getFortressUser(fo, "wallyz", false));

    int i = 0;

    StopWatch watch = new StopWatch();
    logger.info("Start-");
    watch.start();
    while (i < max) {
        mediationFacade.processLog(new LogInputBean(ahKey, "wally", new DateTime(), "{\"blah\":" + i + "}"));
        i++;
    }
    watch.stop();
    Thread.sleep(8000);
    // Test that we get the expected number of log events
    if (!"rest".equals(System.getProperty("neo4j"))) // Don't check if running over rest
        assertEquals("This will fail if the DB is not cleared down, i.e. testing over REST", max,
                trackService.getLogCount(ahKey));

    // Putting asserts On elasticsearch
    String query = "{" + "   \"query\": {  " + "\"query_string\" : { " + " \"default_field\" :\""
            + MetaSearchSchema.WHAT + ".blah\", " + " \"query\" :\"*\" " + "}  " + "}  " + "}";
    Search search = new Search.Builder(query).addIndex(metaHeader.getIndexName()).build();

    JestResult result = esClient.execute(search);
    assertNotNull(result);
    assertNotNull(result.getJsonObject());
    assertNotNull(result.getJsonObject().getAsJsonObject("hits"));
    assertNotNull(result.getJsonObject().getAsJsonObject("hits").get("total"));
    int nbrResult = result.getJsonObject().getAsJsonObject("hits").get("total").getAsInt();
    // Only the last change is indexed, so there should be one result
    Assert.assertEquals(1, nbrResult);

}

From source file:net.nan21.dnet.core.web.controller.data.AbstractAsgnController.java

/**
 * //from   w  w  w  .  jav a 2s  .  c  om
 * @param resourceName
 * @param dataFormat
 * @param objectId
 * @param selectionId
 * @param response
 * @return
 * @throws Exception
 */
@RequestMapping(method = RequestMethod.POST, params = Constants.REQUEST_PARAM_ACTION + "="
        + Constants.ASGN_ACTION_MOVE_LEFT)
@ResponseBody
public String moveLeft(@PathVariable String resourceName, @PathVariable String dataFormat,
        @RequestParam(value = Constants.REQUEST_PARAM_ASGN_OBJECT_ID, required = true) String objectId,
        @RequestParam(value = Constants.REQUEST_PARAM_ASGN_SELECTION_ID, required = true) String selectionId,
        @RequestParam(value = "p_selected_ids", required = true) String selectedIds, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    try {

        StopWatch stopWatch = new StopWatch();
        stopWatch.start();

        if (logger.isInfoEnabled()) {
            logger.info("Processing request: {}.{} -> action = {} ",
                    new String[] { resourceName, dataFormat, Constants.ASGN_ACTION_MOVE_LEFT });
        }

        if (logger.isDebugEnabled()) {
            logger.debug("  --> request-filter: objectId={}, selectionId={}, selectedIds={} ",
                    new String[] { objectId, selectionId, selectedIds });
        }

        this.prepareRequest(request, response);

        this.authorizeAsgnAction(resourceName, "update");

        IAsgnService<M, F, P> service = this.findAsgnService(this.serviceNameFromResourceName(resourceName));

        service.moveLeft(selectionId, this.selectedIdsAsList(selectedIds));
        stopWatch.stop();

        return "";
    } catch (Exception e) {
        return this.handleException(e, response);
    } finally {
        this.finishRequest();
    }

}

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

public void render(RenderRequest renderRequest, RenderResponse renderResponse)
        throws IOException, PortletException {

    PortletException portletException = (PortletException) renderRequest
            .getAttribute(_portletId + PortletException.class.getName());

    if (portletException != null) {
        throw portletException;
    }//w  w  w  .  j  a v  a2 s .  co m

    StopWatch stopWatch = null;

    if (_log.isDebugEnabled()) {
        stopWatch = new StopWatch();

        stopWatch.start();
    }

    String remoteUser = renderRequest.getRemoteUser();

    if ((remoteUser == null) || (_expCache == null) || (_expCache.intValue() == 0)) {

        invokeRender(renderRequest, renderResponse);
    } else {
        RenderResponseImpl renderResponseImpl = (RenderResponseImpl) renderResponse;

        StringServletResponse stringResponse = (StringServletResponse) renderResponseImpl
                .getHttpServletResponse();

        PortletSession portletSession = renderRequest.getPortletSession();

        long now = System.currentTimeMillis();

        Layout layout = (Layout) renderRequest.getAttribute(WebKeys.LAYOUT);

        Map<String, InvokerPortletResponse> sessionResponses = getResponses(portletSession);

        String sessionResponseId = encodeResponseKey(layout.getPlid(), _portletId,
                LanguageUtil.getLanguageId(renderRequest));

        InvokerPortletResponse response = sessionResponses.get(sessionResponseId);

        if (response == null) {
            String title = invokeRender(renderRequest, renderResponse);

            response = new InvokerPortletResponse(title, stringResponse.getString(),
                    now + Time.SECOND * _expCache.intValue());

            sessionResponses.put(sessionResponseId, response);
        } else if ((response.getTime() < now) && (_expCache.intValue() > 0)) {
            String title = invokeRender(renderRequest, renderResponse);

            response.setTitle(title);
            response.setContent(stringResponse.getString());
            response.setTime(now + Time.SECOND * _expCache.intValue());
        } else {
            renderResponseImpl.setTitle(response.getTitle());
            stringResponse.getWriter().print(response.getContent());
        }
    }

    Map<String, String[]> properties = ((RenderResponseImpl) renderResponse).getProperties();

    if (properties.containsKey("clear-request-parameters")) {
        Map<String, String[]> renderParameters = ((RenderRequestImpl) renderRequest).getRenderParameters();

        renderParameters.clear();
    }

    if (_log.isDebugEnabled()) {
        _log.debug("render for " + _portletId + " takes " + stopWatch.getTime() + " ms");
    }
}

From source file:com.ecyrd.jspwiki.ReferenceManager.java

/**
 *  Serializes hashmaps to disk.  The format is private, don't touch it.
 *///from w w w. ja va2s  .  c  o  m
private synchronized void serializeToDisk() {
    ObjectOutputStream out = null;

    try {
        StopWatch sw = new StopWatch();
        sw.start();

        File f = new File(m_engine.getWorkDir(), SERIALIZATION_FILE);

        out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(f)));

        out.writeLong(serialVersionUID);
        out.writeLong(System.currentTimeMillis()); // Timestamp
        out.writeObject(m_refersTo);
        out.writeObject(m_referredBy);

        out.close();

        sw.stop();

        log.debug("serialization done - took " + sw);
    } catch (IOException e) {
        log.error("Unable to serialize!");

        try {
            if (out != null)
                out.close();
        } catch (IOException ex) {
        }
    }
}

From source file:com.liferay.portal.lar.PortletImporter.java

protected void doImportPortletInfo(long userId, long plid, long groupId, String portletId,
        Map<String, String[]> parameterMap, File file) throws Exception {

    boolean deletePortletData = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.DELETE_PORTLET_DATA);
    boolean importPermissions = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PERMISSIONS);
    boolean importUserPermissions = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PERMISSIONS);
    boolean importPortletData = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PORTLET_DATA);
    boolean importPortletArchivedSetups = MapUtil.getBoolean(parameterMap,
            PortletDataHandlerKeys.PORTLET_ARCHIVED_SETUPS);
    boolean importPortletSetup = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PORTLET_SETUP);
    boolean importPortletUserPreferences = MapUtil.getBoolean(parameterMap,
            PortletDataHandlerKeys.PORTLET_USER_PREFERENCES);
    String userIdStrategyString = MapUtil.getString(parameterMap, PortletDataHandlerKeys.USER_ID_STRATEGY);

    StopWatch stopWatch = null;//w  ww .  j a v a2 s.  c o m

    if (_log.isInfoEnabled()) {
        stopWatch = new StopWatch();

        stopWatch.start();
    }

    Layout layout = LayoutLocalServiceUtil.getLayout(plid);

    User user = UserUtil.findByPrimaryKey(userId);

    UserIdStrategy userIdStrategy = getUserIdStrategy(user, userIdStrategyString);

    ZipReader zipReader = ZipReaderFactoryUtil.getZipReader(file);

    PortletDataContext portletDataContext = new PortletDataContextImpl(layout.getCompanyId(), groupId,
            parameterMap, new HashSet<String>(), userIdStrategy, zipReader);

    portletDataContext.setPortetDataContextListener(new PortletDataContextListenerImpl(portletDataContext));

    portletDataContext.setPlid(plid);
    portletDataContext.setPrivateLayout(layout.isPrivateLayout());

    // Manifest

    String xml = portletDataContext.getZipEntryAsString("/manifest.xml");

    Element rootElement = null;

    try {
        Document document = SAXReaderUtil.read(xml);

        rootElement = document.getRootElement();
    } catch (Exception e) {
        throw new LARFileException("Unable to read /manifest.xml");
    }

    // Build compatibility

    Element headerElement = rootElement.element("header");

    int buildNumber = ReleaseInfo.getBuildNumber();

    int importBuildNumber = GetterUtil.getInteger(headerElement.attributeValue("build-number"));

    if (buildNumber != importBuildNumber) {
        throw new LayoutImportException("LAR build number " + importBuildNumber + " does not match "
                + "portal build number " + buildNumber);
    }

    // Type compatibility

    String type = headerElement.attributeValue("type");

    if (!type.equals("portlet")) {
        throw new LARTypeException("Invalid type of LAR file (" + type + ")");
    }

    // Portlet compatibility

    String rootPortletId = headerElement.attributeValue("root-portlet-id");

    if (!PortletConstants.getRootPortletId(portletId).equals(rootPortletId)) {

        throw new PortletIdException("Invalid portlet id " + rootPortletId);
    }

    // Import group id

    long sourceGroupId = GetterUtil.getLong(headerElement.attributeValue("group-id"));

    portletDataContext.setSourceGroupId(sourceGroupId);

    // Read asset categories, asset tags, comments, locks, and ratings
    // entries to make them available to the data handlers through the
    // context

    if (importPermissions) {
        _permissionImporter.readPortletDataPermissions(portletDataContext);
    }

    readAssetCategories(portletDataContext);
    readAssetTags(portletDataContext);
    readComments(portletDataContext);
    readExpandoTables(portletDataContext);
    readLocks(portletDataContext);
    readRatingsEntries(portletDataContext);

    // Delete portlet data

    if (_log.isDebugEnabled()) {
        _log.debug("Deleting portlet data");
    }

    if (deletePortletData) {
        deletePortletData(portletDataContext, portletId, plid);
    }

    Element portletElement = null;

    try {
        portletElement = rootElement.element("portlet");

        Document portletDocument = SAXReaderUtil
                .read(portletDataContext.getZipEntryAsString(portletElement.attributeValue("path")));

        portletElement = portletDocument.getRootElement();
    } catch (DocumentException de) {
        throw new SystemException(de);
    }

    setPortletScope(portletDataContext, portletElement);

    try {

        // Portlet preferences

        importPortletPreferences(portletDataContext, layout.getCompanyId(), groupId, layout, portletId,
                portletElement, importPortletSetup, importPortletArchivedSetups, importPortletUserPreferences,
                true);

        // Portlet data

        Element portletDataElement = portletElement.element("portlet-data");

        if (importPortletData && (portletDataElement != null)) {
            if (_log.isDebugEnabled()) {
                _log.debug("Importing portlet data");
            }

            importPortletData(portletDataContext, portletId, plid, portletDataElement);
        }
    } finally {
        resetPortletScope(portletDataContext, groupId);
    }

    // Portlet permissions

    if (importPermissions) {
        if (_log.isDebugEnabled()) {
            _log.debug("Importing portlet permissions");
        }

        LayoutCache layoutCache = new LayoutCache();

        _permissionImporter.importPortletPermissions(layoutCache, layout.getCompanyId(), groupId, userId,
                layout, portletElement, portletId, importUserPermissions);

        if ((userId > 0) && ((PropsValues.PERMISSIONS_USER_CHECK_ALGORITHM == 5)
                || (PropsValues.PERMISSIONS_USER_CHECK_ALGORITHM == 6))) {

            Indexer indexer = IndexerRegistryUtil.getIndexer(User.class);

            indexer.reindex(userId);
        }
    }

    // Asset links

    if (_log.isDebugEnabled()) {
        _log.debug("Importing asset links");
    }

    readAssetLinks(portletDataContext);

    if (_log.isInfoEnabled()) {
        _log.info("Importing portlet takes " + stopWatch.getTime() + " ms");
    }

    zipReader.close();
}

From source file:de.unisb.cs.st.javalanche.mutation.runtime.testDriver.MutationTestDriver.java

private List<SingleTestResult> runNormalTests(List<String> tests) {
    StopWatch stopWatch = new StopWatch();
    stopWatch.start();/* ww  w.  j a  va 2s.c  o  m*/
    int counter = 0;
    int size = tests.size();
    List<SingleTestResult> failing = new ArrayList<SingleTestResult>();
    for (String testName : tests) {
        counter++;
        String duration = DurationFormatUtils.formatDurationHMS(stopWatch.getTime());
        logger.info(duration + " (" + counter + " / " + size + ") Running test:  " + testName);
        MutationTestRunnable runnable = getTestRunnable(testName);
        testStart(testName);

        runWithTimeout(runnable);
        SingleTestResult result = runnable.getResult();
        logger.debug(result.getTestMessage());
        if (!result.hasPassed()) {
            failing.add(result);
            logger.warn("Test has not passed " + testName);
        }
        testEnd(testName);
    }
    return failing;
}