// cause an improper Application name
portletApplicationName = portletApplicationName.replace('/', '_');
portletName = portletName.replace('/', '_');
MetaInfo metaInfo = portlet.getInfo().getMeta();
LocalizedString keywordsLS = metaInfo.getMetaValue(MetaInfo.KEYWORDS);
//
Set<String> categoryNames = new HashSet<String>();
// Process keywords
if (keywordsLS != null) {
String keywords = keywordsLS.getDefaultString();
if (keywords != null && keywords.length() != 0) {
for (String categoryName : keywords.split(",")) {
// Trim name
categoryName = categoryName.trim();
if (INTERNAL_PORTLET_TAG.equalsIgnoreCase(categoryName)) {
log.debug("Skipping portlet (" + portletApplicationName + "," + portletName
+ ") + tagged as internal");
continue portlet;
} else {
categoryNames.add(categoryName);
}
}
}
}
ArrayList<String> permissions = new ArrayList<String>();
permissions.add(UserACL.EVERYONE);
// If no keywords, use the portlet application name
if (categoryNames.isEmpty()) {
categoryNames.add(portletApplicationName.trim());
}
// Additionally categorise the portlet as remote
boolean remote = portlet.isRemote();
if (remote) {
categoryNames.add(REMOTE_CATEGORY_NAME);
// add producer name to categories for easier finding of portlets for GTNPORTAL-823
LocalizedString producerNameLS = metaInfo.getMetaValue(PRODUCER_NAME_META_INFO_KEY);
if (producerNameLS != null) {
categoryNames.add(producerNameLS.getDefaultString() + PRODUCER_CATEGORY_NAME_SUFFIX);
}
}
//
log.info("Importing portlet (" + portletApplicationName + "," + portletName + ") in categories " + categoryNames);
// Process category names
for (String categoryName : categoryNames) {
CategoryDefinition category = registry.getCategory(categoryName);
//
if (category == null) {
category = registry.createCategory(categoryName);
category.setDisplayName(categoryName);
category.setAccessPermissions(permissions);
}
//
ContentDefinition app = category.getContentMap().get(portletName);
if (app == null) {
LocalizedString descriptionLS = metaInfo.getMetaValue(MetaInfo.DESCRIPTION);
LocalizedString displayNameLS = metaInfo.getMetaValue(MetaInfo.DISPLAY_NAME);
String displayName = getLocalizedStringValue(displayNameLS, portletName);
ContentType<?> contentType;
String contentId;
if (remote) {