From: Martin H. <mho...@no...> - 2005-04-26 19:00:35
|
User: mholzner Date: 05/04/26 15:00:17 Modified: core/src/main/org/jboss/portal/core/servlet CoreServlet.java Log: Themes and Layouts are now services Revision Changes Path 1.17 +67 -63 jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java (In the diff below, changes in quantity of whitespace are not shown.) Index: CoreServlet.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -b -r1.16 -r1.17 --- CoreServlet.java 21 Apr 2005 11:09:25 -0000 1.16 +++ CoreServlet.java 26 Apr 2005 19:00:17 -0000 1.17 @@ -16,20 +16,17 @@ import org.jboss.portal.core.plugins.page.PageRepository; import org.jboss.portal.core.plugins.page.WindowLocation; import org.jboss.portal.core.theme.Item; -import org.jboss.portal.core.theme.LayoutConstants; import org.jboss.portal.core.theme.LayoutDispatcher; -import org.jboss.portal.core.theme.LayoutException; import org.jboss.portal.core.theme.PageHolder; -import org.jboss.portal.core.theme.PortalLayout; -import org.jboss.portal.core.theme.PortalLayoutManager; import org.jboss.portal.core.theme.Region; import org.jboss.portal.core.theme.RegionSet; -import org.jboss.portal.core.theme.ThemeConstants; +import org.jboss.portal.server.LayoutServer; import org.jboss.portal.server.Portal; import org.jboss.portal.server.PortalRequest; import org.jboss.portal.server.PortalResponse; import org.jboss.portal.server.PortalServer; import org.jboss.portal.server.ServerObjectID; +import org.jboss.portal.server.ThemeServer; import org.jboss.portal.server.Window; import org.jboss.portal.server.WindowContext; import org.jboss.portal.server.output.ActionResult; @@ -40,8 +37,10 @@ import org.jboss.portal.server.output.Result; import org.jboss.portal.server.output.SecurityErrorResult; import org.jboss.portal.server.output.StreamResult; -import org.jboss.portal.server.plugins.windowstate.WindowState; import org.jboss.portal.server.servlet.AbstractMainServlet; +import org.jboss.portal.server.theme.LayoutConstants; +import org.jboss.portal.server.theme.PortalLayout; +import org.jboss.portal.server.theme.ThemeConstants; import javax.servlet.ServletException; import java.io.IOException; @@ -51,7 +50,7 @@ /** * @author <a href="mailto:ju...@jb...">Julien Viet</a> - * @version $Revision: 1.16 $ + * @version $Revision: 1.17 $ */ public class CoreServlet extends AbstractMainServlet { @@ -172,20 +171,24 @@ req.setAttribute("REQ", req); req.setAttribute("RESP", resp); - try - { // handle the theme - Portal portal = req.getPortal(); + // pass the theme server on to the theme tag so that the tag-local + // theme name attribute can be used to set a particular theme and actually + // get it (from the theme server) + ThemeServer themeServer = req.getServer().getManager().getThemeServer(); + req.setAttribute(ThemeConstants.ATTR_THEMESERVER, themeServer); + String themeName = req.getParameter(ThemeConstants.PARAM_THEME); if (themeName == null) { + Portal portal = req.getPortal(); themeName = (String)portal.getProperties().get(CoreConstants.PORTAL_PROP_THEME); } if (themeName != null) { req.setAttribute(ThemeConstants.ATTR_THEME, themeName); } - log.debug("************** requesting theme: " + (themeName != null ? themeName : "[default]")); + log.debug("************** requesting theme: " + themeName); // handle the layout PortalLayout layout = (PortalLayout)req.getAttribute(LayoutConstants.PARAM_LAYOUT); @@ -203,6 +206,7 @@ String layoutName = req.getParameter(LayoutConstants.PARAM_LAYOUT); if (layoutName == null) { + Portal portal = req.getPortal(); layoutName = (String)portal.getProperties().get(CoreConstants.PORTAL_PROP_LAYOUT); } @@ -212,12 +216,17 @@ } log.debug("************** requesting layout: " + layoutName); - layout = PortalLayoutManager.getLayout(layoutName, true); + LayoutServer layoutServer = req.getServer().getManager().getLayoutServer(); + layout = layoutServer.getLayout(layoutName, true); if (layout != null) { layoutURI = layout.getURI(); } + else + { + throw new ServletException("No valid Layout was found for this request; layout name: " + layoutName); + } log.debug("************** using layout (not via strategy): " + layout.getName() + " uri: " + layoutURI); } log.debug("got layout to use [" + layout.getName() + "] in app [" + layout.getAppName() + "] uri [" + layout.getURI() + "]"); @@ -226,11 +235,6 @@ LayoutDispatcher dispatcher = new LayoutDispatcher(layout, layoutURI); dispatcher.include(req, resp); } - catch (LayoutException e) - { - log.error(e); - } - } else if (tmp instanceof ErrorResult) { // This an error that occured during the action request |
From: Martin H. <mho...@no...> - 2005-04-28 02:46:16
|
User: mholzner Date: 05/04/27 22:46:03 Modified: core/src/main/org/jboss/portal/core/servlet CoreServlet.java Log: cleanup layouts Revision Changes Path 1.18 +11 -3 jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java (In the diff below, changes in quantity of whitespace are not shown.) Index: CoreServlet.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -b -r1.17 -r1.18 --- CoreServlet.java 26 Apr 2005 19:00:17 -0000 1.17 +++ CoreServlet.java 28 Apr 2005 02:46:03 -0000 1.18 @@ -50,7 +50,7 @@ /** * @author <a href="mailto:ju...@jb...">Julien Viet</a> - * @version $Revision: 1.17 $ + * @version $Revision: 1.18 $ */ public class CoreServlet extends AbstractMainServlet { @@ -166,6 +166,7 @@ // throw new ServletException("no main, please define a default portlet for the page"); // } // + Portal portal = req.getPortal(); PageHolder page = new PageHolder(/*main, */regions); req.setAttribute("PAGE", page); req.setAttribute("REQ", req); @@ -181,7 +182,6 @@ String themeName = req.getParameter(ThemeConstants.PARAM_THEME); if (themeName == null) { - Portal portal = req.getPortal(); themeName = (String)portal.getProperties().get(CoreConstants.PORTAL_PROP_THEME); } if (themeName != null) @@ -206,7 +206,6 @@ String layoutName = req.getParameter(LayoutConstants.PARAM_LAYOUT); if (layoutName == null) { - Portal portal = req.getPortal(); layoutName = (String)portal.getProperties().get(CoreConstants.PORTAL_PROP_LAYOUT); } @@ -231,6 +230,15 @@ } log.debug("got layout to use [" + layout.getName() + "] in app [" + layout.getAppName() + "] uri [" + layout.getURI() + "]"); + // now check for the defined rendererSet (if any) + String renderSetName = (String)portal.getProperties().get(CoreConstants.PORTAL_PROP_RENDERSET); + if (renderSetName == null) + { + // default to the divRenderer, if no renderSet was specified in the portal (as property) + renderSetName = "divRenderer"; + } + req.setAttribute(LayoutConstants.ATTR_RENDERSET, renderSetName); + // Perform dispatch LayoutDispatcher dispatcher = new LayoutDispatcher(layout, layoutURI); dispatcher.include(req, resp); |
From: Martin H. <mho...@no...> - 2005-04-28 20:14:51
|
User: mholzner Date: 05/04/28 16:14:38 Modified: core/src/main/org/jboss/portal/core/servlet CoreServlet.java Log: and even more cleanup in layouts Revision Changes Path 1.19 +5 -5 jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java (In the diff below, changes in quantity of whitespace are not shown.) Index: CoreServlet.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -b -r1.18 -r1.19 --- CoreServlet.java 28 Apr 2005 02:46:03 -0000 1.18 +++ CoreServlet.java 28 Apr 2005 20:14:38 -0000 1.19 @@ -50,7 +50,7 @@ /** * @author <a href="mailto:ju...@jb...">Julien Viet</a> - * @version $Revision: 1.18 $ + * @version $Revision: 1.19 $ */ public class CoreServlet extends AbstractMainServlet { @@ -188,7 +188,7 @@ { req.setAttribute(ThemeConstants.ATTR_THEME, themeName); } - log.debug("************** requesting theme: " + themeName); + log.debug("requesting theme: " + themeName); // handle the layout PortalLayout layout = (PortalLayout)req.getAttribute(LayoutConstants.PARAM_LAYOUT); @@ -198,7 +198,7 @@ { // then get the uri that was set by the strategy as well layoutURI = (String)req.getAttribute(LayoutConstants.PARAM_LAYOUT_URI); - log.debug("************** using layout from strategy: " + layout.getName() + " uri: " + layoutURI); + log.debug("using layout returned from the strategy: " + layout.getName() + " uri: " + layoutURI); } else { @@ -213,7 +213,7 @@ { layoutName = "nodesk"; } - log.debug("************** requesting layout: " + layoutName); + log.debug("requesting layout: " + layoutName); LayoutServer layoutServer = req.getServer().getManager().getLayoutServer(); layout = layoutServer.getLayout(layoutName, true); @@ -226,7 +226,7 @@ { throw new ServletException("No valid Layout was found for this request; layout name: " + layoutName); } - log.debug("************** using layout (not via strategy): " + layout.getName() + " uri: " + layoutURI); + log.debug("using layout (not via strategy): " + layout.getName() + " uri: " + layoutURI); } log.debug("got layout to use [" + layout.getName() + "] in app [" + layout.getAppName() + "] uri [" + layout.getURI() + "]"); |
From: Martin H. <mho...@no...> - 2005-05-01 15:16:12
|
User: mholzner Date: 05/05/01 11:15:57 Modified: core/src/main/org/jboss/portal/core/servlet CoreServlet.java Log: moved the theme server to be set in the layout strategy, so that it is available to portlets via a request attribute Revision Changes Path 1.20 +1 -8 jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java (In the diff below, changes in quantity of whitespace are not shown.) Index: CoreServlet.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -b -r1.19 -r1.20 --- CoreServlet.java 28 Apr 2005 20:14:38 -0000 1.19 +++ CoreServlet.java 1 May 2005 15:15:57 -0000 1.20 @@ -26,7 +26,6 @@ import org.jboss.portal.server.PortalResponse; import org.jboss.portal.server.PortalServer; import org.jboss.portal.server.ServerObjectID; -import org.jboss.portal.server.ThemeServer; import org.jboss.portal.server.Window; import org.jboss.portal.server.WindowContext; import org.jboss.portal.server.output.ActionResult; @@ -50,7 +49,7 @@ /** * @author <a href="mailto:ju...@jb...">Julien Viet</a> - * @version $Revision: 1.19 $ + * @version $Revision: 1.20 $ */ public class CoreServlet extends AbstractMainServlet { @@ -173,12 +172,6 @@ req.setAttribute("RESP", resp); // handle the theme - // pass the theme server on to the theme tag so that the tag-local - // theme name attribute can be used to set a particular theme and actually - // get it (from the theme server) - ThemeServer themeServer = req.getServer().getManager().getThemeServer(); - req.setAttribute(ThemeConstants.ATTR_THEMESERVER, themeServer); - String themeName = req.getParameter(ThemeConstants.PARAM_THEME); if (themeName == null) { |
From: Martin H. <mho...@no...> - 2005-05-02 00:29:28
|
User: mholzner Date: 05/05/01 20:29:14 Modified: core/src/main/org/jboss/portal/core/servlet CoreServlet.java Log: added dtds for portal-layouts, portal-themes, and portal-renderSet.xml; cosmetics (renamed portal-renderers.xml to portal-renderSet.xml) Revision Changes Path 1.21 +2 -2 jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java (In the diff below, changes in quantity of whitespace are not shown.) Index: CoreServlet.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -b -r1.20 -r1.21 --- CoreServlet.java 1 May 2005 15:15:57 -0000 1.20 +++ CoreServlet.java 2 May 2005 00:29:14 -0000 1.21 @@ -49,7 +49,7 @@ /** * @author <a href="mailto:ju...@jb...">Julien Viet</a> - * @version $Revision: 1.20 $ + * @version $Revision: 1.21 $ */ public class CoreServlet extends AbstractMainServlet { @@ -223,7 +223,7 @@ } log.debug("got layout to use [" + layout.getName() + "] in app [" + layout.getAppName() + "] uri [" + layout.getURI() + "]"); - // now check for the defined rendererSet (if any) + // now check for the defined renderSet (if any) String renderSetName = (String)portal.getProperties().get(CoreConstants.PORTAL_PROP_RENDERSET); if (renderSetName == null) { |
From: Martin H. <mho...@no...> - 2005-05-05 15:31:44
|
User: mholzner Date: 05/05/05 11:31:37 Modified: core/src/main/org/jboss/portal/core/servlet CoreServlet.java Log: fix: classloader issues for themes and layouts; moved all theme and layout interfaces into the server module; simplified theme and layout handling (focus on strategies and rendersets) Revision Changes Path 1.22 +7 -7 jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java (In the diff below, changes in quantity of whitespace are not shown.) Index: CoreServlet.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -b -r1.21 -r1.22 --- CoreServlet.java 2 May 2005 00:29:14 -0000 1.21 +++ CoreServlet.java 5 May 2005 15:31:36 -0000 1.22 @@ -15,11 +15,6 @@ import org.jboss.portal.core.plugins.page.Page; import org.jboss.portal.core.plugins.page.PageRepository; import org.jboss.portal.core.plugins.page.WindowLocation; -import org.jboss.portal.core.theme.Item; -import org.jboss.portal.core.theme.LayoutDispatcher; -import org.jboss.portal.core.theme.PageHolder; -import org.jboss.portal.core.theme.Region; -import org.jboss.portal.core.theme.RegionSet; import org.jboss.portal.server.LayoutServer; import org.jboss.portal.server.Portal; import org.jboss.portal.server.PortalRequest; @@ -37,8 +32,13 @@ import org.jboss.portal.server.output.SecurityErrorResult; import org.jboss.portal.server.output.StreamResult; import org.jboss.portal.server.servlet.AbstractMainServlet; +import org.jboss.portal.server.theme.Item; import org.jboss.portal.server.theme.LayoutConstants; +import org.jboss.portal.server.theme.LayoutDispatcher; +import org.jboss.portal.server.theme.PageHolder; import org.jboss.portal.server.theme.PortalLayout; +import org.jboss.portal.server.theme.Region; +import org.jboss.portal.server.theme.RegionSet; import org.jboss.portal.server.theme.ThemeConstants; import javax.servlet.ServletException; @@ -49,7 +49,7 @@ /** * @author <a href="mailto:ju...@jb...">Julien Viet</a> - * @version $Revision: 1.21 $ + * @version $Revision: 1.22 $ */ public class CoreServlet extends AbstractMainServlet { @@ -166,7 +166,7 @@ // } // Portal portal = req.getPortal(); - PageHolder page = new PageHolder(/*main, */regions); + PageHolder page = new PageHolder(regions); req.setAttribute("PAGE", page); req.setAttribute("REQ", req); req.setAttribute("RESP", resp); |
From: Julien V. <ju...@jb...> - 2005-05-05 20:58:43
|
User: julien Date: 05/05/05 16:58:30 Modified: core/src/main/org/jboss/portal/core/servlet TransactionFilter.java Log: - bugfix for deployed portals Revision Changes Path 1.4 +6 -1 jboss-portal/core/src/main/org/jboss/portal/core/servlet/TransactionFilter.java (In the diff below, changes in quantity of whitespace are not shown.) Index: TransactionFilter.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/servlet/TransactionFilter.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -b -r1.3 -r1.4 --- TransactionFilter.java 21 Jan 2005 14:02:47 -0000 1.3 +++ TransactionFilter.java 5 May 2005 20:58:30 -0000 1.4 @@ -22,13 +22,14 @@ import org.apache.log4j.Logger; import org.jboss.portal.common.transaction.Transactions; +import org.jboss.portal.common.transaction.NestedException; /** * Wraps a servlet into a user transaction. Behaviour * is similar as RequiresNew in EJB world. * * @author <a href="mailto:ju...@jb...">Julien Viet</a> - * @version $Revision: 1.3 $ + * @version $Revision: 1.4 $ */ public class TransactionFilter implements Filter { @@ -80,6 +81,10 @@ } }); } + catch (NestedException e) + { + throw new ServletException(e.getCause()); + } catch (Exception e) { throw new ServletException(e); |
From: Martin H. <mho...@no...> - 2005-05-10 22:08:21
|
User: mholzner Date: 05/05/10 18:08:13 Modified: core/src/main/org/jboss/portal/core/servlet CoreServlet.java Log: added java doc Revision Changes Path 1.23 +13 -1 jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java (In the diff below, changes in quantity of whitespace are not shown.) Index: CoreServlet.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -b -r1.22 -r1.23 --- CoreServlet.java 5 May 2005 15:31:36 -0000 1.22 +++ CoreServlet.java 10 May 2005 22:08:13 -0000 1.23 @@ -21,6 +21,7 @@ import org.jboss.portal.server.PortalResponse; import org.jboss.portal.server.PortalServer; import org.jboss.portal.server.ServerObjectID; +import org.jboss.portal.server.ThemeServer; import org.jboss.portal.server.Window; import org.jboss.portal.server.WindowContext; import org.jboss.portal.server.output.ActionResult; @@ -49,7 +50,7 @@ /** * @author <a href="mailto:ju...@jb...">Julien Viet</a> - * @version $Revision: 1.22 $ + * @version $Revision: 1.23 $ */ public class CoreServlet extends AbstractMainServlet { @@ -172,6 +173,7 @@ req.setAttribute("RESP", resp); // handle the theme + publishThemeServerToRequest(req); String themeName = req.getParameter(ThemeConstants.PARAM_THEME); if (themeName == null) { @@ -281,4 +283,14 @@ throw new ServletException("Unknown result " + tmp); } } + + // pass the theme server on to anyone that is interested down stream (jsp/portlet) + private void publishThemeServerToRequest(PortalRequest request) + { + ThemeServer themeServer = request.getServer().getManager().getThemeServer(); + if (themeServer != null) + { + request.setAttribute(ThemeConstants.ATTR_THEMESERVER, themeServer); + } + } } |
From: Martin H. <mho...@no...> - 2005-05-17 21:50:26
|
User: mholzner Date: 05/05/17 17:50:14 Modified: core/src/main/org/jboss/portal/core/servlet CoreServlet.java Log: named rendersets and strategies are now being properly removed uppon undeploy; slight change in custom strategy impl: now needs to extend AbstractLayoutStrategy (was implements LayoutStrategy) Revision Changes Path 1.24 +75 -86 jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java (In the diff below, changes in quantity of whitespace are not shown.) Index: CoreServlet.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -b -r1.23 -r1.24 --- CoreServlet.java 10 May 2005 22:08:13 -0000 1.23 +++ CoreServlet.java 17 May 2005 21:50:14 -0000 1.24 @@ -16,7 +16,6 @@ import org.jboss.portal.core.plugins.page.PageRepository; import org.jboss.portal.core.plugins.page.WindowLocation; import org.jboss.portal.server.LayoutServer; -import org.jboss.portal.server.Portal; import org.jboss.portal.server.PortalRequest; import org.jboss.portal.server.PortalResponse; import org.jboss.portal.server.PortalServer; @@ -50,7 +49,7 @@ /** * @author <a href="mailto:ju...@jb...">Julien Viet</a> - * @version $Revision: 1.23 $ + * @version $Revision: 1.24 $ */ public class CoreServlet extends AbstractMainServlet { @@ -70,7 +69,6 @@ } else if (tmp == null || tmp instanceof ActionResult || tmp instanceof NoResult) { -// FragmentResult main = null; RegionSet regions = new RegionSet(); for (Iterator i = resp.getRenderResults(); i.hasNext();) { @@ -127,23 +125,10 @@ if (result instanceof FragmentResult) { FragmentResult fragment = (FragmentResult)result; -// ServerObjectID defaultWindow = (ServerObjectID)req.getAttribute(CoreConstants.REQ_ATT_DEFAULTWINDOWID); WindowContext windowContext = (WindowContext)fragment.getProducer(); ServerObjectID id = windowContext.getID(); PortalServer container = req.getServer(); Window window = (Window)container.getObject(id); - // if this portlet is the default one, or if it is maximized, - // set it into main -// if ((main == null && window.getID().equals(defaultWindow)) || -// WindowState.MAXIMIZED.equals(windowContext.getWindowState())) -// { -// // place the default portlet of the page into the main area -// log.debug("assigning default to main: " + window.getName()); -// main = fragment; -// //+++TODO: the concept of main must be reworked -// } -// else -// { CorePortal portal = (CorePortal)window.getPortal(); PageRepository repo = portal.getPageRepository(); Page page = repo.getPageByWindow(id); @@ -156,17 +141,9 @@ regions.addRegion(region); } region.add(new Item(height, fragment)); -// } } } - // -// if (main == null) -// { -// throw new ServletException("no main, please define a default portlet for the page"); -// } - // - Portal portal = req.getPortal(); PageHolder page = new PageHolder(regions); req.setAttribute("PAGE", page); req.setAttribute("REQ", req); @@ -174,20 +151,63 @@ // handle the theme publishThemeServerToRequest(req); - String themeName = req.getParameter(ThemeConstants.PARAM_THEME); - if (themeName == null) + // now check for the defined renderSet (if any) + publishRenderSetToRequest(req); + + // handle the layout + getLayoutAndDelegate(req, resp); + } + else if (tmp instanceof ErrorResult) { - themeName = (String)portal.getProperties().get(CoreConstants.PORTAL_PROP_THEME); + // This an error that occured during the action request + ErrorResult error = (ErrorResult)tmp; + String message = "An error occured during the action request : " + error.getMessage(); + Throwable throwable = error.getThrowable(); + if (throwable == null) + { + log.error(message); + throw new ServletException(message); } - if (themeName != null) + else { - req.setAttribute(ThemeConstants.ATTR_THEME, themeName); + log.error(message, throwable); + throw new ServletException(message, error.getThrowable()); + } + } + else if (tmp instanceof AuthenticateResult) + { + AuthenticateResult result = (AuthenticateResult)tmp; + String url = req.getContextPath() + "/login?redirect=" + Tools.createXWWWFormURLEncoded(result.getTarget().toString()); + resp.sendRedirect(url); + } + else if (tmp instanceof StreamResult) + { + OutputStream out = null; + try + { + StreamResult result = (StreamResult)tmp; + String contentType = result.getContentType(); + byte[] bytes = result.getBytes(); + resp.setContentType(contentType); + out = resp.getOutputStream(); + out.write(bytes); + } + finally + { + Tools.safeClose(out); + } + } + else + { + throw new ServletException("Unknown result " + tmp); + } } - log.debug("requesting theme: " + themeName); - // handle the layout - PortalLayout layout = (PortalLayout)req.getAttribute(LayoutConstants.PARAM_LAYOUT); + private void getLayoutAndDelegate(PortalRequest req, PortalResponse resp) + throws ServletException, IOException + { String layoutURI = null; + PortalLayout layout = (PortalLayout)req.getAttribute(LayoutConstants.PARAM_LAYOUT); // if the layout was set via the layout strategy (interceptor) if (layout != null) { @@ -201,7 +221,7 @@ String layoutName = req.getParameter(LayoutConstants.PARAM_LAYOUT); if (layoutName == null) { - layoutName = (String)portal.getProperties().get(CoreConstants.PORTAL_PROP_LAYOUT); + layoutName = (String)req.getPortal().getProperties().get(CoreConstants.PORTAL_PROP_LAYOUT); } if (layoutName == null) @@ -225,72 +245,41 @@ } log.debug("got layout to use [" + layout.getName() + "] in app [" + layout.getAppName() + "] uri [" + layout.getURI() + "]"); - // now check for the defined renderSet (if any) - String renderSetName = (String)portal.getProperties().get(CoreConstants.PORTAL_PROP_RENDERSET); - if (renderSetName == null) - { - // default to the divRenderer, if no renderSet was specified in the portal (as property) - renderSetName = "divRenderer"; - } - req.setAttribute(LayoutConstants.ATTR_RENDERSET, renderSetName); - // Perform dispatch LayoutDispatcher dispatcher = new LayoutDispatcher(layout, layoutURI); dispatcher.include(req, resp); } - else if (tmp instanceof ErrorResult) - { - // This an error that occured during the action request - ErrorResult error = (ErrorResult)tmp; - String message = "An error occured during the action request : " + error.getMessage(); - Throwable throwable = error.getThrowable(); - if (throwable == null) - { - log.error(message); - throw new ServletException(message); - } - else - { - log.error(message, throwable); - throw new ServletException(message, error.getThrowable()); - } - } - else if (tmp instanceof AuthenticateResult) - { - AuthenticateResult result = (AuthenticateResult)tmp; - String url = req.getContextPath() + "/login?redirect=" + Tools.createXWWWFormURLEncoded(result.getTarget().toString()); - resp.sendRedirect(url); - } - else if (tmp instanceof StreamResult) - { - OutputStream out = null; - try - { - StreamResult result = (StreamResult)tmp; - String contentType = result.getContentType(); - byte[] bytes = result.getBytes(); - resp.setContentType(contentType); - out = resp.getOutputStream(); - out.write(bytes); - } - finally + + // check for the defined renderSet (if any) + private void publishRenderSetToRequest(PortalRequest req) { - Tools.safeClose(out); - } - } - else + String renderSetName = (String)req.getPortal().getProperties().get(CoreConstants.PORTAL_PROP_RENDERSET); + if (renderSetName == null) { - throw new ServletException("Unknown result " + tmp); + // default to the divRenderer, if no renderSet was specified in the portal (as property) + renderSetName = "divRenderer"; } + req.setAttribute(LayoutConstants.ATTR_RENDERSET, renderSetName); } - // pass the theme server on to anyone that is interested down stream (jsp/portlet) + // pass the theme server and the theme name on to anyone that is interested down stream (jsp/portlet) private void publishThemeServerToRequest(PortalRequest request) { ThemeServer themeServer = request.getServer().getManager().getThemeServer(); if (themeServer != null) { request.setAttribute(ThemeConstants.ATTR_THEMESERVER, themeServer); + + String themeName = request.getParameter(ThemeConstants.PARAM_THEME); + if (themeName == null) + { + themeName = (String)request.getPortal().getProperties().get(CoreConstants.PORTAL_PROP_THEME); + } + if (themeName != null) + { + request.setAttribute(ThemeConstants.ATTR_THEME, themeName); + } + log.debug("requesting theme: " + themeName); } } } |
From: Julien V. <ju...@jb...> - 2005-05-25 11:53:33
|
User: julien Date: 05/05/25 07:53:07 Modified: core/src/main/org/jboss/portal/core/servlet CoreServlet.java Log: JBPORTAL-246 : Set caching headers for files Revision Changes Path 1.25 +22 -1 jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java (In the diff below, changes in quantity of whitespace are not shown.) Index: CoreServlet.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -b -r1.24 -r1.25 --- CoreServlet.java 17 May 2005 21:50:14 -0000 1.24 +++ CoreServlet.java 25 May 2005 11:53:07 -0000 1.25 @@ -49,7 +49,7 @@ /** * @author <a href="mailto:ju...@jb...">Julien Viet</a> - * @version $Revision: 1.24 $ + * @version $Revision: 1.25 $ */ public class CoreServlet extends AbstractMainServlet { @@ -188,7 +188,28 @@ StreamResult result = (StreamResult)tmp; String contentType = result.getContentType(); byte[] bytes = result.getBytes(); + + // How long images are fresh + long howLong = 10 * 60 * 1000; + + // Set content type and length + resp.setContentLength(bytes.length); resp.setContentType(contentType); + + // If content type is an image, css or pdf set them as cached + if (contentType.startsWith("image/") || + "text/css".equals(contentType) || + "application/x-shockwave-flash".equals(contentType)) + { + // cache 15 mn + resp.setDateHeader("Expires", System.currentTimeMillis() + howLong); + resp.setHeader("Cache-Control", "max-age=" + howLong / 1000 + ", " + "s-maxage=" + howLong / 1000); + } + + // Set the filename so the client knows it + // resp.addHeader( "content-disposition", "attachment; filename=\"" + res.getName()+"\""); + + // Push the bytes out = resp.getOutputStream(); out.write(bytes); } |
From: Julien V. <ju...@jb...> - 2005-05-29 22:58:17
|
User: julien Date: 05/05/29 18:57:53 Modified: core/src/main/org/jboss/portal/core/servlet TransactionFilter.java Log: - consolidated the Transactions helper class - added the option to suspend the active Transaction before a portlet is invoked in the case the portlet manages itself a transaction or does not desire to be involved in the transaction managed by the portal Revision Changes Path 1.5 +25 -21 jboss-portal/core/src/main/org/jboss/portal/core/servlet/TransactionFilter.java (In the diff below, changes in quantity of whitespace are not shown.) Index: TransactionFilter.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/servlet/TransactionFilter.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -b -r1.4 -r1.5 --- TransactionFilter.java 5 May 2005 20:58:30 -0000 1.4 +++ TransactionFilter.java 29 May 2005 22:57:53 -0000 1.5 @@ -12,34 +12,35 @@ import javax.naming.InitialContext; import javax.naming.NamingException; +import javax.naming.Context; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; -import javax.transaction.UserTransaction; +import javax.transaction.TransactionManager; +import javax.transaction.Transaction; import org.apache.log4j.Logger; import org.jboss.portal.common.transaction.Transactions; import org.jboss.portal.common.transaction.NestedException; +import org.jboss.portal.common.transaction.TransactionException; /** * Wraps a servlet into a user transaction. Behaviour * is similar as RequiresNew in EJB world. * * @author <a href="mailto:ju...@jb...">Julien Viet</a> - * @version $Revision: 1.4 $ + * @version $Revision: 1.5 $ */ public class TransactionFilter implements Filter { // Attributes ---------------------------------------------------- - /** - * The JNDI context. - */ - private InitialContext ctx; + /** The JNDI context. */ + private TransactionManager tm; // Static -------------------------------------------------------- @@ -51,7 +52,8 @@ { try { - ctx = new InitialContext(); + Context ctx = new InitialContext(); + tm = (TransactionManager)ctx.lookup("java:/TransactionManager"); } catch (NamingException e) { @@ -61,7 +63,7 @@ public void destroy() { - this.ctx = null; + this.tm = null; } public void doFilter(final ServletRequest request, @@ -69,25 +71,27 @@ final FilterChain chain) throws ServletException, IOException { + + Transaction oldTx = null; try { - UserTransaction tx = (UserTransaction)ctx.lookup("UserTransaction"); - Transactions.requiresNew(tx, new Transactions.Runnable() - { - public Object run() throws Exception - { + oldTx = Transactions.applyBefore(Transactions.TYPE_REQUIRED, tm); chain.doFilter(request, response); - return null; } - }); + catch (TransactionException e) + { + throw new ServletException(e); } - catch (NestedException e) + finally + { + try { - throw new ServletException(e.getCause()); + Transactions.applyAfter(Transactions.TYPE_REQUIRED, tm, oldTx); } - catch (Exception e) + catch (TransactionException e) { - throw new ServletException(e); + log.error("", e); + } } } } |
From: Martin H. <mho...@no...> - 2005-07-04 02:12:36
|
User: mholzner Date: 05/07/03 22:11:47 Modified: core/src/main/org/jboss/portal/core/servlet CoreServlet.java Log: themes are now in their own module; adjustments to new 2.2 architecture Revision Changes Path 1.26 +5 -38 jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java (In the diff below, changes in quantity of whitespace are not shown.) Index: CoreServlet.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -b -r1.25 -r1.26 --- CoreServlet.java 25 May 2005 11:53:07 -0000 1.25 +++ CoreServlet.java 4 Jul 2005 02:11:47 -0000 1.26 @@ -8,48 +8,13 @@ *****************************************/ package org.jboss.portal.core.servlet; -import org.jboss.portal.common.util.Tools; -import org.jboss.portal.core.CoreConstants; -import org.jboss.portal.core.CorePortal; -import org.jboss.portal.core.output.AuthenticateResult; -import org.jboss.portal.core.plugins.page.Page; -import org.jboss.portal.core.plugins.page.PageRepository; -import org.jboss.portal.core.plugins.page.WindowLocation; -import org.jboss.portal.server.LayoutServer; -import org.jboss.portal.server.PortalRequest; -import org.jboss.portal.server.PortalResponse; -import org.jboss.portal.server.PortalServer; -import org.jboss.portal.server.ServerObjectID; -import org.jboss.portal.server.ThemeServer; -import org.jboss.portal.server.Window; -import org.jboss.portal.server.WindowContext; -import org.jboss.portal.server.output.ActionResult; -import org.jboss.portal.server.output.ErrorResult; -import org.jboss.portal.server.output.FragmentResult; -import org.jboss.portal.server.output.HTTPRedirectionResult; -import org.jboss.portal.server.output.NoResult; -import org.jboss.portal.server.output.Result; -import org.jboss.portal.server.output.SecurityErrorResult; -import org.jboss.portal.server.output.StreamResult; import org.jboss.portal.server.servlet.AbstractMainServlet; -import org.jboss.portal.server.theme.Item; -import org.jboss.portal.server.theme.LayoutConstants; -import org.jboss.portal.server.theme.LayoutDispatcher; -import org.jboss.portal.server.theme.PageHolder; -import org.jboss.portal.server.theme.PortalLayout; -import org.jboss.portal.server.theme.Region; -import org.jboss.portal.server.theme.RegionSet; -import org.jboss.portal.server.theme.ThemeConstants; import javax.servlet.ServletException; -import java.io.IOException; -import java.io.OutputStream; -import java.io.Writer; -import java.util.Iterator; /** * @author <a href="mailto:ju...@jb...">Julien Viet</a> - * @version $Revision: 1.25 $ + * @version $Revision: 1.26 $ */ public class CoreServlet extends AbstractMainServlet { @@ -59,6 +24,7 @@ super.init(); } +/* protected void render(PortalRequest req, PortalResponse resp) throws IOException, ServletException { Result tmp = resp.getTargetResult(); @@ -251,7 +217,7 @@ } log.debug("requesting layout: " + layoutName); - LayoutServer layoutServer = req.getServer().getManager().getLayoutServer(); + LayoutService layoutServer = req.getServer().getManager().getLayoutServer(); layout = layoutServer.getLayout(layoutName, true); if (layout != null) @@ -286,7 +252,7 @@ // pass the theme server and the theme name on to anyone that is interested down stream (jsp/portlet) private void publishThemeServerToRequest(PortalRequest request) { - ThemeServer themeServer = request.getServer().getManager().getThemeServer(); + ThemeService themeServer = request.getServer().getManager().getThemeServer(); if (themeServer != null) { request.setAttribute(ThemeConstants.ATTR_THEMESERVER, themeServer); @@ -303,4 +269,5 @@ log.debug("requesting theme: " + themeName); } } +*/ } |
From: Julien V. <ju...@jb...> - 2005-07-10 23:05:13
|
User: julien Date: 05/07/10 19:04:03 Removed: core/src/main/org/jboss/portal/core/servlet TransactionFilter.java Log: - electroshocs to brought the core back to life - organized the CoreController around Command : a command executes some logic, for now we have two commands which are * InvokeComponentCommand : invoke a component * RenderPageCommand : render a page we should have other command in the future in order to add logic that is not contained in portlets (like moving a page from a region to another region, etc...) - Refactored the server objects a bit : * The Instance is a specialization of a Component which contains an handle of a Component (a string pointer to it), the instance only knows about the component * The Page is an object that contains an handle to a Portal and contains a set of window objects * The Window is a the object that form a ternary relationship between the page and the instance, it contains data like the instance location on the page - moved the TransactionFilter to a server TransactionInterceptor for more consistency and not leave this concern as a web concern - all portlets are inactive except the user portlet |
From: Martin H. <mho...@no...> - 2005-07-19 17:15:31
|
User: mholzner Date: 05/07/19 13:14:28 Modified: core/src/main/org/jboss/portal/core/servlet CoreServlet.java Log: more work on the way to get the theme and layout functionality back alive Revision Changes Path 1.27 +3 -3 jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java (In the diff below, changes in quantity of whitespace are not shown.) Index: CoreServlet.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java,v retrieving revision 1.26 retrieving revision 1.27 diff -u -b -r1.26 -r1.27 --- CoreServlet.java 4 Jul 2005 02:11:47 -0000 1.26 +++ CoreServlet.java 19 Jul 2005 17:14:28 -0000 1.27 @@ -14,7 +14,7 @@ /** * @author <a href="mailto:ju...@jb...">Julien Viet</a> - * @version $Revision: 1.26 $ + * @version $Revision: 1.27 $ */ public class CoreServlet extends AbstractMainServlet { @@ -194,7 +194,7 @@ throws ServletException, IOException { String layoutURI = null; - PortalLayout layout = (PortalLayout)req.getAttribute(LayoutConstants.PARAM_LAYOUT); + PortalLayout layout = (PortalLayout)req.getAttribute(LayoutConstants.ATTR_LAYOUT); // if the layout was set via the layout strategy (interceptor) if (layout != null) { @@ -205,7 +205,7 @@ else { // nothing came via the strategy, so we have to handle it here - String layoutName = req.getParameter(LayoutConstants.PARAM_LAYOUT); + String layoutName = req.getParameter(LayoutConstants.ATTR_LAYOUT); if (layoutName == null) { layoutName = (String)req.getPortal().getProperties().get(CoreConstants.PORTAL_PROP_LAYOUT); |
From: Martin H. <mho...@no...> - 2005-08-04 21:13:56
|
User: mholzner Date: 05/08/04 17:12:41 Modified: core/src/main/org/jboss/portal/core/servlet CoreServlet.java Log: followed Julien's changes to URL param names for the targetWindowID ; cleaned up confusion of window id and window name Revision Changes Path 1.28 +3 -3 jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java (In the diff below, changes in quantity of whitespace are not shown.) Index: CoreServlet.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java,v retrieving revision 1.27 retrieving revision 1.28 diff -u -b -r1.27 -r1.28 --- CoreServlet.java 19 Jul 2005 17:14:28 -0000 1.27 +++ CoreServlet.java 4 Aug 2005 21:12:41 -0000 1.28 @@ -14,7 +14,7 @@ /** * @author <a href="mailto:ju...@jb...">Julien Viet</a> - * @version $Revision: 1.27 $ + * @version $Revision: 1.28 $ */ public class CoreServlet extends AbstractMainServlet { @@ -100,10 +100,10 @@ Page page = repo.getPageByWindow(id); WindowLocation ref = (WindowLocation)page.getLocation(window.getID()); int height = ref.getHeight(); - Region region = regions.getRegion(ref.getRegion()); + Region region = regions.getRegionName(ref.getRegionName()); if (region == null) { - region = new Region(ref.getRegion()); + region = new Region(ref.getRegionName()); regions.addRegion(region); } region.add(new Item(height, fragment)); |
From: Julien V. <ju...@jb...> - 2005-09-10 10:03:05
|
User: julien Date: 05/09/10 06:02:57 Modified: core/src/main/org/jboss/portal/core/servlet CoreServlet.java Log: renammed AbstractMainServlet to PortalServlet Revision Changes Path 1.29 +3 -3 jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java (In the diff below, changes in quantity of whitespace are not shown.) Index: CoreServlet.java =================================================================== RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/servlet/CoreServlet.java,v retrieving revision 1.28 retrieving revision 1.29 diff -u -b -r1.28 -r1.29 --- CoreServlet.java 4 Aug 2005 21:12:41 -0000 1.28 +++ CoreServlet.java 10 Sep 2005 10:02:57 -0000 1.29 @@ -8,15 +8,15 @@ *****************************************/ package org.jboss.portal.core.servlet; -import org.jboss.portal.server.servlet.AbstractMainServlet; +import org.jboss.portal.server.servlet.PortalServlet; import javax.servlet.ServletException; /** * @author <a href="mailto:ju...@jb...">Julien Viet</a> - * @version $Revision: 1.28 $ + * @version $Revision: 1.29 $ */ -public class CoreServlet extends AbstractMainServlet +public class CoreServlet extends PortalServlet { public void init() throws ServletException |
From: Julien V. <ju...@jb...> - 2005-09-10 10:24:39
|
User: julien Date: 05/09/10 06:24:33 Removed: core/src/main/org/jboss/portal/core/servlet CoreServlet.java Log: deleted unused CoreServlet |
From: Roy R. <ru...@jb...> - 2005-09-30 03:46:24
|
User: russo Date: 05/09/29 23:46:22 Added: core/src/main/org/jboss/portal/core/servlet FolderBrowseServlet.java Log: added AJAX directory browser component Revision Changes Path 1.1 date: 2005/09/30 03:46:22; author: russo; state: Exp;jboss-portal/core/src/main/org/jboss/portal/core/servlet/FolderBrowseServlet.java Index: FolderBrowseServlet.java =================================================================== /***************************************** * * * JBoss Portal: The OpenSource Portal * * * * Distributable under LGPL license. * * See terms of license at gnu.org. * * * *****************************************/ package org.jboss.portal.core.servlet; import org.jboss.mx.util.MBeanProxy; import org.jboss.mx.util.MBeanServerLocator; import org.jboss.portal.cms.CMS; import org.jboss.portal.cms.Command; import org.jboss.portal.cms.model.Folder; import org.jboss.portal.core.portlet.cms.admin.CMSAdminConstants; import javax.management.MBeanServer; import javax.management.ObjectName; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; /** * @author <a href="mailto:ro...@jb...">Roy Russo</a> */ public class FolderBrowseServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { MBeanServer mbeanServer = MBeanServerLocator.locateJBoss(); CMS CMSService = (CMS) MBeanProxy.get(CMS.class, new ObjectName("portal:service=CMS"), mbeanServer); String sPath = request.getParameter("navpath"); if(sPath == null) { sPath = "/"; } Command listCMD3 = CMSService.getCommandFactory().createFolderGetListCommand(sPath); Folder mainFolder = (Folder) CMSService.execute(listCMD3); List folders = mainFolder.getFolders(); response.setHeader("Cache-Control", "no-cache"); // or AJAX is blind to folder changes. request.setAttribute("folders", folders); RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(CMSAdminConstants.CMS_JSP_PATH + "/folderlist.jsp"); dispatcher.forward(request, response); } catch(Exception e) { e.printStackTrace(); } } } |
From: Roy R. <ru...@jb...> - 2005-09-30 13:26:52
|
User: russo Date: 05/09/30 09:26:43 Removed: core/src/main/org/jboss/portal/core/servlet FolderBrowseServlet.java Log: bye |