gatein SVN: r8049 - epp/portal/branches/EPP_5_2_Branch/webui/portal/src/main/java/org/exoplatform/portal/application.
by do-not-reply@jboss.org
Author: mwringe
Date: 2011-11-12 10:50:20 -0500 (Sat, 12 Nov 2011)
New Revision: 8049
Modified:
epp/portal/branches/EPP_5_2_Branch/webui/portal/src/main/java/org/exoplatform/portal/application/PortalRequestContext.java
Log:
JBEPP-1358: we need to remove & when sending to the common module (see issue GTNWSRP-187 and gtn r5600)
Modified: epp/portal/branches/EPP_5_2_Branch/webui/portal/src/main/java/org/exoplatform/portal/application/PortalRequestContext.java
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/webui/portal/src/main/java/org/exoplatform/portal/application/PortalRequestContext.java 2011-11-12 01:59:35 UTC (rev 8048)
+++ epp/portal/branches/EPP_5_2_Branch/webui/portal/src/main/java/org/exoplatform/portal/application/PortalRequestContext.java 2011-11-12 15:50:20 UTC (rev 8049)
@@ -206,6 +206,8 @@
String queryString = request_.getQueryString();
if (queryString != null)
{
+ //The QueryStringParser currently only likes & and not &
+ queryString = queryString.replace("&", "&");
Map<String, String[]> queryParams = QueryStringParser.getInstance().parseQueryString(queryString);
parameterMap.putAll(queryParams);
}
13 years, 1 month
gatein SVN: r8048 - in epp/portal/branches/EPP_5_2_Branch: portlet/web/src/main/webapp/skin/portal/webui/component/UIBannerPortlet and 4 other directories.
by do-not-reply@jboss.org
Author: mwringe
Date: 2011-11-11 20:59:35 -0500 (Fri, 11 Nov 2011)
New Revision: 8048
Modified:
epp/portal/branches/EPP_5_2_Branch/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIAdminToolbarPortlet.gtmpl
epp/portal/branches/EPP_5_2_Branch/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIUserToolBarDashboardPortlet.gtmpl
epp/portal/branches/EPP_5_2_Branch/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIUserToolBarGroupPortlet.gtmpl
epp/portal/branches/EPP_5_2_Branch/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIUserToolBarSitePortlet.gtmpl
epp/portal/branches/EPP_5_2_Branch/portlet/web/src/main/webapp/skin/portal/webui/component/UIBannerPortlet/DefaultStylesheet.css
epp/portal/branches/EPP_5_2_Branch/portlet/web/src/main/webapp/skin/portal/webui/component/UINavigationPortlet/DefaultStylesheet.css
epp/portal/branches/EPP_5_2_Branch/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIToolbarContainer/Stylesheet.css
epp/portal/branches/EPP_5_2_Branch/web/eXoResources/src/main/webapp/skin/DefaultSkin/webui/component/UIBreadcumbs/Stylesheet.css
epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_cs.properties
epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_en.properties
epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_fr.properties
epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_it.properties
epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_vi.properties
Log:
JBEPP-1258: tweak some of the css to fix some of the display issues in IE6. Still needs some more fixing :(
Updated the locale settings since a value had its name change.
Modified: epp/portal/branches/EPP_5_2_Branch/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIAdminToolbarPortlet.gtmpl
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIAdminToolbarPortlet.gtmpl 2011-11-11 15:43:02 UTC (rev 8047)
+++ epp/portal/branches/EPP_5_2_Branch/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIAdminToolbarPortlet.gtmpl 2011-11-12 01:59:35 UTC (rev 8048)
@@ -30,7 +30,7 @@
String accountSetting = "javascript:if(document.getElementById('UIMaskWorkspace')) ajaxGet(eXo.env.server.createPortalURL('UIPortal', 'AccountSettings', true));"
%>
<ul class="UIAdminToolbarPortlet UIHorizontalTabs" id="$uicomponent.id" >
- <li class="UITab NormalToolbarTab portlet-menu-item">
+ <li class="UITab portlet-menu-item">
<a class="EditorIcon TBIcon" href="#">$editorLabel</a>
<ul class="MenuItemContainer portlet-menu-cascade" style="display:none;">
<% if(userCouldEditNavigation){ %>
Modified: epp/portal/branches/EPP_5_2_Branch/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIUserToolBarDashboardPortlet.gtmpl
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIUserToolBarDashboardPortlet.gtmpl 2011-11-11 15:43:02 UTC (rev 8047)
+++ epp/portal/branches/EPP_5_2_Branch/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIUserToolBarDashboardPortlet.gtmpl 2011-11-12 01:59:35 UTC (rev 8048)
@@ -96,7 +96,7 @@
String createDashboardLink = nodeURL.setResource(new NavigationResource(SiteType.USER, rcontext.getRemoteUser(), null)).toString();
%>
<ul class="UIUserToolBarDashboardPortlet UIHorizontalTabs" id="$uicomponent.id">
- <li class="UITab NormalToolbarTab">
+ <li class="UITab">
<a class="DashboardIcon TBIcon" href="<%= createDashboardLink%>">Dashboard</a>
</li>
</ul>
@@ -105,7 +105,7 @@
String link = nodeURL.setResource(new NavigationResource(SiteType.USER, rcontext.getRemoteUser(), null)).toString();
%>
<ul class="UIUserToolBarDashboardPortlet UIHorizontalTabs" id="$uicomponent.id" >
- <li class="UITab NormalToolbarTab">
+ <li class="UITab">
<a class="DashboardIcon TBIcon" href="<%= link%>">Dashboard</a>
<% renderDashboards(nodeURL, pcontext, userNodes); %>
</li>
Modified: epp/portal/branches/EPP_5_2_Branch/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIUserToolBarGroupPortlet.gtmpl
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIUserToolBarGroupPortlet.gtmpl 2011-11-11 15:43:02 UTC (rev 8047)
+++ epp/portal/branches/EPP_5_2_Branch/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIUserToolBarGroupPortlet.gtmpl 2011-11-12 01:59:35 UTC (rev 8048)
@@ -92,7 +92,7 @@
def currentPortal = pcontext.getPortalOwner();
%>
<ul class="UIUserToolBarGroupPortlet UIHorizontalTabs" id="$uicomponent.id" >
- <li class="UITab NormalToolbarTab portlet-menu-item">
+ <li class="UITab portlet-menu-item">
<a class="GroupIcon TBIcon" href="<%=nodeURL.setResource(new NavigationResource(SiteType.PORTAL, currentPortal, "groupnavigation")).toString() %>"><%=_ctx.appRes("UIUserToolBarGroupPortlet.header.group")%></a>
<% if (!groupNavigations.isEmpty()) { %>
<ul style="display:none" class="MenuItemContainer portlet-menu-cascade">
Modified: epp/portal/branches/EPP_5_2_Branch/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIUserToolBarSitePortlet.gtmpl
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIUserToolBarSitePortlet.gtmpl 2011-11-11 15:43:02 UTC (rev 8047)
+++ epp/portal/branches/EPP_5_2_Branch/portlet/exoadmin/src/main/webapp/groovy/admintoolbar/webui/component/UIUserToolBarSitePortlet.gtmpl 2011-11-12 01:59:35 UTC (rev 8048)
@@ -136,7 +136,7 @@
%>
<ul class="UIUserToolBarSitePortlet UIHorizontalTabs" id="$uicomponent.id" >
- <li class="UITab NormalToolbarTab portlet-menu-item">
+ <li class="UITab portlet-menu-item">
<a class="SitesIcon TBIcon" href="<%= nodeURL.setResource(new NavigationResource(SiteType.PORTAL, currentPortal, "portalnavigation")).toString() %>">
<%=_ctx.appRes("UIUserToolBarSitePortlet.header.site")%>
</a>
Modified: epp/portal/branches/EPP_5_2_Branch/portlet/web/src/main/webapp/skin/portal/webui/component/UIBannerPortlet/DefaultStylesheet.css
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/portlet/web/src/main/webapp/skin/portal/webui/component/UIBannerPortlet/DefaultStylesheet.css 2011-11-11 15:43:02 UTC (rev 8047)
+++ epp/portal/branches/EPP_5_2_Branch/portlet/web/src/main/webapp/skin/portal/webui/component/UIBannerPortlet/DefaultStylesheet.css 2011-11-12 01:59:35 UTC (rev 8048)
@@ -8,6 +8,7 @@
background: url('DefaultSkin/background/banner-bg.jpg') repeat-x; /* orientation=rt */
border-left: 1px solid #b4b4b4;
border-right: 1px solid #b4b4b4;
+ _height: 0;
}
.UIBannerPortlet .LeftBanner {
Modified: epp/portal/branches/EPP_5_2_Branch/portlet/web/src/main/webapp/skin/portal/webui/component/UINavigationPortlet/DefaultStylesheet.css
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/portlet/web/src/main/webapp/skin/portal/webui/component/UINavigationPortlet/DefaultStylesheet.css 2011-11-11 15:43:02 UTC (rev 8047)
+++ epp/portal/branches/EPP_5_2_Branch/portlet/web/src/main/webapp/skin/portal/webui/component/UINavigationPortlet/DefaultStylesheet.css 2011-11-12 01:59:35 UTC (rev 8048)
@@ -36,6 +36,7 @@
border-top: 1px solid #b4b4b4;
border-left: 1px solid #b4b4b4;
border-right: 1px solid #b4b4b4;
+ _height: 0;
}
.UINavigationPortlet .UINavigationBar {
@@ -106,12 +107,19 @@
cursor: pointer;
}
+.UINavigationPortlet .UINavigationBar .NormalNavigationTab {
+ line-height: 31px;
+}
+
.UINavigationPortlet .NormalNavigationTab a.TabIcon {
color: #fff;
}
/*###########################-Hightlight-NavigationTabTab--############################*/
+.UINavigationPortlet .UINavigationBar .HighlightNavigationTab {
+ line-height: 31px;
+}
.UINavigationPortlet .HighlightNavigationTab .UITab {
Modified: epp/portal/branches/EPP_5_2_Branch/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIToolbarContainer/Stylesheet.css
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIToolbarContainer/Stylesheet.css 2011-11-11 15:43:02 UTC (rev 8047)
+++ epp/portal/branches/EPP_5_2_Branch/web/eXoResources/src/main/webapp/skin/DefaultSkin/portal/webui/component/view/UIToolbarContainer/Stylesheet.css 2011-11-12 01:59:35 UTC (rev 8048)
@@ -9,8 +9,13 @@
padding:0;
margin:0;
list-style:none;
+ _height: 32px;
}
+.UIToolbarContainer ul li a {
+ _height: 0;
+}
+
.UIToolbarContainer .UserInfoPortletTDContainer {
float: right; /* orientation=lt */
float: left; /* orientation=rt */
@@ -53,6 +58,7 @@
padding: 0px 35px 0px 5px; /* orientation=rt */
white-space: nowrap;
color: #540306;
+/* TODO: figure out how to make this work with browsers other than ie6 :( float: left; */
}
.UIToolbarContainer .UITab a:hover {
@@ -105,7 +111,7 @@
position: absolute;
border: 1px solid #9e9fa3;
display: none;
- z-index: 1;
+ z-index: 1;
}
.UIToolbarContainer .MenuItemContainer li{
@@ -231,7 +237,8 @@
padding: 0px 25px 0px 10px; /* orientation=rt */
color: #e66a1f; font-weight:bold; cursor:pointer;
display: block;
- line-height: 32px;
+ line-height: 32px;
+ float: right;
}
.UIToolbarContainer .Name a:hover {
Modified: epp/portal/branches/EPP_5_2_Branch/web/eXoResources/src/main/webapp/skin/DefaultSkin/webui/component/UIBreadcumbs/Stylesheet.css
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/web/eXoResources/src/main/webapp/skin/DefaultSkin/webui/component/UIBreadcumbs/Stylesheet.css 2011-11-11 15:43:02 UTC (rev 8047)
+++ epp/portal/branches/EPP_5_2_Branch/web/eXoResources/src/main/webapp/skin/DefaultSkin/webui/component/UIBreadcumbs/Stylesheet.css 2011-11-12 01:59:35 UTC (rev 8048)
@@ -9,7 +9,8 @@
.UIBreadcumbs {
line-height: 25px;
border-left: 1px solid #b4b4b4;
- border-right: 1px solid #b4b4b4;
+ border-right: 1px solid #b4b4b4;
+ _height: 0;
}
.UIBreadcumbs a {
@@ -51,4 +52,4 @@
float: left; /* orientation=lt */
float: right; /* orientation=rt */
margin: 5px 0px 0px 0px;
-}
\ No newline at end of file
+}
Modified: epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_cs.properties
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_cs.properties 2011-11-11 15:43:02 UTC (rev 8047)
+++ epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_cs.properties 2011-11-12 01:59:35 UTC (rev 8048)
@@ -1029,7 +1029,7 @@
UIUserSelector.msg.empty=Pr\u00E1zdn\u00E9 \u00FAdaje
UIUserSelector.msg.user-required=Za\u0161krtn\u011Bte pros\u00EDm alespo\u0148 jednoho u\u017Eivatele.
-UIUserToolBarDashboard.page.ClickAndType=Klikn\u011Bte & upravte n\u00E1zev str\u00E1nky
+UIUserToolBarDashboard.page.Tab_Default=Klikn\u011Bte & upravte n\u00E1zev str\u00E1nky
UIVTabInputSet.label.personalInfo=Osobn\u00ED informace
@@ -2110,7 +2110,7 @@
UIUserSelector.msg.empty=Pr\u00e1zdn\u00e9 \u00fadaje
UIUserSelector.msg.user-required=Za\u0161krtn\u011bte pros\u00edm alespo\u0148 jednoho u\u017eivatele.
-UIUserToolBarDashboard.page.ClickAndType=Klikn\u011bte & upravte n\u00e1zev str\u00e1nky
+UIUserToolBarDashboard.page.Tab_Default=Klikn\u011bte & upravte n\u00e1zev str\u00e1nky
UIVTabInputSet.label.personalInfo=Osobn\u00ed informace
Modified: epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_en.properties
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_en.properties 2011-11-11 15:43:02 UTC (rev 8047)
+++ epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_en.properties 2011-11-12 01:59:35 UTC (rev 8048)
@@ -1404,7 +1404,7 @@
UIListPermissionSelectorPopup.title.ListPermissionSelector=Select Permission
-UIUserToolBarDashboard.page.ClickAndType=Click & Type Page Name
+UIUserToolBarDashboard.page.Tab_Default=Click & Type Page Name
#######################################################################
# org.exoplatform.webui.core.UIConfirmation #
Modified: epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_fr.properties
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_fr.properties 2011-11-11 15:43:02 UTC (rev 8047)
+++ epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_fr.properties 2011-11-12 01:59:35 UTC (rev 8048)
@@ -1263,7 +1263,7 @@
UIGadget.tooltip.editGadget=Editer la Gadget
UIGadget.tooltip.deleteGadget=Supprimer la Gadget
-UIUserToolBarDashboard.page.ClickAndType=Cliquez pour renommer
+UIUserToolBarDashboard.page.Tab_Default=Cliquez pour renommer
Locale.zh_CN=Chinois simplifié
Locale.zh_TW=Chinois traditionnel
Modified: epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_it.properties
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_it.properties 2011-11-11 15:43:02 UTC (rev 8047)
+++ epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_it.properties 2011-11-12 01:59:35 UTC (rev 8048)
@@ -1379,7 +1379,7 @@
UIListPermissionSelectorPopup.title.ListPermissionSelector=Seleziona il Permesso
-UIUserToolBarDashboard.page.ClickAndType=Clicca e inserisci il nome della pagina
+UIUserToolBarDashboard.page.Tab_Default=Clicca e inserisci il nome della pagina
#######################################################################
# org.exoplatform.webui.core.UIConfirmation #
Modified: epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_vi.properties
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_vi.properties 2011-11-11 15:43:02 UTC (rev 8047)
+++ epp/portal/branches/EPP_5_2_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_vi.properties 2011-11-12 01:59:35 UTC (rev 8048)
@@ -1305,4 +1305,4 @@
UIGadget.tooltip.deleteGadget=Xóa Gadget
UIListPermissionSelectorPopup.title.ListPermissionSelector=Lựa chọn quyền
-UIUserToolBarDashboard.page.ClickAndType=Nhấp chuột và điền tên trang
+UIUserToolBarDashboard.page.Tab_Default=Nhấp chuột và điền tên trang
13 years, 1 month
gatein SVN: r8047 - in epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools: jboss-eppsp and 1 other directory.
by do-not-reply@jboss.org
Author: hfnukal
Date: 2011-11-11 10:43:02 -0500 (Fri, 11 Nov 2011)
New Revision: 8047
Modified:
epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/gatein-portal/pom.xml
epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/jboss-eppsp/pom.xml
Log:
JBEPP-1355 Doc and src packaging, git support
Modified: epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/gatein-portal/pom.xml
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/gatein-portal/pom.xml 2011-11-11 15:05:45 UTC (rev 8046)
+++ epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/gatein-portal/pom.xml 2011-11-11 15:43:02 UTC (rev 8047)
@@ -17,7 +17,7 @@
<properties>
- <mead.target>jboss-epp-5</mead.target>
+ <mead.target>jboss-epp-5</mead.target>
<doc.path>${project.name}-apidoc</doc.path>
<source.path>${project.name}</source.path>
Modified: epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/jboss-eppsp/pom.xml
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/jboss-eppsp/pom.xml 2011-11-11 15:05:45 UTC (rev 8046)
+++ epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/jboss-eppsp/pom.xml 2011-11-11 15:43:02 UTC (rev 8047)
@@ -16,6 +16,9 @@
<name>jboss-eppsp</name>
<properties>
+
+ <mead.target>jboss-epp-5</mead.target>
+
<source.path>${project.name}</source.path>
<doc.path>${project.name}</doc.path>
13 years, 1 month
gatein SVN: r8046 - in epp/portal/branches/EPP_5_2_Branch/distribution: mead-tools and 2 other directories.
by do-not-reply@jboss.org
Author: hfnukal
Date: 2011-11-11 10:05:45 -0500 (Fri, 11 Nov 2011)
New Revision: 8046
Added:
epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/gatein-examples/
epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/gatein-examples/pom.xml
epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/jboss-eppsp/
epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/jboss-eppsp/pom.xml
Modified:
epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/pom.xml
epp/portal/branches/EPP_5_2_Branch/distribution/pom.xml
Log:
JBEPP-1355 Doc and src packaging, git support
Added: epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/gatein-examples/pom.xml
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/gatein-examples/pom.xml (rev 0)
+++ epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/gatein-examples/pom.xml 2011-11-11 15:05:45 UTC (rev 8046)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.exoplatform.portal.mead</groupId>
+ <artifactId>mead.parent</artifactId>
+ <version>5.2.0.ER07-SNAPSHOT</version>
+ <relativePath>../mead.parent/pom.xml</relativePath>
+ </parent>
+
+ <artifactId>mead-gatein-examples</artifactId>
+ <packaging>pom</packaging>
+ <name>examples</name>
+
+ <properties>
+ <!-- Place sources to doc directory -->
+ <source.target.dir>${doc.target.dir}</source.target.dir>
+ <source.path>${project.name}</source.path>
+
+ <scm.type>svn</scm.type>
+ <scm.base>${svn.base}</scm.base>
+ <scm.repo>${svn.gatein.repo}</scm.repo>
+ <scm.path>epp/examples/tags/${gatein.tag}</scm.path>
+
+ <mead.build.profiles></mead.build.profiles>
+ <mead.build.properties></mead.build.properties>
+ <mead.patch.path></mead.patch.path>
+
+ </properties>
+</project>
Added: epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/jboss-eppsp/pom.xml
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/jboss-eppsp/pom.xml (rev 0)
+++ epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/jboss-eppsp/pom.xml 2011-11-11 15:05:45 UTC (rev 8046)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.exoplatform.portal.mead</groupId>
+ <artifactId>mead.parent</artifactId>
+ <version>5.2.0.ER07-SNAPSHOT</version>
+ <relativePath>../mead.parent/pom.xml</relativePath>
+ </parent>
+
+ <artifactId>mead-jboss-eppsp</artifactId>
+ <packaging>pom</packaging>
+ <name>jboss-eppsp</name>
+
+ <properties>
+ <source.path>${project.name}</source.path>
+ <doc.path>${project.name}</doc.path>
+
+ <scm.type>git</scm.type>
+ <scm.base>${git.base}</scm.base>
+ <scm.repo>${git.repo}</scm.repo>
+ <scm.path>epp/jboss-eppsp.git</scm.path>
+ <scm.version>5.2.0.ER06-exo-2.3.2</scm.version>
+ <!--<scm.version>${org.jboss.eppsp.version}</scm.version>-->
+
+ <mead.build.profiles></mead.build.profiles>
+ <mead.build.properties></mead.build.properties>
+ <mead.patch.path></mead.patch.path>
+
+ </properties>
+</project>
Modified: epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/pom.xml
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/pom.xml 2011-11-11 10:56:18 UTC (rev 8045)
+++ epp/portal/branches/EPP_5_2_Branch/distribution/mead-tools/pom.xml 2011-11-11 15:05:45 UTC (rev 8046)
@@ -55,7 +55,8 @@
</build>
<properties>
- <gatein-portal.svnpath>epp/portal/tags/EPP_5_2_0_ER06</gatein-portal.svnpath>
+ <gatein.tag>EPP_5_2_0_ER06</gatein.tag>
+ <!--<gatein-portal.svnpath>epp/portal/tags/${gatein.tag}</gatein-portal.svnpath>-->
<!-- Ant properties -->
<ant.build.file>build.xml</ant.build.file>
@@ -376,5 +377,21 @@
</modules>
</profile>
+ <!--gatein-examples-->
+ <profile>
+ <id>gatein-examples</id>
+ <modules>
+ <module>gatein-examples</module>
+ </modules>
+ </profile>
+
+ <!--jboss-eppsp-->
+ <profile>
+ <id>jboss-eppsp</id>
+ <modules>
+ <module>jboss-eppsp</module>
+ </modules>
+ </profile>
+
</profiles>
</project>
Modified: epp/portal/branches/EPP_5_2_Branch/distribution/pom.xml
===================================================================
--- epp/portal/branches/EPP_5_2_Branch/distribution/pom.xml 2011-11-11 10:56:18 UTC (rev 8045)
+++ epp/portal/branches/EPP_5_2_Branch/distribution/pom.xml 2011-11-11 15:05:45 UTC (rev 8046)
@@ -21,6 +21,7 @@
<sso.version>1.1.0-GA</sso.version>
<portletbridge.version>2.2.0.GA.EPP520</portletbridge.version>
+ <org.jboss.eppsp.version>${project.version}</org.jboss.eppsp.version>
<!-- portlet bridge directory - not used, distribution module name is used as directory name -->
<portletbridge.directory>portletbridge</portletbridge.directory>
13 years, 1 month
gatein SVN: r8045 - in portal/trunk: component/web/resources/src/main/java/org/exoplatform/portal/resource and 6 other directories.
by do-not-reply@jboss.org
Author: trong.tran
Date: 2011-11-11 05:56:18 -0500 (Fri, 11 Nov 2011)
New Revision: 8045
Added:
portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/AbstractResourceService.java
portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/CachedJavascript.java
portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigDeployer.java
Removed:
portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/AbstractResourceHandler.java
portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptDeployer.java
portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptKey.java
portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptRemoval.java
Modified:
portal/trunk/component/web/resources/src/main/java/gatein_resources_1_2.xsd
portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/GateInSkinConfigDeployer.java
portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/GateInSkinConfigRemoval.java
portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/MainResourceResolver.java
portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/SimpleResourceContext.java
portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/SkinService.java
portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/Javascript.java
portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigParser.java
portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigService.java
portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptTask.java
portal/trunk/component/web/resources/src/test/java/org/exoplatform/portal/resource/AbstractSkinServiceTest.java
portal/trunk/component/web/resources/src/test/java/org/exoplatform/portal/resource/MockResourceResolver.java
portal/trunk/component/web/resources/src/test/java/org/exoplatform/portal/resource/TestJavascriptConfigService.java
portal/trunk/component/web/resources/src/test/java/org/exoplatform/portal/resource/TestXSDCorruption.java
portal/trunk/component/web/resources/src/test/resources/mockwebapp/gatein-resources.xml
portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/workspace/UIPortalApplication.gtmpl
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/javascript/JavascriptServlet.java
portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIPortalApplication.java
Log:
GTNPORTAL-1213 Need to provide a way to add customer javascript for each site
Modified: portal/trunk/component/web/resources/src/main/java/gatein_resources_1_2.xsd
===================================================================
--- portal/trunk/component/web/resources/src/main/java/gatein_resources_1_2.xsd 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/main/java/gatein_resources_1_2.xsd 2011-11-11 10:56:18 UTC (rev 8045)
@@ -102,6 +102,9 @@
<xs:complexType name="param">
<xs:sequence>
+ <!-- The portal name loading particular JavaScript module -->
+ <xs:element name="portal-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
+
<!-- The javascript module -->
<xs:element name="js-module" type="xs:string" minOccurs="1" maxOccurs="1"/>
Deleted: portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/AbstractResourceHandler.java
===================================================================
--- portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/AbstractResourceHandler.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/AbstractResourceHandler.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -1,38 +0,0 @@
-/**
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.exoplatform.portal.resource;
-
-import org.gatein.wci.WebAppEvent;
-import org.gatein.wci.WebAppListener;
-
-/**
- *
- * Created by eXoPlatform SAS
- *
- * Author: Minh Hoang TO - hoang281283(a)gmail.com
- *
- * Sep 16, 2009
- */
-public abstract class AbstractResourceHandler implements WebAppListener
-{
-
- abstract public void onEvent(WebAppEvent event);
-
-}
\ No newline at end of file
Added: portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/AbstractResourceService.java
===================================================================
--- portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/AbstractResourceService.java (rev 0)
+++ portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/AbstractResourceService.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -0,0 +1,76 @@
+/**
+ * Copyright (C) 2009 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.exoplatform.portal.resource;
+
+import org.exoplatform.portal.resource.compressor.ResourceCompressor;
+import org.exoplatform.web.application.javascript.JavascriptConfigService;
+
+import javax.servlet.ServletContext;
+
+/**
+ * An abstract class for resource services in Portal like {@link SkinService}
+ * and {@link JavascriptConfigService}
+ *
+ * @author <a href="trongtt(a)gmail.com">Trong Tran</a>
+ * @version $Revision$
+ */
+public abstract class AbstractResourceService
+{
+ protected final MainResourceResolver mainResolver;
+
+ protected final ResourceCompressor compressor;
+
+ public AbstractResourceService(ResourceCompressor compressor)
+ {
+ this.compressor = compressor;
+ this.mainResolver = new MainResourceResolver();
+ }
+
+ /**
+ * Add a resource resolver to plug external resolvers.
+ *
+ * @param resolver
+ * a resolver to add
+ */
+ public void addResourceResolver(ResourceResolver resolver)
+ {
+ mainResolver.resolvers.addIfAbsent(resolver);
+ }
+
+ /**
+ * Registry ServletContext into MainResourceResolver of SkinService
+ * @param sContext
+ * ServletContext will be registried
+ */
+ public void registerContext(ServletContext sContext)
+ {
+ mainResolver.registerContext(sContext);
+ }
+
+ /**
+ * unregister a {@link ServletContext} into {@link MainResourceResolver} of {@link SkinService}
+ *
+ * @param servletContext ServletContext will unregistered
+ */
+ public void unregisterServletContext(ServletContext servletContext)
+ {
+ mainResolver.removeServletContext(servletContext);
+ }
+}
Modified: portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/GateInSkinConfigDeployer.java
===================================================================
--- portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/GateInSkinConfigDeployer.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/GateInSkinConfigDeployer.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -28,6 +28,7 @@
import org.gatein.common.logging.LoggerFactory;
import org.gatein.wci.WebAppEvent;
import org.gatein.wci.WebAppLifeCycleEvent;
+import org.gatein.wci.WebAppListener;
import java.io.InputStream;
import java.net.URL;
@@ -42,7 +43,7 @@
*
* Sep 16, 2009
*/
-public class GateInSkinConfigDeployer extends AbstractResourceHandler
+public class GateInSkinConfigDeployer implements WebAppListener
{
/** . */
Modified: portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/GateInSkinConfigRemoval.java
===================================================================
--- portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/GateInSkinConfigRemoval.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/GateInSkinConfigRemoval.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -25,13 +25,14 @@
import org.gatein.wci.WebAppEvent;
import org.gatein.wci.WebAppLifeCycleEvent;
+import org.gatein.wci.WebAppListener;
/**
* @author <a href="mailto:hoang281283@gmail.com">Minh Hoang TO</a>
* @version $Id$
*
*/
-public class GateInSkinConfigRemoval extends AbstractResourceHandler
+public class GateInSkinConfigRemoval implements WebAppListener
{
private SkinService service;
@@ -41,9 +42,6 @@
this.service = _service;
}
- /**
- * @see org.exoplatform.portal.resource.AbstractResourceHandler#onEvent(org.gatein.wci.WebAppEvent)
- */
@Override
public void onEvent(WebAppEvent event)
{
Modified: portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/MainResourceResolver.java
===================================================================
--- portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/MainResourceResolver.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/MainResourceResolver.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -32,7 +32,7 @@
* @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
* @version $Revision$
*/
-class MainResourceResolver implements ResourceResolver
+public class MainResourceResolver implements ResourceResolver
{
/** . */
@@ -42,19 +42,12 @@
final CopyOnWriteArrayList<ResourceResolver> resolvers;
/** . */
- final Map<SkinKey, SkinConfig> skins;
-
- /** . */
private final Logger log = LoggerFactory.getLogger(MainResourceResolver.class);
- public MainResourceResolver(String portalContainerName, Map<SkinKey, SkinConfig> skins)
+ public MainResourceResolver()
{
- this.skins = skins;
this.contexts = new HashMap<String, SimpleResourceContext>();
this.resolvers = new CopyOnWriteArrayList<ResourceResolver>();
-
- //
- resolvers.add(new CompositeResourceResolver(portalContainerName, skins));
}
/**
Modified: portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/SimpleResourceContext.java
===================================================================
--- portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/SimpleResourceContext.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/SimpleResourceContext.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -20,6 +20,7 @@
package org.exoplatform.portal.resource;
import java.io.IOException;
+import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.MalformedURLException;
@@ -49,25 +50,18 @@
int i2 = path.lastIndexOf("/") + 1;
String targetedParentPath = path.substring(0, i2);
String targetedFileName = path.substring(i2);
- try
- {
- final URL url = context.getResource(path);
- if (url != null)
+ final InputStream inputStream = context.getResourceAsStream(path);
+ if (inputStream != null)
{
return new Resource(contextPath, targetedParentPath, targetedFileName)
{
@Override
public Reader read() throws IOException
{
- return new InputStreamReader(url.openStream());
+ return new InputStreamReader(inputStream);
}
};
}
- }
- catch (MalformedURLException e)
- {
- e.printStackTrace();
- }
return null;
}
Modified: portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/SkinService.java
===================================================================
--- portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/SkinService.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/main/java/org/exoplatform/portal/resource/SkinService.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -39,6 +39,7 @@
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.exoplatform.services.resources.Orientation;
+import org.gatein.wci.WebAppListener;
import org.gatein.wci.impl.DefaultServletContainerFactory;
import org.picocontainer.Startable;
@@ -66,7 +67,7 @@
@Property(key = "type", value = "skin")})
@ManagedDescription("Skin service")
@RESTEndpoint(path = "skinservice")
-public class SkinService implements Startable
+public class SkinService extends AbstractResourceService implements Startable
{
protected static Log log = ExoLogger.getLogger("portal.SkinService");
@@ -108,10 +109,10 @@
public static final String DEFAULT_SKIN = "Default";
/** The deployer. */
- private final AbstractResourceHandler deployer;
+ private final WebAppListener deployer;
/** The removal. */
- private final AbstractResourceHandler removal;
+ private final WebAppListener removal;
private final Map<SkinKey, SkinConfig> portalSkins_;
@@ -125,8 +126,6 @@
private final Map<String, Set<String>> portletThemes_;
- private final MainResourceResolver mainResolver;
-
/**
* The name of the portal container
*/
@@ -140,10 +139,9 @@
*/
final String id = Long.toString(System.currentTimeMillis());
- private ResourceCompressor compressor;
-
public SkinService(ExoContainerContext context, ResourceCompressor compressor)
{
+ super(compressor);
Loader<String, CachedStylesheet, Orientation> loader = new Loader<String, CachedStylesheet, Orientation>()
{
public CachedStylesheet retrieve(Orientation context, String key) throws Exception
@@ -174,7 +172,6 @@
};
//
- this.compressor = compressor;
portalSkins_ = new LinkedHashMap<SkinKey, SkinConfig>();
skinConfigs_ = new LinkedHashMap<SkinKey, SkinConfig>(20);
availableSkins_ = new HashSet<String>(5);
@@ -182,9 +179,10 @@
rtCache = new FutureMap<String, CachedStylesheet, Orientation>(loader);
portletThemes_ = new HashMap<String, Set<String>>();
portalContainerName = context.getPortalContainerName();
- mainResolver = new MainResourceResolver(portalContainerName, skinConfigs_);
deployer = new GateInSkinConfigDeployer(portalContainerName, this);
removal = new GateInSkinConfigRemoval(this);
+
+ addResourceResolver(new CompositeResourceResolver(portalContainerName, skinConfigs_));
}
/**
@@ -425,17 +423,6 @@
}
/**
- * Add a resource resolver to plug external resolvers.
- *
- * @param resolver
- * a resolver to add
- */
- public void addResourceResolver(ResourceResolver resolver)
- {
- mainResolver.resolvers.addIfAbsent(resolver);
- }
-
- /**
* Registry theme category with its themes for portlet Theme
* @param categoryName
* category name that will be registried
@@ -999,26 +986,6 @@
}
/**
- * Registry ServletContext into MainResourceResolver of SkinService
- * @param sContext
- * ServletContext will be registried
- */
- public void registerContext(ServletContext sContext)
- {
- mainResolver.registerContext(sContext);
- }
-
- /**
- * unregister a {@link ServletContext} into {@link MainResourceResolver} of {@link SkinService}
- *
- * @param servletContext ServletContext will unregistered
- */
- public void unregisterServletContext(ServletContext servletContext)
- {
- mainResolver.removeServletContext(servletContext);
- }
-
- /**
* Clean cache, reload all Skins
*/
@Managed
Added: portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/CachedJavascript.java
===================================================================
--- portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/CachedJavascript.java (rev 0)
+++ portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/CachedJavascript.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2010 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.exoplatform.web.application.javascript;
+
+import java.util.Date;
+
+/**
+ * @author <a href="trongtt(a)gmail.com">Trong Tran</a>
+ * @version $Revision$
+ */
+public class CachedJavascript
+{
+ /** . */
+ private final String text;
+
+ private long lastModified;
+
+ public CachedJavascript(String text)
+ {
+ this.text = text;
+
+ // Remove miliseconds because string of date retrieve from Http header doesn't have miliseconds
+ lastModified = (new Date().getTime() / 1000) * 1000;
+ }
+
+ public String getText()
+ {
+ return text;
+ }
+
+ public long getLastModified()
+ {
+ return lastModified;
+ }
+}
Modified: portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/Javascript.java
===================================================================
--- portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/Javascript.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/Javascript.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -19,58 +19,97 @@
package org.exoplatform.web.application.javascript;
-import javax.servlet.ServletContext;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-
/**
* @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
* @version $Revision$
*/
public class Javascript
{
-
/** . */
- private final JavascriptKey key;
+ private final String module;
/** . */
- private final ServletContext context;
+ private final String contextPath;
/** . */
private final int priority;
- public Javascript(JavascriptKey key, ServletContext context, Integer priority)
+ private final String path;
+
+ public Javascript(String module, String path, String contextPath, int priority)
{
- this.key = key;
- this.context = context;
- this.priority = priority != null ? priority : -1;
+ this.module = module;
+ if (path.startsWith("http://") || path.startsWith("https://"))
+ {
+ this.path = path;
+ }
+ else
+ {
+ this.path = contextPath + path;
+ }
+ this.contextPath = contextPath;
+ this.priority = priority < 0 ? Integer.MAX_VALUE : priority;
}
public String getPath() {
- if(key.isExternalScript())
- {
- return key.getScriptPath();
- }
- return key.getContextPath() + key.getScriptPath();
+ return this.path;
}
- public JavascriptKey getKey()
+ public String getModule()
{
- return key;
+ return module;
}
- public ServletContext getContext()
+ public String getContextPath()
{
- return context;
+ return this.contextPath;
}
public int getPriority()
{
return priority;
}
+
+ public boolean isExternalScript()
+ {
+ return (path.startsWith("http://") || path.startsWith("https://")) ? true : false;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "Javascript[module=" + module + ", path=" + path +"]";
+ }
+
+ public static class PortalJScript extends Javascript
+ {
+ private final String portalName;
- public BufferedReader getReader()
+ public PortalJScript(String module, String path, String contextPath, int priority, String portalName)
+ {
+ super(module, path, contextPath, priority);
+ this.portalName = portalName;
+ }
+
+ public String getPortalName()
+ {
+ return portalName;
+ }
+ }
+
+ public static class ExtendedJScript extends Javascript
{
- return new BufferedReader(new InputStreamReader(context.getResourceAsStream(key.getScriptPath())));
+ private final String script;
+
+ public ExtendedJScript(String module, String path, String contextPath, String script)
+ {
+ super(module, path, contextPath, Integer.MAX_VALUE);
+ this.script = script;
+ }
+
+ public String getScript()
+ {
+ return this.script;
+ }
}
}
Added: portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigDeployer.java
===================================================================
--- portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigDeployer.java (rev 0)
+++ portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigDeployer.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -0,0 +1,137 @@
+/*
+ * Copyright (C) 2011 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.exoplatform.web.application.javascript;
+
+import org.exoplatform.commons.utils.Safe;
+import org.exoplatform.container.PortalContainer;
+import org.exoplatform.container.RootContainer.PortalContainerPostInitTask;
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
+import org.gatein.wci.WebAppEvent;
+import org.gatein.wci.WebAppLifeCycleEvent;
+import org.gatein.wci.WebAppListener;
+
+import java.io.InputStream;
+
+import javax.servlet.ServletContext;
+
+/**
+ * An listener for listening the ADDED and REMOVED events of the webapp
+ * to deploy/undeploy Javascript configured in <code>/WEB-INF/gatein-resources.xml</code> file.
+ *
+ * @author <a href="trongtt(a)gmail.com">Trong Tran</a>
+ * @version $Revision$
+ */
+public class JavascriptConfigDeployer implements WebAppListener
+{
+
+ private static final String GATEIN_CONFIG_RESOURCE = "/WEB-INF/gatein-resources.xml";
+
+ /**
+ * Logger
+ */
+ private static final Log LOG = ExoLogger.getLogger(JavascriptConfigDeployer.class);
+
+ /** . */
+ private final JavascriptConfigService javascriptService;
+
+ /**
+ * The name of the portal container
+ */
+ private final String portalContainerName;
+
+ public JavascriptConfigDeployer(String portalContainerName, JavascriptConfigService javascriptService)
+ {
+ this.javascriptService = javascriptService;
+ this.portalContainerName = portalContainerName;
+ }
+
+ public void onEvent(WebAppEvent event)
+ {
+ if (event instanceof WebAppLifeCycleEvent)
+ {
+ WebAppLifeCycleEvent lifeCycleEvent = (WebAppLifeCycleEvent)event;
+ ServletContext servletContext = lifeCycleEvent.getWebApp().getServletContext();
+ switch (lifeCycleEvent.getType())
+ {
+ case WebAppLifeCycleEvent.ADDED:
+ add(servletContext);
+ break;
+ case WebAppLifeCycleEvent.REMOVED:
+ remove(servletContext);
+ break;
+ }
+ }
+ }
+
+ private void add(ServletContext scontext)
+ {
+ try
+ {
+ InputStream is = scontext.getResourceAsStream(GATEIN_CONFIG_RESOURCE);
+ if (is == null)
+ {
+ return;
+ }
+
+ Safe.close(is);
+
+ final PortalContainerPostInitTask task = new PortalContainerPostInitTask()
+ {
+
+ public void execute(ServletContext scontext, PortalContainer portalContainer)
+ {
+ register(scontext, portalContainer);
+ javascriptService.registerContext(scontext);
+ }
+ };
+ PortalContainer.addInitTask(scontext, task, portalContainerName);
+ }
+ catch (Exception ex)
+ {
+ LOG.error("An error occurs while registering 'Javascript in gatein-resources.xml' from the context '"
+ + (scontext == null ? "unknown" : scontext.getServletContextName()) + "'", ex);
+ }
+ }
+
+ private void remove(ServletContext scontext)
+ {
+ javascriptService.unregisterServletContext(scontext);
+ }
+
+ private void register(ServletContext scontext, PortalContainer container)
+ {
+ InputStream is = null;
+ try
+ {
+ is = scontext.getResourceAsStream(GATEIN_CONFIG_RESOURCE);
+ JavascriptConfigParser.processConfigResource(is, javascriptService, scontext);
+ }
+ catch (Exception ex)
+ {
+ LOG.error("An error occurs while processing 'Javascript in gatein-resources.xml' from the context '"
+ + scontext.getServletContextName() + "'", ex);
+ }
+ finally
+ {
+ Safe.close(is);
+ }
+ }
+}
\ No newline at end of file
Modified: portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigParser.java
===================================================================
--- portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigParser.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigParser.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -47,6 +47,8 @@
final public static String JAVA_SCRIPT_PATH = "js-path";
final public static String JAVA_SCRIPT_PRIORITY = "js-priority";
+
+ final public static String JAVA_SCRIPT_PORTAL_NAME = "portal-name";
/** . */
private ServletContext context;
@@ -118,19 +120,37 @@
param_ele.getElementsByTagName(JAVA_SCRIPT_MODULE).item(0).getFirstChild().getNodeValue();
String js_path =
param_ele.getElementsByTagName(JAVA_SCRIPT_PATH).item(0).getFirstChild().getNodeValue();
- Integer js_priority = null;
+ int priority;
try
{
- js_priority =
+ priority =
Integer.valueOf(param_ele.getElementsByTagName(JAVA_SCRIPT_PRIORITY).item(0)
- .getFirstChild().getNodeValue());
+ .getFirstChild().getNodeValue()).intValue();
}
catch (Exception e)
{
- //Js_priority still is null;
+ priority = Integer.MAX_VALUE;
}
- JavascriptKey key = new JavascriptKey(js_module, js_path, context.getContextPath());
- Javascript js = new Javascript(key, context, js_priority);
+ String portalName = null;
+ try
+ {
+ portalName = param_ele.getElementsByTagName(JAVA_SCRIPT_PORTAL_NAME).item(0)
+ .getFirstChild().getNodeValue();
+ }
+ catch (Exception e)
+ {
+ // portal-name is null
+ }
+
+ Javascript js;
+ if (portalName == null)
+ {
+ js = new Javascript(js_module, js_path, context.getContextPath(), priority);
+ }
+ else
+ {
+ js = new Javascript.PortalJScript(js_module, js_path, context.getContextPath(), priority, portalName);
+ }
task.addScript(js);
}
return task;
Modified: portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigService.java
===================================================================
--- portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigService.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigService.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -19,256 +19,298 @@
package org.exoplatform.web.application.javascript;
+import org.exoplatform.commons.cache.future.FutureMap;
+import org.exoplatform.commons.cache.future.Loader;
import org.exoplatform.commons.utils.Safe;
import org.exoplatform.container.ExoContainerContext;
+import org.exoplatform.portal.resource.AbstractResourceService;
+import org.exoplatform.portal.resource.MainResourceResolver;
+import org.exoplatform.portal.resource.Resource;
+import org.exoplatform.portal.resource.ResourceResolver;
+import org.exoplatform.portal.resource.SkinService;
import org.exoplatform.portal.resource.compressor.ResourceCompressor;
import org.exoplatform.portal.resource.compressor.ResourceType;
+import org.exoplatform.web.application.javascript.Javascript.ExtendedJScript;
+import org.exoplatform.web.application.javascript.Javascript.PortalJScript;
import org.gatein.common.logging.Logger;
import org.gatein.common.logging.LoggerFactory;
+import org.gatein.wci.WebAppListener;
import org.gatein.wci.impl.DefaultServletContainerFactory;
import org.picocontainer.Startable;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
+import java.io.Reader;
+import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
-import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import javax.servlet.ServletContext;
-public class JavascriptConfigService implements Startable
+public class JavascriptConfigService extends AbstractResourceService implements Startable
{
-
/** Our logger. */
private final Logger log = LoggerFactory.getLogger(JavascriptConfigService.class);
- private Collection<String> availableScripts_;
+ private List<Javascript> commonJScripts;
+
+ private HashMap<String, List<PortalJScript>> portalJScripts;
- private Collection<String> availableScriptsPaths_;
-
- private List<Javascript> availableScriptsKey_;
-
- private String mergedJavascript = "";
-
- private HashMap<String, String> extendedJavascripts;
-
- private byte[] jsBytes = null;
-
private long lastModified = Long.MAX_VALUE;
/** . */
- private JavascriptDeployer deployer;
+ private WebAppListener deployer;
- private JavascriptRemoval removal;
+ private CachedJavascript mergedCommonJScripts;
- private ResourceCompressor compressor;
+ private final FutureMap<String, CachedJavascript, ResourceResolver> cache;
+
+ public JavascriptConfigService(ExoContainerContext context, ResourceCompressor compressor)
+ {
+ super(compressor);
- /** Used to clear merged Javascript on undeploying an webapp */
- private Map<String, List<String>> object_view_of_merged_JS;
+ Loader<String, CachedJavascript, ResourceResolver> loader = new Loader<String, CachedJavascript, ResourceResolver>()
+ {
+ @Override
+ public CachedJavascript retrieve(ResourceResolver context, String key) throws Exception
+ {
+ Resource resource = context.resolve(key);
+ if (resource == null)
+ {
+ return null;
+ }
+
+ StringBuilder sB = new StringBuilder();
+ try
+ {
+ BufferedReader reader = new BufferedReader(resource.read());
+ String line = reader.readLine();
+ try
+ {
+ while (line != null)
+ {
+ sB.append(line);
+ if ((line = reader.readLine()) != null)
+ {
+ sB.append("\n");
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ finally
+ {
+ Safe.close(reader);
+ }
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+
+ return new CachedJavascript(sB.toString());
+ }
+ };
+ cache = new FutureMap<String, CachedJavascript, ResourceResolver>(loader);
- public JavascriptConfigService(ExoContainerContext context, ResourceCompressor compressor)
- {
- this.compressor = compressor;
- availableScripts_ = new ArrayList<String>();
- availableScriptsPaths_ = new ArrayList<String>();
- availableScriptsKey_ = new ArrayList<Javascript>();
- extendedJavascripts = new HashMap<String, String>();
- deployer = new JavascriptDeployer(context.getPortalContainerName(), this);
- removal = new JavascriptRemoval(this);
- object_view_of_merged_JS = new HashMap<String, List<String>>();
+ commonJScripts = new ArrayList<Javascript>();
+ deployer = new JavascriptConfigDeployer(context.getPortalContainerName(), this);
+ portalJScripts = new HashMap<String, List<PortalJScript>>();
+
+ addResourceResolver(new ExtendedJScriptResourceResolver());
}
/**
- * Return a collection list This method should return the availables scripts in the service
+ * Return a collection list This method should return the availables scripts in the service
+ *
+ * @deprecated Somehow, it should use {@link #getCommonJScripts()} instead.
* @return
*/
+ @Deprecated
public Collection<String> getAvailableScripts()
{
- return availableScripts_;
+ ArrayList<String> list = new ArrayList<String>();
+ for (Javascript js : commonJScripts)
+ {
+ list.add(js.getModule());
+ }
+ return list;
}
-
+
/**
- * Get a available script paths
- * @return a collection list. This method should return the available script paths
+ * Return a collection of all common JScripts
+ *
+ * @return
*/
- public Collection<String> getAvailableScriptsPaths()
+ public Collection<Javascript> getCommonJScripts()
{
- return availableScriptsPaths_;
+ return commonJScripts;
}
/**
- * Add extended JavaScript into available JavaScript
- * @param module
- * module name
- * @param scriptPath
- * URI path of JavaScript
- * @param scontext
- * the webapp's {@link javax.servlet.ServletContext}
- * @param scriptData
- * Content of JavaScript that will be added into available JavaScript
+ * Return a collection of all available JS paths
+ *
+ * @deprecated Somehow, it should use {@link #getCommonJScripts()} instead.
+ *
+ * @return A collection of all available JS paths
*/
- public synchronized void addExtendedJavascript(String module, String scriptPath, ServletContext scontext, String scriptData)
+ @Deprecated
+ public Collection<String> getAvailableScriptsPaths()
{
- String servletContextName = scontext.getServletContextName();
- String path = "/" + servletContextName + scriptPath;
- availableScripts_.add(module);
- availableScriptsPaths_.add(path);
- extendedJavascripts.put(path, scriptData);
+ ArrayList<String> list = new ArrayList<String>();
+ for (Javascript js : commonJScripts)
+ {
+ list.add(js.getPath());
+ }
+
+ return list;
}
-
+
/**
- * Clear available JavaScript and add new JavaScripts
- * @param jsKeys
- * new list of JavaScript will replace current available JavaScript
+ * Add a JScript to {@link #commonJScripts} list and re-sort the list.
+ * Then invalidate cache of all merged common JScripts to
+ * ensure they will be newly merged next time.
+ *
+ * @param js
*/
- public synchronized void addJavascripts(List<Javascript> jsKeys)
+ public void addCommonJScript(Javascript js)
{
- availableScriptsKey_.addAll(jsKeys);
-
-
- Collections.sort(availableScriptsKey_, new Comparator<Javascript>()
+ commonJScripts.add(js);
+
+ Collections.sort(commonJScripts, new Comparator<Javascript>()
{
public int compare(Javascript o1, Javascript o2)
{
- if (o1.getPriority() == o2.getPriority())
- return o1.getKey().getModule().compareTo(o2.getKey().getModule());
- else if (o1.getPriority() < 0)
- return 1;
- else if (o2.getPriority() < 0)
- return -1;
- else
- return o1.getPriority() - o2.getPriority();
+ return o1.getPriority() - o2.getPriority();
}
});
+
+ invalidateMergedCommonJScripts();
+ }
- mergedJavascript = "";
- availableScripts_.clear();
- availableScriptsPaths_.clear();
- object_view_of_merged_JS.clear();
- jsBytes = null;
-
- //
- for (Javascript script : availableScriptsKey_) {
- addJavascript(script);
+ /**
+ * Remove a JScript for this module from {@link #commonJScripts}
+ * and invalidates its cache correspondingly
+ *
+ * @param module
+ */
+ public void removeCommonJScript(String module)
+ {
+ Iterator<Javascript> iterator = commonJScripts.iterator();
+ while (iterator.hasNext())
+ {
+ Javascript js = iterator.next();
+ if (js.getModule().equals(module))
+ {
+ iterator.remove();
+ invalidateCachedJScript(js.getPath());
+ invalidateMergedCommonJScripts();
+ }
}
}
/**
- * Add an JavaScript into available JavaScripts
- * @param javascript
- * JavaScript will be added into available JavaScript
+ * Return a collection of all PortalJScripts which belong to the specified portalName.
+ *
+ * @param portalName
+ * @return list of JavaScript path which will be loaded by particular portal
*/
- private void addJavascript(Javascript javascript)
+ public Collection<PortalJScript> getPortalJScripts(String portalName)
{
- availableScripts_.add(javascript.getKey().getModule());
- availableScriptsPaths_.add(javascript.getPath());
-
- List<String> mergedJS_list = object_view_of_merged_JS.get(javascript.getKey().getContextPath());
- if (mergedJS_list == null)
+ return portalJScripts.get(portalName);
+ }
+
+ /**
+ * Add a PortalJScript which will be loaded with a specific portal.
+ * <p>
+ * For now, we don't persist it inside the Portal site storage but just in memory.
+ * Therefore we could somehow remove all PortalJScript for a Portal by using {@link #removePortalJScripts(String)}
+ * when the portal is being removed.
+ *
+ * @param js
+ */
+ public void addPortalJScript(PortalJScript js)
+ {
+ List<PortalJScript> list = portalJScripts.get(js.getPortalName());
+ if (list == null)
{
- mergedJS_list = new ArrayList<String>();
- object_view_of_merged_JS.put(javascript.getKey().getContextPath(), mergedJS_list);
+ list = new ArrayList<PortalJScript>();
}
+
+ list.add(js);
- //Merge internal javascripts
- if(!javascript.getKey().isExternalScript()) {
- StringBuffer sB = new StringBuffer();
- String line = "";
- try
+ Collections.sort(list, new Comparator<Javascript>()
+ {
+ public int compare(Javascript o1, Javascript o2)
{
- BufferedReader reader = javascript.getReader();
- try
- {
- while ((line = reader.readLine()) != null)
- {
- line = line + "\n";
- sB.append(line);
- mergedJS_list.add(line);
- }
- }
- catch (Exception ex)
- {
- ex.printStackTrace();
- }
- finally
- {
- Safe.close(reader);
- }
+ return o1.getPriority() - o2.getPriority();
}
- catch (Exception e)
- {
- e.printStackTrace();
- }
- sB.append("\n");
- mergedJS_list.add("\n");
-
- mergedJavascript = mergedJavascript.concat(sB.toString());
- }
+ });
+
+ portalJScripts.put(js.getPortalName(), list);
}
/**
- * Remove JavaScripts from availabe JavaScipts by ServletContext
- * @param scontext
- * the webapp's {@link javax.servlet.ServletContext}
- *
+ * Remove portal name from a JavaScript module or remove JavaScript module if it contains only one portal name
+ *
+ * @param portalName portal's name which you want to remove
*/
- public synchronized void remove(ServletContext context)
+ public void removePortalJScripts(String portalName)
{
- // We clone to avoid concurrent modification exception
- for (Javascript script : new ArrayList<Javascript>(availableScriptsKey_))
+ List<PortalJScript> list = portalJScripts.remove(portalName);
+ for (PortalJScript js : list)
{
- if (script.getContext().getContextPath().equals(context.getContextPath())) {
- removeJavascript(script);
- }
+ invalidateCachedJScript(js.getPath());
}
}
/**
- * Remove JavaScript from available JavaScripts
- * @param script
- * JavaScript will be removed
+ * unregister a {@link ServletContext} into {@link MainResourceResolver} of {@link SkinService}
+ *
+ * @param servletContext ServletContext will unregistered
*/
- public synchronized void removeJavascript(Javascript script)
+ public void unregisterServletContext(ServletContext servletContext)
{
- availableScripts_.remove(script.getKey().getModule());
- availableScriptsPaths_.remove(script.getPath());
- object_view_of_merged_JS.remove(script.getKey().getContextPath());
-
- // Enlist entries to be removed
- for (Iterator<Javascript> i = availableScriptsKey_.iterator();i.hasNext();)
+ super.unregisterServletContext(servletContext);
+ remove(servletContext);
+ }
+
+ /**
+ * Remove JavaScripts from availabe JavaScipts by ServletContext
+ * @param scontext
+ * the webapp's {@link javax.servlet.ServletContext}
+ *
+ */
+ public synchronized void remove(ServletContext context)
+ {
+ Iterator<Javascript> iterator = commonJScripts.iterator();
+ while (iterator.hasNext())
{
- Javascript _script = i.next();
- if (script.getKey().equals(_script.getKey()))
+ Javascript js = iterator.next();
+ if (js.getContextPath().equals(context.getContextPath()))
{
- i.remove();
+ iterator.remove();
+ invalidateCachedJScript(js.getPath());
+ invalidateMergedCommonJScripts();
}
}
}
/**
- * Refresh the mergedJavascript
+ * @deprecated Use {@link #invalidateMergedCommonJScripts()} instead
*/
+ @Deprecated
public void refreshMergedJavascript()
{
- mergedJavascript = "";
- jsBytes = null;
- StringBuffer buffer = new StringBuffer();
- for (String webApp : object_view_of_merged_JS.keySet())
- {
- for (String jsPath : object_view_of_merged_JS.get(webApp))
- {
- buffer.append(jsPath);
- }
- }
- mergedJavascript = buffer.toString();
+ invalidateMergedCommonJScripts();
}
/**
@@ -277,59 +319,98 @@
* @param out the output stream
* @throws IOException any io exception
*/
+ @Deprecated
public void writeMergedJavascript(OutputStream out) throws IOException
{
- jsBytes = getMergedJavascript();
+ byte[] jsBytes = getMergedJavascript();
//
out.write(jsBytes);
}
-
+
+ public String getJScript(String path)
+ {
+ CachedJavascript cachedJScript = getCachedJScript(path);
+ if (cachedJScript != null)
+ {
+ return cachedJScript.getText();
+ }
+ else
+ {
+ return null;
+ }
+ }
+
/**
- * Return merged javascript in byte array
- * @return byte[]
+ * Return a CachedJavascript which is lazy loaded from a {@link FutureMap} cache
+ *
+ * @param path
+ * @return
*/
- public byte[] getMergedJavascript()
+ public CachedJavascript getCachedJScript(String path)
{
- if (jsBytes == null)
+ return cache.get(mainResolver, path);
+ }
+
+ /**
+ * Returns a string which is merging of all common JScripts
+ *
+ * @return
+ */
+ public CachedJavascript getMergedCommonJScripts()
+ {
+ if (mergedCommonJScripts == null)
{
- // Generate javascript in a buffer
- StringBuffer allJavascript = new StringBuffer();
- allJavascript.append(mergedJavascript);
- for (String script : extendedJavascripts.values())
+ StringBuilder sB = new StringBuilder();
+ for (Javascript js : commonJScripts)
{
- allJavascript.append(script);
+ if (!js.isExternalScript())
+ {
+ String jScript = getJScript(js.getPath());
+ if (jScript != null)
+ {
+ sB.append(jScript).append("\n");
+ }
+
+ }
}
- String s = allJavascript.toString();
- // Get bytes
- byte[] bytes;
- try
- {
- bytes = s.getBytes("UTF-8");
- }
- catch (UnsupportedEncodingException e)
- {
- throw new AssertionError("No access to UTF-8, e");
- }
+ String jScript = sB.toString();
- // Minify
try
{
- String output = compressor.compress(s, ResourceType.JAVASCRIPT);
- jsBytes = output.getBytes();
+ jScript = compressor.compress(jScript, ResourceType.JAVASCRIPT);
}
catch (Exception e)
{
- log.warn("Error when generating minified javascript, will use normal javascript instead", e);
- jsBytes = bytes;
}
-// Remove miliseconds because string of date retrieve from Http header doesn't have miliseconds
- lastModified = (new Date().getTime() / 1000) * 1000;
+
+ mergedCommonJScripts = new CachedJavascript(jScript);
+ lastModified = mergedCommonJScripts.getLastModified();
}
- return jsBytes;
+
+ return mergedCommonJScripts;
}
+ /**
+ * @deprecated Use {@link #getMergedCommonJScripts()} instead.
+ * It is more clearly to see what exactly are included in the returned merging
+ *
+ * @return byte[]
+ */
+ @Deprecated
+ public byte[] getMergedJavascript()
+ {
+ String mergedCommonJS = getMergedCommonJScripts().getText();
+
+ return mergedCommonJS.getBytes();
+ }
+
+ /**
+ * @deprecated the last modification should belong to CachedJavascript object
+ * @return
+ */
+ @Deprecated
public long getLastModified()
{
return lastModified;
@@ -342,12 +423,49 @@
*/
public boolean isModuleLoaded(CharSequence module)
{
- return getAvailableScripts().contains(module);
+ for (Javascript js : commonJScripts)
+ {
+ if (js.getModule().equals(module))
+ {
+ return true;
+ }
+ }
+
+ return false;
}
/**
- * Remove JavaScript from available JavaScripts and extended JavaScripts
+ * Add an extended JavaScript to the list of common JScripts which are loaded by default
+ *
+ * @deprecated This method support was not good in design so it will be unsupported soon.
+ * Absolutely this usage can be replaced by using combination of {@link #addCommonJScript(Javascript)} and {@link ResourceResolver}
+ *
* @param module
+ * module name
+ * @param scriptPath
+ * URI path of JavaScript
+ * @param scontext
+ * the webapp's {@link javax.servlet.ServletContext}
+ * @param scriptData
+ * Content of JavaScript that will be added into available JavaScript
+ */
+ @Deprecated
+ public synchronized void addExtendedJavascript(String module, String scriptPath, ServletContext scontext, String scriptData)
+ {
+ ExtendedJScript js = new ExtendedJScript(module, scriptPath, scontext.getContextPath(), scriptData);
+ commonJScripts.add(js);
+ if (log.isDebugEnabled())
+ {
+ log.debug("Added an extended javascript " + js);
+ }
+ }
+
+ /**
+ * Remove an extended Javascript from the list of common JScripts
+ *
+ * @deprecated This method is deprecated according to {@link #addExtendedJavascript(String, String, ServletContext, String)}.
+ * Use {@link #removeCommonJScript(String)} instead.
+ * @param module
* module will be removed
* @param scriptPath
* URI of script that will be removed
@@ -355,19 +473,31 @@
* the webapp's {@link javax.servlet.ServletContext}
*
*/
+ @Deprecated
public void removeExtendedJavascript(String module, String scriptPath, ServletContext scontext)
{
- String servletContextName = scontext.getServletContextName();
- availableScripts_.remove(module);
- String path = "/" + servletContextName + scriptPath;
- availableScriptsPaths_.remove(path);
- extendedJavascripts.remove(path);
- jsBytes = null;
+ removeCommonJScript(module);
}
-
-
/**
+ * Invalidate cache of merged common JScripts
+ */
+ public void invalidateMergedCommonJScripts()
+ {
+ mergedCommonJScripts = null;
+ }
+
+ /**
+ * Invalidate cache for this <tt>path</tt>
+ *
+ * @param path
+ */
+ public void invalidateCachedJScript(String path)
+ {
+ cache.remove(path);
+ }
+
+ /**
* Start service.
* Registry org.exoplatform.web.application.javascript.JavascriptDeployer,
* org.exoplatform.web.application.javascript.JavascriptRemoval into ServletContainer
@@ -376,7 +506,6 @@
public void start()
{
DefaultServletContainerFactory.getInstance().getServletContainer().addWebAppListener(deployer);
- DefaultServletContainerFactory.getInstance().getServletContainer().addWebAppListener(removal);
}
/**
@@ -388,7 +517,29 @@
public void stop()
{
DefaultServletContainerFactory.getInstance().getServletContainer().removeWebAppListener(deployer);
- DefaultServletContainerFactory.getInstance().getServletContainer().removeWebAppListener(removal);
}
-
+
+ private class ExtendedJScriptResourceResolver implements ResourceResolver
+ {
+ @Override
+ public Resource resolve(String path) throws NullPointerException
+ {
+ for (final Javascript js : commonJScripts)
+ {
+ if (js instanceof ExtendedJScript && js.getPath().equals(path))
+ {
+ final String jScript = ((ExtendedJScript)js).getScript();
+ return new Resource(path)
+ {
+ @Override
+ public Reader read() throws IOException
+ {
+ return new StringReader(jScript);
+ }
+ };
+ }
+ }
+ return null;
+ }
+ }
}
Deleted: portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptDeployer.java
===================================================================
--- portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptDeployer.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptDeployer.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -1,133 +0,0 @@
-/**
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.exoplatform.web.application.javascript;
-
-import org.exoplatform.commons.utils.Safe;
-import org.exoplatform.container.PortalContainer;
-import org.exoplatform.container.RootContainer.PortalContainerPostInitTask;
-import org.exoplatform.services.log.ExoLogger;
-import org.exoplatform.services.log.Log;
-import org.gatein.wci.WebAppEvent;
-import org.gatein.wci.WebAppLifeCycleEvent;
-import org.gatein.wci.WebAppListener;
-import org.gatein.wci.impl.DefaultServletContainerFactory;
-import org.picocontainer.Startable;
-
-import java.io.InputStream;
-
-import javax.servlet.ServletContext;
-
-/**
- * Created by The eXo Platform SAS
- * Jan 19, 2007
- */
-
-public class JavascriptDeployer implements WebAppListener, Startable
-{
-
- private static final String GATEIN_CONFIG_RESOURCE = "/WEB-INF/gatein-resources.xml";
-
- /**
- * Logger
- */
- private static final Log LOG = ExoLogger.getLogger(JavascriptDeployer.class);
-
- /** . */
- private final JavascriptConfigService javascriptService;
-
- /**
- * The name of the portal container
- */
- private final String portalContainerName;
-
- public JavascriptDeployer(String portalContainerName, JavascriptConfigService javascriptService)
- {
- this.javascriptService = javascriptService;
- this.portalContainerName = portalContainerName;
- }
-
- public void start()
- {
- DefaultServletContainerFactory.getInstance().getServletContainer().addWebAppListener(this);
- }
-
- public void stop()
- {
- DefaultServletContainerFactory.getInstance().getServletContainer().removeWebAppListener(this);
- }
-
- public void onEvent(WebAppEvent event)
- {
- if (event instanceof WebAppLifeCycleEvent)
- {
- WebAppLifeCycleEvent waEvent = (WebAppLifeCycleEvent)event;
- if (waEvent.getType() == WebAppLifeCycleEvent.ADDED)
- {
- InputStream is = null;
- ServletContext scontext = null;
- try
- {
- scontext = event.getWebApp().getServletContext();
- is = scontext.getResourceAsStream(GATEIN_CONFIG_RESOURCE);
- if (is != null)
- {
- final PortalContainerPostInitTask task = new PortalContainerPostInitTask()
- {
-
- public void execute(ServletContext scontext, PortalContainer portalContainer)
- {
- register(scontext, portalContainer);
- }
- };
- PortalContainer.addInitTask(scontext, task, portalContainerName);
- }
- }
- catch (Exception ex)
- {
- LOG.error("An error occurs while registering 'Javascript in gatein-resources.xml' from the context '"
- + (scontext == null ? "unknown" : scontext.getServletContextName()) + "'", ex);
- }
- finally
- {
- Safe.close(is);
- }
- }
- }
- }
-
- private void register(ServletContext scontext, PortalContainer container)
- {
- InputStream is = null;
- try
- {
- is = scontext.getResourceAsStream(GATEIN_CONFIG_RESOURCE);
- JavascriptConfigParser.processConfigResource(is, javascriptService, scontext);
- }
- catch (Exception ex)
- {
- LOG.error("An error occurs while processing 'Javascript in gatein-resources.xml' from the context '"
- + scontext.getServletContextName() + "'", ex);
- }
- finally
- {
- Safe.close(is);
- }
- }
-}
\ No newline at end of file
Deleted: portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptKey.java
===================================================================
--- portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptKey.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptKey.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.exoplatform.web.application.javascript;
-
-/**
- * @author <a href="mailto:hoang281283@gmail.com">Minh Hoang TO</a>
- * @version $Id$
- *
- */
-public class JavascriptKey
-{
-
- /** . */
- private final String module;
-
- /** . */
- private final String scriptPath;
-
- /** . */
- private final String contextPath;
-
- public JavascriptKey(String module, String scriptPath, String contextPath) throws IllegalArgumentException
- {
- if (module == null || scriptPath == null || contextPath == null)
- {
- throw new IllegalArgumentException("Module and scriptPath are mandatory for JavascriptKey");
- }
- this.module = module;
- this.scriptPath = scriptPath;
- this.contextPath = contextPath;
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (obj == this)
- {
- return true;
- }
- if (obj instanceof JavascriptKey)
- {
- JavascriptKey that = (JavascriptKey)obj;
- return module.equals(that.module) && scriptPath.equals(that.scriptPath) && contextPath.equals(that.contextPath);
- }
- return false;
- }
-
- public String getModule()
- {
- return module;
- }
-
- public String getScriptPath()
- {
- return scriptPath;
- }
-
- public String getContextPath()
- {
- return contextPath;
- }
-
- public boolean isExternalScript()
- {
- return (scriptPath.startsWith("http") || scriptPath.startsWith("https")) ? true : false;
- }
-}
Deleted: portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptRemoval.java
===================================================================
--- portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptRemoval.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptRemoval.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.exoplatform.web.application.javascript;
-
-import org.gatein.wci.WebAppEvent;
-import org.gatein.wci.WebAppLifeCycleEvent;
-import org.gatein.wci.WebAppListener;
-import org.gatein.wci.impl.DefaultServletContainerFactory;
-import org.picocontainer.Startable;
-
-import javax.servlet.ServletContext;
-
-/**
- * @author <a href="mailto:hoang281283@gmail.com">Minh Hoang TO</a>
- * @version $Id$
- *
- */
-public class JavascriptRemoval implements WebAppListener, Startable
-{
-
- private JavascriptConfigService javascriptService;
-
- public JavascriptRemoval(JavascriptConfigService _javascriptService)
- {
- this.javascriptService = _javascriptService;
- }
-
- /**
- * @see org.gatein.wci.WebAppListener#onEvent(org.gatein.wci.WebAppEvent)
- */
- public void onEvent(WebAppEvent arg0)
- {
- if (arg0 instanceof WebAppLifeCycleEvent)
- {
- WebAppLifeCycleEvent wevent = (WebAppLifeCycleEvent)arg0;
- if (wevent.getType() == WebAppLifeCycleEvent.REMOVED)
- {
- removeJavascript(wevent.getWebApp().getServletContext());
- refreshJavascript();
- }
- }
- }
-
- /**
- * Removes javascript deployed in this web app.
- *
- * @param scontext the servlet context
- */
- private void removeJavascript(ServletContext scontext)
- {
- String webApp = scontext.getContextPath();
- javascriptService.remove(scontext);
- }
-
- private void refreshJavascript()
- {
- javascriptService.refreshMergedJavascript();
- }
-
- public void start()
- {
- DefaultServletContainerFactory.getInstance().getServletContainer().addWebAppListener(this);
- }
-
- public void stop()
- {
- DefaultServletContainerFactory.getInstance().getServletContainer().removeWebAppListener(this);
- }
-
-}
Modified: portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptTask.java
===================================================================
--- portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptTask.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptTask.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -18,6 +18,8 @@
*/
package org.exoplatform.web.application.javascript;
+import org.exoplatform.web.application.javascript.Javascript.PortalJScript;
+
import java.util.ArrayList;
import java.util.List;
@@ -40,7 +42,17 @@
public void execute(JavascriptConfigService service, ServletContext scontext)
{
- service.addJavascripts(scripts);
+ for (Javascript js : scripts)
+ {
+ if (js instanceof PortalJScript)
+ {
+ service.addPortalJScript((PortalJScript)js);
+ }
+ else
+ {
+ service.addCommonJScript(js);
+ }
+ }
}
public void addScript(Javascript script)
Modified: portal/trunk/component/web/resources/src/test/java/org/exoplatform/portal/resource/AbstractSkinServiceTest.java
===================================================================
--- portal/trunk/component/web/resources/src/test/java/org/exoplatform/portal/resource/AbstractSkinServiceTest.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/test/java/org/exoplatform/portal/resource/AbstractSkinServiceTest.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -79,7 +79,7 @@
assertEquals(1, skinService.getAvailableSkinNames().size());
assertTrue(skinService.getAvailableSkinNames().contains("TestSkin"));
- String css = skinService.getCSS("/path/to/MockResourceResolver.css");
+ String css = skinService.getCSS("/path/to/MockResourceResolver");
assertEquals(MockResourceResolver.class.getName(), css);
}
Modified: portal/trunk/component/web/resources/src/test/java/org/exoplatform/portal/resource/MockResourceResolver.java
===================================================================
--- portal/trunk/component/web/resources/src/test/java/org/exoplatform/portal/resource/MockResourceResolver.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/test/java/org/exoplatform/portal/resource/MockResourceResolver.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -40,7 +40,7 @@
public MockResourceResolver()
{
- addResource("/path/to/MockResourceResolver.css", this.getClass().getName());
+ addResource("/path/to/MockResourceResolver", this.getClass().getName());
}
public void addResource(String path, String value)
Modified: portal/trunk/component/web/resources/src/test/java/org/exoplatform/portal/resource/TestJavascriptConfigService.java
===================================================================
--- portal/trunk/component/web/resources/src/test/java/org/exoplatform/portal/resource/TestJavascriptConfigService.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/test/java/org/exoplatform/portal/resource/TestJavascriptConfigService.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -20,12 +20,14 @@
import org.exoplatform.container.PortalContainer;
import org.exoplatform.test.mocks.servlet.MockServletContext;
+import org.exoplatform.web.application.javascript.Javascript.PortalJScript;
import org.exoplatform.web.application.javascript.JavascriptConfigParser;
import org.exoplatform.web.application.javascript.JavascriptConfigService;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.net.URL;
+import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -35,44 +37,64 @@
/**
* @author <a href="mailto:phuong.vu@exoplatform.com">Vu Viet Phuong</a>
* @version $Id$
- *
*/
public class TestJavascriptConfigService extends AbstractWebResourceTest
{
private JavascriptConfigService jsService;
- private ServletContext mockServletContext;
+ private static MockResourceResolver resResolver;
+
+ private static ServletContext mockServletContext;
- private static final String exModule = "extended.js.test";
+ private static boolean isFirstStartup = true;
- private static final String exPath = "/extended/js/test.js";
-
- private static final ServletContext exContext = new MockJSServletContext("extendedWebApp", null);
-
@Override
protected void setUp() throws Exception
{
final PortalContainer portalContainer = getContainer();
jsService = (JavascriptConfigService)portalContainer.getComponentInstanceOfType(JavascriptConfigService.class);
-
- Map<String, String> resources = new HashMap<String, String>(4);
- resources.put("/js/test1.js", "aaa;");
- resources.put("/js/test2.js", "bbb;");
- resources.put("/js/test3.js", "ccc;");
- resources.put("/js/test4.js", "ddd;");
- mockServletContext = new MockJSServletContext("mockwebapp", resources);
- URL url = portalContainer.getPortalClassLoader().getResource("mockwebapp/gatein-resources.xml");
- JavascriptConfigParser.processConfigResource(url.openStream(), jsService, mockServletContext);
+ if (isFirstStartup)
+ {
+ Map<String, String> resources = new HashMap<String, String>(4);
+ resources.put("/js/test1.js", "aaa; // inline comment");
+ resources.put("/js/test2.js", "bbb;");
+ resources.put("/js/test3.js", "ccc;");
+ resources.put("/js/test4.js", "ddd;");
+ mockServletContext = new MockJSServletContext("mockwebapp", resources);
+ jsService.registerContext(mockServletContext);
+
+ resResolver = new MockResourceResolver();
+ jsService.addResourceResolver(resResolver);
+ URL url = portalContainer.getPortalClassLoader().getResource("mockwebapp/gatein-resources.xml");
+ JavascriptConfigParser.processConfigResource(url.openStream(), jsService, mockServletContext);
+
+ isFirstStartup = false;
+ }
}
- public void testAvailableScripts()
+ public void testResourceResolver()
{
- assertEquals(4, jsService.getAvailableScripts().size());
+ String jScript = jsService.getJScript("/path/to/MockResourceResolver");
+ assertEquals(MockResourceResolver.class.getName(), jScript);
+
+ jScript = jsService.getJScript("/path/to/non-existing.js");
+ assertNull(jScript);
+
+ resResolver.addResource("/path/to/non-existing.js", "foo");
+ jScript = jsService.getJScript("/path/to/non-existing.js");
+ assertNotNull("foo", jScript);
+ }
+
+ public void testCommonJScripts()
+ {
+ assertEquals(5, jsService.getCommonJScripts().size());
assertTrue(jsService.isModuleLoaded("js.test1"));
assertTrue(jsService.isModuleLoaded("js.test2"));
assertTrue(jsService.isModuleLoaded("js.test3"));
assertTrue(jsService.isModuleLoaded("js.test4"));
+ assertTrue(jsService.isModuleLoaded("js.test7"));
+
assertFalse(jsService.isModuleLoaded("js.test5"));
}
@@ -83,11 +105,16 @@
assertEquals(mockServletContext.getContextPath() + "/js/test4.js", availPaths.next());
assertEquals(mockServletContext.getContextPath() + "/js/test1.js", availPaths.next());
assertEquals(mockServletContext.getContextPath() + "/js/test3.js", availPaths.next());
+ assertEquals("http://example.com/test7.js", availPaths.next());
assertFalse(availPaths.hasNext());
}
- public void testExtendedJS() throws Exception
+ public void testAddingExtendedJScript() throws Exception
{
+ ServletContext exContext = new MockJSServletContext("extendedWebApp", null);
+ String exModule = "extended.js.test";
+ String exPath = "/extended/js/test.js";
+
jsService.addExtendedJavascript(exModule, exPath, exContext, "extendedJS;");
assertTrue(jsService.isModuleLoaded(exModule));
assertTrue(jsService.getAvailableScriptsPaths().contains(exContext.getContextPath() + exPath));
@@ -107,32 +134,57 @@
assertTrue(first < second);
assertTrue(second < System.currentTimeMillis());
}
-
- public void testMergedJS()
- {
+
+ public void testMergingCommonJScripts()
+ {
String mergedJS = new String(jsService.getMergedJavascript());
- assertEquals("\nbbb;ddd;aaa;ccc;", mergedJS);
+ assertEquals("\nbbb;ddd;aaa;ccc;", mergedJS);
+ assertEquals("\nbbb;ddd;aaa;ccc;", jsService.getMergedCommonJScripts().getText());
assertTrue(jsService.getLastModified() < System.currentTimeMillis());
- }
-
- public void testRemoveJS()
+ }
+
+ public void testCaching()
{
- assertEquals(4, jsService.getAvailableScripts().size());
- assertEquals(4, jsService.getAvailableScriptsPaths().size());
- jsService.remove(mockServletContext);
- assertEquals(0, jsService.getAvailableScripts().size());
- assertEquals(0, jsService.getAvailableScriptsPaths().size());
+ String path = "/path/to/caching";
+ resResolver.addResource(path, "foo");
+ String jScript = jsService.getJScript(path);
+ assertEquals("foo", jScript);
- assertTrue(jsService.getMergedJavascript().length > 0);
- jsService.refreshMergedJavascript();
- assertTrue(jsService.getMergedJavascript().length == 0);
+ resResolver.addResource(path, "bar");
+ jScript = jsService.getJScript(path);
+ assertEquals("foo", jScript);
+
+ // invalidate cache
+ jsService.invalidateCachedJScript(path);
+ jScript = jsService.getJScript(path);
+ assertEquals("bar", jScript);
}
- @Override
- protected void tearDown() throws Exception
+ public void testPortalJScript()
{
- jsService.remove(mockServletContext);
- jsService.removeExtendedJavascript(exModule, exPath, exContext);
+ Collection<PortalJScript> site = jsService.getPortalJScripts("site1");
+ assertEquals(1, site.size());
+ Iterator<PortalJScript> iterator = site.iterator();
+ assertEquals(mockServletContext.getContextPath() + "/js/test5.js", iterator.next().getPath());
+
+ site = jsService.getPortalJScripts("site2");
+ assertEquals(2, site.size());
+ iterator = site.iterator();
+ assertEquals(mockServletContext.getContextPath() + "/js/test6.js", iterator.next().getPath());
+ assertEquals(mockServletContext.getContextPath() + "/js/test5.js", iterator.next().getPath());
+
+ assertNull(jsService.getPortalJScripts("classic"));
+
+ jsService.removePortalJScripts("site1");
+ assertNull(jsService.getPortalJScripts("site1"));
+
+ PortalJScript portalJScript = new PortalJScript("portal_module1", "/path/to/portal/jscript1", "/portal", Integer.MAX_VALUE, "portal1");
+ jsService.addPortalJScript(portalJScript);
+ String jScript = jsService.getJScript(portalJScript.getPath());
+ assertNull(jScript);
+ resResolver.addResource(portalJScript.getPath(), "bar1");
+ jScript = jsService.getJScript(portalJScript.getPath());
+ assertEquals("bar1", jScript);
}
private static class MockJSServletContext extends MockServletContext
@@ -154,7 +206,15 @@
@Override
public InputStream getResourceAsStream(String s)
{
- return new ByteArrayInputStream(resources.get(s).getBytes());
+ String input = resources.get(s);
+ if (input != null)
+ {
+ return new ByteArrayInputStream(input.getBytes());
+ }
+ else
+ {
+ return null;
+ }
}
}
}
Modified: portal/trunk/component/web/resources/src/test/java/org/exoplatform/portal/resource/TestXSDCorruption.java
===================================================================
--- portal/trunk/component/web/resources/src/test/java/org/exoplatform/portal/resource/TestXSDCorruption.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/test/java/org/exoplatform/portal/resource/TestXSDCorruption.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -59,6 +59,6 @@
{
assertHash("c68ea6831c3d24a242f63abd2db261a6", "gatein_resources_1_0.xsd");
assertHash("c55b7e0dc8ae23e2d34430b38260cd96", "gatein_resources_1_1.xsd");
- assertHash("6d5566a86feb32f30fb9c7551c026042", "gatein_resources_1_2.xsd");
+ assertHash("56f2ed48327fed8ea506be982ef53730", "gatein_resources_1_2.xsd");
}
}
\ No newline at end of file
Modified: portal/trunk/component/web/resources/src/test/resources/mockwebapp/gatein-resources.xml
===================================================================
--- portal/trunk/component/web/resources/src/test/resources/mockwebapp/gatein-resources.xml 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/component/web/resources/src/test/resources/mockwebapp/gatein-resources.xml 2011-11-11 10:56:18 UTC (rev 8045)
@@ -19,10 +19,8 @@
02110-1301 USA, or see the FSF site: http://www.fsf.org.
-->
-<gatein-resources
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_resources_1_2 http://www.gatein.org/xml/ns/gatein_resources_1_2"
- xmlns="http://www.gatein.org/xml/ns/gatein_resources_1_2">
+<gatein-resources xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.gatein.org/xml/ns/gatein_resources_1_2 http://www.gatein.org/xml/ns/gatein_resources_1_2"
+ xmlns="http://www.gatein.org/xml/ns/gatein_resources_1_2">
<portal-skin>
<skin-name>TestSkin</skin-name>
@@ -110,4 +108,30 @@
<js-priority>2</js-priority>
</param>
</javascript>
+ <javascript>
+ <param>
+ <portal-name>site1</portal-name>
+ <js-module>js.test5</js-module>
+ <js-path>/js/test5.js</js-path>
+ </param>
+ <param>
+ <portal-name>site2</portal-name>
+ <js-module>js.test5</js-module>
+ <js-path>/js/test5.js</js-path>
+ </param>
+ </javascript>
+ <javascript>
+ <param>
+ <portal-name>site2</portal-name>
+ <js-module>js.test6</js-module>
+ <js-path>/js/test6.js</js-path>
+ <js-priority>1</js-priority>
+ </param>
+ </javascript>
+ <javascript>
+ <param>
+ <js-module>js.test7</js-module>
+ <js-path>http://example.com/test7.js</js-path>
+ </param>
+ </javascript>
</gatein-resources>
Modified: portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/workspace/UIPortalApplication.gtmpl
===================================================================
--- portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/workspace/UIPortalApplication.gtmpl 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/web/portal/src/main/webapp/groovy/portal/webui/workspace/UIPortalApplication.gtmpl 2011-11-11 10:56:18 UTC (rev 8045)
@@ -13,6 +13,7 @@
String skin = uicomponent.getSkin();
def portalSkins = uicomponent.getPortalSkins() ;
def portletSkins = uicomponent.getPortletSkins() ;
+ def portalJScripts = uicomponent.getPortalJScripts();
def scriptsPaths = uicomponent.getJavascriptURLs();
def lang = uicomponent.getLocale().getLanguage();
def title = rcontext.getTitle();
@@ -93,8 +94,15 @@
</script>
<script type="text/javascript" src="/eXoResources/javascript/eXo/i18n/I18NMessage.js"></script>
<script type="text/javascript" src="/eXoResources/javascript/eXo/i18n/MessageResource_<%=lang%>.js"></script>
-
- <%
+ <%
+ if (portalJScripts != null)
+ {
+ for (jScript in portalJScripts) {
+ %>
+ <script type="text/javascript" src="<%=jScript.getPath()%>"></script>
+ <%
+ }
+ }
def headerElements = rcontext.getExtraMarkupHeadersAsStrings();
if (headerElements != null)
{
Modified: portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/javascript/JavascriptServlet.java
===================================================================
--- portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/javascript/JavascriptServlet.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/javascript/JavascriptServlet.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -22,10 +22,12 @@
import org.exoplatform.commons.utils.PropertyManager;
import org.exoplatform.container.ExoContainerContext;
import org.exoplatform.portal.application.ResourceRequestFilter;
+import org.exoplatform.web.application.javascript.CachedJavascript;
import org.exoplatform.web.application.javascript.JavascriptConfigService;
import java.io.IOException;
import java.io.OutputStream;
+import java.net.URLDecoder;
import java.util.Date;
import javax.servlet.ServletConfig;
@@ -62,7 +64,15 @@
final JavascriptConfigService service =
(JavascriptConfigService)ExoContainerContext.getCurrentContainer().getComponentInstanceOfType(
JavascriptConfigService.class);
- long lastModified = service.getLastModified();
+ final String uri = URLDecoder.decode(request.getRequestURI(), "UTF-8");
+
+ CachedJavascript jScript = service.getCachedJScript(uri);
+ if (jScript == null)
+ {
+ jScript = service.getMergedCommonJScripts();
+ }
+
+ long lastModified = jScript.getLastModified();
long ifModifiedSince = request.getDateHeader(ResourceRequestFilter.IF_MODIFIED_SINCE);
// Julien: should we also set charset along with the content type ?
@@ -74,8 +84,8 @@
}
}
- byte[] jsBytes = service.getMergedJavascript();
+ String js = jScript.getText();
response.setDateHeader(ResourceRequestFilter.LAST_MODIFIED, lastModified);
- response.getOutputStream().write(jsBytes);
+ response.getWriter().write(js);
}
}
Modified: portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIPortalApplication.java
===================================================================
--- portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIPortalApplication.java 2011-11-11 09:44:12 UTC (rev 8044)
+++ portal/trunk/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIPortalApplication.java 2011-11-11 10:56:18 UTC (rev 8045)
@@ -30,8 +30,6 @@
import org.exoplatform.portal.resource.SkinConfig;
import org.exoplatform.portal.resource.SkinService;
import org.exoplatform.portal.resource.SkinURL;
-import org.exoplatform.web.url.MimeType;
-import org.exoplatform.web.url.navigation.NodeURL;
import org.exoplatform.portal.webui.application.UIPortlet;
import org.exoplatform.portal.webui.page.UIPageActionListener.ChangeNodeActionListener;
import org.exoplatform.portal.webui.page.UISiteBody;
@@ -46,7 +44,10 @@
import org.exoplatform.services.resources.LocaleConfigService;
import org.exoplatform.services.resources.LocaleContextInfo;
import org.exoplatform.services.resources.Orientation;
+import org.exoplatform.web.application.javascript.Javascript.PortalJScript;
import org.exoplatform.web.application.javascript.JavascriptConfigService;
+import org.exoplatform.web.url.MimeType;
+import org.exoplatform.web.url.navigation.NodeURL;
import org.exoplatform.webui.application.WebuiRequestContext;
import org.exoplatform.webui.config.annotation.ComponentConfig;
import org.exoplatform.webui.config.annotation.EventConfig;
@@ -320,6 +321,16 @@
return service.getAvailableScriptsPaths();
}
+ /**
+ * Get all JavaScript path which available on selected portal site
+ * @return
+ */
+ public Collection<PortalJScript> getPortalJScripts()
+ {
+ JavascriptConfigService service = getApplicationComponent(JavascriptConfigService.class);
+ return service.getPortalJScripts(Util.getUIPortal().getName());
+ }
+
public Collection<Skin> getPortalSkins()
{
SkinService skinService = getApplicationComponent(SkinService.class);
13 years, 1 month
gatein SVN: r8044 - portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/webui/component/UITabSystem/UIVerticalSlideTabs.
by do-not-reply@jboss.org
Author: phuong_vu
Date: 2011-11-11 04:44:12 -0500 (Fri, 11 Nov 2011)
New Revision: 8044
Modified:
portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/webui/component/UITabSystem/UIVerticalSlideTabs/Stylesheet.css
Log:
GTNPORTAL-2166 Edit page icons are not aligned
Modified: portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/webui/component/UITabSystem/UIVerticalSlideTabs/Stylesheet.css
===================================================================
--- portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/webui/component/UITabSystem/UIVerticalSlideTabs/Stylesheet.css 2011-11-11 06:05:38 UTC (rev 8043)
+++ portal/trunk/web/eXoResources/src/main/webapp/skin/DefaultSkin/webui/component/UITabSystem/UIVerticalSlideTabs/Stylesheet.css 2011-11-11 09:44:12 UTC (rev 8044)
@@ -268,7 +268,8 @@
float: left; /* orientation=lt */
float: right; /* orientation=rt */
margin: 0px 4px 0px 0px; /* orientation=lt */
- margin: 0px 0px 0px 4px; /* orientation=rt */
+ margin: 0px 0px 0px 4px; /* orientation=rt */
+ width: 80px;
}
.UIVerticalSlideTabs .VTabStyle4 .VTabContentBG .ContentInfo {
13 years, 1 month
gatein SVN: r8043 - epp/docs/branches/5.2/Admin_Guide/en-US.
by do-not-reply@jboss.org
Author: smumford
Date: 2011-11-11 01:05:38 -0500 (Fri, 11 Nov 2011)
New Revision: 8043
Removed:
epp/docs/branches/5.2/Admin_Guide/en-US/chapter-1-GateIn_Management.xml
Log:
Removing unnecessary build files from svn
Deleted: epp/docs/branches/5.2/Admin_Guide/en-US/chapter-1-GateIn_Management.xml
===================================================================
--- epp/docs/branches/5.2/Admin_Guide/en-US/chapter-1-GateIn_Management.xml 2011-11-11 06:04:07 UTC (rev 8042)
+++ epp/docs/branches/5.2/Admin_Guide/en-US/chapter-1-GateIn_Management.xml 2011-11-11 06:05:38 UTC (rev 8043)
@@ -1,775 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?>
-
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Admin_Guide.ent">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="chap-Admin_Guide-JBoss_Enterprise_Portal_Platform_Management">
- <title>JBoss Enterprise Portal Platform Management</title>
- <section id="sect-Admin_Guide-JBoss_Enterprise_Portal_Platform_Management-Introduction">
- <title>Introduction</title>
-
- <para>
- The gatein-management component of the portal allows portal resources to be managed over commons interfaces like REST, CLI, and Portlets/Gadgets. This guide will discuss how to use these interfaces along with describing gatein-management concepts and terms.
- </para>
-
- <note>
- <para>
- This documentation is a work in progress.
- </para>
- </note>
-
- <section id="sect-Admin_Guide-Introduction-Terms">
- <title>Terms</title>
-
- <table>
- <title></title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>
- <para>
- Term
- </para>
- </entry>
- <entry>
- <para>
- Description
- </para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>
- Management Extension
- </para>
- </entry>
- <entry>
- <para>
- An extension to the management system which defines a managed component.
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>
- Managed Component
- </para>
- </entry>
- <entry>
- <para>
- A managed component, which has been registered via an extension, serves as the root managed resource for a component.
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>
- Managed Resource
- </para>
- </entry>
- <entry>
- <para>
- A managed resource is a uniquely identified self describing 'resource' which can have operations and sub-resources registered to it.
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>
- Sub-resource
- </para>
- </entry>
- <entry>
- <para>
- A managed resource whose parent is also a managed resource.
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>
- Operation
- </para>
- </entry>
- <entry>
- <para>
- An action that can be performed on a managed resource.
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>
- Attributes
- </para>
- </entry>
- <entry>
- <para>
- Custom input parameters available to operations.
- </para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section id="sect-Admin_Guide-Introduction-Goals">
- <title>Goals</title>
-
- <para>
- The gatein-management component provides a foundation for managing portal side components. By doing so it allows management extensions to register resources and operations over a set of API's, which in turn allows us to expose these over common interfaces like REST and CLI. In other words, management extensions don't have to worry about the interfaces in which they will be managed over. This allows us to add additional interfaces without needing to change anything. Also by providing a set of API's to obtain managed resources, interfaces are built in a consistent manner. So managing the same component in one interface should be very similar if you were to manage it in another.
- </para>
- </section>
-
- <section id="sect-Admin_Guide-Introduction-Operations">
- <title>Operations</title>
-
- <para>
- The following operations are common operation names that have been identified by the gatein-management component. These operation names should be used by extensions when the scenario fits. The <emphasis role="strong">read-resource</emphasis> operation is the only operation that is built into the gatein-management component. All other operations need to be implemented by the extensions themselves.
- </para>
-
- <table>
- <title></title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>
- <para>
- Operation Name
- </para>
- </entry>
- <entry>
- <para>
- Description
- </para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>
- read-resource
- </para>
- </entry>
- <entry>
- <para>
- The read-resource operation is responsible for reading the managed resource; describing itself and listing any operations and/or sub-resources it may contain. This is the primary operation to obtain information about a managed component and it's managed resources.
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>
- add-resource
- </para>
- </entry>
- <entry>
- <para>
- The add-resource operation is responsible for adding/creating additional managed resources.
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>
- remove-resource
- </para>
- </entry>
- <entry>
- <para>
- The remove-resource operation is responsible for removing/deleting an existing managed resource.
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>
- update-resource
- </para>
- </entry>
- <entry>
- <para>
- The update-resource operation is responsible for updating an existing managed resources state.
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>
- read-config-as-xml
- </para>
- </entry>
- <entry>
- <para>
- The read-config-as-xml operation is responsible for representing the current managed resource as xml configuration.
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>
- export-resource
- </para>
- </entry>
- <entry>
- <para>
- The export-resource operation is responsible for exporting a managed resource in a format that is acceptable and used in an import. The export-resource is special in the sense that there's built-in functionality to recursively traverse managed resources until it finds one that supports an export-resource operation. In other words you can register an export-resource operation on a sub-resource and it will be executed even by calling export-resource on any of it's ancestors.
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>
- import-resource
- </para>
- </entry>
- <entry>
- <para>
- The import-resource operation is responsible for importing managed resources previously exported through an export-resource operation.
- </para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
-
- <section id="sect-Admin_Guide-Introduction-Content_Type">
- <title>Content Type</title>
-
- <para>
- Content type defines the format of management requests/responses. The three content types supported at the moment are json, xml, and zip. Since read-config-as-xml (xml), export-resource (zip), and import-resource (zip) are content type specific operations, the response must be in that format. Other then that it's up to the extension on which content type is supported for each operation.
- </para>
- </section>
-
- <section id="sect-Admin_Guide-Introduction-Filtering">
- <title>Filtering</title>
-
- <para>
- Filtering is a special attribute used during the export-resource operation, which filters managed resources that have been registered via a path template. See the Developer's Guide section for more information on path templates <emphasis role="italics">(TODO: Link to JBoss Enterprise Portal Platform Management section of Developer Guide)</emphasis> . The attribute name is 'filter' and the format can be defined as:
- </para>
-
- <example id="exam-Admin_Guide-Filtering-Exclude_at_a_path">
- <title>Exclude at a path</title>
-<programlisting>[path-var]:(!)?[name],...[name]</programlisting>
- </example>
-
- <para>
- Where path-var is the path template variable name defined in an extension, name is the name of the managed-resource, and the '!' char is to declare the filter as an exclusion. Below are some examples that use the path template variable 'foo':
- </para>
-
- <example id="exam-Admin_Guide-Filtering-Only_include_managed_resource_bar">
- <title>Only include managed resource 'bar'</title>
-<programlisting>foo:bar</programlisting>
- </example>
-
- <example id="exam-Admin_Guide-Filtering-Include_managed_resource_bar_and_foo_bar">
- <title>Include managed resource 'bar' and 'foo-bar'</title>
-<programlisting>foo:bar,foo-bar</programlisting>
- </example>
-
- <example id="exam-Admin_Guide-Filtering-Exclude_managed_resource_bar">
- <title>Exclude managed resource 'bar'</title>
-<programlisting>foo:!bar</programlisting>
- </example>
-
- <example id="exam-Admin_Guide-Filtering-Exclude_managed_resource_bar_and_foo_bar">
- <title>Exclude managed resource 'bar' and 'foo-bar'</title>
-<programlisting>foo:!bar,foo-bar</programlisting>
- </example>
- </section>
-
- <section id="sect-Admin_Guide-Introduction-Source">
- <title>Source</title>
-
- <para>
- The source is available on github @
- <ulink url="https://github.com/gatein/gatein-management" />
- </para>
- </section>
- </section>
- <section id="sect-Admin_Guide-JBoss_Enterprise_Portal_Platform_Management-REST_Component">
- <title>REST Component</title>
-
- <para>
- The gatein-management REST component is responsible for mapping restful requests to management requests. It does this by locating the managed resource by mapping the request URL to a management address and then invoking an operation on that managed resource. It defines an entry point for RESTful clients, and exposes the registered managed resources and operations over REST.
- </para>
-
- <section id="sect-Admin_Guide-REST_Component-Entry_Point_URL">
- <title>Entry Point URL</title>
-
- <para>
- To gain access to gatein-management resources and operations over REST a RESTful client must know the entry point URL, which is defined as follows:
- </para>
-
- <para></para>
-
- <para>
- http(s)://<host>:<port>/<rest-context-name>/private/managed-components
- </para>
-
- <para>
- where the rest-context-name is the portal container's rest context name. So for the default portal, the rest context name is 'rest'.
- </para>
-
- <note>
- <title>Default Entry Point</title>
- <para>
- <ulink url="http://localhost:8080/rest/private/managed-components/" />
- </para>
- </note>
-
- <note>
- <para>
- The REST URL is protected, and the authenticated user must belong to the 'administrators' group of the portal.
- </para>
- </note>
- </section>
-
- <section id="sect-Admin_Guide-REST_Component-Resource_URLs">
- <title>Resource URLs</title>
-
- <para>
- REST resource URLs are mapped to management addresses, and since every managed resource has a unique management address, every managed resource can be represented by a unique REST URL. The URL for identifying managed resources is as follows:
- </para>
-
- <para>
- <ulink type="http" url="http://<host>:<port>/<rest-context-name>/private/managed-components/<component-name>/<managed-resource-name>/<sub-resource-name>/.../<sub-resource-name>" />
- </para>
-
- <important>
- <title>Example</title>
- <para>
- <ulink url="http://localhost:8080/rest/private/managed-components/foo/bar/foo-bar" />
- </para>
- </important>
-
- <para>
- The URL above uniquely identifies a managed resource named 'foo-bar', which is a sub-resource of 'bar', and 'bar' being a managed resource of the managed component 'foo'.
- </para>
- </section>
-
- <section id="sect-Admin_Guide-REST_Component-Operations">
- <title>Operations</title>
-
- <para>
- To map a RESTful request to an operation, two strategies are used. One strategy maps the actual HTTP method of the REST request to built-in management operations, and the other is specifying the operation by adding a query parameter.
- </para>
-
- <section id="sect-Admin_Guide-Operations-HTTP_Method">
- <title>HTTP Method</title>
-
- <table>
- <title></title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>
- <para>
- HTTP Method
- </para>
- </entry>
- <entry>
- <para>
- Management Operation
- </para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>
- GET
- </para>
- </entry>
- <entry>
- <para>
- read-resource
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>
- PUT
- </para>
- </entry>
- <entry>
- <para>
- update-resource
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>
- POST
- </para>
- </entry>
- <entry>
- <para>
- add-resource
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>
- DELETE
- </para>
- </entry>
- <entry>
- <para>
- remove-resource
- </para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para>
- This means that the same URL can invoke 4 different operations just by changing the HTTP method of the REST request.
- </para>
- </section>
-
- <section id="sect-Admin_Guide-Operations-Request_Parameter">
- <title>Request Parameter</title>
-
- <para>
- Since gatein-management supports more then just four operations, operations can also be explicitly defined by including request parameters of the REST request. By adding the query parameter 'op' to the request URL, clients can define what operation to invoke.
- </para>
-
- <important>
- <title>Example</title>
- <para>
- <ulink url="http://localhost:8080/rest/private/managed-components/foo/bar?op=some-cus..." />
- </para>
- </important>
-
- <note>
- <title>Following URLs are equivalent for a GET request</title>
- <para>
- <ulink url="http://localhost:8080/rest/private/managed-components/foo/bar" />
- <ulink url="http://localhost:8080/rest/private/managed-components/foo/bar?op=read-res..." />
- </para>
- </note>
- </section>
-
- <section id="sect-Admin_Guide-Operations-URL_Extension">
- <title>URL Extension</title>
-
- <para>
- Sometimes it's nice to represent REST resources as a file, so two URL extensions have been added to support two common operations: read-config-as-xml and export-resource. By adding the following URL extensions at the end of the request, you can invoke these two operations.
- </para>
-
- <table>
- <title></title>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>
- <para>
- URL Extension
- </para>
- </entry>
- <entry>
- <para>
- Management Operation
- </para>
- </entry>
- <entry>
- <para>
- Example URL
- </para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>
- .xml
- </para>
- </entry>
- <entry>
- <para>
- read-config-as-xml
- </para>
- </entry>
- <entry>
- <para>
- <ulink url="http://localhost:8080/rest/private/managed-components/foo/bar.xml" />
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>
- .zip
- </para>
- </entry>
- <entry>
- <para>
- export-resource
- </para>
- </entry>
- <entry>
- <para>
- <ulink url="http://localhost:8080/rest/private/managed-components/foo/bar.zip" />
- </para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para></para>
-
- <note>
- <title>Following URLs are equivalent</title>
- <para>
- <ulink url="http://localhost:8080/rest/private/managed-components/foo/bar.xml" />
- <ulink url="http://localhost:8080/rest/private/managed-components/foo/bar?op=read-con..." />
- </para>
- </note>
- </section>
- </section>
-
- <section id="sect-Admin_Guide-REST_Component-Attributes">
- <title>Attributes</title>
-
- <para>
- Attributes are mapped to a management request by including all request parameters of the request as attributes. So if an operation supports certain attributes, query parameters can be added to the request URL to be used as attributes of the management request.
- </para>
-
- <important>
- <title>Example</title>
- <para>
- <ulink url="http://localhost:8080/rest/private/managed-components/foo/bar?first-name=..." />
- </para>
- </important>
-
- <section id="sect-Admin_Guide-Attributes-Multi_value_Attributes">
- <title>Multi-value Attributes</title>
-
- <para>
- Since management requests can have multiple values for a single attribute name, it's easy to map HTTP query parameters (since it also accepts multiple values) to multi-value management request attributes.
- </para>
-
- <important>
- <title>Example</title>
- <para>
- <ulink url="http://localhost:8080/rest/private/managed-components/foo/bar?colors=red&..." />
- </para>
- </important>
- </section>
- </section>
-
- <section id="sect-Admin_Guide-REST_Component-Content_Negotiation">
- <title>Content Negotiation</title>
-
- <para>
- gatein-management supports the concept of a 'Content Type' to indicate the format of management requests and responses, which maps to the content negotiation principle of REST. Clients can dictate the content type of the management request by specifying the Accept and Content-Type headers of the request. The 'Accept' header is to indicate what it wants to receive the response as, and the 'Content-Type' header is to specify what format the client is sending. Below is a list of request headers that map to a 'Content Type'.
- </para>
-
- <table>
- <title></title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>
- <para>
- Header
- </para>
- </entry>
- <entry>
- <para>
- Content Type
- </para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>
- application/json
- </para>
- </entry>
- <entry>
- <para>
- JSON
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>
- application/xml
- </para>
- </entry>
- <entry>
- <para>
- XML
- </para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para></para>
-
- <note>
- <para>
- JSON is the default content type.
- </para>
- </note>
-
- <section id="sect-Admin_Guide-Content_Negotiation-Browser_Content_Negotiation">
- <title>Browser Content Negotiation</title>
-
- <para>
- To make it easy to control the content type of management requests through the browser, the rest component of gatein-management supports the 'format' query parameter to dictate the format of the response. This is because most browsers already send an 'Accept' header.
- </para>
-
- <important>
- <title>Example</title>
- <para>
- <ulink url="http://localhost:8080/rest/private/managed-components/foo/bar?format=xml" />
- </para>
- </important>
-
- <para>
- Below is the supported 'format' parameters which map to a 'Content Type'.
- </para>
-
- <table>
- <title></title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>
- <para>
- Format parameter
- </para>
- </entry>
- <entry>
- <para>
- Content Type
- </para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>
- format=json (default)
- </para>
- </entry>
- <entry>
- <para>
- JSON
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <para>
- format=xml
- </para>
- </entry>
- <entry>
- <para>
- XML
- </para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <para></para>
-
- <note>
- <para>
- Content negotiation is ignored for content type specific operations such as 'read-config-as-xml' and 'export-resource' since these cannot return different formats.
- </para>
- </note>
- </section>
- </section>
- </section>
- <section id="sect-Admin_Guide-JBoss_Enterprise_Portal_Platform_Management-Command_Line_Interface">
- <title>Command Line Interface</title>
-
- <para>
- The command line interface (CLI) for gatein management provides an interactive shell using CRaSH to map commands to management requests. It uses the CRaSH SSH plugin to connect over SSH.
- </para>
-
- <note>
- <para>
- For more information on CRaSH please visit
- <ulink url="http://code.google.com/p/crsh/" />
- .
- </para>
- </note>
-
- <section id="sect-Admin_Guide-Command_Line_Interface-Deploying_the_CLI">
- <title>Deploying the CLI</title>
-
- <para>
- To deploy the CLI you must first build the gatein-management project. The source is available on
- <ulink url="http://github.com/gatein/gatein-management">github</ulink>
- . Once built you can then deploy the web application to a JBoss Enterprise Portal Platform instance.
- </para>
-
- <note>
- <para>
- The CLI web application must be deployed as an exploded war
- </para>
- </note>
- </section>
-
- <section id="sect-Admin_Guide-Command_Line_Interface-Running_the_CLI">
- <title>Running the CLI</title>
-
- <para>
- After deploying the CLI web application you can connect to the CLI over SSH. The default port is 2000.
- </para>
-
- <important>
- <title>Example</title>
- <para>
- ssh -p 2000 root@localhost
- </para>
- </important>
- </section>
- </section>
- <section id="sect-Admin_Guide-JBoss_Enterprise_Portal_Platform_Management-Management_Extensions">
- <title>Management Extensions</title>
-
- <para>
- Below will discuss specific management extensions included in JBoss Enterprise Portal Platform.
- </para>
-
- <section id="sect-Admin_Guide-Management_Extensions-MOP_Extension">
- <title>MOP Extension</title>
-
- <para>
- The MOP extension registers the 'mop' managed component which is responsible for managing pages, navigation, and site layout. It supports the read-config-as-xml, export-resource, and import-resource operations. The read-config-as-xml operation exposes pages, navigation, and site layout in the
- <ulink url="http://www.gatein.org/xml/ns/">gatein-objects</ulink>
- xml format which is found in when defining this content in a portal extension.
- </para>
- </section>
- </section>
-</chapter>
-
13 years, 1 month
gatein SVN: r8042 - epp/docs/branches/5.2/Admin_Guide/en-US.
by do-not-reply@jboss.org
Author: smumford
Date: 2011-11-11 01:04:07 -0500 (Fri, 11 Nov 2011)
New Revision: 8042
Modified:
epp/docs/branches/5.2/Admin_Guide/en-US/Admin_Guide.xml
epp/docs/branches/5.2/Admin_Guide/en-US/Author_Group.xml
epp/docs/branches/5.2/Admin_Guide/en-US/Book_Info.xml
epp/docs/branches/5.2/Admin_Guide/en-US/Preface.xml
epp/docs/branches/5.2/Admin_Guide/en-US/Revision_History.xml
Log:
Updated from wiki with new admonition markup
Modified: epp/docs/branches/5.2/Admin_Guide/en-US/Admin_Guide.xml
===================================================================
--- epp/docs/branches/5.2/Admin_Guide/en-US/Admin_Guide.xml 2011-11-11 04:27:49 UTC (rev 8041)
+++ epp/docs/branches/5.2/Admin_Guide/en-US/Admin_Guide.xml 2011-11-11 06:04:07 UTC (rev 8042)
@@ -1,17 +1,15 @@
<?xml version='1.0' encoding='utf-8' ?>
-
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "Admin_Guide.ent">
%BOOK_ENTITIES;
]>
-
<book>
- <xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="chapter-1-Introduction.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="chapter-2-REST_Component.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="chapter-3-Command_Line_Interface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="chapter-4-Management_Extensions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="Revision_History.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="chapter-1-Introduction.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="chapter-2-REST.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="chapter-3-Command_Line_Interface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="chapter-4-Management_Extensions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Revision_History.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
</book>
Modified: epp/docs/branches/5.2/Admin_Guide/en-US/Author_Group.xml
===================================================================
--- epp/docs/branches/5.2/Admin_Guide/en-US/Author_Group.xml 2011-11-11 04:27:49 UTC (rev 8041)
+++ epp/docs/branches/5.2/Admin_Guide/en-US/Author_Group.xml 2011-11-11 06:04:07 UTC (rev 8042)
@@ -1,20 +1,15 @@
<?xml version='1.0' encoding='utf-8' ?>
-
-<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Admin_Guide.ent">
-%BOOK_ENTITIES;
-]>
-
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<authorgroup>
- <author>
- <firstname>Scott</firstname>
- <surname>Mumford</surname>
- <email>smumford(a)redhat.com</email>
- </author>
- <author>
- <firstname>Nick</firstname>
- <surname>Scavelli</surname>
- <email>nscavell(a)redhat.com</email>
- </author>
-</authorgroup>
+ <author>
+ <firstname>Scott</firstname>
+ <surname>Mumford</surname>
+ <email>smumford(a)redhat.com</email>
+ </author>
+ <author>
+ <firstname>Nick</firstname>
+ <surname>Scavelli</surname>
+ <email>nscavell(a)redhat.com</email>
+ </author>
+</authorgroup>
Modified: epp/docs/branches/5.2/Admin_Guide/en-US/Book_Info.xml
===================================================================
--- epp/docs/branches/5.2/Admin_Guide/en-US/Book_Info.xml 2011-11-11 04:27:49 UTC (rev 8041)
+++ epp/docs/branches/5.2/Admin_Guide/en-US/Book_Info.xml 2011-11-11 06:04:07 UTC (rev 8042)
@@ -1,30 +1,31 @@
<?xml version='1.0' encoding='utf-8' ?>
-
<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "Admin_Guide.ent">
%BOOK_ENTITIES;
]>
+<bookinfo id="book-Admin_Guide-Admin_Guide">
+ <title>Admin Guide</title>
+ <subtitle>For use with JBoss Enterprise Portal Platform 5</subtitle>
+ <productname>JBoss Enterprise Portal Platform</productname>
+ <productnumber>5.2</productnumber>
+ <edition>5.2.0</edition>
+ <pubsnumber>3</pubsnumber>
+ <abstract>
+ <para>
+ This document is a guide to administering an implementation of JBoss Enterprise Portal Platform. It is intended for System Administrators and assumes a high level of technical knowledge.
+ </para>
-<bookinfo id="book-Admin_Guide-Admin_Guide">
- <title>Admin Guide</title>
- <subtitle>For use with JBoss Enterprise Portal Platform 5</subtitle>
- <productname>JBoss Enterprise Portal Platform</productname>
- <productnumber>5.2</productnumber>
- <edition>5.2.0</edition>
- <pubsnumber>3</pubsnumber>
- <abstract>
- <para>
- This document is a guide to administering an implementation of JBoss Enterprise Portal Platform. It is intended for System Administrators and assumes a high level of technical knowledge.
- </para>
- </abstract>
- <corpauthor>
- <inlinemediaobject>
- <imageobject>
- <imagedata fileref="Common_Content/images/title_logo.png" format="PNG" />
- </imageobject>
- </inlinemediaobject>
- </corpauthor>
- <xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ </abstract>
+ <corpauthor>
+ <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="Common_Content/images/title_logo.png" format="PNG" />
+ </imageobject>
+
+ </inlinemediaobject>
+
+ </corpauthor>
+ <xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
</bookinfo>
Modified: epp/docs/branches/5.2/Admin_Guide/en-US/Preface.xml
===================================================================
--- epp/docs/branches/5.2/Admin_Guide/en-US/Preface.xml 2011-11-11 04:27:49 UTC (rev 8041)
+++ epp/docs/branches/5.2/Admin_Guide/en-US/Preface.xml 2011-11-11 06:04:07 UTC (rev 8042)
@@ -1,17 +1,13 @@
<?xml version='1.0' encoding='utf-8' ?>
-
<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "Admin_Guide.ent">
%BOOK_ENTITIES;
]>
-
<preface id="pref-Admin_Guide-Preface">
- <title>Preface</title>
- <xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- <xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
- <xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude">
- <xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
- </xi:fallback>
- </xi:include>
+ <title>Preface</title>
+ <xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"> <xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude"> <xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ </xi:fallback>
+ </xi:include>
</preface>
Modified: epp/docs/branches/5.2/Admin_Guide/en-US/Revision_History.xml
===================================================================
--- epp/docs/branches/5.2/Admin_Guide/en-US/Revision_History.xml 2011-11-11 04:27:49 UTC (rev 8041)
+++ epp/docs/branches/5.2/Admin_Guide/en-US/Revision_History.xml 2011-11-11 06:04:07 UTC (rev 8042)
@@ -1,43 +1,51 @@
<?xml version='1.0' encoding='utf-8' ?>
-
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "Admin_Guide.ent">
%BOOK_ENTITIES;
]>
+<appendix id="appe-Admin_Guide-Revision_History">
+ <title>Revision History</title>
+ <simpara>
+ <revhistory>
+ <revision>
+ <revnumber>5.2.0-3</revnumber>
+ <date>Wed Oct 19 2011</date>
+ <author>
+ <firstname>Scott</firstname>
+ <surname>Mumford</surname>
+ <email></email>
-<appendix id="appe-Admin_Guide-Revision_History">
- <title>Revision History</title>
- <simpara>
- <revhistory>
- <revision>
- <revnumber>5.2.0-3</revnumber>
- <date>Wed Oct 19 2011</date>
- <author>
- <firstname>Scott</firstname>
- <surname>Mumford</surname>
- <email></email>
- </author>
- <revdescription>
- <simplelist>
- <member>Added to brew system.</member>
- </simplelist>
- </revdescription>
- </revision>
- <revision>
- <revnumber>5.2.0-1</revnumber>
- <date>Wed Oct 12 2011</date>
- <author>
- <firstname>Nick</firstname>
- <surname>Scavelli</surname>
- <email>nscavell(a)redhat.com</email>
- </author>
- <revdescription>
- <simplelist>
- <member>Initial creation of book.</member>
- </simplelist>
- </revdescription>
- </revision>
- </revhistory>
- </simpara>
+ </author>
+ <revdescription>
+ <simplelist>
+ <member>Added to brew system.</member>
+
+ </simplelist>
+
+ </revdescription>
+
+ </revision>
+ <revision>
+ <revnumber>5.2.0-1</revnumber>
+ <date>Wed Oct 12 2011</date>
+ <author>
+ <firstname>Nick</firstname>
+ <surname>Scavelli</surname>
+ <email>nscavell(a)redhat.com</email>
+
+ </author>
+ <revdescription>
+ <simplelist>
+ <member>Initial creation of book.</member>
+
+ </simplelist>
+
+ </revdescription>
+
+ </revision>
+
+ </revhistory>
+
+ </simpara>
</appendix>
13 years, 1 month
gatein SVN: r8041 - in epp/docs/branches/5.2/Release_Notes: en-US and 1 other directories.
by do-not-reply@jboss.org
Author: jaredmorgs
Date: 2011-11-10 23:27:49 -0500 (Thu, 10 Nov 2011)
New Revision: 8041
Added:
epp/docs/branches/5.2/Release_Notes/en-US/
epp/docs/branches/5.2/Release_Notes/en-US/5.2.0_Release_Notes.ent
epp/docs/branches/5.2/Release_Notes/en-US/5.2.0_Release_Notes.xml
epp/docs/branches/5.2/Release_Notes/en-US/Author_Group.xml
epp/docs/branches/5.2/Release_Notes/en-US/Book_Info.xml
epp/docs/branches/5.2/Release_Notes/en-US/Revision_History.xml
epp/docs/branches/5.2/Release_Notes/en-US/images/
epp/docs/branches/5.2/Release_Notes/en-US/images/icon.svg
epp/docs/branches/5.2/Release_Notes/en-US/known_issues.xml
epp/docs/branches/5.2/Release_Notes/en-US/need_info.xml
epp/docs/branches/5.2/Release_Notes/en-US/not_documented.xml
epp/docs/branches/5.2/Release_Notes/en-US/resolved_issues.xml
epp/docs/branches/5.2/Release_Notes/publican.cfg
Log:
Added Release Notes doc structure in for EPP Release Notes.
Added: epp/docs/branches/5.2/Release_Notes/en-US/5.2.0_Release_Notes.ent
===================================================================
--- epp/docs/branches/5.2/Release_Notes/en-US/5.2.0_Release_Notes.ent (rev 0)
+++ epp/docs/branches/5.2/Release_Notes/en-US/5.2.0_Release_Notes.ent 2011-11-11 04:27:49 UTC (rev 8041)
@@ -0,0 +1,14 @@
+<!-- Product Specifics: -->
+<!ENTITY PRODUCT "JBoss Site Publisher">
+
+<!-- Book specifics: -->
+<!ENTITY BOOKID "Site Publisher Release Notes">
+
+<!-- Corporate Specifics: -->
+<!ENTITY YEAR "2011">
+<!ENTITY HOLDER "Red Hat, Inc">
+
+<!-- Version Specifcs: -->
+<!ENTITY VX "5">
+<!ENTITY VY "5.2">
+<!ENTITY VZ "5.2.0">
Added: epp/docs/branches/5.2/Release_Notes/en-US/5.2.0_Release_Notes.xml
===================================================================
--- epp/docs/branches/5.2/Release_Notes/en-US/5.2.0_Release_Notes.xml (rev 0)
+++ epp/docs/branches/5.2/Release_Notes/en-US/5.2.0_Release_Notes.xml 2011-11-11 04:27:49 UTC (rev 8041)
@@ -0,0 +1,249 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This document was created with Syntext Serna Free. --><!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "5.2.0_Release_Notes.ent">
+%BOOK_ENTITIES;
+]>
+<book>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Book_Info.xml"/>
+ <chapter id="Release_Notes-Introduction">
+ <title>Introduction</title>
+ <para>JBoss Enterprise Portal Platform offers an intuitive, easy to manage user interface and a proven core infrastructure to enable organizations to quickly build dynamic web sites in a highly reusable way. By bringing the principals of Open Choice to the presentation layer, JBoss Enterprise Portal Platform 5 maximizes existing skills and technology investments.
+ </para>
+ <para>By integrating proven open source frameworks such as JBoss Seam, Hibernate, Tomcat, and JBoss Cache, JBoss Enterprise Portal Platform takes advantage of innovations in the open source community. As well, </para>
+ <para>JBoss Enterprise Portal Platform &VZ; is fully tested and supported by Red Hat, and is certified to work on many leading enterprise hardware and software products.</para>
+ </chapter>
+ <chapter>
+ <title>Upgraded Components</title>
+ <para><remark>What component upgrades deserve highlighting.</remark></para>
+ <note>
+ <para>For detailed information about component versions included in this release, refer to </para>
+ </note>
+ </chapter>
+ <chapter id="Release_Notes-Component_Features">
+ <title>
+ <remark>Component Versions</remark>
+ </title>
+ <para><remark>Updated table from https://docspace.corp.redhat.com/docs/DOC-68705 (version 10)</remark></para>
+ <table frame="all" pgwide="1">
+ <title>Component Versions</title>
+ <tgroup colsep="1" cols="2">
+ <colspec colnum="1"/>
+ <colspec colnum="2"/>
+ <thead>
+ <row>
+ <entry>Component</entry>
+ <entry>Version</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>EAP</entry>
+ <entry>5.1.1-GA</entry>
+ </row>
+ <row>
+ <entry>eXo junit</entry>
+ <entry>1.2.1-GA</entry>
+ </row>
+ <row>
+ <entry>eXo kernel</entry>
+ <entry>2.3.3-GA</entry>
+ </row>
+ <row>
+ <entry>eXo Core</entry>
+ <entry>2.4.3-GA</entry>
+ </row>
+ <row>
+ <entry>eXo WS</entry>
+ <entry>2.2.3-GA</entry>
+ </row>
+ <row>
+ <entry>eXo JCR</entry>
+ <entry>1.14.3-GA</entry>
+ </row>
+ <row>
+ <entry>Apache Shindig</entry>
+ <entry>2.0.2</entry>
+ </row>
+ <row>
+ <entry>Simple Captcha</entry>
+ <entry>1.1.1-GA-Patch01</entry>
+ </row>
+ <row>
+ <entry>GateIn Parent</entry>
+ <entry>1.1.0-GA</entry>
+ </row>
+ <row>
+ <entry>GateIn dep</entry>
+ <entry>1.1.0-GA</entry>
+ </row>
+ <row>
+ <entry>GateIn Common</entry>
+ <entry>2.0.4-GA</entry>
+ </row>
+ <row>
+ <entry>GateIn WCI</entry>
+ <entry>2.1.0-GA</entry>
+ </row>
+ <row>
+ <entry>GateIn PC</entry>
+ <entry>2.3.0-GA</entry>
+ </row>
+ <row>
+ <entry>GateIn WSRP</entry>
+ <entry>2.1.0-EPP520-GA</entry>
+ </row>
+ <row>
+ <entry>GateIn MOP</entry>
+ <entry>1.1.0-GA</entry>
+ </row>
+ <row>
+ <entry>GateIn SSO</entry>
+ <entry>1.1.0-GA</entry>
+ </row>
+ <row>
+ <entry>PicketLink IDM</entry>
+ <entry>1.3.0.GA</entry>
+ </row>
+ <row>
+ <entry>Chromattic</entry>
+ <entry>1.1.1</entry>
+ </row>
+ <row>
+ <entry>Portlet Bridge</entry>
+ <entry>2.2.0.GA.EPP520</entry>
+ </row>
+ <row>
+ <entry>Seam</entry>
+ <entry>2.2.4.EAP5</entry>
+ </row>
+ <row>
+ <entry>Richfaces</entry>
+ <entry>3.3.1.SP3</entry>
+ </row>
+ <row>
+ <entry>Groovy</entry>
+ <entry>1.7.6</entry>
+ </row>
+ <row>
+ <entry>Commons DBCP</entry>
+ <entry>1.4</entry>
+ </row>
+ <row>
+ <entry>Commons IO</entry>
+ <entry>1.4</entry>
+ </row>
+ <row>
+ <entry>Commons Lang</entry>
+ <entry>2.6</entry>
+ </row>
+ <row>
+ <entry>HSQLDB</entry>
+ <entry>2.0.0</entry>
+ </row>
+ <row>
+ <entry>JBoss Cache</entry>
+ <entry>3.2.7</entry>
+ </row>
+ <row>
+ <entry>GateIn Management</entry>
+ <entry>1.0.0-GA</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </chapter>
+ <chapter id="Release_Notes-Installation">
+ <title>Installation</title>
+ <para>
+ The JBoss Enterprise Portal Platform <citetitle>Installation Guide</citetitle> contains detailed installation instructions as well as environment requirements.
+ </para>
+ <para>
+ The Installation Guide can be found online at <ulink url="http://docs.redhat.com/docs/en-US/JBoss_Enterprise_Portal_Platform/index...." type="http"/>.
+ </para>
+ </chapter>
+ <chapter id="Release_Notes-Issues_Resolved_In_Production">
+ <title>
+ <remark>Resolved Issues</remark>
+ </title>
+ <para>
+ The following issues were resolved in this release of JBoss Enterprise Portal Platform. </para>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="resolved_issues.xml"/>
+ </chapter>
+ <chapter id="Release_Notes-Known_Issues">
+ <title>
+ <remark>Known Issues</remark>
+ </title>
+ <para>
+ Awaiting triage efforts.
+ </para>
+ </chapter>
+ <chapter>
+ <title>
+ <remark>NEEDINFO</remark>
+ </title>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="need_info.xml"/>
+ </chapter>
+ <chapter>
+ <title>
+ <remark>Not Yet Documented</remark>
+ </title>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="not_documented.xml"/>
+ </chapter>
+<!--<chapter id="5.1.1_Release_Notes-Migration">
+ <title><remark>Migration</remark></title>
+ <para>
+ Stuff about migration from 5.1.0 to 5.1.1.
+ </para>
+ </chapter>--> <chapter id="Release_Notes-Documentation">
+ <title>Documentation</title>
+ <para>
+ An <citetitle>Installation Guide</citetitle> and a <citetitle>User Guide</citetitle> for JBoss Enterprise Portal Platform are available at <ulink url="http://docs.redhat.com/docs/en-US/JBoss_Enterprise_Portal_Platform/index...." type="http"/>. JBoss Enterprise Portal Platform specific documentation is also available from this location.
+ </para>
+ </chapter>
+ <chapter id="Release_Notes-_Product_Support_and_License_Website_Links_">
+ <title> Product Support and License Website Links </title>
+ <formalpara id="form-Release_Notes-_Product_Support_and_License_Website_Links_-Support_Processes">
+ <title>Support Processes</title>
+ <para>
+ <ulink url="http://www.redhat.com/support/process/">http://www.redhat.com/support/process/</ulink>
+ </para>
+ </formalpara>
+ <formalpara id="form-Release_Notes-_Product_Support_and_License_Website_Links_-_Production_Support_Scope_of_Coverage_">
+ <title> Production Support Scope of Coverage </title>
+ <para>
+ <ulink url="http://www.redhat.com/support/policy/soc/production">http://www.redhat.com/support/policy/soc/production</ulink>
+ </para>
+ </formalpara>
+ <formalpara id="form-Release_Notes-_Product_Support_and_License_Website_Links_-_Production_Support_Service_Level_Agreement_">
+ <title> Production Support Service Level Agreement </title>
+ <para>
+ <ulink url="http://www.redhat.com/support/policy/sla/production/">http://www.redhat.com/support/policy/sla/production/</ulink>
+ </para>
+ </formalpara>
+ <formalpara id="form-Release_Notes-_Product_Support_and_License_Website_Links_-_Developer_Support_Scope_of_Coverage_">
+ <title> Developer Support Scope of Coverage </title>
+ <para>
+ <ulink url="http://www.redhat.com/support/policy/soc/developer/">http://www.redhat.com/support/policy/soc/developer/</ulink>
+ </para>
+ </formalpara>
+ <formalpara id="form-Release_Notes-_Product_Support_and_License_Website_Links_-_Developer_Support_Service_Level_Agreement_">
+ <title> Developer Support Service Level Agreement </title>
+ <para>
+ <ulink url="http://www.redhat.com/support/policy/sla/developer/">http://www.redhat.com/support/policy/sla/developer/</ulink>
+ </para>
+ </formalpara>
+ <formalpara id="form-Release_Notes-_Product_Support_and_License_Website_Links_-_Product_Update_and_Support_Policy_by_Product_">
+ <title> Product Update and Support Policy by Product </title>
+ <para>
+ <ulink url="http://www.redhat.com/security/updates/jboss_notes/">http://www.redhat.com/security/updates/jboss_notes/</ulink>
+ </para>
+ </formalpara>
+ <formalpara id="form-Release_Notes-_Product_Support_and_License_Website_Links_-_JBoss_End_User_License_Agreement_">
+ <title> JBoss End User License Agreement </title>
+ <para>
+ <ulink url="http://www.redhat.com/licenses/jboss_eula.html">http://www.redhat.com/licenses/jboss_eula.html</ulink>
+ </para>
+ </formalpara>
+ </chapter>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
+</book>
Added: epp/docs/branches/5.2/Release_Notes/en-US/Author_Group.xml
===================================================================
--- epp/docs/branches/5.2/Release_Notes/en-US/Author_Group.xml (rev 0)
+++ epp/docs/branches/5.2/Release_Notes/en-US/Author_Group.xml 2011-11-11 04:27:49 UTC (rev 8041)
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "5.2.0_Release_Notes.ent">
+%BOOK_ENTITIES;
+]>
+<authorgroup>
+ <author>
+ <firstname>Red Hat</firstname>
+ <surname>Documentation Team</surname>
+ <affiliation>
+ <shortaffil>Red Hat</shortaffil>
+ <orgdiv>Engineering Content Services</orgdiv>
+ </affiliation>
+ </author>
+</authorgroup>
Added: epp/docs/branches/5.2/Release_Notes/en-US/Book_Info.xml
===================================================================
--- epp/docs/branches/5.2/Release_Notes/en-US/Book_Info.xml (rev 0)
+++ epp/docs/branches/5.2/Release_Notes/en-US/Book_Info.xml 2011-11-11 04:27:49 UTC (rev 8041)
@@ -0,0 +1,27 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE articleinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "5.2.0_Release_Notes.ent">
+%BOOK_ENTITIES;
+]>
+<bookinfo id="arti-Release_Notes-Release_Notes">
+ <title>5.2.0 Release Notes</title>
+ <subtitle>For use with JBoss Enterprise Portal Platform &VZ;.</subtitle>
+ <productname>JBoss Enterprise Portal Platform</productname>
+ <productnumber>5.2</productnumber>
+ <edition>5.2.0</edition>
+ <pubsnumber>3</pubsnumber>
+ <abstract>
+ <para>
+ These release notes contain important information related to JBoss Enterprise Portal Platform &VZ; that may not be currently available in the Product Manuals. You should read these Release Notes in their entirety before installing the product.
+ </para>
+ </abstract>
+ <corpauthor>
+ <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="Common_Content/images/title_logo.svg" format="SVG"/>
+ </imageobject>
+ </inlinemediaobject>
+ </corpauthor>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Common_Content/Legal_Notice.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Author_Group.xml"/>
+</bookinfo>
Added: epp/docs/branches/5.2/Release_Notes/en-US/Revision_History.xml
===================================================================
--- epp/docs/branches/5.2/Release_Notes/en-US/Revision_History.xml (rev 0)
+++ epp/docs/branches/5.2/Release_Notes/en-US/Revision_History.xml 2011-11-11 04:27:49 UTC (rev 8041)
@@ -0,0 +1,54 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "5.2.0_Release_Notes.ent">
+%BOOK_ENTITIES;
+]>
+<appendix id="appe-Release_Notes-Revision_History">
+ <title>Revision History</title>
+ <simpara>
+ <revhistory>
+ <revision>
+ <revnumber>5.2.0-3</revnumber>
+ <date>Fri Nov 11 2011</date>
+ <author>
+ <firstname>Jared</firstname>
+ <surname>Morgan</surname>
+ <email>jmorgan at redhat dot com</email>
+ </author>
+ <revdescription>
+ <simplelist>
+ <member>Converted from Article to Book, to enable better TOC and structure.</member>
+ </simplelist>
+ </revdescription>
+ </revision>
+ <revision>
+ <revnumber>5.2.0-2</revnumber>
+ <date>Wed Nov 9 2011</date>
+ <author>
+ <firstname>Scott</firstname>
+ <surname>Mumford</surname>
+ <email/>
+ </author>
+ <revdescription>
+ <simplelist>
+ <member>Bumped for cvs branching.</member>
+ </simplelist>
+ </revdescription>
+ </revision>
+ <revision>
+ <revnumber>5.2.0-1</revnumber>
+ <date>Mon Aug 29 2011</date>
+ <author>
+ <firstname>Scott</firstname>
+ <surname>Mumford</surname>
+ <email/>
+ </author>
+ <revdescription>
+ <simplelist>
+ <member>Updating version and resetting pubs/ed numbers.</member>
+ </simplelist>
+ </revdescription>
+ </revision>
+ </revhistory>
+ </simpara>
+</appendix>
Added: epp/docs/branches/5.2/Release_Notes/en-US/images/icon.svg
===================================================================
--- epp/docs/branches/5.2/Release_Notes/en-US/images/icon.svg (rev 0)
+++ epp/docs/branches/5.2/Release_Notes/en-US/images/icon.svg 2011-11-11 04:27:49 UTC (rev 8041)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" width="32" height="32" id="svg3017">
+ <defs id="defs3019">
+ <linearGradient id="linearGradient2381">
+ <stop id="stop2383" style="stop-color:#ffffff;stop-opacity:1" offset="0"/>
+ <stop id="stop2385" style="stop-color:#ffffff;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient x1="296.4996" y1="188.81061" x2="317.32471" y2="209.69398" id="linearGradient2371" xlink:href="#linearGradient2381" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"/>
+ </defs>
+ <g transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)" id="g5089">
+ <path d="m 8.4382985,-6.28125 c -0.6073916,0 -4.3132985,5.94886271 -4.3132985,8.25 l 0,26.71875 c 0,0.846384 0.5818159,1.125 1.15625,1.125 l 25.5625,0 c 0.632342,0 1.125001,-0.492658 1.125,-1.125 l 0,-5.21875 0.28125,0 c 0.49684,0 0.906249,-0.409411 0.90625,-0.90625 l 0,-27.9375 c 0,-0.4968398 -0.40941,-0.90625 -0.90625,-0.90625 l -23.8117015,0 z" transform="translate(282.8327,227.1903)" id="path5091" style="fill:#5c5c4f;stroke:#000000;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"/>
+ <rect width="27.85074" height="29.369793" rx="1.1414107" ry="1.1414107" x="286.96509" y="227.63805" id="rect5093" style="fill:#032c87"/>
+ <path d="m 288.43262,225.43675 25.2418,0 0,29.3698 -26.37615,0.0241 1.13435,-29.39394 z" id="rect5095" style="fill:#ffffff"/>
+ <path d="m 302.44536,251.73726 c 1.38691,7.85917 -0.69311,11.28365 -0.69311,11.28365 2.24384,-1.60762 3.96426,-3.47694 4.90522,-5.736 0.96708,2.19264 1.83294,4.42866 4.27443,5.98941 0,0 -1.59504,-7.2004 -1.71143,-11.53706 l -6.77511,0 z" id="path5097" style="fill:#a70000;fill-opacity:1;stroke-width:2"/>
+ <rect width="25.241802" height="29.736675" rx="0.89682275" ry="0.89682275" x="290.73544" y="220.92249" id="rect5099" style="fill:#809cc9"/>
+ <path d="m 576.47347,725.93939 6.37084,0.41502 0.4069,29.51809 c -1.89202,-1.31785 -6.85427,-3.7608 -8.26232,-1.68101 l 0,-26.76752 c 0,-0.82246 0.66212,-1.48458 1.48458,-1.48458 z" transform="matrix(0.499065,-0.866565,0,1,0,0)" id="rect5101" style="fill:#4573b3;fill-opacity:1"/>
+ <path d="m 293.2599,221.89363 20.73918,0 c 0.45101,0 0.8141,0.3631 0.8141,0.81411 0.21547,6.32836 -19.36824,21.7635 -22.36739,17.59717 l 0,-17.59717 c 0,-0.45101 0.3631,-0.81411 0.81411,-0.81411 z" id="path5103" style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"/>
+ </g>
+</svg>
Added: epp/docs/branches/5.2/Release_Notes/en-US/known_issues.xml
===================================================================
--- epp/docs/branches/5.2/Release_Notes/en-US/known_issues.xml (rev 0)
+++ epp/docs/branches/5.2/Release_Notes/en-US/known_issues.xml 2011-11-11 04:27:49 UTC (rev 8041)
@@ -0,0 +1,4 @@
+
+<para>
+There are no known issues in this release.
+</para>
Added: epp/docs/branches/5.2/Release_Notes/en-US/need_info.xml
===================================================================
--- epp/docs/branches/5.2/Release_Notes/en-US/need_info.xml (rev 0)
+++ epp/docs/branches/5.2/Release_Notes/en-US/need_info.xml 2011-11-11 04:27:49 UTC (rev 8041)
@@ -0,0 +1,11 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE variablelist PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+<variablelist>
+ <varlistentry>
+ <term>Awaiting</term>
+ <listitem>
+ <para>Further Triage</para>
+ </listitem>
+ </varlistentry>
+</variablelist>
Added: epp/docs/branches/5.2/Release_Notes/en-US/not_documented.xml
===================================================================
--- epp/docs/branches/5.2/Release_Notes/en-US/not_documented.xml (rev 0)
+++ epp/docs/branches/5.2/Release_Notes/en-US/not_documented.xml 2011-11-11 04:27:49 UTC (rev 8041)
@@ -0,0 +1,11 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE variablelist PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+<variablelist>
+<!-- https://issues.jboss.org/browse/JBEPP-612 --> <varlistentry>
+ <term>Awaiting Triage</term>
+ <listitem>
+ <para>In Jira</para>
+ </listitem>
+ </varlistentry>
+</variablelist>
Added: epp/docs/branches/5.2/Release_Notes/en-US/resolved_issues.xml
===================================================================
--- epp/docs/branches/5.2/Release_Notes/en-US/resolved_issues.xml (rev 0)
+++ epp/docs/branches/5.2/Release_Notes/en-US/resolved_issues.xml 2011-11-11 04:27:49 UTC (rev 8041)
@@ -0,0 +1,11 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE variablelist PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+<variablelist>
+<!-- https://issues.jboss.org/browse/JBEPP-645 --> <varlistentry>
+ <term>Triage</term>
+ <listitem>
+ <para>is ongoing</para>
+ </listitem>
+ </varlistentry>
+</variablelist>
Added: epp/docs/branches/5.2/Release_Notes/publican.cfg
===================================================================
--- epp/docs/branches/5.2/Release_Notes/publican.cfg (rev 0)
+++ epp/docs/branches/5.2/Release_Notes/publican.cfg 2011-11-11 04:27:49 UTC (rev 8041)
@@ -0,0 +1,10 @@
+# Config::Simple 4.59
+# Tue Nov 16 11:07:34 2010
+
+xml_lang: en-US
+type: Book
+brand: JBoss
+show_remarks: 1
+cvs_branch: DOCS-RHEL-6
+cvs_root: :ext:cvs.devel.redhat.com:/cvs/dist
+cvs_pkg: JBoss_Enterprise_Portal_Platform-5.2.0_Release_Notes-5.2-web-__LANG__
13 years, 1 month
gatein SVN: r8040 - in epp/docs/branches/5.2: Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity and 1 other directory.
by do-not-reply@jboss.org
Author: smumford
Date: 2011-11-10 21:10:15 -0500 (Thu, 10 Nov 2011)
New Revision: 8040
Modified:
epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/SSO.xml
epp/docs/branches/5.2/Reference_Guide/en-US/modules/AuthenticationAndIdentity/SSO.xml
Log:
JBEPP-1350: Restoring required tomcat reference
Modified: epp/docs/branches/5.2/Reference_Guide/en-US/modules/AuthenticationAndIdentity/SSO.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide/en-US/modules/AuthenticationAndIdentity/SSO.xml 2011-11-11 02:09:34 UTC (rev 8039)
+++ epp/docs/branches/5.2/Reference_Guide/en-US/modules/AuthenticationAndIdentity/SSO.xml 2011-11-11 02:10:15 UTC (rev 8040)
@@ -41,14 +41,12 @@
</para>
</listitem>
</itemizedlist>
- <!-- Removed as per https://issues.jboss.org/browse/JBEPP-1350
<note>
<title>Prerequisites</title>
<para>
In this tutorial, the SSO server is being installed in a Tomcat environment. Tomcat can be obtained from <ulink type="http" url="http://tomcat.apache.org">http://tomcat.apache.org</ulink>.
</para>
</note>
- Retaining as placeholder -->
<para>
All the packages required for SSO setup can be found in a zip file located in the <filename>jboss-epp-<replaceable>VERSION</replaceable>/gatein-sso</filename> directory of the JBoss Enterprise Portal Platform binary package.
</para>
Modified: epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/SSO.xml
===================================================================
--- epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/SSO.xml 2011-11-11 02:09:34 UTC (rev 8039)
+++ epp/docs/branches/5.2/Reference_Guide-eXoJCR-1.14/en-US/modules/AuthenticationAndIdentity/SSO.xml 2011-11-11 02:10:15 UTC (rev 8040)
@@ -51,7 +51,6 @@
</listitem>
</itemizedlist>
- <!-- Removed as per https://issues.jboss.org/browse/JBEPP-1350
<note>
<title>Prerequisites</title>
@@ -59,7 +58,6 @@
In this tutorial, the SSO server is being installed in a Tomcat environment. Tomcat can be obtained from <ulink type="http" url="http://tomcat.apache.org"> http://tomcat.apache.org </ulink> .
</para>
</note>
- Retaining as placeholder -->
<para>
All the packages required for SSO setup can be found in a zip file located in the <filename>jboss-epp-<replaceable>VERSION</replaceable>/gatein-sso</filename> directory of the JBoss Enterprise Portal Platform binary package.
13 years, 1 month