You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2007/10/24 03:13:09 UTC
svn commit: r587730 - in
/portals/jetspeed-2/branches/JETSPEED-2.1.3/layout-portlets/src/java/org/apache/jetspeed/portlets/layout:
LayoutPortlet.java MultiColumnPortlet.java
Author: taylor
Date: Tue Oct 23 18:13:09 2007
New Revision: 587730
URL: http://svn.apache.org/viewvc?rev=587730&view=rev
Log:
https://issues.apache.org/jira/browse/JS2-785
Modified:
portals/jetspeed-2/branches/JETSPEED-2.1.3/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java
portals/jetspeed-2/branches/JETSPEED-2.1.3/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java
Modified: portals/jetspeed-2/branches/JETSPEED-2.1.3/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/branches/JETSPEED-2.1.3/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java?rev=587730&r1=587729&r2=587730&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-2.1.3/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java (original)
+++ portals/jetspeed-2/branches/JETSPEED-2.1.3/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java Tue Oct 23 18:13:09 2007
@@ -86,14 +86,12 @@
protected PortletWindowAccessor windowAccess;
protected TemplateLocator decorationLocator;
- //B: mk
- private Map layoutTemplateProperties = new HashMap();
+ private Map layoutTemplatesCache = new HashMap();
public static final String DEFAULT_TEMPLATE_EXT = ".vm";
public static final String TEMPLATE_EXTENSION_KEY = "template.extension";
public static final String DEFAULT_TEMPLATE_TYPE = "velocity";
public static final String TEMPLATE_TYPE_KEY = "template.type";
- //E: mk
public void init( PortletConfig config ) throws PortletException
{
super.init(config);
@@ -157,11 +155,31 @@
request.getPortletSession().setAttribute(PortalReservedParameters.PAGE_LAYOUT_HELP, helpPage);
}
- //Mohan: closed task
- Configuration props = getConfiguration(request, helpPage);
- String ext = (String) props.getString(TEMPLATE_EXTENSION_KEY);
- absHelpPage = jpt.getTemplate(helpPage + "/" + JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE + "-help" + ext,
- JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE).getAppRelativePath();
+ String templateKey = helpPage + "/" + JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE + "-help";
+ CachedTemplate ct = (CachedTemplate)layoutTemplatesCache.get(templateKey);
+ if (ct == null)
+ {
+ TemplateDescriptor template = null;
+ Configuration props = getConfiguration(request, helpPage);
+ String ext = (String) props.getString(TEMPLATE_EXTENSION_KEY);
+ String path = helpPage + "/" + JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE + ext;
+ template = jpt.getTemplate(path, JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE);
+ if (template == null)
+ {
+ String msg = "*** FAILED getTemplate:" + path;
+ throw new TemplateLocatorException(msg);
+ }
+ else
+ {
+ synchronized(layoutTemplatesCache)
+ {
+ ct = new CachedTemplate(templateKey, template, props);
+ layoutTemplatesCache.put(templateKey, ct);
+ }
+ }
+ }
+
+ absHelpPage = ct.getTemplate().getAppRelativePath();
log.debug("Path to help page for LayoutPortlet " + absHelpPage);
request.setAttribute(PARAM_VIEW_PAGE, absHelpPage);
}
@@ -253,13 +271,32 @@
}
}
- //Mohan: closed task
- Configuration props = getConfiguration(request, viewPage);
- String ext = (String) props.getString(TEMPLATE_EXTENSION_KEY);
-
-
- absViewPage = jpt.getTemplate(viewPage + "/" + JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE + ext,
- JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE).getAppRelativePath();
+ String templateKey = viewPage + "/" + JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE;
+ CachedTemplate ct = (CachedTemplate)layoutTemplatesCache.get(templateKey);
+ if (ct == null)
+ {
+ TemplateDescriptor template = null;
+ Configuration props = getConfiguration(request, viewPage);
+ String ext = (String) props.getString(TEMPLATE_EXTENSION_KEY);
+ String path = viewPage + "/" + JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE + ext;
+
+ template = jpt.getTemplate(path, JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE);
+ if (template == null)
+ {
+ String msg = "*** FAILED getTemplate:" + path;
+ throw new TemplateLocatorException(msg);
+ }
+ else
+ {
+ synchronized(layoutTemplatesCache)
+ {
+ ct = new CachedTemplate(templateKey, template, props);
+ layoutTemplatesCache.put(templateKey, ct);
+ }
+
+ }
+ }
+ absViewPage = ct.getTemplate().getAppRelativePath();
log.debug("Path to view page for LayoutPortlet " + absViewPage);
request.setAttribute(PARAM_VIEW_PAGE, absViewPage);
}
@@ -608,7 +645,6 @@
catch (TemplateLocatorException e)
{
log.error("Unable to locate template: " + path, e);
-// System.out.println("Unable to locate template: " + path);
throw e;
}
}
@@ -652,13 +688,8 @@
{
key = templatePropertiesPath;
}
- props = (Configuration)this.layoutTemplateProperties.get(key);
-
- if ( props != null )
+ if (log.isDebugEnabled())
{
- return props;
- }
- if (log.isDebugEnabled()){
log.debug(
"Template descriptor path:<" + templatePropertiesPath + ">"
);
@@ -701,7 +732,6 @@
}
}
- this.layoutTemplateProperties.put(key, props);
if (log.isDebugEnabled())
{
log.debug("Template layout.properties extension is:<" + props.getString(TEMPLATE_EXTENSION_KEY));
@@ -709,4 +739,35 @@
return props;
}
+ class CachedTemplate
+ {
+ private String key;
+ private TemplateDescriptor template;
+ private Configuration config;
+
+ public CachedTemplate(String key, TemplateDescriptor template, Configuration config)
+ {
+ this.key = key;
+ this.template = template;
+ this.config = config;
+ }
+
+
+ public Configuration getConfig()
+ {
+ return config;
+ }
+
+
+ public String getKey()
+ {
+ return key;
+ }
+
+
+ public TemplateDescriptor getTemplate()
+ {
+ return template;
+ }
+ }
}
Modified: portals/jetspeed-2/branches/JETSPEED-2.1.3/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/branches/JETSPEED-2.1.3/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java?rev=587730&r1=587729&r2=587730&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-2.1.3/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java (original)
+++ portals/jetspeed-2/branches/JETSPEED-2.1.3/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java Tue Oct 23 18:13:09 2007
@@ -121,10 +121,15 @@
ContentPage requestPage = context.getPage();
PageEditAccess pageEditAccess = (PageEditAccess)context.getAttribute(PortalReservedParameters.PAGE_EDIT_ACCESS_ATTRIBUTE);
- if ( requestPage == null || pageEditAccess == null )
+ if ( requestPage == null)
{
// Targetting this portlet REQUIRES that the ProfilerValve has been invoked!
- throw new PortletException("Current request page or PageEditAccess not available.");
+ throw new PortletException("Current request page not available.");
+ }
+ if (pageEditAccess == null)
+ {
+ // Targetting this portlet REQUIRES that the ProfilerValve has been invoked!
+ throw new PortletException("Current PageEditAccess not available.");
}
Boolean editing = ( pageEditAccess.isEditing() &&
@@ -244,10 +249,10 @@
{
Fragment fragment = pageManager.newFragment();
fragment.setType(Fragment.LAYOUT);
- fragment.setName(layout);
-
+ fragment.setName(layout);
targetFragment.getFragments().add(fragment);
- pageManager.updatePage(requestPage);
+ pageManager.updatePage(requestPage);
+ clearLayoutAttributes(request);
}
catch (Exception e)
{
@@ -263,8 +268,8 @@
pageManager.updatePage(requestPage);
entityAccess.updatePortletEntity(window.getPortletEntity(), targetFragment);
entityAccess.storePortletEntity(window.getPortletEntity());
-
windowAccess.createPortletWindow(window.getPortletEntity(), targetFragment.getId());
+ clearLayoutAttributes(request);
return;
}
catch (Exception e)
@@ -311,7 +316,7 @@
&& !jsPageShortTitle.equals("") ? jsPageShortTitle
: jsPageName);
pageManager.updatePage(page);
-
+ clearLayoutAttributes(request);
List orderList = parent.getDocumentOrder();
if (orderList != null)
{
@@ -1011,6 +1016,14 @@
}
}
+ protected void clearLayoutAttributes(ActionRequest request)
+ {
+ request.getPortletSession().removeAttribute(PortalReservedParameters.PAGE_LAYOUT_VIEW);
+ request.getPortletSession().removeAttribute(PortalReservedParameters.PAGE_LAYOUT_SOLO);
+ request.getPortletSession().removeAttribute(PortalReservedParameters.PAGE_LAYOUT_MAX);
+ request.getPortletSession().removeAttribute(PortalReservedParameters.PAGE_LAYOUT_HELP);
+ }
+
protected int getFragmentNestingLevel(Page page, String fragmentId)
{
Fragment root = page.getRootFragment();
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org