gatein SVN: r5229 - in epp/portal/branches/EPP_5_1_Branch: component/web/resources/src/main/java/org/exoplatform/portal/resource and 3 other directories.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-11-23 11:16:33 -0500 (Tue, 23 Nov 2010)
New Revision: 5229
Modified:
epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/application/Image.java
epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/application/ResourceRequestFilter.java
epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/resource/CachedStylesheet.java
epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/resource/SkinService.java
epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigService.java
epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/conf/common/common-configuration.xml
epp/portal/branches/EPP_5_1_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/javascript/JavascriptServlet.java
Log:
JBEPP-659: CSS file are not cached (in the browser)
Rolling back
Modified: epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/application/Image.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/application/Image.java 2010-11-23 15:06:13 UTC (rev 5228)
+++ epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/application/Image.java 2010-11-23 16:16:33 UTC (rev 5229)
@@ -19,8 +19,6 @@
package org.exoplatform.portal.application;
-import java.util.Date;
-
/**
* @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
* @version $Revision$
@@ -31,19 +29,10 @@
final ImageType type;
final byte[] bytes;
-
- final long lastModified;
public Image(ImageType type, byte[] bytes)
{
this.type = type;
this.bytes = bytes;
-// Remove miliseconds because string of date retrieve from Http header doesn't have miliseconds
- lastModified = (new Date().getTime() / 1000) * 1000;
}
-
- public long getLastModified()
- {
- return lastModified;
- }
}
Modified: epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/application/ResourceRequestFilter.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/application/ResourceRequestFilter.java 2010-11-23 15:06:13 UTC (rev 5228)
+++ epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/application/ResourceRequestFilter.java 2010-11-23 16:16:33 UTC (rev 5229)
@@ -36,7 +36,6 @@
import java.io.OutputStream;
import java.net.URLDecoder;
import java.nio.charset.Charset;
-import java.util.Date;
import java.util.concurrent.Callable;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
@@ -65,10 +64,6 @@
private ConcurrentMap<String, FutureTask<Image>> mirroredImageCache = new ConcurrentHashMap<String, FutureTask<Image>>();
- public static final String IF_MODIFIED_SINCE = "If-Modified-Since";
-
- public static final String LAST_MODIFIED = "Last-Modified";
-
public void afterInit(FilterConfig filterConfig)
{
cfg = filterConfig;
@@ -82,19 +77,11 @@
final String uri = URLDecoder.decode(httpRequest.getRequestURI(), "UTF-8");
final HttpServletResponse httpResponse = (HttpServletResponse)response;
ExoContainer portalContainer = getContainer();
- final SkinService skinService = (SkinService) portalContainer.getComponentInstanceOfType(SkinService.class);
- long ifModifiedSince = httpRequest.getDateHeader(IF_MODIFIED_SINCE);
+ SkinService skinService = (SkinService)portalContainer.getComponentInstanceOfType(SkinService.class);
//
if (uri.endsWith(".css"))
{
-// Check if cached resource has not been modifed, return 304 code
- long cssLastModified = skinService.getLastModified(uri);
- if (isNotModified(ifModifiedSince, cssLastModified)) {
- httpResponse.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
- return;
- }
-
final OutputStream out = response.getOutputStream();
final BinaryOutput output = new BinaryOutput()
{
@@ -131,9 +118,6 @@
{
httpResponse.setHeader("Cache-Control", "no-cache");
}
-
- long lastModified = skinService.getLastModified(uri);
- processIfModified(lastModified, httpResponse);
}
};
@@ -208,16 +192,8 @@
Image img = futureImg.get();
if (img != null)
{
- //Check if cached resource has not been modifed, return 304 code
- long imgLastModified = img.getLastModified();
- if (isNotModified(ifModifiedSince, imgLastModified)) {
- httpResponse.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
- return;
- }
httpResponse.setContentType(img.type.getMimeType());
httpResponse.setContentLength(img.bytes.length);
- processIfModified(imgLastModified, httpResponse);
-
OutputStream out = httpResponse.getOutputStream();
out.write(img.bytes);
out.close();
@@ -262,30 +238,6 @@
}
}
- /**
- * Add Last-Modified Http header to HttpServetResponse
- */
- public void processIfModified(long lastModified, HttpServletResponse httpResponse) {
- httpResponse.setDateHeader(ResourceRequestFilter.LAST_MODIFIED, lastModified);
- }
-
- /**
- * If cached resource has not changed since date in http header (If_Modified_Since), return true
- * Else return false;
- * @param ifModifedSince - String, and HttpHeader element
- * @param lastModified
- * @param httpResponse
- * @return
- */
- public boolean isNotModified(long ifModifedSince, long lastModified) {
- if (!PropertyManager.isDevelopping()) {
- if (ifModifedSince >= lastModified) {
- return true;
- }
- }
- return false;
- }
-
public void destroy()
{
}
Modified: epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/resource/CachedStylesheet.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/resource/CachedStylesheet.java 2010-11-23 15:06:13 UTC (rev 5228)
+++ epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/resource/CachedStylesheet.java 2010-11-23 16:16:33 UTC (rev 5229)
@@ -24,7 +24,6 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.lang.reflect.UndeclaredThrowableException;
-import java.util.Date;
/**
* @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
@@ -41,8 +40,6 @@
/** . */
private final byte[] bytes;
-
- private long lastModified;
public CachedStylesheet(String text)
{
@@ -62,18 +59,11 @@
//
this.text = text;
this.bytes = bytes;
-// 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;
}
public void writeTo(BinaryOutput output) throws IOException
Modified: epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/resource/SkinService.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/resource/SkinService.java 2010-11-23 15:06:13 UTC (rev 5228)
+++ epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/resource/SkinService.java 2010-11-23 16:16:33 UTC (rev 5229)
@@ -48,7 +48,6 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.Date;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.HashSet;
@@ -440,9 +439,6 @@
// Try cache first
if (!PropertyManager.isDevelopping())
{
- //
- FutureExoCache<String, CachedStylesheet, Orientation> cache = orientation == Orientation.LT ? ltCache : rtCache;
- CachedStylesheet cachedCss = cache.get(orientation, path);
if (path.startsWith("/" + portalContainerName + "/resource"))
{
@@ -476,7 +472,6 @@
cachedCss = new CachedStylesheet(css);
cache.put(path, cachedCss);
}
-
cachedCss.writeTo(renderer.getOutput());
}
else
@@ -554,41 +549,6 @@
}
/**
- * Return last modifed date of cached css
- * Return null if cached css can not be found
- * @param path - path must not be null
- */
- public long getLastModified(String path)
- {
- if (path == null)
- {
- throw new IllegalArgumentException("path must not be null");
- }
-
- FutureExoCache<String, CachedStylesheet, Orientation> cache = ltCache;
- Orientation orientation = Orientation.LT;
- if (path.endsWith("-lt.css"))
- {
- path = path.substring(0, path.length() - "-lt.css".length()) + ".css";
- }
- else if (path.endsWith("-rt.css"))
- {
- path = path.substring(0, path.length() - "-rt.css".length()) + ".css";
- orientation = Orientation.RT;
- }
-
- CachedStylesheet cachedCSS = cache.get(orientation, path);
- if (cachedCSS == null)
- {
- return Long.MAX_VALUE;
- }
- else
- {
- return cachedCSS.getLastModified();
- }
- }
-
- /**
* Remove SkinConfig from Portal Skin Configs by module and skin name
* @param module
* @param skinName
@@ -918,4 +878,4 @@
DefaultServletContainerFactory.getInstance().getServletContainer().removeWebAppListener(deployer);
DefaultServletContainerFactory.getInstance().getServletContainer().removeWebAppListener(removal);
}
-}
+}
\ No newline at end of file
Modified: epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigService.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigService.java 2010-11-23 15:06:13 UTC (rev 5228)
+++ epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigService.java 2010-11-23 16:16:33 UTC (rev 5229)
@@ -40,7 +40,6 @@
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;
@@ -65,8 +64,6 @@
private HashMap<String, String> extendedJavascripts;
private byte[] jsBytes = null;
-
- private long lastModified = Long.MAX_VALUE;
/** . */
private JavascriptDeployer deployer;
@@ -281,18 +278,6 @@
*/
public void writeMergedJavascript(OutputStream out) throws IOException
{
- jsBytes = getMergedJavascript();
-
- //
- out.write(jsBytes);
- }
-
- /**
- * Return merged javascript in byte array
- * @return byte[]
- */
- public byte[] getMergedJavascript()
- {
if (jsBytes == null)
{
// Generate javascript in a buffer
@@ -329,15 +314,10 @@
log.error("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;
}
- return jsBytes;
- }
- public long getLastModified()
- {
- return lastModified;
+ //
+ out.write(jsBytes);
}
/**
@@ -394,4 +374,4 @@
DefaultServletContainerFactory.getInstance().getServletContainer().removeWebAppListener(removal);
}
-}
+}
\ No newline at end of file
Modified: epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/conf/common/common-configuration.xml
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/conf/common/common-configuration.xml 2010-11-23 15:06:13 UTC (rev 5228)
+++ epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/conf/common/common-configuration.xml 2010-11-23 16:16:33 UTC (rev 5229)
@@ -171,11 +171,11 @@
<!-- The white list -->
<name>white-list</name>
<!-- We accept anything not black listed -->
- <value>*</value>
+ <value>localhost</value>
</values-param>
<values-param>
<name>black-list</name>
- <value>*.evil.org</value>
+ <value>*</value>
</values-param>
</init-params>
</component>
Modified: epp/portal/branches/EPP_5_1_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/javascript/JavascriptServlet.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/javascript/JavascriptServlet.java 2010-11-23 15:06:13 UTC (rev 5228)
+++ epp/portal/branches/EPP_5_1_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/javascript/JavascriptServlet.java 2010-11-23 16:16:33 UTC (rev 5229)
@@ -19,14 +19,10 @@
package org.exoplatform.portal.webui.javascript;
-import org.exoplatform.commons.utils.PropertyManager;
import org.exoplatform.container.ExoContainerContext;
-import org.exoplatform.portal.application.ResourceRequestFilter;
import org.exoplatform.web.application.javascript.JavascriptConfigService;
import java.io.IOException;
-import java.io.OutputStream;
-import java.util.Date;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
@@ -59,23 +55,14 @@
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException
{
- final JavascriptConfigService service =
+ JavascriptConfigService service =
(JavascriptConfigService)ExoContainerContext.getCurrentContainer().getComponentInstanceOfType(
JavascriptConfigService.class);
- long lastModified = service.getLastModified();
- long ifModifiedSince = request.getDateHeader(ResourceRequestFilter.IF_MODIFIED_SINCE);
-
+
// Julien: should we also set charset along with the content type ?
response.setContentType("application/x-javascript");
- if (!PropertyManager.isDevelopping()) {
- if (ifModifiedSince >= lastModified) {
- response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
- return;
- }
- }
-
- byte[] jsBytes = service.getMergedJavascript();
- response.setDateHeader(ResourceRequestFilter.LAST_MODIFIED, lastModified);
- response.getOutputStream().write(jsBytes);
+ ServletOutputStream stream = response.getOutputStream();
+ service.writeMergedJavascript(stream);
}
+
}
14 years, 1 month
gatein SVN: r5228 - in epp/portal/branches/EPP_5_1_Branch: component/web/resources/src/main/java/org/exoplatform/portal/resource and 2 other directories.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-11-23 10:06:13 -0500 (Tue, 23 Nov 2010)
New Revision: 5228
Modified:
epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/application/Image.java
epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/application/ResourceRequestFilter.java
epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/resource/CachedStylesheet.java
epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/resource/SkinService.java
epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigService.java
epp/portal/branches/EPP_5_1_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/javascript/JavascriptServlet.java
Log:
JBEPP-659: CSS file are not cached (in the browser)
Modified: epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/application/Image.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/application/Image.java 2010-11-23 14:50:20 UTC (rev 5227)
+++ epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/application/Image.java 2010-11-23 15:06:13 UTC (rev 5228)
@@ -19,6 +19,8 @@
package org.exoplatform.portal.application;
+import java.util.Date;
+
/**
* @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
* @version $Revision$
@@ -29,10 +31,19 @@
final ImageType type;
final byte[] bytes;
+
+ final long lastModified;
public Image(ImageType type, byte[] bytes)
{
this.type = type;
this.bytes = bytes;
+// Remove miliseconds because string of date retrieve from Http header doesn't have miliseconds
+ lastModified = (new Date().getTime() / 1000) * 1000;
}
+
+ public long getLastModified()
+ {
+ return lastModified;
+ }
}
Modified: epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/application/ResourceRequestFilter.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/application/ResourceRequestFilter.java 2010-11-23 14:50:20 UTC (rev 5227)
+++ epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/application/ResourceRequestFilter.java 2010-11-23 15:06:13 UTC (rev 5228)
@@ -36,6 +36,7 @@
import java.io.OutputStream;
import java.net.URLDecoder;
import java.nio.charset.Charset;
+import java.util.Date;
import java.util.concurrent.Callable;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
@@ -64,6 +65,10 @@
private ConcurrentMap<String, FutureTask<Image>> mirroredImageCache = new ConcurrentHashMap<String, FutureTask<Image>>();
+ public static final String IF_MODIFIED_SINCE = "If-Modified-Since";
+
+ public static final String LAST_MODIFIED = "Last-Modified";
+
public void afterInit(FilterConfig filterConfig)
{
cfg = filterConfig;
@@ -77,11 +82,19 @@
final String uri = URLDecoder.decode(httpRequest.getRequestURI(), "UTF-8");
final HttpServletResponse httpResponse = (HttpServletResponse)response;
ExoContainer portalContainer = getContainer();
- SkinService skinService = (SkinService)portalContainer.getComponentInstanceOfType(SkinService.class);
+ final SkinService skinService = (SkinService) portalContainer.getComponentInstanceOfType(SkinService.class);
+ long ifModifiedSince = httpRequest.getDateHeader(IF_MODIFIED_SINCE);
//
if (uri.endsWith(".css"))
{
+// Check if cached resource has not been modifed, return 304 code
+ long cssLastModified = skinService.getLastModified(uri);
+ if (isNotModified(ifModifiedSince, cssLastModified)) {
+ httpResponse.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
+ return;
+ }
+
final OutputStream out = response.getOutputStream();
final BinaryOutput output = new BinaryOutput()
{
@@ -118,6 +131,9 @@
{
httpResponse.setHeader("Cache-Control", "no-cache");
}
+
+ long lastModified = skinService.getLastModified(uri);
+ processIfModified(lastModified, httpResponse);
}
};
@@ -192,8 +208,16 @@
Image img = futureImg.get();
if (img != null)
{
+ //Check if cached resource has not been modifed, return 304 code
+ long imgLastModified = img.getLastModified();
+ if (isNotModified(ifModifiedSince, imgLastModified)) {
+ httpResponse.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
+ return;
+ }
httpResponse.setContentType(img.type.getMimeType());
httpResponse.setContentLength(img.bytes.length);
+ processIfModified(imgLastModified, httpResponse);
+
OutputStream out = httpResponse.getOutputStream();
out.write(img.bytes);
out.close();
@@ -238,6 +262,30 @@
}
}
+ /**
+ * Add Last-Modified Http header to HttpServetResponse
+ */
+ public void processIfModified(long lastModified, HttpServletResponse httpResponse) {
+ httpResponse.setDateHeader(ResourceRequestFilter.LAST_MODIFIED, lastModified);
+ }
+
+ /**
+ * If cached resource has not changed since date in http header (If_Modified_Since), return true
+ * Else return false;
+ * @param ifModifedSince - String, and HttpHeader element
+ * @param lastModified
+ * @param httpResponse
+ * @return
+ */
+ public boolean isNotModified(long ifModifedSince, long lastModified) {
+ if (!PropertyManager.isDevelopping()) {
+ if (ifModifedSince >= lastModified) {
+ return true;
+ }
+ }
+ return false;
+ }
+
public void destroy()
{
}
Modified: epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/resource/CachedStylesheet.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/resource/CachedStylesheet.java 2010-11-23 14:50:20 UTC (rev 5227)
+++ epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/resource/CachedStylesheet.java 2010-11-23 15:06:13 UTC (rev 5228)
@@ -24,6 +24,7 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.lang.reflect.UndeclaredThrowableException;
+import java.util.Date;
/**
* @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
@@ -40,6 +41,8 @@
/** . */
private final byte[] bytes;
+
+ private long lastModified;
public CachedStylesheet(String text)
{
@@ -59,11 +62,18 @@
//
this.text = text;
this.bytes = bytes;
+// 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;
}
public void writeTo(BinaryOutput output) throws IOException
Modified: epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/resource/SkinService.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/resource/SkinService.java 2010-11-23 14:50:20 UTC (rev 5227)
+++ epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/portal/resource/SkinService.java 2010-11-23 15:06:13 UTC (rev 5228)
@@ -48,6 +48,7 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.Date;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.HashSet;
@@ -439,6 +440,9 @@
// Try cache first
if (!PropertyManager.isDevelopping())
{
+ //
+ FutureExoCache<String, CachedStylesheet, Orientation> cache = orientation == Orientation.LT ? ltCache : rtCache;
+ CachedStylesheet cachedCss = cache.get(orientation, path);
if (path.startsWith("/" + portalContainerName + "/resource"))
{
@@ -472,6 +476,7 @@
cachedCss = new CachedStylesheet(css);
cache.put(path, cachedCss);
}
+
cachedCss.writeTo(renderer.getOutput());
}
else
@@ -549,6 +554,41 @@
}
/**
+ * Return last modifed date of cached css
+ * Return null if cached css can not be found
+ * @param path - path must not be null
+ */
+ public long getLastModified(String path)
+ {
+ if (path == null)
+ {
+ throw new IllegalArgumentException("path must not be null");
+ }
+
+ FutureExoCache<String, CachedStylesheet, Orientation> cache = ltCache;
+ Orientation orientation = Orientation.LT;
+ if (path.endsWith("-lt.css"))
+ {
+ path = path.substring(0, path.length() - "-lt.css".length()) + ".css";
+ }
+ else if (path.endsWith("-rt.css"))
+ {
+ path = path.substring(0, path.length() - "-rt.css".length()) + ".css";
+ orientation = Orientation.RT;
+ }
+
+ CachedStylesheet cachedCSS = cache.get(orientation, path);
+ if (cachedCSS == null)
+ {
+ return Long.MAX_VALUE;
+ }
+ else
+ {
+ return cachedCSS.getLastModified();
+ }
+ }
+
+ /**
* Remove SkinConfig from Portal Skin Configs by module and skin name
* @param module
* @param skinName
@@ -878,4 +918,4 @@
DefaultServletContainerFactory.getInstance().getServletContainer().removeWebAppListener(deployer);
DefaultServletContainerFactory.getInstance().getServletContainer().removeWebAppListener(removal);
}
-}
\ No newline at end of file
+}
Modified: epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigService.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigService.java 2010-11-23 14:50:20 UTC (rev 5227)
+++ epp/portal/branches/EPP_5_1_Branch/component/web/resources/src/main/java/org/exoplatform/web/application/javascript/JavascriptConfigService.java 2010-11-23 15:06:13 UTC (rev 5228)
@@ -40,6 +40,7 @@
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;
@@ -64,6 +65,8 @@
private HashMap<String, String> extendedJavascripts;
private byte[] jsBytes = null;
+
+ private long lastModified = Long.MAX_VALUE;
/** . */
private JavascriptDeployer deployer;
@@ -278,6 +281,18 @@
*/
public void writeMergedJavascript(OutputStream out) throws IOException
{
+ jsBytes = getMergedJavascript();
+
+ //
+ out.write(jsBytes);
+ }
+
+ /**
+ * Return merged javascript in byte array
+ * @return byte[]
+ */
+ public byte[] getMergedJavascript()
+ {
if (jsBytes == null)
{
// Generate javascript in a buffer
@@ -314,10 +329,15 @@
log.error("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;
}
+ return jsBytes;
+ }
- //
- out.write(jsBytes);
+ public long getLastModified()
+ {
+ return lastModified;
}
/**
@@ -374,4 +394,4 @@
DefaultServletContainerFactory.getInstance().getServletContainer().removeWebAppListener(removal);
}
-}
\ No newline at end of file
+}
Modified: epp/portal/branches/EPP_5_1_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/javascript/JavascriptServlet.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/javascript/JavascriptServlet.java 2010-11-23 14:50:20 UTC (rev 5227)
+++ epp/portal/branches/EPP_5_1_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/javascript/JavascriptServlet.java 2010-11-23 15:06:13 UTC (rev 5228)
@@ -19,10 +19,14 @@
package org.exoplatform.portal.webui.javascript;
+import org.exoplatform.commons.utils.PropertyManager;
import org.exoplatform.container.ExoContainerContext;
+import org.exoplatform.portal.application.ResourceRequestFilter;
import org.exoplatform.web.application.javascript.JavascriptConfigService;
import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Date;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
@@ -55,14 +59,23 @@
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException
{
- JavascriptConfigService service =
+ final JavascriptConfigService service =
(JavascriptConfigService)ExoContainerContext.getCurrentContainer().getComponentInstanceOfType(
JavascriptConfigService.class);
-
+ long lastModified = service.getLastModified();
+ long ifModifiedSince = request.getDateHeader(ResourceRequestFilter.IF_MODIFIED_SINCE);
+
// Julien: should we also set charset along with the content type ?
response.setContentType("application/x-javascript");
- ServletOutputStream stream = response.getOutputStream();
- service.writeMergedJavascript(stream);
+ if (!PropertyManager.isDevelopping()) {
+ if (ifModifiedSince >= lastModified) {
+ response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
+ return;
+ }
+ }
+
+ byte[] jsBytes = service.getMergedJavascript();
+ response.setDateHeader(ResourceRequestFilter.LAST_MODIFIED, lastModified);
+ response.getOutputStream().write(jsBytes);
}
-
}
14 years, 1 month
gatein SVN: r5227 - epp/portal/branches/EPP_5_1_Branch/webui/portal/src/main/java/org/exoplatform/portal/application.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-11-23 09:50:20 -0500 (Tue, 23 Nov 2010)
New Revision: 5227
Modified:
epp/portal/branches/EPP_5_1_Branch/webui/portal/src/main/java/org/exoplatform/portal/application/PortalRequestContext.java
Log:
JBEPP-643: XSS issues passed in URL
Modified: epp/portal/branches/EPP_5_1_Branch/webui/portal/src/main/java/org/exoplatform/portal/application/PortalRequestContext.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/webui/portal/src/main/java/org/exoplatform/portal/application/PortalRequestContext.java 2010-11-23 14:43:47 UTC (rev 5226)
+++ epp/portal/branches/EPP_5_1_Branch/webui/portal/src/main/java/org/exoplatform/portal/application/PortalRequestContext.java 2010-11-23 14:50:20 UTC (rev 5227)
@@ -159,16 +159,17 @@
cacheLevel_ = cache;
}
- requestURI_ = URLDecoder.decode(req.getRequestURI(), "UTF-8");
-
+ requestURI_ = req.getRequestURI();
+ String decodedURI = URLDecoder.decode(requestURI_, "UTF-8");
+
// req.getPathInfo will already have the encoding set from the server.
// We need to use the UTF-8 value since this is how we store the portal name.
// Reconstructing the getPathInfo from the non server decoded values.
String servletPath = URLDecoder.decode(req.getServletPath(), "UTF-8");
String contextPath = URLDecoder.decode(req.getContextPath(), "UTF-8");
String pathInfo = "/";
- if (requestURI_.length() > servletPath.length() + contextPath.length())
- pathInfo = requestURI_.substring(servletPath.length() + contextPath.length());
+ if (decodedURI.length() > servletPath.length() + contextPath.length())
+ pathInfo = decodedURI.substring(servletPath.length() + contextPath.length());
int colonIndex = pathInfo.indexOf("/", 1);
if (colonIndex < 0)
@@ -178,13 +179,13 @@
portalOwner_ = pathInfo.substring(1, colonIndex);
nodePath_ = pathInfo.substring(colonIndex, pathInfo.length());
- portalURI = requestURI_.substring(0, requestURI_.lastIndexOf(nodePath_)) + "/";
+ portalURI = decodedURI.substring(0, decodedURI.lastIndexOf(nodePath_)) + "/";
- if (requestURI_.indexOf("/public/") >= 0)
+ if (decodedURI.indexOf("/public/") >= 0)
{
accessPath = PUBLIC_ACCESS;
}
- else if (requestURI_.indexOf("/private/") >= 0)
+ else if (decodedURI.indexOf("/private/") >= 0)
{
accessPath = PRIVATE_ACCESS;
}
14 years, 1 month
gatein SVN: r5226 - in portal/branches/wci: component/common/src/main/java/conf and 21 other directories.
by do-not-reply@jboss.org
Author: alain_defrance
Date: 2010-11-23 09:43:47 -0500 (Tue, 23 Nov 2010)
New Revision: 5226
Added:
portal/branches/wci/component/common/src/main/java/conf/configuration-jetty.properties
portal/branches/wci/packaging/jetty/
portal/branches/wci/packaging/jetty/pkg/
portal/branches/wci/packaging/jetty/pkg/pom.xml
portal/branches/wci/packaging/jetty/pkg/src/
portal/branches/wci/packaging/jetty/pkg/src/main/
portal/branches/wci/packaging/jetty/pkg/src/main/resources/
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty-patch/
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty-patch/jetty.xml.patch
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/commons-logging.properties
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/exokey.pem
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/gatein-dev.bat
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/gatein-dev.sh
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/gatein.bat
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/gatein.sh
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/oauthkey.pem
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/contexts/
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/contexts/eXoGadgetServer.xml
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/contexts/eXoResources.xml
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/contexts/portal.xml
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/contexts/rest.xml
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/etc/
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/etc/login.conf
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/gatein/
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/gatein/conf/
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/gatein/conf/configuration.xml
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/patches/
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/webapps/
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/webapps/ROOT/
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/webapps/ROOT/WEB-INF/
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/webapps/ROOT/WEB-INF/web.xml
portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/webapps/ROOT/index.jsp
portal/branches/wci/packaging/jetty/pkg/transform.xsl
portal/branches/wci/packaging/jetty/pom.xml
portal/branches/wci/web/portal/src/main/webapp/WEB-INF/jetty-web.xml
Modified:
portal/branches/wci/packaging/pom.xml
portal/branches/wci/packaging/tomcat/pkg/pom.xml
portal/branches/wci/packaging/tomcat/pkg/src/main/resources/tomcat/conf/Catalina/localhost/portal.xml
portal/branches/wci/packaging/tomcat/pkg/tc6/pom.xml
portal/branches/wci/packaging/tomcat/pkg/tc7/pom.xml
portal/branches/wci/pom.xml
Log:
Jetty packaging
Copied: portal/branches/wci/component/common/src/main/java/conf/configuration-jetty.properties (from rev 4982, portal/branches/wci/component/common/src/main/java/conf/configuration-tomcat.properties)
===================================================================
--- portal/branches/wci/component/common/src/main/java/conf/configuration-jetty.properties (rev 0)
+++ portal/branches/wci/component/common/src/main/java/conf/configuration-jetty.properties 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,62 @@
+#
+# 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.
+#
+
+# Data
+gatein.data.dir=../gatein/data
+
+# DB
+gatein.db.data.dir=${gatein.data.dir}/db
+
+# JCR
+gatein.jcr.config.type=local
+gatein.jcr.datasource.name=jdbcjcr
+gatein.jcr.datasource.dialect=auto
+gatein.jcr.datasource.driver=org.hsqldb.jdbcDriver
+gatein.jcr.datasource.url=jdbc:hsqldb:file:${gatein.db.data.dir}/data/jdbcjcr_${name}
+gatein.jcr.datasource.username=sa
+gatein.jcr.datasource.password=
+
+gatein.jcr.data.dir=${gatein.data.dir}/jcr
+gatein.jcr.storage.data.dir=${gatein.jcr.data.dir}/values
+gatein.jcr.cache.config=classpath:/conf/jcr/jbosscache/${gatein.jcr.config.type}/config.xml
+gatein.jcr.lock.cache.config=classpath:/conf/jcr/jbosscache/${gatein.jcr.config.type}/lock-config.xml
+gatein.jcr.index.data.dir=${gatein.jcr.data.dir}/lucene
+gatein.jcr.index.changefilterclass=org.exoplatform.services.jcr.impl.core.query.DefaultChangesFilter
+gatein.jcr.index.cache.config=classpath:/conf/jcr/jbosscache/cluster/indexer-config.xml
+gatein.jcr.jgroups.config=classpath:/conf/jcr/jbosscache/cluster/udp-mux.xml
+
+# IDM
+gatein.idm.datasource.name=jdbcidm
+gatein.idm.datasource.driver=org.hsqldb.jdbcDriver
+gatein.idm.datasource.url=jdbc:hsqldb:file:${gatein.db.data.dir}/data/jdbcidm_${name}
+gatein.idm.datasource.username=sa
+gatein.idm.datasource.password=
+
+# Arjuna configuration
+com.arjuna.ats.arjuna.objectstore.objectStoreDir=${gatein.data.dir}/jta
+
+# EMail
+gatein.email.smtp.username=
+gatein.email.smtp.password=
+gatein.email.smtp.host=smtp.gmail.com
+gatein.email.smtp.port=465
+gatein.email.smtp.starttls.enable=true
+gatein.email.smtp.auth=true
+gatein.email.smtp.socketFactory.port=465
+gatein.email.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
\ No newline at end of file
Added: portal/branches/wci/packaging/jetty/pkg/pom.xml
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/pom.xml (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/pom.xml 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,956 @@
+<?xml version="1.0"?>
+<?rename tofile="portal.war"?>
+<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/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.parent</artifactId>
+ <version>3.2.0-Beta01-SNAPSHOT</version>
+ </parent>
+ <artifactId>exo.portal.packaging.jetty.pkg</artifactId>
+ <packaging>pom</packaging>
+ <name>GateIn for Jetty packaging</name>
+
+ <properties>
+ <jetty.dir>${exo.projects.directory.dependencies}/${exo.projects.app.jetty.version}</jetty.dir>
+ </properties>
+
+ <dependencies>
+
+ <!-- Logging -->
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-jdk14</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </dependency>
+
+ <!-- Apache commons -->
+ <dependency>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-chain</groupId>
+ <artifactId>commons-chain</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-dbcp</groupId>
+ <artifactId>commons-dbcp</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-digester</groupId>
+ <artifactId>commons-digester</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-fileupload</groupId>
+ <artifactId>commons-fileupload</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-httpclient</groupId>
+ <artifactId>commons-httpclient</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-pool</groupId>
+ <artifactId>commons-pool</artifactId>
+ </dependency>
+
+ <!-- JBoss -->
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-common-core</artifactId>
+ <version>2.2.9.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossxb</artifactId>
+ <version>2.0.1.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging-spi</artifactId>
+ <version>2.0.5.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.cache</groupId>
+ <artifactId>jbosscache-core</artifactId>
+ <version>3.2.6.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>jboss.jbossts</groupId>
+ <artifactId>jbossjts</artifactId>
+ <version>4.6.1.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>jboss.jbossts</groupId>
+ <artifactId>jbossts-common</artifactId>
+ <version>4.6.1.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>javassist</groupId>
+ <artifactId>javassist</artifactId>
+ <version>3.4.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>jgroups</groupId>
+ <artifactId>jgroups</artifactId>
+ <version>2.6.13.GA</version>
+ </dependency>
+
+ <!-- JCR stack -->
+ <dependency>
+ <groupId>org.exoplatform.kernel</groupId>
+ <artifactId>exo.kernel.commons</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.kernel</groupId>
+ <artifactId>exo.kernel.component.cache</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.kernel</groupId>
+ <artifactId>exo.kernel.component.command</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.kernel</groupId>
+ <artifactId>exo.kernel.component.common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.kernel</groupId>
+ <artifactId>exo.kernel.component.remote</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.kernel</groupId>
+ <artifactId>exo.kernel.container</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.kernel</groupId>
+ <artifactId>exo.kernel.component.ext.cache.impl.jboss.v3</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.core</groupId>
+ <artifactId>exo.core.component.organization.api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.core</groupId>
+ <artifactId>exo.core.component.database</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.core</groupId>
+ <artifactId>exo.core.component.organization.jdbc</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.core</groupId>
+ <artifactId>exo.core.component.organization.ldap</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.core</groupId>
+ <artifactId>exo.core.component.security.core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.core</groupId>
+ <artifactId>exo.core.component.document</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.core</groupId>
+ <artifactId>exo.core.component.xml-processing</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.jcr</groupId>
+ <artifactId>exo.jcr.component.core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.jcr</groupId>
+ <artifactId>exo.jcr.component.ext</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.jcr</groupId>
+ <artifactId>exo.jcr.component.webdav</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.jcr</groupId>
+ <artifactId>exo.jcr.component.ftp</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.jcr</groupId>
+ <artifactId>exo.jcr.framework.web</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.jcr</groupId>
+ <artifactId>exo.jcr.framework.command</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.ws</groupId>
+ <artifactId>exo.ws.commons</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.ws</groupId>
+ <artifactId>exo.ws.frameworks.json</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.ws</groupId>
+ <artifactId>exo.ws.frameworks.servlet</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.ws</groupId>
+ <artifactId>exo.ws.rest.core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.ws</groupId>
+ <artifactId>exo.ws.rest.ext</artifactId>
+ </dependency>
+
+ <!-- Reflext -->
+ <dependency>
+ <groupId>org.reflext</groupId>
+ <artifactId>reflext.api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.reflext</groupId>
+ <artifactId>reflext.core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.reflext</groupId>
+ <artifactId>reflext.jlr</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.reflext</groupId>
+ <artifactId>reflext.spi</artifactId>
+ </dependency>
+
+ <!-- Chromattic -->
+ <dependency>
+ <groupId>org.chromattic</groupId>
+ <artifactId>chromattic.apt</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.chromattic</groupId>
+ <artifactId>chromattic.api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.chromattic</groupId>
+ <artifactId>chromattic.spi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.chromattic</groupId>
+ <artifactId>chromattic.common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.chromattic</groupId>
+ <artifactId>chromattic.core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.chromattic</groupId>
+ <artifactId>chromattic.metamodel</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.chromattic</groupId>
+ <artifactId>chromattic.ext</artifactId>
+ </dependency>
+
+ <!-- Picket link -->
+ <dependency>
+ <groupId>org.picketlink.idm</groupId>
+ <artifactId>picketlink-idm-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.picketlink.idm</groupId>
+ <artifactId>picketlink-idm-spi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.picketlink.idm</groupId>
+ <artifactId>picketlink-idm-cache</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.picketlink.idm</groupId>
+ <artifactId>picketlink-idm-common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.picketlink.idm</groupId>
+ <artifactId>picketlink-idm-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.picketlink.idm</groupId>
+ <artifactId>picketlink-idm-hibernate</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.picketlink.idm</groupId>
+ <artifactId>picketlink-idm-ldap</artifactId>
+ </dependency>
+
+ <!-- Gatein common -->
+ <dependency>
+ <groupId>org.gatein.common</groupId>
+ <artifactId>common-common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.gatein.common</groupId>
+ <artifactId>common-logging</artifactId>
+ </dependency>
+
+ <!-- Gatein wci -->
+ <dependency>
+ <groupId>org.gatein.wci</groupId>
+ <artifactId>wci-wci</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.gatein.wci</groupId>
+ <artifactId>wci-jetty</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.gatein.wci</groupId>
+ <artifactId>wci-exo</artifactId>
+ </dependency>
+
+ <!-- Gatein PC -->
+ <dependency>
+ <groupId>org.gatein.pc</groupId>
+ <artifactId>pc-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.gatein.pc</groupId>
+ <artifactId>pc-portlet</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.gatein.pc</groupId>
+ <artifactId>pc-controller</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.gatein.pc</groupId>
+ <artifactId>pc-federation</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.gatein.pc</groupId>
+ <artifactId>pc-mc</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.gatein.pc</groupId>
+ <artifactId>pc-bridge</artifactId>
+ </dependency>
+
+ <!-- GateIn MOP -->
+ <dependency>
+ <groupId>org.gatein.mop</groupId>
+ <artifactId>mop-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.gatein.mop</groupId>
+ <artifactId>mop-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.gatein.mop</groupId>
+ <artifactId>mop-spi</artifactId>
+ </dependency>
+
+ <!-- GateIn Captcha -->
+ <dependency>
+ <groupId>org.gatein.captcha</groupId>
+ <artifactId>simplecaptcha</artifactId>
+ </dependency>
+
+ <!-- GateIn Shinding -->
+ <dependency>
+ <groupId>org.gatein.shindig</groupId>
+ <artifactId>shindig-gadgets</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.gatein.shindig</groupId>
+ <artifactId>shindig-features</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.gatein.shindig</groupId>
+ <artifactId>shindig-common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.gatein.shindig</groupId>
+ <artifactId>shindig-social-api</artifactId>
+ </dependency>
+
+ <!-- GateIn -->
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.component.application-registry</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.component.common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.component.identity</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.component.management</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.component.pc</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.component.portal</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.component.resources</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.component.scripting</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.component.web.api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.component.web.controller</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.component.web.resources</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.component.web.security</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.component.web.server</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.webui.core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.webui.dashboard</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.webui.eXo</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.webui.framework</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.webui.portal</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.webui.portlet</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.gadgets-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>gatein.portal.component.wsrp</artifactId>
+ </dependency>
+
+ <!-- Provided -->
+ <dependency>
+ <groupId>javax.activation</groupId>
+ <artifactId>activation</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.jcr</groupId>
+ <artifactId>jcr</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.portlet</groupId>
+ <artifactId>portlet-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.annotation</groupId>
+ <artifactId>jsr250-api</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>jsr311-api</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.transaction</groupId>
+ <artifactId>jta</artifactId>
+ <version>1.0.1B</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ <version>1.4.2</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.resource</groupId>
+ <artifactId>connector-api</artifactId>
+ <version>1.5</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.ccpp</groupId>
+ <artifactId>ccpp</artifactId>
+ <version>1.0</version>
+ </dependency>
+
+ <!-- Hibernate -->
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>ejb3-persistence</artifactId>
+ <version>1.0.2.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-commons-annotations</artifactId>
+ <version>3.1.0.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-core</artifactId>
+ <version>3.3.2.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-annotations</artifactId>
+ <version>3.4.0.GA</version>
+ </dependency>
+
+ <!-- Various -->
+ <dependency>
+ <groupId>com.google.code.guice</groupId>
+ <artifactId>guice</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.google.code.guice</groupId>
+ <artifactId>guice-jmx</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>antlr</groupId>
+ <artifactId>antlr</artifactId>
+ <version>2.7.6rc1</version>
+ </dependency>
+ <dependency>
+ <groupId>aopalliance</groupId>
+ <artifactId>aopalliance</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>asm</groupId>
+ <artifactId>asm</artifactId>
+ <version>1.5.3</version>
+ </dependency>
+ <dependency>
+ <groupId>bouncycastle</groupId>
+ <artifactId>bcmail-jdk14</artifactId>
+ <version>136</version>
+ </dependency>
+ <dependency>
+ <groupId>bouncycastle</groupId>
+ <artifactId>bcprov-jdk14</artifactId>
+ <version>136</version>
+ </dependency>
+ <dependency>
+ <groupId>caja</groupId>
+ <artifactId>caja</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>caja</groupId>
+ <artifactId>json_simple</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib</artifactId>
+ <version>2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>oswego-concurrent</groupId>
+ <artifactId>concurrent</artifactId>
+ <version>1.3.4</version>
+ </dependency>
+ <dependency>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>1.6.1</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.ehcache</groupId>
+ <artifactId>ehcache</artifactId>
+ <version>1.6.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.jhlabs</groupId>
+ <artifactId>filters</artifactId>
+ <version>2.0.235</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.collections</groupId>
+ <artifactId>google-collections</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.groovy</groupId>
+ <artifactId>groovy-all</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>html-parser</groupId>
+ <artifactId>html-parser</artifactId>
+ <version>1.6</version>
+ </dependency>
+ <dependency>
+ <groupId>com.ibm.icu</groupId>
+ <artifactId>icu4j</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.lowagie</groupId>
+ <artifactId>itext</artifactId>
+ <version>2.1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>net.jcip</groupId>
+ <artifactId>jcip-annotations</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>jdom</groupId>
+ <artifactId>jdom</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jibx</groupId>
+ <artifactId>jibx-bind</artifactId>
+ <version>${org.jibx.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jibx</groupId>
+ <artifactId>jibx-run</artifactId>
+ <version>${org.jibx.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>joda-time</groupId>
+ <artifactId>joda-time</artifactId>
+ <version>1.6</version>
+ </dependency>
+ <dependency>
+ <groupId>rhino</groupId>
+ <artifactId>js</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jsecurity</groupId>
+ <artifactId>jsecurity</artifactId>
+ <version>0.9.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.json</groupId>
+ <artifactId>json</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>de.odysseus.juel</groupId>
+ <artifactId>juel-api</artifactId>
+ <version>2.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>de.odysseus.juel</groupId>
+ <artifactId>juel-impl</artifactId>
+ <version>2.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-core</artifactId>
+ <version>2.4.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-memory</artifactId>
+ <version>2.4.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-spellchecker</artifactId>
+ <version>2.4.1</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sourceforge.nekohtml</groupId>
+ <artifactId>nekohtml</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pdfbox</groupId>
+ <artifactId>pdfbox</artifactId>
+ <version>1.1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>picocontainer</groupId>
+ <artifactId>picocontainer</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi</artifactId>
+ <version>3.6</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-ooxml</artifactId>
+ <version>3.6</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-scratchpad</artifactId>
+ <version>3.6</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.portals.bridges</groupId>
+ <artifactId>portals-bridges-common</artifactId>
+ <version>1.0.4</version>
+ </dependency>
+ <dependency>
+ <groupId>quartz</groupId>
+ <artifactId>quartz</artifactId>
+ <version>1.5.2</version>
+ </dependency>
+ <dependency>
+ <groupId>rome</groupId>
+ <artifactId>rome</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sanselan</groupId>
+ <artifactId>sanselan</artifactId>
+ <version>0.97-incubator</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.commons</groupId>
+ <artifactId>ws-commons-util</artifactId>
+ <version>1.0.1</version>
+ </dependency>
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.xmlbeans</groupId>
+ <artifactId>xmlbeans</artifactId>
+ <version>2.3.0</version>
+ </dependency>
+ <dependency>
+ <groupId>xpp3</groupId>
+ <artifactId>xpp3</artifactId>
+ <version>1.1.3.4.O</version>
+ </dependency>
+ <dependency>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ <version>1.3.1</version>
+ </dependency>
+ <dependency>
+ <groupId>net.oauth</groupId>
+ <artifactId>core</artifactId>
+ </dependency>
+
+ <!-- War files -->
+ <dependency>
+ <?rename portal.war?>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.web.portal</artifactId>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <?rename eXoGadgetServer.war?>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.gadgets-server</artifactId>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <?rename eXoGadgets.war?>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.eXoGadgets</artifactId>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <?rename web.war?>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.portlet.web</artifactId>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <?rename rest.war?>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.web.rest</artifactId>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <?rename exoadmin.war?>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.portlet.exoadmin</artifactId>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <?rename eXoResources.war?>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.web.eXoResources</artifactId>
+ <type>war</type>
+ </dependency>
+
+ <dependency>
+ <?rename gatein-sample-skin.war?>
+ <groupId>org.gatein.portal.examples.skins</groupId>
+ <artifactId>gatein-sample-skin</artifactId>
+ <type>war</type>
+ </dependency>
+
+ <dependency>
+ <?rename dashboard.war?>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.portlet.dashboard</artifactId>
+ <type>war</type>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <plugins>
+
+ <!-- Ensure your environment is correctly setup -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>tomcat-check-environment-ready</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <requireProperty>
+ <property>exo.projects.directory.dependencies</property>
+ <message>"You must define the property exo.projects.directory.dependencies to give the path to the directory where you store your applications servers"</message>
+ </requireProperty>
+ <requireProperty>
+ <property>exo.projects.app.jetty.version</property>
+ <message>"You must define the property exo.projects.app.jetty.version to give the name of the directory where is stored jetty"</message>
+ </requireProperty>
+ </rules>
+ <fail>true</fail>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.6</version>
+ <executions>
+ <execution>
+ <id>prepare-package</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <target>
+
+ <!-- Copy the dependencies -->
+ <dependencyfilesets/>
+ <xslt
+ basedir="${project.basedir}"
+ destdir="${project.build.directory}"
+ includes="pom.xml"
+ extension=".xml"
+ style="${project.basedir}/transform.xsl">
+ <param name="lib.dir" expression="${project.build.directory}/jetty/lib"/>
+ <param name="webapps.dir" expression="${project.build.directory}/jetty/webapps"/>
+ <mapper type="glob" from="pom.xml" to="copy-dependencies.xml"/>
+ </xslt>
+ <ant antfile="${project.build.directory}/copy-dependencies.xml" inheritRefs="true">
+ <target name="copy-dependencies" />
+ </ant>
+
+ <!-- Copy jetty -->
+ <copy todir="${project.build.directory}/jetty">
+ <fileset dir="${jetty.dir}">
+ <exclude name="webapps/**"/>
+ <exclude name="contexts/**"/>
+ </fileset>
+ </copy>
+
+ <!-- Copy configuration -->
+ <copy todir="${project.build.directory}/jetty" overwrite="true">
+ <fileset dir="${project.basedir}/src/main/resources/jetty"/>
+ </copy>
+
+ <!-- Copy configuration -->
+ <copy tofile="${project.build.directory}/jetty/gatein/conf/configuration.properties">
+ <fileset dir="${project.basedir}/../../../component/common/src/main/java/conf" includes="configuration-jetty.properties"/>
+ </copy>
+
+ <!-- File permissions -->
+ <chmod perm="0644" type="file" dir="${project.build.directory}/jetty/bin" excludes="**/*.sh"/>
+ <chmod perm="0755" type="file" dir="${project.build.directory}/jetty/bin" includes="**/*.sh"/>
+
+ </target>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <!-- patch several files (log4j config etc...) -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-patch-plugin</artifactId>
+ <version>1.1.1</version>
+ <configuration>
+ <targetDirectory>${project.build.directory}/jetty</targetDirectory>
+ </configuration>
+ <executions>
+ <execution>
+ <id>jetty-patches</id>
+ <configuration>
+ <patchDirectory>src/main/resources/jetty-patch/</patchDirectory>
+ <naturalOrderProcessing>true</naturalOrderProcessing>
+ </configuration>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>apply</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
\ No newline at end of file
Added: portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/commons-logging.properties
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/commons-logging.properties (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/commons-logging.properties 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,3 @@
+# Configure commons logging to use JDK logger
+org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
+org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
Added: portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/exokey.pem
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/exokey.pem (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/exokey.pem 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,29 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDMYzu2ZJb6Mt89RxjYcPb01clMna7PJTm+UneDYELKjG6EZ4Nu
++v8Di7e2PxpNlW4cCwUiEkiWBrZH8S1caz4CYIAG+VmKXZXBgmNCINgRVzNtj0/E
+4xi5Yz+G1uGCkaB+1mheJWke1rO6SgL6tJ5LmEYCGGu0mj+vxD8W2i4nBwIDAQAB
+AoGAJS1zwiSf9djlFI9nLI+3zCdLG32fO5zI2R7FEIek/pT20WzG0pwjYPC8NRFb
+Zntk8QLsJxtuSqPj6kgreSEkwRR/YGVIo/xIr46vwl/WydMLKJljvu+E7Y4yjYHb
+X4+FDRSL+huOMNNrHgnMy8WnplvtuW5LNV4kD3izU37jxQECQQD15re+8J3C8O6m
+wt8+5Ed6a+1+BIdFggFFpV4oC2AKE11+dnwxD5ZyB77sg6sCbcWbLTXOyp/CCAY8
+bkp9ZbOBAkEA1MgP7ZKUUrtrIIg0VYaTTH24iMWTOsPbgNWg9DlLzmIagHHmmmLC
+O6gFT05bsNPcFv5a25m+jT1yfvjuKLN+hwJBAJHD544/UjWZ3s5p3C6K4bg3PDwk
+cQ+KBjkD0zHHtHGkkxqBIBNxGwyTfOD1GC1DZw0amrfvsw4w9YljE7ML04ECQHrX
+IPLrm3uDvZ3jZCs37RPMxNsZDR1w8ukW67vy1APK+TfMCfB5MV8VajNVrnOQa9BO
+eY+r26lYnyAUgBG5RkMCQHW5qFDYmgJjb38+uwxd53zGy6m+Jd7kdnGms9V4pPd1
+b21WA/5ncxrpFaz5OFPLtv2zrKYVBAj0tros5hs8Fwk=
+-----END RSA PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIICGzCCAYSgAwIBAgIJAJ/PJcjrAB25MA0GCSqGSIb3DQEBBAUAMBQxEjAQBgNV
+BAMTCW15dGVzdGtleTAeFw0wOTAxMDgwNzUwMjlaFw0xMDAxMDgwNzUwMjlaMBQx
+EjAQBgNVBAMTCW15dGVzdGtleTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+zGM7tmSW+jLfPUcY2HD29NXJTJ2uzyU5vlJ3g2BCyoxuhGeDbvr/A4u3tj8aTZVu
+HAsFIhJIlga2R/EtXGs+AmCABvlZil2VwYJjQiDYEVczbY9PxOMYuWM/htbhgpGg
+ftZoXiVpHtazukoC+rSeS5hGAhhrtJo/r8Q/FtouJwcCAwEAAaN1MHMwHQYDVR0O
+BBYEFB6QdOIZawuedUjT4F+bK9RG8+sMMEQGA1UdIwQ9MDuAFB6QdOIZawuedUjT
+4F+bK9RG8+sMoRikFjAUMRIwEAYDVQQDEwlteXRlc3RrZXmCCQCfzyXI6wAduTAM
+BgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4GBAAE/6mmd8/mMyzzFozblp04e
+TonwNrUB7TldXj+0WnYP04u0hNJuFJ/KD29gHdMnYDdOiVdmK/WS6a7Mn+7HVDT7
+wytizzu/Jfvlrr3yMQYCZssvNIbXPTmr+MjLErjkRxYi4quAnkankTNCDxa4mxN3
+WNlNt2SavfSi3d60wd5o
+-----END CERTIFICATE-----
Added: portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/gatein-dev.bat
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/gatein-dev.bat (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/gatein-dev.bat 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,39 @@
+@REM
+@REM Copyright (C) 2009 eXo Platform SAS.
+@REM
+@REM This is free software; you can redistribute it and/or modify it
+@REM under the terms of the GNU Lesser General Public License as
+@REM published by the Free Software Foundation; either version 2.1 of
+@REM the License, or (at your option) any later version.
+@REM
+@REM This software is distributed in the hope that it will be useful,
+@REM but WITHOUT ANY WARRANTY; without even the implied warranty of
+@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+@REM Lesser General Public License for more details.
+@REM
+@REM You should have received a copy of the GNU Lesser General Public
+@REM License along with this software; if not, write to the Free
+@REM Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+@REM 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+@REM
+
+@echo off
+
+rem Computes the absolute path of eXo
+setlocal ENABLEDELAYEDEXPANSION
+for %%i in ( !%~f0! ) do set BIN_DIR=%%~dpi
+cd %BIN_DIR%
+
+rem Sets some variables
+set LOG_OPTS=-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
+set SECURITY_OPTS=-Djava.security.auth.login.config=etc\login.conf
+set EXO_OPTS=-Dexo.product.developing=true -Dexo.conf.dir.name=gatein\conf
+set EXO_CONFIG_OPTS=-Dorg.exoplatform.container.configuration.debug
+set REMOTE_DEBUG=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
+
+set JAVA_OPTIONS=-Xms128m -Xmx512m -XX:MaxPermSize=256m %LOG_OPTS% %SECURITY_OPTS% %EXO_OPTS% %EXO_CONFIG_OPTS% %REMOTE_DEBUG%
+set JPDA_TRANSPORT=dt_socket
+set JPDA_ADDRESS=8000
+
+rem Launches the server
+call jetty.bat %*
Added: portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/gatein-dev.sh
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/gatein-dev.sh (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/gatein-dev.sh 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,51 @@
+#!/bin/sh
+#
+# 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.
+#
+
+# Computes the absolute path of eXo
+cd `dirname "$0"`
+
+# Sets some variables
+LOG_OPTS="-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog"
+SECURITY_OPTS="-Djava.security.auth.login.config=etc/login.conf"
+EXO_OPTS="-Dexo.product.developing=true -Dexo.conf.dir.name=gatein/conf -Djava.awt.headless=true"
+EXO_CONFIG_OPTS="-Xms128m -Xmx512m -XX:MaxPermSize=256m -Dorg.exoplatform.container.configuration.debug"
+JPDA_TRANSPORT=dt_socket
+JPDA_ADDRESS=8000
+REMOTE_DEBUG="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
+JMX_AGENT="-Dcom.sun.management.jmxremote"
+GATEIN_OPTS=""
+
+while getopts "D:" OPTION
+do
+ case $OPTION in
+ D)
+ GATEIN_OPTS="$GATEIN_OPTS -D$OPTARG"
+ ;;
+ esac
+done
+
+# skip getopt parms
+shift $((OPTIND-1))
+
+JAVA_OPTIONS="$JAVA_OPTS $LOG_OPTS $SECURITY_OPTS $EXO_OPTS $EXO_CONFIG_OPTS $REMOTE_DEBUG $GATEIN_OPTS"
+export JAVA_OPTIONS
+
+# Launches the server
+exec "$PRGDIR"./jetty.sh "$@"
Added: portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/gatein.bat
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/gatein.bat (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/gatein.bat 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,34 @@
+@REM
+@REM Copyright (C) 2009 eXo Platform SAS.
+@REM
+@REM This is free software; you can redistribute it and/or modify it
+@REM under the terms of the GNU Lesser General Public License as
+@REM published by the Free Software Foundation; either version 2.1 of
+@REM the License, or (at your option) any later version.
+@REM
+@REM This software is distributed in the hope that it will be useful,
+@REM but WITHOUT ANY WARRANTY; without even the implied warranty of
+@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+@REM Lesser General Public License for more details.
+@REM
+@REM You should have received a copy of the GNU Lesser General Public
+@REM License along with this software; if not, write to the Free
+@REM Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+@REM 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+@REM
+
+@echo off
+
+rem Computes the absolute path of eXo
+setlocal ENABLEDELAYEDEXPANSION
+for %%i in ( !%~f0! ) do set BIN_DIR=%%~dpi
+cd %BIN_DIR%
+
+rem Sets some variables
+set LOG_OPTS=-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
+set SECURITY_OPTS=-Djava.security.auth.login.config=etc\login.conf
+set EXO_OPTS=-Dexo.product.developing=false -Dexo.conf.dir.name=gatein\conf
+set JAVA_OPTIONS=-Xms128m -Xmx512m -XX:MaxPermSize=256m %LOG_OPTS% %SECURITY_OPTS% %EXO_OPTS%
+
+rem Launches the server
+call jetty.bat %*
Added: portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/gatein.sh
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/gatein.sh (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/gatein.sh 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,49 @@
+#!/bin/sh
+#
+# 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.
+#
+
+#Production Script to launch GateIn
+#See gatein-dev.sh for development starup
+
+# Computes the absolute path of eXo
+cd `dirname "$0"`
+
+# Sets some variables
+LOG_OPTS="-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog"
+SECURITY_OPTS="-Djava.security.auth.login.config=etc/login.conf"
+EXO_OPTS="-Dexo.product.developing=false -Dexo.conf.dir.name=gatein/conf -Djava.awt.headless=true"
+GATEIN_OPTS=""
+
+while getopts "D:" OPTION
+do
+ case $OPTION in
+ D)
+ GATEIN_OPTS="$GATEIN_OPTS -D$OPTARG"
+ ;;
+ esac
+done
+
+# skip getopt parms
+shift $((OPTIND-1))
+
+JAVA_OPTIONS="-Xms128m -Xmx384m -XX:MaxPermSize=192m $JAVA_OPTS $LOG_OPTS $SECURITY_OPTS $EXO_OPTS $GATEIN_OPTS"
+export JAVA_OPTIONS
+
+# Launches the server
+exec "$PRGDIR"./jetty.sh "$@"
Added: portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/oauthkey.pem
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/oauthkey.pem (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/bin/oauthkey.pem 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,16 @@
+-----BEGIN PRIVATE KEY-----
+MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMxjO7Zklvoy3z1H
+GNhw9vTVyUydrs8lOb5Sd4NgQsqMboRng276/wOLt7Y/Gk2VbhwLBSISSJYGtkfx
+LVxrPgJggAb5WYpdlcGCY0Ig2BFXM22PT8TjGLljP4bW4YKRoH7WaF4laR7Ws7pK
+Avq0nkuYRgIYa7SaP6/EPxbaLicHAgMBAAECgYAlLXPCJJ/12OUUj2csj7fMJ0sb
+fZ87nMjZHsUQh6T+lPbRbMbSnCNg8Lw1EVtme2TxAuwnG25Ko+PqSCt5ISTBFH9g
+ZUij/Eivjq/CX9bJ0wsomWO+74TtjjKNgdtfj4UNFIv6G44w02seCczLxaemW+25
+bks1XiQPeLNTfuPFAQJBAPXmt77wncLw7qbC3z7kR3pr7X4Eh0WCAUWlXigLYAoT
+XX52fDEPlnIHvuyDqwJtxZstNc7Kn8IIBjxuSn1ls4ECQQDUyA/tkpRSu2sgiDRV
+hpNMfbiIxZM6w9uA1aD0OUvOYhqAceaaYsI7qAVPTluw09wW/lrbmb6NPXJ++O4o
+s36HAkEAkcPnjj9SNZnezmncLorhuDc8PCRxD4oGOQPTMce0caSTGoEgE3EbDJN8
+4PUYLUNnDRqat++zDjD1iWMTswvTgQJAetcg8uube4O9neNkKzftE8zE2xkNHXDy
+6Rbru/LUA8r5N8wJ8HkxXxVqM1Wuc5Br0E55j6vbqVifIBSAEblGQwJAdbmoUNia
+AmNvfz67DF3nfMbLqb4l3uR2caaz1Xik93VvbVYD/mdzGukVrPk4U8u2/bOsphUE
+CPS2uizmGzwXCQ==
+-----END PRIVATE KEY-----
Added: portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/contexts/eXoGadgetServer.xml
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/contexts/eXoGadgetServer.xml (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/contexts/eXoGadgetServer.xml 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
+
+<!-- ==================================================================
+Configure and deploy the test web application in $(jetty.home)/webapps/test
+
+Note. If this file did not exist or used a context path other that /test
+then the default configuration of jetty.xml would discover the test
+webapplication with a WebAppDeployer. By specifying a context in this
+directory, additional configuration may be specified and hot deployments
+detected.
+===================================================================== -->
+
+<Configure class="org.mortbay.jetty.webapp.WebAppContext">
+
+ <Set name="contextPath">/eXoGadgetServer</Set>
+ <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/eXoGadgetServer.war</Set>
+
+</Configure>
\ No newline at end of file
Added: portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/contexts/eXoResources.xml
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/contexts/eXoResources.xml (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/contexts/eXoResources.xml 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
+
+<!-- ==================================================================
+Configure and deploy the test web application in $(jetty.home)/webapps/test
+
+Note. If this file did not exist or used a context path other that /test
+then the default configuration of jetty.xml would discover the test
+webapplication with a WebAppDeployer. By specifying a context in this
+directory, additional configuration may be specified and hot deployments
+detected.
+===================================================================== -->
+
+<Configure class="org.mortbay.jetty.webapp.WebAppContext">
+
+ <Set name="contextPath">/eXoResources</Set>
+ <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/eXoResources.war</Set>
+
+</Configure>
\ No newline at end of file
Added: portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/contexts/portal.xml
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/contexts/portal.xml (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/contexts/portal.xml 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
+
+<!-- ==================================================================
+Configure and deploy the test web application in $(jetty.home)/webapps/test
+
+Note. If this file did not exist or used a context path other that /test
+then the default configuration of jetty.xml would discover the test
+webapplication with a WebAppDeployer. By specifying a context in this
+directory, additional configuration may be specified and hot deployments
+detected.
+===================================================================== -->
+
+<Configure class="org.mortbay.jetty.webapp.WebAppContext">
+
+ <Set name="contextPath">/portal</Set>
+ <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/portal.war</Set>
+
+</Configure>
\ No newline at end of file
Added: portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/contexts/rest.xml
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/contexts/rest.xml (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/contexts/rest.xml 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
+
+<!-- ==================================================================
+Configure and deploy the test web application in $(jetty.home)/webapps/test
+
+Note. If this file did not exist or used a context path other that /test
+then the default configuration of jetty.xml would discover the test
+webapplication with a WebAppDeployer. By specifying a context in this
+directory, additional configuration may be specified and hot deployments
+detected.
+===================================================================== -->
+
+<Configure class="org.mortbay.jetty.webapp.WebAppContext">
+
+ <Set name="contextPath">/rest</Set>
+ <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/rest.war</Set>
+
+</Configure>
\ No newline at end of file
Added: portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/etc/login.conf
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/etc/login.conf (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/etc/login.conf 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,13 @@
+gatein-domain {
+ org.gatein.wci.security.WCILoginModule optional;
+ org.exoplatform.web.security.PortalLoginModule required;
+ org.exoplatform.services.security.jaas.SharedStateLoginModule required;
+ org.exoplatform.services.security.j2ee.TomcatLoginModule required;
+
+ // Uncomment the following part (and comment the other part for CAS integration
+ // org.gatein.sso.agent.login.SSOLoginModule required
+ // org.exoplatform.services.security.j2ee.TomcatLoginModule required
+ // portalContainerName=portal
+ // realmName=gatein-domain
+
+};
\ No newline at end of file
Added: portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/gatein/conf/configuration.xml
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/gatein/conf/configuration.xml (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/gatein/conf/configuration.xml 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,65 @@
+<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd http://www.exoplaform.org/xml/ns/kernel_1_1.xsd"
+ xmlns="http://www.exoplaform.org/xml/ns/kernel_1_1.xsd">
+
+ <component>
+ <!-- The full qualified name of the PortalContainerConfig -->
+ <type>org.exoplatform.container.definition.PortalContainerConfig</type>
+ <init-params>
+ <!-- The name of the default portal container -->
+ <value-param>
+ <name>default.portal.container</name>
+ <value>portal</value>
+ </value-param>
+ <!-- The name of the default rest ServletContext -->
+ <value-param>
+ <name>default.rest.context</name>
+ <value>rest</value>
+ </value-param>
+ <!-- The name of the default realm -->
+ <value-param>
+ <name>default.realm.name</name>
+ <value>gatein-domain</value>
+ </value-param>
+ <!-- The default portal container definition -->
+ <!-- It cans be used to avoid duplicating configuration -->
+ <object-param>
+ <name>default.portal.definition</name>
+ <object type="org.exoplatform.container.definition.PortalContainerDefinition">
+ <!-- The path to the external properties file -->
+ <field name="externalSettingsPath">
+ <string>configuration.properties</string>
+ </field>
+ <field name="dependencies">
+ <collection type="java.util.ArrayList">
+ <value>
+ <string>eXoResources</string>
+ </value>
+ <value>
+ <string>portal</string>
+ </value>
+ <value>
+ <string>dashboard</string>
+ </value>
+ <value>
+ <string>exoadmin</string>
+ </value>
+ <value>
+ <string>eXoGadgets</string>
+ </value>
+ <value>
+ <string>eXoGadgetServer</string>
+ </value>
+ <value>
+ <string>rest</string>
+ </value>
+ <value>
+ <string>web</string>
+ </value>
+ </collection>
+ </field>
+ </object>
+ </object-param>
+ </init-params>
+ </component>
+</configuration>
Added: portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/webapps/ROOT/WEB-INF/web.xml
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/webapps/ROOT/WEB-INF/web.xml (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/webapps/ROOT/WEB-INF/web.xml 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+
+<!--
+
+ 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.
+
+-->
+
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
+<web-app>
+ <display-name>Welcome to eXo platform</display-name>
+ <description>Welcome to eXo platform</description>
+</web-app>
\ No newline at end of file
Added: portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/webapps/ROOT/index.jsp
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/webapps/ROOT/index.jsp (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty/webapps/ROOT/index.jsp 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,4 @@
+<%
+response.setStatus(response.SC_MOVED_TEMPORARILY);
+response.setHeader("Location", "/portal");
+%>
\ No newline at end of file
Added: portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty-patch/jetty.xml.patch
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty-patch/jetty.xml.patch (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/src/main/resources/jetty-patch/jetty.xml.patch 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,37 @@
+--- etc/origin.jetty.xml 2010-11-23 12:31:45.000000000 +0100
++++ etc/jetty.xml 2010-11-23 12:31:23.000000000 +0100
+@@ -171,15 +171,25 @@
+ <!-- example). -->
+ <!-- =========================================================== -->
+ <Set name="UserRealms">
+- <Array type="org.mortbay.jetty.security.UserRealm">
+- <Item>
+- <New class="org.mortbay.jetty.security.HashUserRealm">
+- <Set name="name">Test Realm</Set>
+- <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
+- <Set name="refreshInterval">0</Set>
+- </New>
+- </Item>
+- </Array>
++ <Array type="org.mortbay.jetty.plus.jaas.JAASUserRealm">
++ <Item>
++ <New class="org.mortbay.jetty.plus.jaas.JAASUserRealm">
++ <Set name="Name">gatein-domain</Set>
++ <Set name="LoginModuleName">gatein-domain</Set>
++ <Set name="RoleCheckPolicy">
++ <New class="org.mortbay.jetty.plus.jaas.StrictRoleCheckPolicy"/>
++ </Set>
++ <Set name="CallbackHandlerClass">
++ org.mortbay.jetty.plus.jaas.callback.DefaultCallbackHandler
++ </Set>
++ <Set name="roleClassNames">
++ <Array type="java.lang.String">
++ <Item>org.exoplatform.services.security.jaas.RolePrincipal</Item>
++ </Array>
++ </Set>
++ </New>
++ </Item>
++ </Array>
+ </Set>
+
+ <!-- =========================================================== -->
Copied: portal/branches/wci/packaging/jetty/pkg/transform.xsl (from rev 5091, portal/branches/wci/packaging/tomcat/pkg/transform.xsl)
===================================================================
--- portal/branches/wci/packaging/jetty/pkg/transform.xsl (rev 0)
+++ portal/branches/wci/packaging/jetty/pkg/transform.xsl 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:mvn="http://maven.apache.org/POM/4.0.0">
+ <xsl:param name="lib.dir"/>
+ <xsl:param name="webapps.dir"/>
+ <xsl:output method="xml" indent="yes"/>
+ <xsl:template match="/" >
+ <xsl:comment>Generated file</xsl:comment>
+ <project name="copy-dependencies">
+ <target name="copy-dependencies">
+ <xsl:element name="copy">
+ <xsl:attribute name="todir"><xsl:value-of select="$lib.dir"/></xsl:attribute>
+ <xsl:for-each select="//mvn:dependencies/mvn:dependency[count(mvn:type)=0 or mvn:type/text()='jar']">
+ <xsl:element name="fileset">
+ <xsl:attribute name="refid"><xsl:value-of select="./mvn:groupId"/>:<xsl:value-of select="./mvn:artifactId"/>:jar</xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ <xsl:for-each select="//mvn:dependencies/mvn:dependency[mvn:type/text()='war']">
+ <xsl:variable name="webapps.name">
+ <xsl:for-each select="processing-instruction()[name()='rename']">
+ <xsl:value-of select="."/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$webapps.name=''">
+ <xsl:element name="copy">
+ <xsl:attribute name="todir"><xsl:value-of select="$webapps.dir"/></xsl:attribute>
+ <xsl:element name="fileset">
+ <xsl:attribute name="refid"><xsl:value-of select="./mvn:groupId"/>:<xsl:value-of select="./mvn:artifactId"/>:war</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="copy">
+ <xsl:attribute name="tofile"><xsl:value-of select="$webapps.dir"/>/<xsl:value-of select="$webapps.name"/></xsl:attribute>
+ <xsl:element name="fileset">
+ <xsl:attribute name="refid"><xsl:value-of select="./mvn:groupId"/>:<xsl:value-of select="./mvn:artifactId"/>:war</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:for-each>
+ </target>
+ </project>
+ </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
Added: portal/branches/wci/packaging/jetty/pom.xml
===================================================================
--- portal/branches/wci/packaging/jetty/pom.xml (rev 0)
+++ portal/branches/wci/packaging/jetty/pom.xml 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,18 @@
+<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/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.exoplatform.portal</groupId>
+ <artifactId>exo.portal.parent</artifactId>
+ <version>3.2.0-Beta01-SNAPSHOT</version>
+ </parent>
+ <artifactId>exo.portal.packaging.jetty</artifactId>
+ <packaging>pom</packaging>
+ <name>GateIn Jetty package</name>
+
+ <modules>
+ <module>pkg</module>
+ </modules>
+
+</project>
\ No newline at end of file
Modified: portal/branches/wci/packaging/pom.xml
===================================================================
--- portal/branches/wci/packaging/pom.xml 2010-11-23 14:35:12 UTC (rev 5225)
+++ portal/branches/wci/packaging/pom.xml 2010-11-23 14:43:47 UTC (rev 5226)
@@ -65,5 +65,12 @@
<module>reports</module>
</modules>
</profile>
+ <profile>
+ <id>pkg-jetty</id>
+ <modules>
+ <module>jetty</module>
+ <module>reports</module>
+ </modules>
+ </profile>
</profiles>
</project>
Modified: portal/branches/wci/packaging/tomcat/pkg/pom.xml
===================================================================
--- portal/branches/wci/packaging/tomcat/pkg/pom.xml 2010-11-23 14:35:12 UTC (rev 5225)
+++ portal/branches/wci/packaging/tomcat/pkg/pom.xml 2010-11-23 14:43:47 UTC (rev 5226)
@@ -857,12 +857,8 @@
<rules>
<requireProperty>
<property>exo.projects.directory.dependencies</property>
- <message>"You must define the property exo.projects.directory.dependencies to give the path to the directory where you store your applications servers"</message>
+ <message>"You must define the property exo.projects.directory.dependencies to give the path to the directory where you store your applications servers"</message>
</requireProperty>
- <requireProperty>
- <property>exo.projects.app.tomcat.version</property>
- <message>"You must define the property exo.projects.app.tomcat.version to give the name of the directory where is stored tomcat"</message>
- </requireProperty>
</rules>
<fail>true</fail>
</configuration>
Modified: portal/branches/wci/packaging/tomcat/pkg/src/main/resources/tomcat/conf/Catalina/localhost/portal.xml
===================================================================
--- portal/branches/wci/packaging/tomcat/pkg/src/main/resources/tomcat/conf/Catalina/localhost/portal.xml 2010-11-23 14:35:12 UTC (rev 5225)
+++ portal/branches/wci/packaging/tomcat/pkg/src/main/resources/tomcat/conf/Catalina/localhost/portal.xml 2010-11-23 14:43:47 UTC (rev 5226)
@@ -28,4 +28,5 @@
userClassNames='org.exoplatform.services.security.jaas.UserPrincipal'
roleClassNames='org.exoplatform.services.security.jaas.RolePrincipal'
debug='0' cache='false'/>
- <Valve className='org.apache.catalina.authenticator.FormAuthenticator' characterEncoding='UTF-8'/></Context>
+ <Valve className='org.apache.catalina.authenticator.FormAuthenticator' characterEncoding='UTF-8'/>
+</Context>
Modified: portal/branches/wci/packaging/tomcat/pkg/tc6/pom.xml
===================================================================
--- portal/branches/wci/packaging/tomcat/pkg/tc6/pom.xml 2010-11-23 14:35:12 UTC (rev 5225)
+++ portal/branches/wci/packaging/tomcat/pkg/tc6/pom.xml 2010-11-23 14:43:47 UTC (rev 5226)
@@ -40,6 +40,10 @@
</goals>
<configuration>
<rules>
+ <requireProperty>
+ <property>exo.projects.app.tomcat.version</property>
+ <message>"You must define the property exo.projects.app.tomcat.version to give the name of the directory where is stored tomcat"</message>
+ </requireProperty>
<requireFilesExist>
<files>
<file>${tomcat.dir}/</file>
Modified: portal/branches/wci/packaging/tomcat/pkg/tc7/pom.xml
===================================================================
--- portal/branches/wci/packaging/tomcat/pkg/tc7/pom.xml 2010-11-23 14:35:12 UTC (rev 5225)
+++ portal/branches/wci/packaging/tomcat/pkg/tc7/pom.xml 2010-11-23 14:43:47 UTC (rev 5226)
@@ -40,6 +40,10 @@
</goals>
<configuration>
<rules>
+ <requireProperty>
+ <property>exo.projects.app.tomcat7.version</property>
+ <message>"You must define the property exo.projects.app.tomcat7.version to give the name of the directory where is stored tomcat"</message>
+ </requireProperty>
<requireFilesExist>
<files>
<file>${tomcat.dir}/</file>
Modified: portal/branches/wci/pom.xml
===================================================================
--- portal/branches/wci/pom.xml 2010-11-23 14:35:12 UTC (rev 5225)
+++ portal/branches/wci/pom.xml 2010-11-23 14:43:47 UTC (rev 5226)
@@ -542,6 +542,11 @@
<version>${org.gatein.wci.version}</version>
</dependency>
<dependency>
+ <groupId>org.gatein.wci</groupId>
+ <artifactId>wci-jetty</artifactId>
+ <version>${org.gatein.wci.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.gatein.pc</groupId>
<artifactId>pc-bridge</artifactId>
<version>${org.gatein.pc.version}</version>
Added: portal/branches/wci/web/portal/src/main/webapp/WEB-INF/jetty-web.xml
===================================================================
--- portal/branches/wci/web/portal/src/main/webapp/WEB-INF/jetty-web.xml (rev 0)
+++ portal/branches/wci/web/portal/src/main/webapp/WEB-INF/jetty-web.xml 2010-11-23 14:43:47 UTC (rev 5226)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
+<Configure class="org.mortbay.jetty.webapp.WebAppContext">
+
+ <Get id="serverObject" name="server"/>
+
+ <New id="jettySetup" class="org.gatein.wci.jetty.Jetty6Handler">
+ <Arg><Ref id="serverObject"/></Arg>
+ </New>
+
+</Configure>
+
+
14 years, 1 month
gatein SVN: r5225 - components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/consumer.
by do-not-reply@jboss.org
Author: chris.laprun(a)jboss.com
Date: 2010-11-23 09:35:12 -0500 (Tue, 23 Nov 2010)
New Revision: 5225
Modified:
components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/consumer/ProducerInfo.java
Log:
- Increased default cache value.
Modified: components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/consumer/ProducerInfo.java
===================================================================
--- components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/consumer/ProducerInfo.java 2010-11-23 14:32:17 UTC (rev 5224)
+++ components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/consumer/ProducerInfo.java 2010-11-23 14:35:12 UTC (rev 5225)
@@ -83,7 +83,7 @@
{
private final static Logger log = LoggerFactory.getLogger(ProducerInfo.class);
private final static boolean debug = log.isDebugEnabled();
- public static final Integer DEFAULT_CACHE_VALUE = 30;
+ public static final Integer DEFAULT_CACHE_VALUE = 300;
// Persistent information
14 years, 1 month
gatein SVN: r5223 - portal/trunk.
by do-not-reply@jboss.org
Author: chris.laprun(a)jboss.com
Date: 2010-11-23 09:31:30 -0500 (Tue, 23 Nov 2010)
New Revision: 5223
Modified:
portal/trunk/pom.xml
Log:
- Updated to use PC 2.2.0-GA.
Modified: portal/trunk/pom.xml
===================================================================
--- portal/trunk/pom.xml 2010-11-23 14:22:55 UTC (rev 5222)
+++ portal/trunk/pom.xml 2010-11-23 14:31:30 UTC (rev 5223)
@@ -46,7 +46,7 @@
<nl.captcha.simplecaptcha.version>1.1.1-GA-Patch01</nl.captcha.simplecaptcha.version>
<org.gatein.common.version>2.0.3-GA</org.gatein.common.version>
<org.gatein.wci.version>2.0.2-GA</org.gatein.wci.version>
- <org.gatein.pc.version>2.2.0-CR02</org.gatein.pc.version>
+ <org.gatein.pc.version>2.2.0-GA</org.gatein.pc.version>
<org.picketlink.idm>1.1.7.CR01</org.picketlink.idm>
<org.gatein.wsrp.version>2.0.0-CR02</org.gatein.wsrp.version>
<org.gatein.mop.version>1.0.3-GA</org.gatein.mop.version>
14 years, 1 month
gatein SVN: r5222 - in components/wsrp/trunk/consumer/src: test/java/org/gatein/wsrp/consumer and 2 other directories.
by do-not-reply@jboss.org
Author: chris.laprun(a)jboss.com
Date: 2010-11-23 09:22:55 -0500 (Tue, 23 Nov 2010)
New Revision: 5222
Modified:
components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/consumer/ProducerInfo.java
components/wsrp/trunk/consumer/src/test/java/org/gatein/wsrp/consumer/ProducerInfoTestCase.java
components/wsrp/trunk/consumer/src/test/java/org/gatein/wsrp/protocol/v1/MarkupTestCase.java
components/wsrp/trunk/consumer/src/test/java/org/gatein/wsrp/protocol/v2/MarkupTestCase.java
Log:
- GTNWSRP-157: Now properly recomputes the next cache expiration time when the cache expiration duration is changed.
- Properly deal with negative cache duration value.
- Added and updated tests.
Modified: components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/consumer/ProducerInfo.java
===================================================================
--- components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/consumer/ProducerInfo.java 2010-11-23 13:51:30 UTC (rev 5221)
+++ components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/consumer/ProducerInfo.java 2010-11-23 14:22:55 UTC (rev 5222)
@@ -789,11 +789,7 @@
private void resetCacheTimerIfNeeded()
{
- if (useCache())
- {
- // reset expiration time
- expirationTimeMillis = System.currentTimeMillis() + (persistentExpirationCacheSeconds * 1000);
- }
+ expirationTimeMillis = System.currentTimeMillis() + (getSafeExpirationCacheSeconds() * 1000);
}
/**
@@ -818,9 +814,37 @@
public void setExpirationCacheSeconds(Integer expirationCacheSeconds)
{
+ // record the previous cache expiration duration
+ Integer previousMS = getSafeExpirationCacheSeconds() * 1000;
+
+ // assign the new value
this.persistentExpirationCacheSeconds = expirationCacheSeconds;
+
+ // recompute the expiration time based on previous value and new one
+ long lastExpirationTimeChange = expirationTimeMillis - previousMS;
+ int newMS = getSafeExpirationCacheSeconds() * 1000;
+ if (lastExpirationTimeChange > 0)
+ {
+ expirationTimeMillis = lastExpirationTimeChange + newMS;
+ }
+ else
+ {
+ expirationTimeMillis = System.currentTimeMillis();
+ }
+
}
+ /**
+ * Returns the cache expiration duration in seconds as a positive value or zero so that it's safe to use in cache
+ * expiration time computations.
+ *
+ * @return
+ */
+ private int getSafeExpirationCacheSeconds()
+ {
+ return useCache() ? persistentExpirationCacheSeconds : 0;
+ }
+
private ServiceDescription getUnmanagedServiceDescription(boolean asUnregistered) throws PortletInvokerException, OperationFailed, InvalidRegistration, ModifyRegistrationRequired
{
//todo: might need to implement customization of default service description
Modified: components/wsrp/trunk/consumer/src/test/java/org/gatein/wsrp/consumer/ProducerInfoTestCase.java
===================================================================
--- components/wsrp/trunk/consumer/src/test/java/org/gatein/wsrp/consumer/ProducerInfoTestCase.java 2010-11-23 13:51:30 UTC (rev 5221)
+++ components/wsrp/trunk/consumer/src/test/java/org/gatein/wsrp/consumer/ProducerInfoTestCase.java 2010-11-23 14:22:55 UTC (rev 5222)
@@ -126,7 +126,7 @@
}
}
- public void testRefreshAndCache() throws Exception
+ public void testSetNullCache() throws PortletInvokerException
{
ServiceDescriptionBehavior behavior = new ServiceDescriptionBehavior();
serviceFactory.getRegistry().setServiceDescriptionBehavior(behavior);
@@ -146,17 +146,86 @@
assertFalse(info.isRefreshNeeded(false));
assertTrue(info.isRegistrationChecked());
assertEquals(2, behavior.getCallCount());
+ }
+ public void testSetNegativeCache() throws PortletInvokerException
+ {
+ ServiceDescriptionBehavior behavior = new ServiceDescriptionBehavior();
+ serviceFactory.getRegistry().setServiceDescriptionBehavior(behavior);
+
+ // we now have a default value for cache
+ assertEquals(ProducerInfo.DEFAULT_CACHE_VALUE, info.getExpirationCacheSeconds());
+
+ // check behavior when cache has been set to a negative value
+ info.setExpirationCacheSeconds(-100);
+ assertEquals(new Integer(-100), info.getExpirationCacheSeconds());
+ assertTrue(info.isRefreshNeeded(false));
+ assertFalse(info.isRegistrationChecked());
+ assertTrue(info.refresh(false));
+ assertFalse(info.isRefreshNeeded(false));
+ assertTrue(info.isRegistrationChecked());
+ assertTrue(info.refresh(false));
+ assertFalse(info.isRefreshNeeded(false));
+ assertTrue(info.isRegistrationChecked());
+ assertEquals(2, behavior.getCallCount());
+ }
+
+ public void testSetZeroCache() throws PortletInvokerException
+ {
+ ServiceDescriptionBehavior behavior = new ServiceDescriptionBehavior();
+ serviceFactory.getRegistry().setServiceDescriptionBehavior(behavior);
+
+ // we now have a default value for cache
+ assertEquals(ProducerInfo.DEFAULT_CACHE_VALUE, info.getExpirationCacheSeconds());
+
+ // check behavior when cache has been set to zero
+ info.setExpirationCacheSeconds(0);
+ assertEquals(new Integer(0), info.getExpirationCacheSeconds());
+ assertTrue(info.isRefreshNeeded(false));
+ assertFalse(info.isRegistrationChecked());
+ assertTrue(info.refresh(false));
+ assertFalse(info.isRefreshNeeded(false));
+ assertTrue(info.isRegistrationChecked());
+ assertTrue(info.refresh(false));
+ assertFalse(info.isRefreshNeeded(false));
+ assertTrue(info.isRegistrationChecked());
+ assertEquals(2, behavior.getCallCount());
+ }
+
+ public void testCacheTransitions() throws Exception
+ {
+ ServiceDescriptionBehavior behavior = new ServiceDescriptionBehavior();
+ serviceFactory.getRegistry().setServiceDescriptionBehavior(behavior);
+
+ // we now have a default value for cache
+ assertEquals(ProducerInfo.DEFAULT_CACHE_VALUE, info.getExpirationCacheSeconds());
+
+ // check behavior when no cache has been set
+ info.setExpirationCacheSeconds(null);
+ assertNull(info.getExpirationCacheSeconds());
+ assertTrue(info.isRefreshNeeded(false));
+ assertFalse(info.isRegistrationChecked());
+ assertTrue(info.refresh(false));
+ assertFalse(info.isRefreshNeeded(false));
+ assertTrue(info.isRegistrationChecked());
+ assertTrue(info.refresh(false));
+ assertFalse(info.isRefreshNeeded(false));
+ assertTrue(info.isRegistrationChecked());
+ assertEquals(2, behavior.getCallCount());
+
+ // wait a little so that computations that are only precise to the ms can actually mean something
+ Thread.sleep(10);
+
+ // set cache and check that we don't refresh as much
info.setExpirationCacheSeconds(1);
assertEquals(new Integer(1), info.getExpirationCacheSeconds());
- assertTrue(info.refresh(false));
- assertFalse(info.refresh(false));
+ assertFalse("we refreshed less than a second ago so we don't need to refresh again", info.refresh(false));
assertFalse(info.isRefreshNeeded(false));
assertTrue(info.isRegistrationChecked());
- assertEquals(3, behavior.getCallCount());
+ assertEquals(2, behavior.getCallCount());
// wait for cache expiration
- Thread.sleep(1500);
+ Thread.sleep(1100);
assertFalse("refresh is not needed if cache is not considered", info.isRefreshNeeded(false));
assertTrue("refresh is needed if cache is considered since it has expired", info.isRefreshNeeded(true));
assertTrue(info.refresh(false));
@@ -166,7 +235,20 @@
assertTrue(info.refresh(true));
assertFalse(info.isRefreshNeeded(false));
assertTrue(info.isRegistrationChecked());
- assertEquals(5, behavior.getCallCount());
+ assertEquals(4, behavior.getCallCount());
+
+ // wait a little so that computations that are only precise to the ms can actually mean something
+ Thread.sleep(10);
+
+ // now ask to not use the cache anymore and check that we do refresh
+ info.setExpirationCacheSeconds(0);
+ assertEquals(new Integer(0), info.getExpirationCacheSeconds());
+ assertTrue(info.refresh(false));
+ assertTrue(info.refresh(false));
+ assertFalse("since we've been refreshed at least once before, refreshing the endpoint and registration has been done so refresh is not needed", info.isRefreshNeeded(false));
+ assertTrue(info.isRefreshNeeded(true));
+ assertTrue(info.isRegistrationChecked());
+ assertEquals(6, behavior.getCallCount());
}
public void testGetPortlet() throws Exception
Modified: components/wsrp/trunk/consumer/src/test/java/org/gatein/wsrp/protocol/v1/MarkupTestCase.java
===================================================================
--- components/wsrp/trunk/consumer/src/test/java/org/gatein/wsrp/protocol/v1/MarkupTestCase.java 2010-11-23 13:51:30 UTC (rev 5221)
+++ components/wsrp/trunk/consumer/src/test/java/org/gatein/wsrp/protocol/v1/MarkupTestCase.java 2010-11-23 14:22:55 UTC (rev 5222)
@@ -163,6 +163,10 @@
String handle = InitCookieNotRequiredMarkupBehavior.INIT_COOKIE_NOT_REQUIRED_HANDLE;
InitCookieMarkupBehavior behavior = (InitCookieMarkupBehavior)producer.getBehaviorRegistry().getMarkupBehaviorFor(handle);
+ // this test requires that the consumer refreshes which is not the case with the setUp, so force refresh
+ consumer.getProducerInfo().setExpirationCacheSeconds(0);
+ ExtendedAssert.assertTrue(consumer.getProducerInfo().isRefreshNeeded(true));
+
ProducerSessionInformation sessionInfo = commonInitCookieTest(handle, behavior, V1CookieProtocol.NONE.value());
ExtendedAssert.assertNotNull(sessionInfo);
Modified: components/wsrp/trunk/consumer/src/test/java/org/gatein/wsrp/protocol/v2/MarkupTestCase.java
===================================================================
--- components/wsrp/trunk/consumer/src/test/java/org/gatein/wsrp/protocol/v2/MarkupTestCase.java 2010-11-23 13:51:30 UTC (rev 5221)
+++ components/wsrp/trunk/consumer/src/test/java/org/gatein/wsrp/protocol/v2/MarkupTestCase.java 2010-11-23 14:22:55 UTC (rev 5222)
@@ -168,6 +168,10 @@
String handle = InitCookieNotRequiredMarkupBehavior.INIT_COOKIE_NOT_REQUIRED_HANDLE;
InitCookieMarkupBehavior behavior = (InitCookieMarkupBehavior)producer.getBehaviorRegistry().getMarkupBehaviorFor(handle);
+ // this test requires that the consumer refreshes which is not the case with the setUp, so force refresh
+ consumer.getProducerInfo().setExpirationCacheSeconds(0);
+ ExtendedAssert.assertTrue(consumer.getProducerInfo().isRefreshNeeded(true));
+
ProducerSessionInformation sessionInfo = commonInitCookieTest(handle, behavior, CookieProtocol.NONE.value());
ExtendedAssert.assertNotNull(sessionInfo);
14 years, 1 month
gatein SVN: r5221 - portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm.
by do-not-reply@jboss.org
Author: bdaw
Date: 2010-11-23 08:51:30 -0500 (Tue, 23 Nov 2010)
New Revision: 5221
Added:
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/IntegrationCache.java
Modified:
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/GroupDAOImpl.java
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMCacheService.java
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMOrganizationServiceImpl.java
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMServiceImpl.java
Log:
GTNPORTAL-1683 Improve caching in PicketLink IDM integration layer
Modified: portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/GroupDAOImpl.java
===================================================================
--- portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/GroupDAOImpl.java 2010-11-23 12:43:11 UTC (rev 5220)
+++ portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/GroupDAOImpl.java 2010-11-23 13:51:30 UTC (rev 5221)
@@ -212,6 +212,7 @@
try
{
getIdentitySession().getPersistenceManager().removeGroup(jbidGroup, true);
+
}
catch (Exception e)
{
@@ -588,9 +589,26 @@
private String getGroupId(org.picketlink.idm.api.Group jbidGroup,
List<org.picketlink.idm.api.Group> processed) throws Exception
{
+ // Check in cache
+ if (getIntegrationCache() != null)
+ {
+ String cachedId = getIntegrationCache().getGtnGroupId(getCacheNS(), jbidGroup.getKey());
+ if (cachedId != null)
+ {
+ return cachedId;
+ }
+ }
+
if (jbidGroup.equals(getRootGroup()))
{
- return "";
+ String calculatedId = "";
+
+ if (getIntegrationCache() != null)
+ {
+ getIntegrationCache().putGtnGroupId(getCacheNS(), jbidGroup.getKey(), calculatedId);
+ }
+
+ return calculatedId;
}
if (processed == null)
@@ -628,8 +646,16 @@
"defined by type mappings or just place it under root /");
}
- return obtainMappedId(jbidGroup, gtnGroupName);
+ String calculatedId = obtainMappedId(jbidGroup, gtnGroupName);
+ if (getIntegrationCache() != null)
+ {
+ getIntegrationCache().putGtnGroupId(getCacheNS(), jbidGroup.getKey(), calculatedId);
+ }
+
+ return calculatedId;
+
+
}
processed.add(jbidGroup);
@@ -648,13 +674,27 @@
// mappings or connect it to the root
else
{
- return obtainMappedId(jbidGroup, gtnGroupName);
+ String calculatedId = obtainMappedId(jbidGroup, gtnGroupName);
+
+ if (getIntegrationCache() != null)
+ {
+ getIntegrationCache().putGtnGroupId(getCacheNS(), jbidGroup.getKey(), calculatedId);
+ }
+
+ return calculatedId;
}
}
- return parentGroupId + "/" + gtnGroupName;
+ String calculatedId = parentGroupId + "/" + gtnGroupName;
+ if (getIntegrationCache() != null)
+ {
+ getIntegrationCache().putGtnGroupId(getCacheNS(), jbidGroup.getKey(), calculatedId);
+ }
+
+ return calculatedId;
+
}
/**
@@ -761,8 +801,61 @@
return service_.getIdentitySession();
}
- private org.picketlink.idm.api.Group getRootGroup() throws Exception
+ private IntegrationCache getIntegrationCache()
{
+ // TODO: refactor to remove cast. For now to avoid adding new config option and share existing cache instannce
+ // TODO: it should be there.
+ return ((PicketLinkIDMServiceImpl)service_).getIntegrationCache();
+ }
+
+ /**
+ * Returns namespace to be used with integration cache
+ * @return
+ */
+ private String getCacheNS()
+ {
+ // TODO: refactor to remove cast. For now to avoid adding new config option and share existing cache instannce
+ // TODO: it should be there.
+ return ((PicketLinkIDMServiceImpl)service_).getRealmName();
+ }
+
+
+ /**
+ * Returns mock of PLIDM group representing "/" group. This method uses cache and delegates to obtainRootGroup().
+ *
+ * @return
+ * @throws Exception
+ */
+ protected org.picketlink.idm.api.Group getRootGroup() throws Exception
+ {
+ org.picketlink.idm.api.Group rootGroup = null;
+
+ if (getIntegrationCache() != null)
+ {
+ rootGroup = getIntegrationCache().getRootGroup(getCacheNS());
+ }
+
+ if (rootGroup == null)
+ {
+ rootGroup = obtainRootGroup();
+
+ if (getIntegrationCache() != null)
+ {
+ getIntegrationCache().putRootGroup(getCacheNS(), rootGroup);
+ }
+ }
+
+ return rootGroup;
+
+ }
+
+ /**
+ * Obtains PLIDM group representing "/" group. If such group doens't exist it creates one.
+ * @return
+ * @throws Exception
+ */
+ protected org.picketlink.idm.api.Group obtainRootGroup() throws Exception
+ {
org.picketlink.idm.api.Group rootGroup = null;
try
{
Added: portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/IntegrationCache.java
===================================================================
--- portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/IntegrationCache.java (rev 0)
+++ portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/IntegrationCache.java 2010-11-23 13:51:30 UTC (rev 5221)
@@ -0,0 +1,241 @@
+package org.exoplatform.services.organization.idm;
+
+import org.jboss.cache.Cache;
+import org.jboss.cache.CacheFactory;
+import org.jboss.cache.CacheStatus;
+import org.jboss.cache.DefaultCacheFactory;
+import org.jboss.cache.Fqn;
+import org.jboss.cache.Node;
+import org.picketlink.idm.api.Group;
+import org.picketlink.idm.api.User;
+
+import java.io.InputStream;
+import java.util.Collection;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/*
+* JBoss, a division of Red Hat
+* Copyright 2010, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* 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.
+*/
+
+/**
+ * Provides cache for some data used in integration layer between PicketLink IDM and GateIn
+ */
+public class IntegrationCache
+{
+ private static Logger log = Logger.getLogger(IntegrationCache.class.getName());
+
+ private Cache cache;
+
+ public static final String NODE_GTN_GROUP_ID = "NODE_GTN_GROUP_ID";
+
+ public static final String NODE_PLIDM_ROOT_GROUP = "NODE_PLIDM_ROOT_GROUP";
+
+ public static final String NULL_NS_NODE = "GTN_IC_COMMON_NS";
+
+ public static final String MAIN_ROOT = "NODE_GTN_ORG_SERVICE_INT_CACHE_MAIN_ROOT";
+
+ public static final String NODE_OBJECT_KEY = "object";
+
+ private Fqn getRootNode()
+ {
+ return Fqn.fromString("/" + MAIN_ROOT);
+ }
+
+ private Fqn getNamespacedFqn(String ns)
+ {
+ String namespace = ns != null ? ns : NULL_NS_NODE;
+ namespace = namespace.replaceAll("/", "_");
+ return Fqn.fromString(getRootNode() + "/" + namespace);
+ }
+
+ private Fqn getFqn(String ns, String node, Object o)
+ {
+ return Fqn.fromString(getNamespacedFqn(ns) + "/" + node + "/" + o);
+ }
+
+ private Fqn getFqn(String ns, String node)
+ {
+ return Fqn.fromString(getNamespacedFqn(ns) + "/" + node);
+ }
+
+ public void initialize(InputStream jbossCacheConfiguration)
+ {
+ CacheFactory factory = new DefaultCacheFactory();
+
+ if (jbossCacheConfiguration == null)
+ {
+ throw new IllegalArgumentException("JBoss Cache configuration InputStream is null");
+ }
+
+ this.cache = factory.createCache(jbossCacheConfiguration);
+
+ this.cache.create();
+ this.cache.start();
+
+ }
+
+ public void initialize(Cache cache)
+ {
+ this.cache = cache;
+
+ CacheStatus status = cache.getCacheStatus();
+
+ if (status.createAllowed())
+ {
+ this.cache.create();
+ }
+ if (status.startAllowed())
+ {
+ this.cache.start();
+ }
+
+ }
+
+ Cache getCache()
+ {
+ return cache;
+ }
+
+
+ public void invalidate(String ns)
+ {
+
+ boolean success = cache.getRoot().removeChild(getNamespacedFqn(ns));
+
+ if (log.isLoggable(Level.FINER))
+ {
+ log.finer(this.toString() + "Invalidating namespace:" + ns + "; success=" + success);
+ }
+ }
+
+ public void invalidateAll()
+ {
+ boolean success = cache.getRoot().removeChild(getRootNode());
+
+ if (log.isLoggable(Level.FINER))
+ {
+ log.finer(this.toString() + "Invalidating whole cache - success=" + success);
+ }
+ }
+
+ /**
+ * Store gatein group id
+ * @param ns
+ * @param pLIDMId
+ * @param id
+ */
+ void putGtnGroupId(String ns, String pLIDMId, String id)
+ {
+ Fqn nodeFqn = getFqn(ns, NODE_GTN_GROUP_ID, pLIDMId);
+
+ Node ioNode = getCache().getRoot().addChild(nodeFqn);
+
+ ioNode.put(NODE_OBJECT_KEY, id);
+
+ if (log.isLoggable(Level.FINER))
+ {
+
+ log.finer(this.toString() + "GateIn group id cached. PLIDM group id: " + pLIDMId +
+ "GateIn group id: " + id + ";namespace=" + ns);
+ }
+
+ }
+
+ /**
+ * Retrieve gatein group id
+ * @param ns
+ * @param pLIDMId
+ * @return
+ */
+ String getGtnGroupId(String ns, String pLIDMId)
+ {
+
+ Fqn nodeFqn = getFqn(ns, NODE_GTN_GROUP_ID, pLIDMId);
+
+ Node node = getCache().getRoot().getChild(nodeFqn);
+
+ if (node != null)
+ {
+ String id = (String)node.get(NODE_OBJECT_KEY);
+
+ if (log.isLoggable(Level.FINER) && id != null)
+ {
+ log.finer(this.toString() + "GateIn group id found in cache. PLIDM group id: " + pLIDMId +
+ "GateIn group id: " + id + ";namespace=" + ns);
+ }
+
+ return id;
+ }
+
+ return null;
+
+ }
+
+ /**
+ * Store PLIDM root group
+ * @param ns
+ * @param rootGroup
+ */
+ void putRootGroup(String ns, Group rootGroup)
+ {
+ Fqn nodeFqn = getFqn(ns, NODE_PLIDM_ROOT_GROUP);
+
+ Node ioNode = getCache().getRoot().addChild(nodeFqn);
+
+ ioNode.put(NODE_OBJECT_KEY, rootGroup);
+
+ if (log.isLoggable(Level.FINER))
+ {
+
+ log.finer(this.toString() + "GateIn root group stored in cache" + ";namespace=" + ns);
+ }
+
+ }
+
+ /**
+ * Retrieve PLIDM root group
+ * @param ns
+ * @return
+ */
+ Group getRootGroup(String ns)
+ {
+ Fqn nodeFqn = getFqn(ns, NODE_PLIDM_ROOT_GROUP);
+
+ Node node = getCache().getRoot().getChild(nodeFqn);
+
+ if (node != null)
+ {
+ Group rootGroup = (Group)node.get(NODE_OBJECT_KEY);
+
+ if (log.isLoggable(Level.FINER) && rootGroup != null)
+ {
+ log.finer(this.toString() + "GateIn root group found in cache" + ";namespace=" + ns);
+ }
+
+ return rootGroup;
+ }
+
+ return null;
+
+ }
+
+}
Modified: portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMCacheService.java
===================================================================
--- portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMCacheService.java 2010-11-23 12:43:11 UTC (rev 5220)
+++ portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMCacheService.java 2010-11-23 13:51:30 UTC (rev 5221)
@@ -51,6 +51,8 @@
public class PicketLinkIDMCacheService
{
+ private final List<IntegrationCache> integrationCache = new LinkedList<IntegrationCache>();
+
private final List<APICacheProvider> apiCacheProviders = new LinkedList<APICacheProvider>();
private final List<IdentityStoreCacheProvider> storeCacheProviders = new LinkedList<IdentityStoreCacheProvider>();
@@ -59,6 +61,16 @@
{
}
+ public void register(IntegrationCache cacheProvider)
+ {
+
+ if (cacheProvider != null)
+ {
+ integrationCache.add(cacheProvider);
+ }
+
+ }
+
public void register(APICacheProvider cacheProvider)
{
@@ -101,6 +113,11 @@
@Impact(ImpactType.WRITE)
public void invalidateAll()
{
+ for (IntegrationCache cacheProvider : integrationCache)
+ {
+ cacheProvider.invalidateAll();
+ }
+
for (APICacheProvider cacheProvider : apiCacheProviders)
{
cacheProvider.invalidateAll();
Modified: portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMOrganizationServiceImpl.java
===================================================================
--- portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMOrganizationServiceImpl.java 2010-11-23 12:43:11 UTC (rev 5220)
+++ portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMOrganizationServiceImpl.java 2010-11-23 13:51:30 UTC (rev 5221)
@@ -76,7 +76,7 @@
}
- public final org.picketlink.idm.api.Group getJBIDMGroup(String groupId) throws Exception
+ public final org.picketlink.idm.api.Group getJBIDMGroup(String groupId) throws Exception
{
String[] ids = groupId.split("/");
String name = ids[ids.length - 1];
Modified: portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMServiceImpl.java
===================================================================
--- portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMServiceImpl.java 2010-11-23 12:43:11 UTC (rev 5220)
+++ portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMServiceImpl.java 2010-11-23 13:51:30 UTC (rev 5221)
@@ -26,6 +26,9 @@
import org.exoplatform.services.log.Log;
import org.exoplatform.services.database.HibernateService;
import org.exoplatform.services.naming.InitialContextInitializer;
+import org.jboss.cache.Cache;
+import org.jboss.cache.CacheFactory;
+import org.jboss.cache.DefaultCacheFactory;
import org.picketlink.idm.api.IdentitySession;
import org.picketlink.idm.api.IdentitySessionFactory;
import org.picketlink.idm.api.cfg.IdentityConfiguration;
@@ -75,6 +78,8 @@
private IdentityConfiguration identityConfiguration;
+ private IntegrationCache integrationCache;
+
private PicketLinkIDMServiceImpl()
{
}
@@ -125,13 +130,31 @@
{
InputStream configStream = confManager.getInputStream(apiCacheConfig.getValue());
+ // Create common JBoss Cache instance
+ CacheFactory factory = new DefaultCacheFactory();
+ if (configStream == null)
+ {
+ throw new IllegalArgumentException("JBoss Cache configuration InputStream is null");
+ }
+
+ Cache cache = factory.createCache(configStream);
+
+ cache.create();
+ cache.start();
+
+ configStream.close();
+
+ // PLIDM API cache
JBossCacheAPICacheProviderImpl apiCacheProvider = new JBossCacheAPICacheProviderImpl();
- apiCacheProvider.initialize(configStream);
+ apiCacheProvider.initialize(cache);
picketLinkIDMCache.register(apiCacheProvider);
identityConfiguration.getIdentityConfigurationRegistry().register(apiCacheProvider, "apiCacheProvider");
- configStream.close();
+ //Integration cache
+ integrationCache = new IntegrationCache();
+ integrationCache.initialize(cache);
+ picketLinkIDMCache.register(apiCacheProvider);
}
if (storeCacheConfig != null)
@@ -192,4 +215,14 @@
}
return getIdentitySessionFactory().getCurrentIdentitySession(realm);
}
+
+ public IntegrationCache getIntegrationCache()
+ {
+ return integrationCache;
+ }
+
+ public String getRealmName()
+ {
+ return realmName;
+ }
}
14 years, 1 month
gatein SVN: r5220 - in components/pc/trunk: api and 12 other directories.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-11-23 07:43:11 -0500 (Tue, 23 Nov 2010)
New Revision: 5220
Modified:
components/pc/trunk/api/pom.xml
components/pc/trunk/bridge/pom.xml
components/pc/trunk/controller/pom.xml
components/pc/trunk/docs/pom.xml
components/pc/trunk/docs/user-guide/pom.xml
components/pc/trunk/federation/pom.xml
components/pc/trunk/jsr168api/pom.xml
components/pc/trunk/management/pom.xml
components/pc/trunk/mc/pom.xml
components/pc/trunk/pom.xml
components/pc/trunk/portal/pom.xml
components/pc/trunk/portlet/pom.xml
components/pc/trunk/samples/pom.xml
components/pc/trunk/test/pom.xml
Log:
[maven-release-plugin] prepare for next development iteration
Modified: components/pc/trunk/api/pom.xml
===================================================================
--- components/pc/trunk/api/pom.xml 2010-11-23 12:42:30 UTC (rev 5219)
+++ components/pc/trunk/api/pom.xml 2010-11-23 12:43:11 UTC (rev 5220)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.pc</groupId>
<artifactId>pc-parent</artifactId>
- <version>2.2.0-GA</version>
+ <version>2.2.1-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.gatein.pc</groupId>
Modified: components/pc/trunk/bridge/pom.xml
===================================================================
--- components/pc/trunk/bridge/pom.xml 2010-11-23 12:42:30 UTC (rev 5219)
+++ components/pc/trunk/bridge/pom.xml 2010-11-23 12:43:11 UTC (rev 5220)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.pc</groupId>
<artifactId>pc-parent</artifactId>
- <version>2.2.0-GA</version>
+ <version>2.2.1-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>pc-bridge</artifactId>
Modified: components/pc/trunk/controller/pom.xml
===================================================================
--- components/pc/trunk/controller/pom.xml 2010-11-23 12:42:30 UTC (rev 5219)
+++ components/pc/trunk/controller/pom.xml 2010-11-23 12:43:11 UTC (rev 5220)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.pc</groupId>
<artifactId>pc-parent</artifactId>
- <version>2.2.0-GA</version>
+ <version>2.2.1-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>pc-controller</artifactId>
Modified: components/pc/trunk/docs/pom.xml
===================================================================
--- components/pc/trunk/docs/pom.xml 2010-11-23 12:42:30 UTC (rev 5219)
+++ components/pc/trunk/docs/pom.xml 2010-11-23 12:43:11 UTC (rev 5220)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.gatein.pc</groupId>
<artifactId>pc-parent</artifactId>
- <version>2.2.0-GA</version>
+ <version>2.2.1-GA-SNAPSHOT</version>
</parent>
<artifactId>docs-aggregator</artifactId>
<packaging>pom</packaging>
Modified: components/pc/trunk/docs/user-guide/pom.xml
===================================================================
--- components/pc/trunk/docs/user-guide/pom.xml 2010-11-23 12:42:30 UTC (rev 5219)
+++ components/pc/trunk/docs/user-guide/pom.xml 2010-11-23 12:43:11 UTC (rev 5220)
@@ -5,7 +5,7 @@
<parent>
<groupId>org.gatein.pc</groupId>
<artifactId>pc-parent</artifactId>
- <version>2.2.0-GA</version>
+ <version>2.2.1-GA-SNAPSHOT</version>
</parent>
<groupId>org.gatein.pc</groupId>
<artifactId>user-guide-${translation}</artifactId>
Modified: components/pc/trunk/federation/pom.xml
===================================================================
--- components/pc/trunk/federation/pom.xml 2010-11-23 12:42:30 UTC (rev 5219)
+++ components/pc/trunk/federation/pom.xml 2010-11-23 12:43:11 UTC (rev 5220)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.pc</groupId>
<artifactId>pc-parent</artifactId>
- <version>2.2.0-GA</version>
+ <version>2.2.1-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>pc-federation</artifactId>
Modified: components/pc/trunk/jsr168api/pom.xml
===================================================================
--- components/pc/trunk/jsr168api/pom.xml 2010-11-23 12:42:30 UTC (rev 5219)
+++ components/pc/trunk/jsr168api/pom.xml 2010-11-23 12:43:11 UTC (rev 5220)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.pc</groupId>
<artifactId>pc-parent</artifactId>
- <version>2.2.0-GA</version>
+ <version>2.2.1-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>pc-jsr168api</artifactId>
Modified: components/pc/trunk/management/pom.xml
===================================================================
--- components/pc/trunk/management/pom.xml 2010-11-23 12:42:30 UTC (rev 5219)
+++ components/pc/trunk/management/pom.xml 2010-11-23 12:43:11 UTC (rev 5220)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.pc</groupId>
<artifactId>pc-parent</artifactId>
- <version>2.2.0-GA</version>
+ <version>2.2.1-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>pc-management</artifactId>
Modified: components/pc/trunk/mc/pom.xml
===================================================================
--- components/pc/trunk/mc/pom.xml 2010-11-23 12:42:30 UTC (rev 5219)
+++ components/pc/trunk/mc/pom.xml 2010-11-23 12:43:11 UTC (rev 5220)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.pc</groupId>
<artifactId>pc-parent</artifactId>
- <version>2.2.0-GA</version>
+ <version>2.2.1-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>pc-mc</artifactId>
Modified: components/pc/trunk/pom.xml
===================================================================
--- components/pc/trunk/pom.xml 2010-11-23 12:42:30 UTC (rev 5219)
+++ components/pc/trunk/pom.xml 2010-11-23 12:43:11 UTC (rev 5220)
@@ -29,7 +29,7 @@
<groupId>org.gatein.pc</groupId>
<artifactId>pc-parent</artifactId>
- <version>2.2.0-GA</version>
+ <version>2.2.1-GA-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
@@ -39,9 +39,9 @@
</parent>
<scm>
- <connection>scm:svn:http://anonsvn.jboss.org/repos/gatein/components/pc/tags/2.2.0-GA</connection>
- <developerConnection>scm:svn:https://svn.jboss.org/repos/gatein/components/pc/tags/2.2.0-GA</developerConnection>
- <url>http://fisheye.jboss.org/browse/gatein/components/pc/tags/2.2.0-GA</url>
+ <connection>scm:svn:http://anonsvn.jboss.org/repos/gatein/components/pc/trunk</connection>
+ <developerConnection>scm:svn:https://svn.jboss.org/repos/gatein/components/pc/trunk</developerConnection>
+ <url>http://fisheye.jboss.org/browse/gatein/components/pc/trunk</url>
</scm>
<properties>
Modified: components/pc/trunk/portal/pom.xml
===================================================================
--- components/pc/trunk/portal/pom.xml 2010-11-23 12:42:30 UTC (rev 5219)
+++ components/pc/trunk/portal/pom.xml 2010-11-23 12:43:11 UTC (rev 5220)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.pc</groupId>
<artifactId>pc-parent</artifactId>
- <version>2.2.0-GA</version>
+ <version>2.2.1-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>pc-portal</artifactId>
Modified: components/pc/trunk/portlet/pom.xml
===================================================================
--- components/pc/trunk/portlet/pom.xml 2010-11-23 12:42:30 UTC (rev 5219)
+++ components/pc/trunk/portlet/pom.xml 2010-11-23 12:43:11 UTC (rev 5220)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.pc</groupId>
<artifactId>pc-parent</artifactId>
- <version>2.2.0-GA</version>
+ <version>2.2.1-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>pc-portlet</artifactId>
Modified: components/pc/trunk/samples/pom.xml
===================================================================
--- components/pc/trunk/samples/pom.xml 2010-11-23 12:42:30 UTC (rev 5219)
+++ components/pc/trunk/samples/pom.xml 2010-11-23 12:43:11 UTC (rev 5220)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.pc</groupId>
<artifactId>pc-parent</artifactId>
- <version>2.2.0-GA</version>
+ <version>2.2.1-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>pc-samples</artifactId>
Modified: components/pc/trunk/test/pom.xml
===================================================================
--- components/pc/trunk/test/pom.xml 2010-11-23 12:42:30 UTC (rev 5219)
+++ components/pc/trunk/test/pom.xml 2010-11-23 12:43:11 UTC (rev 5220)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.gatein.pc</groupId>
<artifactId>pc-parent</artifactId>
- <version>2.2.0-GA</version>
+ <version>2.2.1-GA-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>pc-test</artifactId>
14 years, 1 month