You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(233) |
Sep
(199) |
Oct
(206) |
Nov
(185) |
Dec
(270) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(232) |
Feb
(426) |
Mar
(623) |
Apr
(592) |
May
(506) |
Jun
(389) |
Jul
(160) |
Aug
(3) |
Sep
(1) |
Oct
(1) |
Nov
(2) |
Dec
(5) |
2007 |
Jan
(1) |
Feb
(1) |
Mar
(2) |
Apr
(2) |
May
(4) |
Jun
(2) |
Jul
|
Aug
(3) |
Sep
(5) |
Oct
(9) |
Nov
(6) |
Dec
(6) |
2008 |
Jan
(3) |
Feb
|
Mar
(1) |
Apr
(3) |
May
(3) |
Jun
(5) |
Jul
(10) |
Aug
(2) |
Sep
(12) |
Oct
(10) |
Nov
(54) |
Dec
(49) |
2009 |
Jan
(19) |
Feb
(13) |
Mar
(20) |
Apr
(24) |
May
(44) |
Jun
(29) |
Jul
(32) |
Aug
(10) |
Sep
(7) |
Oct
(10) |
Nov
(4) |
Dec
(17) |
2010 |
Jan
(14) |
Feb
(5) |
Mar
(23) |
Apr
(50) |
May
(31) |
Jun
(9) |
Jul
(5) |
Aug
(4) |
Sep
(7) |
Oct
(5) |
Nov
(2) |
Dec
(3) |
2011 |
Jan
(12) |
Feb
(5) |
Mar
(5) |
Apr
(3) |
May
(4) |
Jun
(3) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2012 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(4) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
2015 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <jbo...@li...> - 2005-10-25 14:51:42
|
Author: rem...@jb... Date: 2005-10-25 10:51:31 -0400 (Tue, 25 Oct 2005) New Revision: 1444 Modified: trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteRule.java trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteTestCase.java trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteValve.java Log: - Simple parsing tests and associated bug fixes. - Handle "-" substitution for a rule. - Implement main rewrite engine, but not tested yet. Modified: trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteRule.java =================================================================== --- trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteRule.java 2005-10-24 19:51:10 UTC (rev 1443) +++ trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteRule.java 2005-10-25 14:51:31 UTC (rev 1444) @@ -16,9 +16,11 @@ public void parse(Map maps) { // Parse the substitution - substitution = new Substitution(); - substitution.setSub(substitutionString); - substitution.parse(maps); + if (!"-".equals(substitutionString)) { + substitution = new Substitution(); + substitution.setSub(substitutionString); + substitution.parse(maps); + } // Parse the pattern int flags = 0; if (isNocase()) { @@ -85,7 +87,11 @@ } // Use the substitution to rewrite the url if (rewrite) { - return substitution.evaluate(matcher, lastMatcher, resolver); + if (substitution != null) { + return substitution.evaluate(matcher, lastMatcher, resolver); + } else { + return url; + } } else { return null; } Modified: trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteTestCase.java =================================================================== --- trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteTestCase.java 2005-10-24 19:51:10 UTC (rev 1443) +++ trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteTestCase.java 2005-10-25 14:51:31 UTC (rev 1444) @@ -128,6 +128,49 @@ assertEquals("/about/", result); } + public void testParsing() { + Object result = null; + String test = null; + RewriteRule resultRule = null; + RewriteCond resultCond = null; + + test = "RewriteRule ^/~([^/]+)/?(.*) /u/$1/$2 [R]"; + result = RewriteValve.parse(test); + if (result instanceof RewriteRule) { + resultRule = (RewriteRule) result; + } + assertNotNull(resultRule); + assertTrue(resultRule.isRedirect()); + assertEquals(resultRule.getPatternString(), "^/~([^/]+)/?(.*)"); + assertEquals(resultRule.getSubstitutionString(), "/u/$1/$2"); + resultRule = null; + + test = "RewriteRule ^/(.*) http://fully.qualified.domain.name:%{SERVER_PORT}/$1 [L,R]"; + result = RewriteValve.parse(test); + if (result instanceof RewriteRule) { + resultRule = (RewriteRule) result; + } + assertNotNull(resultRule); + assertTrue(resultRule.isRedirect()); + assertTrue(resultRule.isLast()); + assertEquals(resultRule.getPatternString(), "^/(.*)"); + assertEquals(resultRule.getSubstitutionString(), "http://fully.qualified.domain.name:%{SERVER_PORT}/$1"); + resultRule = null; + + test = "RewriteCond %{HTTP_HOST} !^fully\\.qualified\\.domain\\.name [NC]"; + result = RewriteValve.parse(test); + if (result instanceof RewriteCond) { + resultCond = (RewriteCond) result; + } + assertNotNull(resultCond); + assertTrue(resultCond.isNocase()); + assertEquals(resultCond.getTestString(), "%{HTTP_HOST}"); + assertEquals(resultCond.getCondPattern(), "!^fully\\.qualified\\.domain\\.name"); + resultCond = null; + + } + + public static CharSequence rewriteUrl(CharSequence url, Resolver resolver, RewriteRule[] rules) { if (rules == null) return url; Modified: trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteValve.java =================================================================== --- trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteValve.java 2005-10-24 19:51:10 UTC (rev 1443) +++ trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteValve.java 2005-10-25 14:51:31 UTC (rev 1444) @@ -12,6 +12,7 @@ import java.util.StringTokenizer; import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; import org.apache.catalina.Container; import org.apache.catalina.Context; @@ -25,7 +26,6 @@ import org.apache.catalina.connector.Response; import org.apache.catalina.util.LifecycleSupport; import org.apache.catalina.valves.ValveBase; -import org.xml.sax.InputSource; public class RewriteValve extends ValveBase implements Lifecycle { @@ -195,12 +195,73 @@ boolean done = false; for (int i = 0; i < rules.length; i++) { CharSequence newurl = rules[i].evaluate(url, resolver); - if (newurl != null) { - // Check some extra flags, including redirect, proxying, etc - // FIXME + if (newurl != null && !url.equals(newurl.toString())) { url = newurl.toString(); - rewritten = true; + rewritten = true; } + + // Control flow processing + + // - chain (skip remaining chained rules if this one does not match) + if (rules[i].isChain() && newurl == null) { + for (int j = i; j < rules.length; j++) { + if (!rules[j].isChain()) { + i = j; + break; + } + } + } + // - last (stop rewriting here) + if (rules[i].isLast() && newurl != null) { + break; + } + // - next (redo again) + if (rules[i].isNext() && newurl != null) { + i = 0; + } + // - skip (n rules) + if (newurl != null) { + i += rules[i].getSkip(); + } + + // Final reply: + // - forbidden + if (rules[i].isForbidden() && newurl != null) { + response.sendError(HttpServletResponse.SC_FORBIDDEN); + done = true; + break; + } + // - gone + if (rules[i].isGone() && newurl != null) { + response.sendError(HttpServletResponse.SC_GONE); + done = true; + break; + } + // - redirect (code) + if (rules[i].isRedirect() && newurl != null) { + // Note: No way to specify the status code here + response.sendRedirect(url); + done = true; + break; + } + + // Reply modification: + // - cookie + if (rules[i].isCookie() && newurl != null) { + // FIXME: Cookie impl + } + // - env (note: this sets a request attribute) + if (rules[i].isEnv() && newurl != null) { + request.setAttribute(rules[i].getEnvName(), rules[i].getEnvValue()); + } + // - content type (note: this will not force the content type, use a filter + // to do that) + if (rules[i].isType() && newurl != null) { + request.setContentType(rules[i].getTypeValue()); + } + // - qsappend + // FIXME: Append to query string ? + } if (rewritten) { @@ -295,7 +356,7 @@ if (tokenizer.hasMoreTokens()) { String flags = tokenizer.nextToken(); if (flags.startsWith("[") && flags.endsWith("]")) { - flags.substring(1, flags.length() - 1); + flags = flags.substring(1, flags.length() - 1); } StringTokenizer flagsTokenizer = new StringTokenizer(flags, ","); while (flagsTokenizer.hasMoreElements()) { @@ -313,7 +374,7 @@ if (tokenizer.hasMoreTokens()) { String flags = tokenizer.nextToken(); if (flags.startsWith("[") && flags.endsWith("]")) { - flags.substring(1, flags.length() - 1); + flags = flags.substring(1, flags.length() - 1); } StringTokenizer flagsTokenizer = new StringTokenizer(flags, ","); while (flagsTokenizer.hasMoreElements()) { @@ -344,7 +405,7 @@ } else if (flag.equals("OR") || flag.equals("ornext")) { condition.setOrnext(true); } else { - throw new IllegalArgumentException("Ivalid flag in: " + line); + throw new IllegalArgumentException("Ivalid flag in: " + line + " flags: " + flag); } } @@ -400,6 +461,8 @@ flag = flag.substring("R=".length()); rule.setRedirect(true); rule.setRedirectCode(Integer.parseInt(flag)); + } else { + rule.setRedirect(true); } } else if (flag.startsWith("skip") || flag.startsWith("S")) { if (flag.startsWith("skip=")) { @@ -417,7 +480,7 @@ rule.setType(true); rule.setTypeValue(flag); } else { - throw new IllegalArgumentException("Ivalid flag in: " + line); + throw new IllegalArgumentException("Ivalid flag in: " + line + " flag: " + flag); } } |
Author: dam...@jb... Date: 2005-10-24 15:51:10 -0400 (Mon, 24 Oct 2005) New Revision: 1443 Modified: qa/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java qa/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java Log: MERGED: -r 1436:1442 https://svn.labs.jboss.com/trunk/forge/portal-extensions into qa. More 1.0.5 patches. Modified: qa/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java =================================================================== --- qa/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java 2005-10-24 18:49:24 UTC (rev 1442) +++ qa/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java 2005-10-24 19:51:10 UTC (rev 1443) @@ -42,7 +42,7 @@ fm.update(); // Avoiding WARN. - timer.cancel(); //? -- Maybe this caused the TX exception. + //timer.cancel(); //? -- Maybe this caused the TX exception. // Scheduling next timer to timeout after the amount of time that // is set in forgeManagement. Modified: qa/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java =================================================================== --- qa/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java 2005-10-24 18:49:24 UTC (rev 1442) +++ qa/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java 2005-10-24 19:51:10 UTC (rev 1443) @@ -37,7 +37,7 @@ ssi.update(); // Avoiding WARN. - timer.cancel(); + // timer.cancel(); scheduleTimer(ssi.getTimerInterval()); } catch (MalformedObjectNameException e) { |
Author: adamw Date: 2005-10-24 14:49:24 -0400 (Mon, 24 Oct 2005) New Revision: 1442 Modified: trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java Log: Fixing timers Modified: trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java =================================================================== --- trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java 2005-10-24 16:55:44 UTC (rev 1441) +++ trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java 2005-10-24 18:49:24 UTC (rev 1442) @@ -42,7 +42,7 @@ fm.update(); // Avoiding WARN. - timer.cancel(); //? -- Maybe this caused the TX exception. + //timer.cancel(); //? -- Maybe this caused the TX exception. // Scheduling next timer to timeout after the amount of time that // is set in forgeManagement. Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java 2005-10-24 16:55:44 UTC (rev 1441) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java 2005-10-24 18:49:24 UTC (rev 1442) @@ -37,7 +37,7 @@ ssi.update(); // Avoiding WARN. - timer.cancel(); + // timer.cancel(); scheduleTimer(ssi.getTimerInterval()); } catch (MalformedObjectNameException e) { |
From: <jbo...@li...> - 2005-10-24 16:55:02
|
Author: dam...@jb... Date: 2005-10-24 12:54:58 -0400 (Mon, 24 Oct 2005) New Revision: 1440 Added: branches/forge/interns/pawel/portal-extensions/ Log: Branching trunk for Pawel. Copied: branches/forge/interns/pawel/portal-extensions (from rev 1439, trunk/forge/portal-extensions) |
From: <jbo...@li...> - 2005-10-24 16:54:16
|
Author: dam...@jb... Date: 2005-10-24 12:54:07 -0400 (Mon, 24 Oct 2005) New Revision: 1439 Added: branches/forge/interns/pawel/ Log: Adding a playground for Pawel. |
From: <jbo...@li...> - 2005-10-24 16:53:13
|
Author: dam...@jb... Date: 2005-10-24 12:53:11 -0400 (Mon, 24 Oct 2005) New Revision: 1438 Added: branches/forge/interns/ Log: Adding a playground branch for interns. |
Author: dam...@jb... Date: 2005-10-24 12:08:51 -0400 (Mon, 24 Oct 2005) New Revision: 1437 Added: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AtomFeed.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsNodeWatcher.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsServlet.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RdfFeed.java Modified: qa/forge/portal-extensions/federation-register/project.xml qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/service/NodeWatcher.java qa/forge/portal-extensions/forge-ear/src/META-INF/application.xml qa/forge/portal-extensions/forge-feeds/project.xml qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java qa/forge/portal-extensions/forge-feeds/src/web/WEB-INF/web.xml qa/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeService.java qa/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/RenamePageWatcher.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPage.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPlugin.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiType.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiTypeHandler.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/HTMLTranslatorParts.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/RecentlyChangedPagesPlugin.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/DictionaryTest.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/GetSavePageTest.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/WikiTest.java qa/forge/portal-extensions/jbosswiki/wiki-management/src/java/org/jboss/wiki/management/WikiService.java qa/forge/portal-extensions/maven.xml qa/forge/portal-extensions/portal-default/src/web/WEB-INF/default-portal.xml qa/forge/portal-extensions/portal-federation/project.xml qa/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java Log: MERGED: -r 1429:1436 https://svn.labs.jboss.com/trunk/forge/portal-extensions into qa for 1.0.5 release. Modified: qa/forge/portal-extensions/federation-register/project.xml =================================================================== --- qa/forge/portal-extensions/federation-register/project.xml 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/federation-register/project.xml 2005-10-24 16:08:51 UTC (rev 1437) @@ -17,33 +17,10 @@ <description></description> <dependencies> - <dependency> - <groupId>tmate</groupId> - <artifactId>javasvn</artifactId> - <version>1.0</version> - <jar>javasvn.jar</jar> - <properties> - <war.bundle>true</war.bundle> - </properties> - </dependency> - <dependency> - <groupId>tmate</groupId> - <artifactId>jsch</artifactId> - <version>1.0</version> - <jar>jsch.jar</jar> - <properties> - <war.bundle>true</war.bundle> - </properties> - </dependency> - - <dependency> <groupId>jboss-forge</groupId> <artifactId>forge-common</artifactId> <version>1.0</version> - <properties> - <war.bundle>true</war.bundle> - </properties> </dependency> <dependency> Modified: qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java =================================================================== --- qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -51,8 +51,10 @@ * is present. */ public static String getAttributeValue(Node root, String attrName) { - Node n = root.getAttributes().getNamedItem(attrName); + NamedNodeMap attrMap = root.getAttributes(); + if (attrMap == null) return null; + Node n = attrMap.getNamedItem(attrName); if (n == null) return null; return unmarshallText(n); Modified: qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/service/NodeWatcher.java =================================================================== --- qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/service/NodeWatcher.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/service/NodeWatcher.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -1,11 +1,11 @@ package org.jboss.forge.common.service; /** - * @author adamw * An interface that should be implemented by classes which manage a node * in a cache. To place an object in the cache, you must only call * <code>forgeManagement.addNodeWatcher(NodeWatcher)</code>. This function * will return the initial value and this value will be periodically updated. + * @author adamw */ public interface NodeWatcher { /** @@ -20,7 +20,7 @@ * @param portalName Name of the portal for which this node watcher * is used. * @param currentValue Current value held in this node. If this object - * is updated (changed) in any way, the object must proide thread-safety + * is updated (changed) in any way, the object must provide thread-safety * by itself. * @return A new object to put in the cache or null, if the old object * is to stay. Modified: qa/forge/portal-extensions/forge-ear/src/META-INF/application.xml =================================================================== --- qa/forge/portal-extensions/forge-ear/src/META-INF/application.xml 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/forge-ear/src/META-INF/application.xml 2005-10-24 16:08:51 UTC (rev 1437) @@ -20,7 +20,7 @@ </module> <module> <web> - <web-uri>forge-feeds.war</web-uri> + <web-uri>feeds.war</web-uri> </web> </module> <module> Modified: qa/forge/portal-extensions/forge-feeds/project.xml =================================================================== --- qa/forge/portal-extensions/forge-feeds/project.xml 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/forge-feeds/project.xml 2005-10-24 16:08:51 UTC (rev 1437) @@ -7,7 +7,7 @@ <project> <pomVersion>3</pomVersion> <extend>../common.xml</extend> - <id>forge-feeds</id> + <id>feeds</id> <name>Forge feeds</name> <currentVersion>1.0</currentVersion> <organization> Copied: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AtomFeed.java (from rev 1436, trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AtomFeed.java) Modified: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java =================================================================== --- qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -4,6 +4,8 @@ import java.io.OutputStream; import java.net.URL; +import javax.servlet.http.HttpServletResponse; + import com.sun.syndication.io.FeedException; import com.sun.syndication.io.XmlReader; @@ -13,13 +15,20 @@ */ public interface Feed { /** - * Writes the feed to the given output stream. + * Writes the feed data to the given output stream. * @param os Output stream to write to. * @throws IOException */ public void write(OutputStream os) throws IOException; /** - * Generates a feed getting content from the given url. + * Writes the feed data to the given http servlet response, setting an + * appropriate content type. + * @param response Response to write to. + * @throws IOException + */ + public void write(HttpServletResponse response) throws IOException; + /** + * Generates a feed getting data from the given url. * @param url Url from which to get the content. */ public void generateFromUrl(URL url) throws IOException; Modified: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java =================================================================== --- qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -1,27 +1,58 @@ package org.jboss.forge.feeds; +import java.io.File; import java.util.HashMap; import java.util.Map; +import java.util.Random; +/** + * A class which is an access point to specific feed implementations. + * @author adamw + */ public class FeedFactory { + /** + * <code>feedClasses</code> - map feed type -> feed class. + */ private static Map<String, Class> feedClasses; + private static Random random; static { feedClasses = new HashMap<String, Class>(); feedClasses.put("rss2", Rss2Feed.class); + feedClasses.put("atom", AtomFeed.class); + //feedClasses.put("rdf", RdfFeed.class); + + random = new Random(); } + /** + * Creates a new instance of a feed implementation of the given type. + * @param type Type of feed to create. + * @return A new instance of a feed of the given type. + */ public static Feed getNewFeed(String type) { Class feedClass = feedClasses.get(type); if (feedClass == null) return null; + + int nextInt; + synchronized(random) { + nextInt = random.nextInt(); + } try { - return (Feed) feedClass.newInstance(); + File file = File.createTempFile(FeedsDescriptor.FEEDS_FILE_PREFIX + nextInt, type); + //TODO System.out.println("Created temp file: " + file.getAbsolutePath()); + return (Feed) feedClass.getConstructor(new Class[] { File.class }). + newInstance(new Object[] { file }); } catch (Exception e) { return null; } } + /** + * Gets all feed types that have been defined. + * @return An array of defined feed types. + */ public static String[] getAllFeedTypes() { return feedClasses.keySet().toArray(new String[0]); } Modified: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java =================================================================== --- qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -2,8 +2,13 @@ import java.io.IOException; import java.net.URL; +import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; import java.util.Map; +import java.util.Set; import org.apache.xerces.parsers.DOMParser; import org.jboss.forge.common.ForgeHelper; @@ -11,16 +16,30 @@ import org.jboss.forge.common.projects.ProjectsHelper; import org.jboss.forge.common.projects.permissions.NullPermissionsChecker; import org.jboss.logging.Logger; +import org.jboss.portal.common.context.DelegateContext; import org.jboss.shotoku.ContentManager; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import org.xml.sax.SAXException; +/** + * Class which handles parsing feed descriptions, generates the feeds and + * provides access to them. + * @author adamw + */ public class FeedsDescriptor { private static final Logger log = Logger.getLogger(FeedsDescriptor.class); - private final static String FEEDS_DIRECTORY = "feeds"; + /** + * <code>FEEDS_DIRECTORY</code> - shotoku directory in which feed + * definitions are stored. + */ + protected final static String FEEDS_DIRECTORY = "feeds"; + /** + * <code>FEEDS_NODE_ENDING</code> - node with names ending with this + * string are parsed and feed definitons are read from them. + */ private final static String FEEDS_NODE_ENDING = "-feeds.xml"; private final static String REM_FEED_TAG = "remote-feed"; private final static String AGG_FEED_TAG = "aggregated-feed"; @@ -32,6 +51,8 @@ private final static String TYPE_PARAM = "${type}"; private final static String PROJECT_PARAM = "${project}"; + protected final static String FEEDS_FILE_PREFIX = "forge-feeds"; + static synchronized FeedsDescriptor getInstance(final String portalName) { FeedsDescriptor desc = (FeedsDescriptor) ForgeHelper .getForgeManagement().getFromCache(portalName, @@ -52,10 +73,29 @@ */ private Map<String, Map<String, Feed>> feeds; + /** + * <code>feedGroups</code> - map: + * feed group display name -> set of feed names. + */ + private Map<String, Set<String>> feedGroups; + + /** + * <code>feedDisplayNames</code> - map: feed name -> + * feed display name. + */ + private Map<String, String> feedDisplayNames; + + private DelegateContext context; + public FeedsDescriptor(String portalName) { ContentManager cm = ContentManager.getContentManager(portalName + "/" + FEEDS_DIRECTORY); + // Creating the maps that will hold the feeds. + feeds = new HashMap<String, Map<String, Feed>>(); + feedGroups = new HashMap<String, Set<String>>(); + feedDisplayNames = new HashMap<String, String>(); + // Preparing maps which will hold feed definitions. Map<String, Node> remoteFeedDefs = new HashMap<String, Node>(); Map<String, Node> aggregatedFeedDefs = new HashMap<String, Node>(); @@ -72,7 +112,7 @@ for (org.jboss.shotoku.Node feedNode : cm.getRootDirectory().getNodes().toList()) { if (feedNode.getName().endsWith(FEEDS_NODE_ENDING)) { try { - addFeedDefinitions(allFeedDefs, feedNode); + addFeedDefinitions(portalName, allFeedDefs, feedNode); } catch (Exception e) { // We just don't add the feeds ... but log a warning. log.warn("Can't add feed definitions.", e); @@ -80,16 +120,16 @@ } } - // Creating the feeds. - feeds = new HashMap<String, Map<String, Feed>>(); - // Firstly - the remote feeds. generateRemoteFeeds(portalName, remoteFeedDefs); // TODO add shotoku feeds // After that, we can create the aggregated feeds. - + generateAggregatedFeeds(portalName, aggregatedFeedDefs); + + // Finally, filling the context. + fillContext(); } private void addFeed(String name, String type, Feed feed) { @@ -100,6 +140,18 @@ } typesMap.put(type, feed); + } + + private String[] getProjectNames(String portalName, String projectLevelAttr) { + if (projectLevelAttr != null) { + return ProjectsHelper.getProjects( + portalName).getProjectIds(new NullPermissionsChecker(), + ALL_TOKENS.equals(projectLevelAttr) ? + null : projectLevelAttr).toArray( + new String[0]); + } else { + return new String[] { "" }; + } } private void generateRemoteFeeds(String portalName, Map<String, Node> feedDefs) { @@ -107,6 +159,7 @@ Node feedNode = feedDefs.get(feedName); String addressAttr = XmlTools.getAttributeValue(feedNode, "address"); String typesAttr = XmlTools.getAttributeValue(feedNode, "type"); + String displayNameAttr = XmlTools.getAttributeValue(feedNode, "display-name"); String projectLevelAttr = XmlTools.getAttributeValue(feedNode, "project-level"); // Generating the type of feeds that have been requested. @@ -119,38 +172,172 @@ // Generating the projects for which the feeds have been requested, // if any. - String[] projects; - if (projectLevelAttr != null) { - projects = ProjectsHelper.getProjects( - portalName).getProjectIds(new NullPermissionsChecker(), - projectLevelAttr).toArray(new String[0]); - } else { - projects = new String[] { "" }; - } + String[] projects = getProjectNames(portalName, projectLevelAttr); // For each type, project pair, generating a feed and storing it in // the feeds map. - for (String type : types) { - for (String project : projects) { + for (String project : projects) { + String feedNameReplaced = feedName.replace(PROJECT_PARAM, project); + for (String type : types) { String address = addressAttr.replace(TYPE_PARAM, type). replace(PROJECT_PARAM, project); try { Feed newFeed = FeedFactory.getNewFeed(type); newFeed.generateFromUrl(new URL(address)); - addFeed(feedName.replace(PROJECT_PARAM, project), type, - newFeed); + addFeed(feedNameReplaced, type, newFeed); } catch (Exception e) { log.warn("Can't add feeed " + address + " : " + type + ".", e); e.printStackTrace(); } } + + feedDisplayNames.put(feedNameReplaced, + displayNameAttr.replace(PROJECT_PARAM, project)); } } } + private void generateAggregatedFeeds(String portalName, Map<String, Node> feedDefs) { + // First building requirements of each feed - that is, whit which + // feeds each aggregated feed is built. + Map<String, Set<String>> requirements = new HashMap<String, Set<String>>(); + + for (String feedName : feedDefs.keySet()) { + Node n; + Node feedNode = feedDefs.get(feedName); + NodeList nodes = feedNode.getChildNodes(); + + Set<String> feedRequirements = new HashSet<String>(); + requirements.put(feedName, feedRequirements); + feedDisplayNames.put(feedName, + XmlTools.getAttributeValue(feedNode, "display-name")); + + for (int i = 0; i < nodes.getLength(); i++) { + n = nodes.item(i); + if ("include".equals(n.getNodeName())) { + String nameAttr = XmlTools.getAttributeValue(n, "name"); + String projectLevelAttr = XmlTools.getAttributeValue(n, "project-level"); + + String[] projects = getProjectNames(portalName, projectLevelAttr); + + for (String project : projects) { + feedRequirements.add(nameAttr.replace(PROJECT_PARAM, project)); + } + } + } + } + + while (requirements.size() > 0) { + int sizeBefore = requirements.size(); + + for (Iterator<String> iter = requirements.keySet().iterator(); + iter.hasNext();) { + String feedName = iter.next(); + Set<String> feedRequirements = requirements.get(feedName); + Set<String> types = null; + + // Checking if the all of this feed's requirements are met + // and if so, of what types it can consist. + boolean allRequirementsMet = true; + for (String requirement : feedRequirements) { + Map<String, Feed> feedTypes = feeds.get(requirement); + + if (feedTypes == null) { + // Missing feed - cannot create the aggregated one. + allRequirementsMet = false; + break; + } + + // Intersecting the types set with the types of the current + // feed. + if (types == null) { + types = new HashSet<String>(); + types.addAll(feedTypes.keySet()); + } else + types.retainAll(feedTypes.keySet()); + } + + if (!allRequirementsMet) + continue; + + // Gathering the feed parts from which the new feed will be + // composed. + for (String type : types) { + List<Feed> requiredFeeds = new ArrayList<Feed>(); + for (String requirement : feedRequirements) { + requiredFeeds.add(feeds.get(requirement).get(type)); + } + + Feed newFeed = FeedFactory.getNewFeed(type); + try { + newFeed.generateFromFeeds(requiredFeeds.toArray(new Feed[0])); + } catch (Exception e) { + log.warn("Can't add aggregated feed " + feedName + " : " + type + + ".", e); + e.printStackTrace(); + } + + addFeed(feedName, type, newFeed); + } + + iter.remove(); + } + + if (sizeBefore == requirements.size()) { + log.warn("Aggregation feed definitions cycle, or demanded " + + "feeds are not defined; unable to create feeds."); + return; + } + } + } + + private String generateFeedLink(String feedName, String feedType) { + return "/feeds/" + feedName + "/" + feedType; + } + + private void fillContext() { + context = new DelegateContext(); + for (String feedGroup : feedGroups.keySet()) { + Set<String> feedsInGroup = feedGroups.get(feedGroup); + + if (feedsInGroup.size() > 0) { + DelegateContext groupContext = context.next("groups"); + groupContext.put("name", feedGroup); + + for (String feedName : feedsInGroup) { + Map<String, Feed> feedTypes = feeds.get(feedName); + + if (feedTypes != null) { + DelegateContext feedContext = groupContext.next("feeds"); + feedContext.put("name", feedDisplayNames.get(feedName)); + + for (String feedType : feedTypes.keySet()) { + DelegateContext typeContext = feedContext.next("types"); + typeContext.put("name", feedType); + typeContext.put("link", generateFeedLink(feedName, feedType)); + } + } + } + } + } + } + + private void addFeedNamesToGroup(String portalName, Set<String> feedGroup, + String feedName, Node node) { + String projectLevelAttr = XmlTools.getAttributeValue(node, + "project-level"); + + String[] projects = getProjectNames(portalName, projectLevelAttr); + + for (String project : projects) { + feedGroup.add(feedName.replace(PROJECT_PARAM, project)); + } + } + private void addFeedDefinitions( + String portalName, Map<String, Map<String, Node>> feedDefinitions, org.jboss.shotoku.Node node) throws SAXException, IOException { DOMParser parser = new DOMParser(); @@ -159,12 +346,30 @@ Node n; NodeList nodes = root.getChildNodes(); + + Set<String> feedGroup = new HashSet<String>(); + feedGroups.put(XmlTools.getAttributeValue(root, "display-name"), + feedGroup); for (int i = 0; i < nodes.getLength(); i++) { n = nodes.item(i); - if (feedDefinitions.get(n.getNodeName()) != null) + if (feedDefinitions.get(n.getNodeName()) != null) { + String feedName = XmlTools.getAttributeValue(n, "name"); + addFeedNamesToGroup(portalName, feedGroup, feedName, n); feedDefinitions.get(n.getNodeName()).put( - XmlTools.getAttributeValue(n, "name"), n); + feedName, n); + } } } + + public Feed getFeed(String name, String type) { + Map<String, Feed> feedTypes = feeds.get(name); + if (feedTypes == null) return null; + + return feedTypes.get(type); + } + + public DelegateContext getContext() { + return context; + } } Copied: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsNodeWatcher.java (from rev 1436, trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsNodeWatcher.java) Modified: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java =================================================================== --- qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -3,18 +3,39 @@ import java.io.IOException; import javax.portlet.PortletException; +import javax.portlet.PortletRequestDispatcher; import javax.portlet.PortletSecurityException; +import org.jboss.forge.common.ForgeHelper; +import org.jboss.forge.common.projects.ProjectsHelper; +import org.jboss.portal.common.context.DelegateContext; +import org.jboss.portal.core.servlet.jsp.PortalJsp; import org.jboss.portlet.JBossPortlet; import org.jboss.portlet.JBossRenderRequest; import org.jboss.portlet.JBossRenderResponse; public class FeedsPortlet extends JBossPortlet { - + private final static String FEEDS_JSP = "feeds.jsp"; + @Override protected void doView(JBossRenderRequest request, JBossRenderResponse response) throws PortletException, PortletSecurityException, IOException { - + response.setContentType("text/html"); + + String portalName = ForgeHelper.getPortalName(request); + ProjectsHelper.prepareRequest(request); + + // Getting the feeds context. + DelegateContext feedsContext = FeedsDescriptor.getInstance(portalName) + .getContext(); + + // Displaying. + request.setAttribute(PortalJsp.CTX_REQUEST, feedsContext); + + PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher( + ForgeHelper.createRepoAccessPath(portalName, + FeedsDescriptor.FEEDS_DIRECTORY + '/' + FEEDS_JSP)); + rd.include(request, response); } } Copied: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsServlet.java (from rev 1436, trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsServlet.java) Modified: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java =================================================================== --- qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -10,6 +10,8 @@ import java.io.OutputStream; import java.net.URL; +import javax.servlet.http.HttpServletResponse; + import com.sun.syndication.io.XmlReader; public abstract class FileBasedFeed implements Feed { @@ -47,6 +49,13 @@ is.close(); } + protected abstract String getContentType(); + + public void write(HttpServletResponse response) throws IOException { + response.setContentType(getContentType()); + write(response.getOutputStream()); + } + public XmlReader getXmlReader() throws IOException { return new XmlReader(file); } @@ -54,4 +63,8 @@ protected File getFile() { return file; } + + public void finalize() { + file.delete(); + } } Copied: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RdfFeed.java (from rev 1436, trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RdfFeed.java) Modified: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java =================================================================== --- qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -14,4 +14,9 @@ protected void setFeedType(SyndFeed feed) { feed.setFeedType("rss_2.0"); } + + @Override + protected String getContentType() { + return "text/xml"; + } } Modified: qa/forge/portal-extensions/forge-feeds/src/web/WEB-INF/web.xml =================================================================== --- qa/forge/portal-extensions/forge-feeds/src/web/WEB-INF/web.xml 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/forge-feeds/src/web/WEB-INF/web.xml 2005-10-24 16:08:51 UTC (rev 1437) @@ -7,10 +7,26 @@ <filter-name>filesFromRepoFilter</filter-name> <filter-class>org.jboss.forge.common.FilesFromRepoFilter</filter-class> </filter> + + <servlet> + <servlet-name>feedsServlet</servlet-name> + <servlet-class>org.jboss.forge.feeds.FeedsServlet</servlet-class> + </servlet> <filter-mapping> <filter-name>filesFromRepoFilter</filter-name> <url-pattern>/repo-access/*</url-pattern> <dispatcher>INCLUDE</dispatcher> </filter-mapping> + + <filter-mapping> + <filter-name>filesFromRepoFilter</filter-name> + <servlet-name>feedsServlet</servlet-name> + <dispatcher>INCLUDE</dispatcher> + </filter-mapping> + + <servlet-mapping> + <servlet-name>feedsServlet</servlet-name> + <url-pattern>/</url-pattern> + </servlet-mapping> </web-app> \ No newline at end of file Modified: qa/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeService.java =================================================================== --- qa/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeService.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeService.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -109,7 +109,7 @@ * <code>DEFAULT_TIMER_INTERVAL</code> - default interval lenght of the * timer. */ - private final static long DEFAULT_TIMER_INTERVAL = 1000*60; // 1 minute + private final static long DEFAULT_TIMER_INTERVAL = 1000*30; // 30 seconds. private long timerInterval; /* (non-Javadoc) Modified: qa/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java =================================================================== --- qa/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -42,7 +42,7 @@ fm.update(); // Avoiding WARN. - //timer.cancel(); -- Maybe this caused the TX exception. + timer.cancel(); //? -- Maybe this caused the TX exception. // Scheduling next timer to timeout after the amount of time that // is set in forgeManagement. Modified: qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -16,6 +16,7 @@ import javax.portlet.*; +import org.jboss.logging.Logger; import org.jboss.wiki.exceptions.EditSessionExpired; import org.jboss.wiki.management.WikiServiceMenagement; import org.apache.commons.fileupload.PortletDiskFileUpload; @@ -38,8 +39,12 @@ private String defaultPage = "Main"; private WikiEngine wikiEngine; + + private Logger log; public void init() { + log = Logger.getLogger(WikiPortlet.class); + WikiCommon wikiCommon = new WikiCommon(); WikiServiceMenagement wikiServiceMenagement = wikiCommon @@ -173,14 +178,14 @@ } if (rReq.getParameter("version") != null) { - System.out.println("[process action]Getting page " + log.info("[process action]Getting page " + rReq.getParameter("page") + " at version " + rReq.getParameter("version")); rResp.setRenderParameter("version", rReq.getParameter("version")); } if (rReq.getParameter("editAction") != null) { - System.out.println("EDITING PAGE"); + log.info("EDITING PAGE"); // unlock page WikiPage edPage = wikiEngine.getByName((String) rReq @@ -306,7 +311,7 @@ if (rReq.getParameter("version") != null) { // show previous version of page - System.out.println("Getting page " + wikiPage + log.info("Getting page " + wikiPage + " at version " + rReq.getParameter("version")); if ((pageToShow.getLastVersion() > Integer.valueOf(rReq @@ -363,7 +368,7 @@ * if (pageToShow == null) { // if somebody entered a link to info // * non-existing page page = "Wiki.jsp"; try { pageToShow = * (WikiPage) noSuchPage.clone(); } catch - * (CloneNotSupportedException cnse) { System.out.println(cnse); } + * (CloneNotSupportedException cnse) { log.info(cnse); } * * pageToShow.setName(wikiPage); } else { */ @@ -378,7 +383,7 @@ if (rReq.getParameter("type") != null) { type = rReq.getParameter("type"); - // System.out.println("Getting type: " + type); + // log.info("Getting type: " + type); } wikiContext = new WikiContext(credentials, wikiEngine @@ -387,7 +392,7 @@ if (rReq.getParameter("version") != null) { // show previous version of page - System.out.println("Getting page " + wikiPage + " at version " + log.info("Getting page " + wikiPage + " at version " + rReq.getParameter("version")); pageToShow = wikiEngine.getByName(wikiPage, wikiContext, Integer.valueOf(rReq.getParameter("version"))); @@ -404,7 +409,7 @@ * if (pageToShow == null) { * * try { pageToShow = (WikiPage) noSuchPage.clone(); } catch - * (CloneNotSupportedException cnse) { System.out.println(cnse); } + * (CloneNotSupportedException cnse) { log.info(cnse); } * * pageToShow.setName(wikiPage); } */ Modified: qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -8,7 +8,6 @@ *****************************************/ package org.jboss.wiki.fileaccess; -import java.awt.image.SampleModel; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; @@ -26,6 +25,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.jboss.logging.Logger; import org.jboss.wiki.FileDataSource; import org.jboss.wiki.ServletWikiSession; import org.jboss.wiki.SimpleCredentials; @@ -66,9 +66,13 @@ * private ForgeHelper forgeHelper; private ContentManager contentManager; */ private MimetypesFileTypeMap mimeTypes; + + private Logger log; public void init(FilterConfig conf) { // get wikiEnigne form wikiMenagement + + log = Logger.getLogger(WikiFileAccessFilter.class); WikiCommon wikiCommon = new WikiCommon(); @@ -100,10 +104,10 @@ wikiHome = props.getProperty("wikiHome"); } catch (IOException e) { - System.err.println(e); + log.error(e); } - System.out.println("[WikiFileAccess]Loaded attachements path: " + log.info("Loaded attachements path: " + attachementsPath); } Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -3,6 +3,7 @@ import java.util.Calendar; import java.util.Date; +import org.jboss.logging.Logger; import org.jboss.wiki.exceptions.PageNotEditedException; public class EditSessionWatcher extends Thread { @@ -13,9 +14,14 @@ private WikiPage watchedPage; private boolean runs = true; + + private Logger log; public EditSessionWatcher(Integer editSessionId, int sessionIdExpireTime, WikiPage watchedPage) { + + log = Logger.getLogger(EditSessionWatcher.class); + this.editSessionId = editSessionId; this.watchedPage = watchedPage; Calendar cal = Calendar.getInstance(); @@ -30,11 +36,11 @@ @Override public void run() { while (runs) { - //System.out.println("Checking watcher for page "+watchedPage.getName()+" with sessionid: "+editSessionId); + log.debug("Checking watcher for page "+watchedPage.getName()+" with sessionid: "+editSessionId); Date now = new Date(); if (now.after(endTime)) { - System.out.println("Session time exceeded"); + log.debug("Session time exceeded for page "+watchedPage.getName()+" with sessionid: "+editSessionId); try { watchedPage.addExpiredSessionId(editSessionId); @@ -54,7 +60,7 @@ } public void stopWatcher() { - System.out.println("Stopping watcher for page: "+watchedPage.getName()+" with sessionid: "+editSessionId); + log.debug("Stopping watcher for page: "+watchedPage.getName()+" with sessionid: "+editSessionId); runs = false; } Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -19,7 +19,7 @@ import java.util.Set; import java.util.TreeSet; -import org.jboss.wiki.exceptions.PageAlreadyExistsException; +import org.jboss.logging.Logger; import org.jboss.wiki.exceptions.PageRenamingException; /** @@ -67,13 +67,17 @@ private File pageDictionaryFile; private WikiEngine wikiEngine; + + private Logger log; public void setWikiEngine(WikiEngine wikiEngine) { this.wikiEngine = wikiEngine; } public FileDataSource() { - System.out.println("Looking for props file !"); + log = Logger.getLogger(FileDataSource.class); + + log.info("Looking for props file !"); Properties fileDSProps = new Properties(); @@ -83,8 +87,8 @@ .getResourceAsStream(propFileName)); } catch (IOException ioe) { - System.err.println("Can't load the file " + propFileName + "\n" - + ioe); + log.error("Can't load the file " + propFileName + "\n" + , ioe); } loadProperties(fileDSProps); @@ -104,13 +108,13 @@ pageModProps.load(fis); } catch (IOException ioe) { - System.err.println("Can't load the file " + propModFileName + "\n" - + ioe); + log.error("Can't load the file " + propModFileName + "\n" + , ioe); } finally { try { fis.close(); } catch (IOException ioe) { - System.err.println("Can't close input stream \n" + ioe); + log.error("Can't close input stream \n" , ioe); } } @@ -146,8 +150,7 @@ try { pageDictionaryFile.createNewFile(); } catch (IOException e) { - System.err.println("Cannot create dictionary file: "); - e.printStackTrace(); + log.error("Cannot create dictionary file: ",e); } } else { // there is dictionary file. Load props from it @@ -185,9 +188,9 @@ public void loadProperties(Properties fileDSProps) { if (fileDSProps.getProperty("pathToMedia") != null) { pathToMedia = fileDSProps.getProperty("pathToMedia"); - System.out.println("Path to media is: " + pathToMedia); + log.info("Path to media is: " + pathToMedia); pathToAttachments = fileDSProps.getProperty("pathToAttachements"); - System.out.println("Path to attachements is: " + pathToAttachments); + log.info("Path to attachements is: " + pathToAttachments); } else { System.err .println("Your properties file lacks of pathToMedia property. It will not run properly ! Please update " @@ -222,7 +225,7 @@ + e.toString()); } - System.out.println("Opening files"); + log.info("Opening files"); File pageFile = new File(pathToMedia + "/OLD/" + uid + "/" + (page.getLastVersion() - 1) + ".txt"); File pageOldFile = new File(pathToMedia + "/" + uid @@ -258,11 +261,11 @@ pageFileWriter.close(); status = true; } catch (FileNotFoundException fnfe) { - System.err.println("[FILEDATASOURCE]: Cannot save page: " - + fnfe.toString()); + log.error("[FILEDATASOURCE]: Cannot save page: " + , fnfe); } catch (IOException ioe) { - System.err.println("[FILEDATASOURCE]: Cannot save page: " - + ioe.toString()); + log.error("[FILEDATASOURCE]: Cannot save page: " + , ioe); } } else { // there is no page on disk. We have to create new one. @@ -312,7 +315,7 @@ status = true; } catch (Exception e) { - System.err.println("Cannot write new page: " + e); + log.error("Cannot write new page: ", e); status = false; } } @@ -361,8 +364,8 @@ } } catch (IOException e) { - System.err.println("Cannot create page props file for page: " - + pageName); + log.error("Cannot create page props file for page: " + + pageName,e); } return pageProps; } @@ -423,7 +426,7 @@ } public WikiPage getPage(String pageName) { - // System.out.println("[WIKI:FileDataSource]: Getting new page: " + + // log.info("[WIKI:FileDataSource]: Getting new page: " + // pageName); WikiPage page = null; @@ -458,7 +461,7 @@ nextChr = input.read(); } } catch (IOException ioe) { - System.err.println(ioe); + log.error(ioe); } int pageMods = getPageMod(pageName); @@ -482,8 +485,7 @@ public WikiPage getPage(String pageName, String languageCode) { if (languageCode != null) { - System.out - .println("As for now, languages aren't supported in the wiki. Please do not use language codes"); + log.info("As for now, languages aren't supported in the wiki. Please do not use language codes"); } return getPage(pageName); } @@ -491,8 +493,7 @@ public WikiPage getPageAtVersion(WikiPage originPage, boolean loadContent, String languageCode, int version) { if (languageCode != null) { - System.out - .println("As for now, languages aren't supported in the wiki. Please do not use language codes"); + log.info("As for now, languages aren't supported in the wiki. Please do not use language codes"); } return getPageAtVersion(originPage, loadContent, version); @@ -511,12 +512,12 @@ try { page = (WikiPage) originPage.clone(); } catch (CloneNotSupportedException e) { - System.err.println(e); + log.error(e); } if (page != null) { if (page.getLastVersion() < version) { - System.out.println("There is no version " + version + log.info("There is no version " + version + " of page " + page.getName()); return null; } @@ -534,7 +535,7 @@ /* * cal.setTime(new Date()); * - * System.out.println("PAGE "+page.getName()+" loaded in: + * log.info("PAGE "+page.getName()+" loaded in: * "+(cal.getTimeInMillis() - oldMilis)); */ return page; @@ -564,7 +565,7 @@ page.setLength(ret.length()); } catch (IOException ioe) { - System.err.println(ioe); + log.error(ioe); } } else { page.setLength(pageFile.length()); @@ -633,7 +634,7 @@ newFile = new FileOutputStream(new File(fileName)); oldFile = new FileInputStream(attFile); } catch (FileNotFoundException e) { - System.err.println(e); + log.error(e); } // writing old file to new one @@ -650,7 +651,7 @@ newFile.close(); oldFile.close(); } catch (IOException e) { - System.err.println(e); + log.error(e); } } @@ -847,12 +848,12 @@ fos = new FileOutputStream(modFile); pageModProps.store(fos, SAVE_COMMENT); } catch (IOException ioe) { - System.err.println("Couldn't store mod props: " + ioe); + log.error("Couldn't store mod props: ",ioe); } finally { try { fos.close(); } catch (IOException ioe) { - System.err.println("Can't close input stream \n" + ioe); + log.error("Can't close input stream \n",ioe); } } } @@ -888,7 +889,7 @@ } if (!pageFile.renameTo(pageTrashFile)) { - System.err.println("[FileDataSource]: Problems with moving " + log.error("[FileDataSource]: Problems with moving " + pageFileName + " to " + pageFileTrashName); return false; } @@ -922,7 +923,7 @@ } if (!pageFile.renameTo(pageTrashFile)) { - System.err.println("[FileDataSource]: Problems with moving " + log.error("[FileDataSource]: Problems with moving " + historyDirName + " to " + historyTrashDirName); // return back the page history @@ -941,7 +942,7 @@ return true; } else { // no such page - System.err.println("There is now such page: " + pageName); + log.error("There is now such page: " + pageName); return false; } } @@ -980,14 +981,14 @@ } if (!attFile.renameTo(attTrashFile)) { - System.err.println("[ATTACHMENT DS]:Problems with moving " + log.error("[ATTACHMENT DS]:Problems with moving " + attName + " to " + attTrashName); return false; } return true; } else { - System.err.println("Page " + pageName + " has no " + attachmentName + log.error("Page " + pageName + " has no " + attachmentName + " attachmnet"); return false; } @@ -1022,14 +1023,14 @@ } if (!attFile.renameTo(new File(attTrashName))) { - System.err.println("[ATTACHMENT DS]:Problems with moving " + log.error("[ATTACHMENT DS]:Problems with moving " + attName + " to " + attTrashName); return false; } return true; } else { - System.err.println("Page " + pageName + " has no attachmnets"); + log.error("Page " + pageName + " has no attachmnets"); return false; } } @@ -1071,7 +1072,7 @@ while ((pageExists(uid + String.valueOf(i))) || (pageDictionary.containsKey(uid + String.valueOf(i)))) { - System.out.println(i++); + log.info(i++); } // add maping for new (to be done) with name translated to old uid @@ -1080,7 +1081,7 @@ saveDictionary(); - System.out.println("Renamed (uid) "+uid+" to "+newName); + log.info("Renamed (uid) "+uid+" to "+newName); lock = false; } Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/RenamePageWatcher.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/RenamePageWatcher.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/RenamePageWatcher.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -3,7 +3,6 @@ import java.util.HashMap; import java.util.Vector; -import org.jboss.wiki.exceptions.PageAlreadyExistsException; import org.jboss.wiki.exceptions.PageRenamingException; public class RenamePageWatcher extends Thread { Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -35,7 +35,7 @@ import org.jboss.wiki.exceptions.PageRenamingException; import org.jboss.wiki.exceptions.WikiException; -import sun.security.krb5.internal.p; +import org.jboss.logging.Logger; import java.io.File; @@ -87,6 +87,8 @@ private RenamePageWatcher renamePageWatcher; private Class credentialsClass; + + private Logger log; /** * <p> @@ -162,7 +164,7 @@ WikiPage ret = null; if (!mediaDataSource.preGet()) { - System.err.println("Couldn't get page"); + log.error("Couldn't get page"); s.release(); return null; } @@ -188,7 +190,7 @@ } if (!mediaDataSource.postGet()) { - System.err.println("Problems with postGet"); + log.error("Problems with postGet"); } if (ret != null) { @@ -204,7 +206,7 @@ ret = (WikiPage) noSuchPage.clone(); ret.setName(pageName); } catch (CloneNotSupportedException cne) { - System.err.println(cne); + log.error(cne); } if (wikiContext != null) { @@ -253,7 +255,7 @@ // return noSuchPage if there isn't any /* * try { ret = (WikiPage) noSuchPage.clone(); } catch - * (CloneNotSupportedException cne) { System.err.println(cne); } if + * (CloneNotSupportedException cne) { log.error(cne); } if * (wikiContext != null) { return wikiContext.process(ret); } else { * return ret; } */ @@ -271,6 +273,8 @@ * @return */ public void init() { + log = Logger.getLogger(WikiEngine.class); + editedPages = new HashSet<Integer>(); pages = new HashMap<String, WikiPage>(); @@ -322,8 +326,8 @@ // TODO Auto-generated catch block e.printStackTrace(); } - - System.out.println("[WikiEngine] Loaded mediaDataSource: "+mediaDataSource); + log.info("Loaded mediaDataSource: "+mediaDataSource); + } else { //if sth went wrong @@ -344,7 +348,7 @@ e.printStackTrace(); } - System.out.println("[WikiEngine] Loaded attachmentDataSource: "+attachmentDataSource); + log.info("Loaded attachmentDataSource: "+attachmentDataSource); } else { //if sth went wrong @@ -364,7 +368,7 @@ // TODO Auto-generated catch block e.printStackTrace(); } - System.out.println("[WikiEngine] Loaded wikiPageDictionary: "+wikiPageDictionary); + log.info("Loaded wikiPageDictionary: "+wikiPageDictionary); } else { //if sth went wrong @@ -381,19 +385,18 @@ credentialsClass = Class.forName(jbosswikiprops .getProperty("credentialsClass")); } catch (ClassNotFoundException e) { - System.err.println("Coudln't load credentials class."); - e.printStackTrace(); + log.error("Coudln't load credentials class.",e); } if (credentialsClass != null) - System.out.println("[WikiEngine]Loaded credentialsClass: " + log.info("Loaded credentialsClass: " + credentialsClass); } // if credentialClass didn't load or wasn't set if (credentialsClass == null) { credentialsClass = SimpleCredentials.class; - System.out.println("[WikiEngine](SIMPLE)Loaded credentialsClass: " + log.info("(SIMPLE)Loaded credentialsClass: " + credentialsClass); } @@ -417,8 +420,8 @@ .getResourceAsStream("/WikiTypes.xml"), new WikiTypeHandler(this)); } catch (Exception se) { - System.err.println("Error while parsing WikiType configuration: " - + se); + log.error("Error while parsing WikiType configuration: " + , se); } } @@ -431,18 +434,16 @@ props.loadFromXML(WikiTypeHandler.class .getResourceAsStream("/WikiInsidePlugins.xml")); } catch (InvalidPropertiesFormatException e) { - System.err.println("WikiInsidePlugins.xml has bad format !"); - e.printStackTrace(); + log.error("WikiInsidePlugins.xml has bad format !",e); } catch (IOException e) { - System.err.println("There is no WikiInsidePlugins.xml file !"); - e.printStackTrace(); + log.error("There is no WikiInsidePlugins.xml file !",e); } Iterator it = props.keySet().iterator(); while (it.hasNext()) { String pluginName = (String) it.next(); - System.out.println("[WIKIENGINE]: Loading inside plugin: " + log.info("Loading inside plugin: " + pluginName + " class: " + props.getProperty(pluginName)); WikiInsidePlugin wikiInsidePlugin = null; @@ -544,7 +545,7 @@ } public void addWikiType(String name, WikiType wikiType) { - System.out.println("[WIKIENGINE]: Added WikiType: " + name + " Class: " + log.info("Added WikiType: " + name + " Class: " + wikiType); wikiTypes.put(name, wikiType); } @@ -571,7 +572,7 @@ } public Map<String, Integer> findPages(String searchQuery) { - // System.out.println("Starting search: " + searchQuery); + // log.info("Starting search: " + searchQuery); WikiSearch wikiSearch = new WikiSearch(searchQuery); Map<String, Integer> resPages = new HashMap<String, Integer>(); @@ -613,7 +614,7 @@ resPages.put(entry.getKey(), entry.getValue()); } - // System.out.println("Search completed"); + // ("Search completed"); return resPages; } @@ -672,7 +673,7 @@ public boolean deletePage(String pageName, boolean deleteSubpages) { Set<String> subpages = new HashSet<String>(); - System.out.println("DELETE SUBPAGES: " + deleteSubpages); + log.info("DELETE SUBPAGES: " + deleteSubpages); if (deleteSubpages) { subpages = mediaDataSource.getPagesFor(pageName); @@ -680,7 +681,7 @@ if (attachmentDataSource.getAttachmentsSet(getByName(pageName, null)) != null) { if (!attachmentDataSource.deleteAttachments(pageName)) { - System.err.println("Couldn't delete attachments of page " + log.error("Couldn't delete attachments of page " + pageName); return false; } @@ -707,12 +708,12 @@ pages.remove(pageName); } - System.out.println("Finishing deleting of page " + pageName + log.info("Finishing deleting of page " + pageName + " with ret = " + ret); return ret; } else { - System.err.println("Problems with deleting page " + pageName); + log.error("Problems with deleting page " + pageName); return false; } } @@ -720,7 +721,7 @@ public String getRealName(String uid) { String[] pageTokens = uid.split("/"); - // System.out.println("Looking at page: (realName) "+uid); + // log.info("Looking at page: (realName) "+uid); if (pageTokens.length > 1) { if (!wikiPageDictionary.getRealName(uid).equals(uid)) { @@ -728,7 +729,7 @@ // this page is in dictionary return wikiPageDictionary.getRealName(uid); } else { - // System.out.println("checking parts"); + // log.info("checking parts"); // look if parts of this page are in dictionary for (int i = pageTokens.length - 1; i > 0; i--) { @@ -746,7 +747,7 @@ page = page.substring(1); - // System.out.println("Looking at page: (realName) "+page); + // log.info("Looking at page: (realName) "+page); if (!wikiPageDictionary.getRealName(page).equals(page)) // this // page @@ -766,7 +767,7 @@ public String getUid(String realName) { String[] pageTokens = realName.split("/"); - // System.out.println("Looking at page: (uid) "+realName); + // log.info("Looking at page: (uid) "+realName); if (pageTokens.length > 1) { if (!wikiPageDictionary.getUid(realName).equals(realName)) { @@ -790,7 +791,7 @@ page = page.substring(1); - // System.out.println("Looking at page: (uid) "+page); + // log.info("Looking at page: (uid) "+page); if (!wikiPageDictionary.getUid(page).equals(page)) // this // page @@ -820,7 +821,6 @@ if (!arePagesEdited()) { wikiPageDictionary.rename(uid, newName); - System.out.println(10); } else { // some pages are edited now - execute watcher renamePageWatcher.rename(uid, newName); @@ -988,11 +988,10 @@ cred = (Credentials) credentialsClass.newInstance(); cred.setRenderRequest(rReq); } catch (InstantiationException e) { - System.err.println("Couldn't get instance of class " - + credentialsClass.getName()); - e.printStackTrace(); + log.error("Couldn't get instance of class " + + credentialsClass.getName(),e); } catch (IllegalAccessException e) { - e.printStackTrace(); + log.error(e); } return cred; @@ -1001,15 +1000,14 @@ public Credentials getCredentialsInstance(ActionRequest aReq) { Credentials cred = null; - System.out.println("Getting instance of " + credentialsClass.getName()); + log.debug("Getting instance of " + credentialsClass.getName()); try { cred = (Credentials) credentialsClass.newInstance(); cred.setActionRequest(aReq); } catch (InstantiationException e) { - System.err.println("Couldn't get instance of class " - + credentialsClass.getName()); - e.printStackTrace(); + log.error("Couldn't get instance of class " + + credentialsClass.getName(),e); } catch (IllegalAccessException e) { e.printStackTrace(); } Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPage.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPage.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPage.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -15,7 +15,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Set; -import java.util.Vector; +import org.jboss.logging.Logger; import org.jboss.wiki.exceptions.EditSessionExpired; import org.jboss.wiki.exceptions.PageNotEditedException; @@ -58,6 +58,8 @@ * */ private String name; + + private Logger log; /** * <p> @@ -136,6 +138,7 @@ this.editable = editable; expiredSessionIds = new HashSet<Integer>(); editSessionWatchers = new HashMap<Integer, EditSessionWatcher>(); + log = Logger.getLogger(WikiPage.class); } /** @@ -169,14 +172,14 @@ } if (!wikiEngine.preSave()) { - System.err.println("Couldn't save page"); + log.error("Couldn't save page"); return false; } boolean ret = wikiEngine.savePage(this, null); boolean postSave; if (postSave = !wikiEngine.postSave()) { - System.err.println("Problems with postSave"); + log.error("Problems with postSave"); } return ret || postSave; @@ -267,11 +270,11 @@ } public void showPage() { - System.out.println("Page name: " + getName()); - System.out.println("Page author: " + getLastAuthor()); - System.out.println("Page version: " + getLastVersion()); - System.out.println("Page editdate: " + getEditDate()); - System.out.println("Page Content: \n" + getContent()); + log.info("Page name: " + getName()); + log.info("Page author: " + getLastAuthor()); + log.info("Page version: " + getLastVersion()); + log.info("Page editdate: " + getEditDate()); + log.info("Page Content: \n" + getContent()); } /** @@ -337,7 +340,7 @@ } public void unlock(Credentials user, Integer editSessionId) { - System.out.println("UNLOCK: " + user.getName() + " save user: " + log.info("UNLOCK: " + user.getName() + " save user: " + lockUser); if (editSessionWatchers.get(editSessionId) != null) { @@ -353,7 +356,7 @@ } if ((user.getName()).equals(lockUser)) { - System.out.println("Unlocking page"); + log.info("Unlocking page"); lockTime = null; lockUser = null; } @@ -380,12 +383,12 @@ } if (this.lockTime == null) { - System.out.println("LOCK: " + user.getName()); + log.info("LOCK: " + user.getName()); // page isn't locked or lock expired. Lets lock it. this.lockTime = now; this.lockUser = user.getName(); - System.out.println("LOCK: " + lockUser); + log.info("LOCK: " + lockUser); retDate = null; } Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPlugin.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPlugin.java 2005-10-24 14:33:49 UTC (rev 1436) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPlugin.java 2005-10-24 16:08:51 UTC (rev 1437) @@ -11,6 +11,8 @@ import java.io.InputStream; import java.util.Properties; +import org.jboss.logging.Logger; + /** * * @author <a href="mailto:ds...@jb...">Damon Sicore</a><br /> @@ -52,6 +54,8 @@ final static String propFileName = "wikiPlugins.properties"; + protected Logger log = Logger.getLogger(this.getClass()); + /**Processes given WikiPage and returns processed one. * * @param wikiPage WikiPage to process @@ -85,7 +89,7 @@ pluginProps.load(propsStream); } catch (Exception e) { - System.err.println("[WikiPlugin]: Cannot load WikiPlugin property file: "+e); + log.error("Cannot load WikiPlugin property file: "+e); } } @@ -117,5 +121,4 @@ this.name = name; } - } Modified: qa/forge/portal-exten... [truncated message content] |
Author: adamw Date: 2005-10-24 10:33:49 -0400 (Mon, 24 Oct 2005) New Revision: 1436 Added: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AtomFeed.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsServlet.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RdfFeed.java Modified: trunk/forge/portal-extensions/federation-register/project.xml trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/service/NodeWatcher.java trunk/forge/portal-extensions/forge-ear/src/META-INF/application.xml trunk/forge/portal-extensions/forge-feeds/project.xml trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java trunk/forge/portal-extensions/forge-feeds/src/web/WEB-INF/web.xml trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeService.java trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java trunk/forge/portal-extensions/maven.xml trunk/forge/portal-extensions/portal-default/src/web/WEB-INF/default-portal.xml trunk/forge/portal-extensions/portal-federation/project.xml trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java Log: http://jira.jboss.com/jira/browse/JBLAB-408 : atom, rss2 feeds, aggregated feeds, servlet, portlet Modified: trunk/forge/portal-extensions/federation-register/project.xml =================================================================== --- trunk/forge/portal-extensions/federation-register/project.xml 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/federation-register/project.xml 2005-10-24 14:33:49 UTC (rev 1436) @@ -17,33 +17,10 @@ <description></description> <dependencies> - <dependency> - <groupId>tmate</groupId> - <artifactId>javasvn</artifactId> - <version>1.0</version> - <jar>javasvn.jar</jar> - <properties> - <war.bundle>true</war.bundle> - </properties> - </dependency> - <dependency> - <groupId>tmate</groupId> - <artifactId>jsch</artifactId> - <version>1.0</version> - <jar>jsch.jar</jar> - <properties> - <war.bundle>true</war.bundle> - </properties> - </dependency> - - <dependency> <groupId>jboss-forge</groupId> <artifactId>forge-common</artifactId> <version>1.0</version> - <properties> - <war.bundle>true</war.bundle> - </properties> </dependency> <dependency> Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java =================================================================== --- trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java 2005-10-24 14:33:49 UTC (rev 1436) @@ -51,8 +51,10 @@ * is present. */ public static String getAttributeValue(Node root, String attrName) { - Node n = root.getAttributes().getNamedItem(attrName); + NamedNodeMap attrMap = root.getAttributes(); + if (attrMap == null) return null; + Node n = attrMap.getNamedItem(attrName); if (n == null) return null; return unmarshallText(n); Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/service/NodeWatcher.java =================================================================== --- trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/service/NodeWatcher.java 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/service/NodeWatcher.java 2005-10-24 14:33:49 UTC (rev 1436) @@ -1,11 +1,11 @@ package org.jboss.forge.common.service; /** - * @author adamw * An interface that should be implemented by classes which manage a node * in a cache. To place an object in the cache, you must only call * <code>forgeManagement.addNodeWatcher(NodeWatcher)</code>. This function * will return the initial value and this value will be periodically updated. + * @author adamw */ public interface NodeWatcher { /** @@ -20,7 +20,7 @@ * @param portalName Name of the portal for which this node watcher * is used. * @param currentValue Current value held in this node. If this object - * is updated (changed) in any way, the object must proide thread-safety + * is updated (changed) in any way, the object must provide thread-safety * by itself. * @return A new object to put in the cache or null, if the old object * is to stay. Modified: trunk/forge/portal-extensions/forge-ear/src/META-INF/application.xml =================================================================== --- trunk/forge/portal-extensions/forge-ear/src/META-INF/application.xml 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/forge-ear/src/META-INF/application.xml 2005-10-24 14:33:49 UTC (rev 1436) @@ -20,7 +20,7 @@ </module> <module> <web> - <web-uri>forge-feeds.war</web-uri> + <web-uri>feeds.war</web-uri> </web> </module> <module> Modified: trunk/forge/portal-extensions/forge-feeds/project.xml =================================================================== --- trunk/forge/portal-extensions/forge-feeds/project.xml 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/forge-feeds/project.xml 2005-10-24 14:33:49 UTC (rev 1436) @@ -7,7 +7,7 @@ <project> <pomVersion>3</pomVersion> <extend>../common.xml</extend> - <id>forge-feeds</id> + <id>feeds</id> <name>Forge feeds</name> <currentVersion>1.0</currentVersion> <organization> Added: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AtomFeed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AtomFeed.java 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AtomFeed.java 2005-10-24 14:33:49 UTC (rev 1436) @@ -0,0 +1,22 @@ +package org.jboss.forge.feeds; + +import java.io.File; +import java.io.IOException; + +import com.sun.syndication.feed.synd.SyndFeed; + +public class AtomFeed extends RomeBasedFeed { + public AtomFeed(File file) throws IOException { + super(file); + } + + @Override + protected void setFeedType(SyndFeed feed) { + feed.setFeedType("atom_0.3"); + } + + @Override + protected String getContentType() { + return "application/atom+xml"; + } +} Modified: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java 2005-10-24 14:33:49 UTC (rev 1436) @@ -4,6 +4,8 @@ import java.io.OutputStream; import java.net.URL; +import javax.servlet.http.HttpServletResponse; + import com.sun.syndication.io.FeedException; import com.sun.syndication.io.XmlReader; @@ -13,13 +15,20 @@ */ public interface Feed { /** - * Writes the feed to the given output stream. + * Writes the feed data to the given output stream. * @param os Output stream to write to. * @throws IOException */ public void write(OutputStream os) throws IOException; /** - * Generates a feed getting content from the given url. + * Writes the feed data to the given http servlet response, setting an + * appropriate content type. + * @param response Response to write to. + * @throws IOException + */ + public void write(HttpServletResponse response) throws IOException; + /** + * Generates a feed getting data from the given url. * @param url Url from which to get the content. */ public void generateFromUrl(URL url) throws IOException; Modified: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java 2005-10-24 14:33:49 UTC (rev 1436) @@ -1,27 +1,58 @@ package org.jboss.forge.feeds; +import java.io.File; import java.util.HashMap; import java.util.Map; +import java.util.Random; +/** + * A class which is an access point to specific feed implementations. + * @author adamw + */ public class FeedFactory { + /** + * <code>feedClasses</code> - map feed type -> feed class. + */ private static Map<String, Class> feedClasses; + private static Random random; static { feedClasses = new HashMap<String, Class>(); feedClasses.put("rss2", Rss2Feed.class); + feedClasses.put("atom", AtomFeed.class); + //feedClasses.put("rdf", RdfFeed.class); + + random = new Random(); } + /** + * Creates a new instance of a feed implementation of the given type. + * @param type Type of feed to create. + * @return A new instance of a feed of the given type. + */ public static Feed getNewFeed(String type) { Class feedClass = feedClasses.get(type); if (feedClass == null) return null; + + int nextInt; + synchronized(random) { + nextInt = random.nextInt(); + } try { - return (Feed) feedClass.newInstance(); + File file = File.createTempFile(FeedsDescriptor.FEEDS_FILE_PREFIX + nextInt, type); + //TODO System.out.println("Created temp file: " + file.getAbsolutePath()); + return (Feed) feedClass.getConstructor(new Class[] { File.class }). + newInstance(new Object[] { file }); } catch (Exception e) { return null; } } + /** + * Gets all feed types that have been defined. + * @return An array of defined feed types. + */ public static String[] getAllFeedTypes() { return feedClasses.keySet().toArray(new String[0]); } Modified: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java 2005-10-24 14:33:49 UTC (rev 1436) @@ -2,8 +2,13 @@ import java.io.IOException; import java.net.URL; +import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; import java.util.Map; +import java.util.Set; import org.apache.xerces.parsers.DOMParser; import org.jboss.forge.common.ForgeHelper; @@ -11,16 +16,30 @@ import org.jboss.forge.common.projects.ProjectsHelper; import org.jboss.forge.common.projects.permissions.NullPermissionsChecker; import org.jboss.logging.Logger; +import org.jboss.portal.common.context.DelegateContext; import org.jboss.shotoku.ContentManager; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import org.xml.sax.SAXException; +/** + * Class which handles parsing feed descriptions, generates the feeds and + * provides access to them. + * @author adamw + */ public class FeedsDescriptor { private static final Logger log = Logger.getLogger(FeedsDescriptor.class); - private final static String FEEDS_DIRECTORY = "feeds"; + /** + * <code>FEEDS_DIRECTORY</code> - shotoku directory in which feed + * definitions are stored. + */ + protected final static String FEEDS_DIRECTORY = "feeds"; + /** + * <code>FEEDS_NODE_ENDING</code> - node with names ending with this + * string are parsed and feed definitons are read from them. + */ private final static String FEEDS_NODE_ENDING = "-feeds.xml"; private final static String REM_FEED_TAG = "remote-feed"; private final static String AGG_FEED_TAG = "aggregated-feed"; @@ -32,6 +51,8 @@ private final static String TYPE_PARAM = "${type}"; private final static String PROJECT_PARAM = "${project}"; + protected final static String FEEDS_FILE_PREFIX = "forge-feeds"; + static synchronized FeedsDescriptor getInstance(final String portalName) { FeedsDescriptor desc = (FeedsDescriptor) ForgeHelper .getForgeManagement().getFromCache(portalName, @@ -52,10 +73,29 @@ */ private Map<String, Map<String, Feed>> feeds; + /** + * <code>feedGroups</code> - map: + * feed group display name -> set of feed names. + */ + private Map<String, Set<String>> feedGroups; + + /** + * <code>feedDisplayNames</code> - map: feed name -> + * feed display name. + */ + private Map<String, String> feedDisplayNames; + + private DelegateContext context; + public FeedsDescriptor(String portalName) { ContentManager cm = ContentManager.getContentManager(portalName + "/" + FEEDS_DIRECTORY); + // Creating the maps that will hold the feeds. + feeds = new HashMap<String, Map<String, Feed>>(); + feedGroups = new HashMap<String, Set<String>>(); + feedDisplayNames = new HashMap<String, String>(); + // Preparing maps which will hold feed definitions. Map<String, Node> remoteFeedDefs = new HashMap<String, Node>(); Map<String, Node> aggregatedFeedDefs = new HashMap<String, Node>(); @@ -72,7 +112,7 @@ for (org.jboss.shotoku.Node feedNode : cm.getRootDirectory().getNodes().toList()) { if (feedNode.getName().endsWith(FEEDS_NODE_ENDING)) { try { - addFeedDefinitions(allFeedDefs, feedNode); + addFeedDefinitions(portalName, allFeedDefs, feedNode); } catch (Exception e) { // We just don't add the feeds ... but log a warning. log.warn("Can't add feed definitions.", e); @@ -80,16 +120,16 @@ } } - // Creating the feeds. - feeds = new HashMap<String, Map<String, Feed>>(); - // Firstly - the remote feeds. generateRemoteFeeds(portalName, remoteFeedDefs); // TODO add shotoku feeds // After that, we can create the aggregated feeds. - + generateAggregatedFeeds(portalName, aggregatedFeedDefs); + + // Finally, filling the context. + fillContext(); } private void addFeed(String name, String type, Feed feed) { @@ -100,6 +140,18 @@ } typesMap.put(type, feed); + } + + private String[] getProjectNames(String portalName, String projectLevelAttr) { + if (projectLevelAttr != null) { + return ProjectsHelper.getProjects( + portalName).getProjectIds(new NullPermissionsChecker(), + ALL_TOKENS.equals(projectLevelAttr) ? + null : projectLevelAttr).toArray( + new String[0]); + } else { + return new String[] { "" }; + } } private void generateRemoteFeeds(String portalName, Map<String, Node> feedDefs) { @@ -107,6 +159,7 @@ Node feedNode = feedDefs.get(feedName); String addressAttr = XmlTools.getAttributeValue(feedNode, "address"); String typesAttr = XmlTools.getAttributeValue(feedNode, "type"); + String displayNameAttr = XmlTools.getAttributeValue(feedNode, "display-name"); String projectLevelAttr = XmlTools.getAttributeValue(feedNode, "project-level"); // Generating the type of feeds that have been requested. @@ -119,38 +172,172 @@ // Generating the projects for which the feeds have been requested, // if any. - String[] projects; - if (projectLevelAttr != null) { - projects = ProjectsHelper.getProjects( - portalName).getProjectIds(new NullPermissionsChecker(), - projectLevelAttr).toArray(new String[0]); - } else { - projects = new String[] { "" }; - } + String[] projects = getProjectNames(portalName, projectLevelAttr); // For each type, project pair, generating a feed and storing it in // the feeds map. - for (String type : types) { - for (String project : projects) { + for (String project : projects) { + String feedNameReplaced = feedName.replace(PROJECT_PARAM, project); + for (String type : types) { String address = addressAttr.replace(TYPE_PARAM, type). replace(PROJECT_PARAM, project); try { Feed newFeed = FeedFactory.getNewFeed(type); newFeed.generateFromUrl(new URL(address)); - addFeed(feedName.replace(PROJECT_PARAM, project), type, - newFeed); + addFeed(feedNameReplaced, type, newFeed); } catch (Exception e) { log.warn("Can't add feeed " + address + " : " + type + ".", e); e.printStackTrace(); } } + + feedDisplayNames.put(feedNameReplaced, + displayNameAttr.replace(PROJECT_PARAM, project)); } } } + private void generateAggregatedFeeds(String portalName, Map<String, Node> feedDefs) { + // First building requirements of each feed - that is, whit which + // feeds each aggregated feed is built. + Map<String, Set<String>> requirements = new HashMap<String, Set<String>>(); + + for (String feedName : feedDefs.keySet()) { + Node n; + Node feedNode = feedDefs.get(feedName); + NodeList nodes = feedNode.getChildNodes(); + + Set<String> feedRequirements = new HashSet<String>(); + requirements.put(feedName, feedRequirements); + feedDisplayNames.put(feedName, + XmlTools.getAttributeValue(feedNode, "display-name")); + + for (int i = 0; i < nodes.getLength(); i++) { + n = nodes.item(i); + if ("include".equals(n.getNodeName())) { + String nameAttr = XmlTools.getAttributeValue(n, "name"); + String projectLevelAttr = XmlTools.getAttributeValue(n, "project-level"); + + String[] projects = getProjectNames(portalName, projectLevelAttr); + + for (String project : projects) { + feedRequirements.add(nameAttr.replace(PROJECT_PARAM, project)); + } + } + } + } + + while (requirements.size() > 0) { + int sizeBefore = requirements.size(); + + for (Iterator<String> iter = requirements.keySet().iterator(); + iter.hasNext();) { + String feedName = iter.next(); + Set<String> feedRequirements = requirements.get(feedName); + Set<String> types = null; + + // Checking if the all of this feed's requirements are met + // and if so, of what types it can consist. + boolean allRequirementsMet = true; + for (String requirement : feedRequirements) { + Map<String, Feed> feedTypes = feeds.get(requirement); + + if (feedTypes == null) { + // Missing feed - cannot create the aggregated one. + allRequirementsMet = false; + break; + } + + // Intersecting the types set with the types of the current + // feed. + if (types == null) { + types = new HashSet<String>(); + types.addAll(feedTypes.keySet()); + } else + types.retainAll(feedTypes.keySet()); + } + + if (!allRequirementsMet) + continue; + + // Gathering the feed parts from which the new feed will be + // composed. + for (String type : types) { + List<Feed> requiredFeeds = new ArrayList<Feed>(); + for (String requirement : feedRequirements) { + requiredFeeds.add(feeds.get(requirement).get(type)); + } + + Feed newFeed = FeedFactory.getNewFeed(type); + try { + newFeed.generateFromFeeds(requiredFeeds.toArray(new Feed[0])); + } catch (Exception e) { + log.warn("Can't add aggregated feed " + feedName + " : " + type + + ".", e); + e.printStackTrace(); + } + + addFeed(feedName, type, newFeed); + } + + iter.remove(); + } + + if (sizeBefore == requirements.size()) { + log.warn("Aggregation feed definitions cycle, or demanded " + + "feeds are not defined; unable to create feeds."); + return; + } + } + } + + private String generateFeedLink(String feedName, String feedType) { + return "/feeds/" + feedName + "/" + feedType; + } + + private void fillContext() { + context = new DelegateContext(); + for (String feedGroup : feedGroups.keySet()) { + Set<String> feedsInGroup = feedGroups.get(feedGroup); + + if (feedsInGroup.size() > 0) { + DelegateContext groupContext = context.next("groups"); + groupContext.put("name", feedGroup); + + for (String feedName : feedsInGroup) { + Map<String, Feed> feedTypes = feeds.get(feedName); + + if (feedTypes != null) { + DelegateContext feedContext = groupContext.next("feeds"); + feedContext.put("name", feedDisplayNames.get(feedName)); + + for (String feedType : feedTypes.keySet()) { + DelegateContext typeContext = feedContext.next("types"); + typeContext.put("name", feedType); + typeContext.put("link", generateFeedLink(feedName, feedType)); + } + } + } + } + } + } + + private void addFeedNamesToGroup(String portalName, Set<String> feedGroup, + String feedName, Node node) { + String projectLevelAttr = XmlTools.getAttributeValue(node, + "project-level"); + + String[] projects = getProjectNames(portalName, projectLevelAttr); + + for (String project : projects) { + feedGroup.add(feedName.replace(PROJECT_PARAM, project)); + } + } + private void addFeedDefinitions( + String portalName, Map<String, Map<String, Node>> feedDefinitions, org.jboss.shotoku.Node node) throws SAXException, IOException { DOMParser parser = new DOMParser(); @@ -159,12 +346,30 @@ Node n; NodeList nodes = root.getChildNodes(); + + Set<String> feedGroup = new HashSet<String>(); + feedGroups.put(XmlTools.getAttributeValue(root, "display-name"), + feedGroup); for (int i = 0; i < nodes.getLength(); i++) { n = nodes.item(i); - if (feedDefinitions.get(n.getNodeName()) != null) + if (feedDefinitions.get(n.getNodeName()) != null) { + String feedName = XmlTools.getAttributeValue(n, "name"); + addFeedNamesToGroup(portalName, feedGroup, feedName, n); feedDefinitions.get(n.getNodeName()).put( - XmlTools.getAttributeValue(n, "name"), n); + feedName, n); + } } } + + public Feed getFeed(String name, String type) { + Map<String, Feed> feedTypes = feeds.get(name); + if (feedTypes == null) return null; + + return feedTypes.get(type); + } + + public DelegateContext getContext() { + return context; + } } Modified: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java 2005-10-24 14:33:49 UTC (rev 1436) @@ -3,18 +3,39 @@ import java.io.IOException; import javax.portlet.PortletException; +import javax.portlet.PortletRequestDispatcher; import javax.portlet.PortletSecurityException; +import org.jboss.forge.common.ForgeHelper; +import org.jboss.forge.common.projects.ProjectsHelper; +import org.jboss.portal.common.context.DelegateContext; +import org.jboss.portal.core.servlet.jsp.PortalJsp; import org.jboss.portlet.JBossPortlet; import org.jboss.portlet.JBossRenderRequest; import org.jboss.portlet.JBossRenderResponse; public class FeedsPortlet extends JBossPortlet { - + private final static String FEEDS_JSP = "feeds.jsp"; + @Override protected void doView(JBossRenderRequest request, JBossRenderResponse response) throws PortletException, PortletSecurityException, IOException { - + response.setContentType("text/html"); + + String portalName = ForgeHelper.getPortalName(request); + ProjectsHelper.prepareRequest(request); + + // Getting the feeds context. + DelegateContext feedsContext = FeedsDescriptor.getInstance(portalName) + .getContext(); + + // Displaying. + request.setAttribute(PortalJsp.CTX_REQUEST, feedsContext); + + PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher( + ForgeHelper.createRepoAccessPath(portalName, + FeedsDescriptor.FEEDS_DIRECTORY + '/' + FEEDS_JSP)); + rd.include(request, response); } } Added: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsServlet.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsServlet.java 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsServlet.java 2005-10-24 14:33:49 UTC (rev 1436) @@ -0,0 +1,51 @@ +package org.jboss.forge.feeds; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.jboss.forge.common.ForgeHelper; + +public class FeedsServlet extends HttpServlet { + private void invalidRequest(HttpServletResponse response) throws IOException { + response.setContentType("text/html"); + response.getWriter().println("The feed you requested is not available."); + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + String requestURI = request.getRequestURI(); + + // Getting rid of the /war-name/. + requestURI = requestURI.split("[/]", 3)[2]; + + // Getting rid of the possible '/' at the end of the request. + if (requestURI.endsWith("/")) + requestURI = requestURI.substring(0, requestURI.length()-1); + + // Splitting the URI into name and type. + int lastSlash = requestURI.lastIndexOf('/'); + + if (lastSlash == -1) { + invalidRequest(response); + return; + } + + String type = requestURI.substring(lastSlash+1); + String name = requestURI.substring(0, lastSlash); + + Feed feed = FeedsDescriptor.getInstance(ForgeHelper.LABS_PORTAL).getFeed(name, type); + + if (feed == null) { + invalidRequest(response); + return; + } + + feed.write(response); + } + +} Modified: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java 2005-10-24 14:33:49 UTC (rev 1436) @@ -10,6 +10,8 @@ import java.io.OutputStream; import java.net.URL; +import javax.servlet.http.HttpServletResponse; + import com.sun.syndication.io.XmlReader; public abstract class FileBasedFeed implements Feed { @@ -47,6 +49,13 @@ is.close(); } + protected abstract String getContentType(); + + public void write(HttpServletResponse response) throws IOException { + response.setContentType(getContentType()); + write(response.getOutputStream()); + } + public XmlReader getXmlReader() throws IOException { return new XmlReader(file); } @@ -54,4 +63,8 @@ protected File getFile() { return file; } + + public void finalize() { + file.delete(); + } } Added: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RdfFeed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RdfFeed.java 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RdfFeed.java 2005-10-24 14:33:49 UTC (rev 1436) @@ -0,0 +1,22 @@ +package org.jboss.forge.feeds; + +import java.io.File; +import java.io.IOException; + +import com.sun.syndication.feed.synd.SyndFeed; + +public class RdfFeed extends RomeBasedFeed { + public RdfFeed(File file) throws IOException { + super(file); + } + + @Override + protected void setFeedType(SyndFeed feed) { + feed.setFeedType("rss_2.0"); + } + + @Override + protected String getContentType() { + return "text/xml"; + } +} Modified: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java 2005-10-24 14:33:49 UTC (rev 1436) @@ -14,4 +14,9 @@ protected void setFeedType(SyndFeed feed) { feed.setFeedType("rss_2.0"); } + + @Override + protected String getContentType() { + return "text/xml"; + } } Modified: trunk/forge/portal-extensions/forge-feeds/src/web/WEB-INF/web.xml =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/web/WEB-INF/web.xml 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/forge-feeds/src/web/WEB-INF/web.xml 2005-10-24 14:33:49 UTC (rev 1436) @@ -7,10 +7,26 @@ <filter-name>filesFromRepoFilter</filter-name> <filter-class>org.jboss.forge.common.FilesFromRepoFilter</filter-class> </filter> + + <servlet> + <servlet-name>feedsServlet</servlet-name> + <servlet-class>org.jboss.forge.feeds.FeedsServlet</servlet-class> + </servlet> <filter-mapping> <filter-name>filesFromRepoFilter</filter-name> <url-pattern>/repo-access/*</url-pattern> <dispatcher>INCLUDE</dispatcher> </filter-mapping> + + <filter-mapping> + <filter-name>filesFromRepoFilter</filter-name> + <servlet-name>feedsServlet</servlet-name> + <dispatcher>INCLUDE</dispatcher> + </filter-mapping> + + <servlet-mapping> + <servlet-name>feedsServlet</servlet-name> + <url-pattern>/</url-pattern> + </servlet-mapping> </web-app> \ No newline at end of file Modified: trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeService.java =================================================================== --- trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeService.java 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeService.java 2005-10-24 14:33:49 UTC (rev 1436) @@ -109,7 +109,7 @@ * <code>DEFAULT_TIMER_INTERVAL</code> - default interval lenght of the * timer. */ - private final static long DEFAULT_TIMER_INTERVAL = 1000*60; // 1 minute + private final static long DEFAULT_TIMER_INTERVAL = 1000*30; // 30 seconds. private long timerInterval; /* (non-Javadoc) Modified: trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java =================================================================== --- trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java 2005-10-24 14:33:49 UTC (rev 1436) @@ -42,7 +42,7 @@ fm.update(); // Avoiding WARN. - //timer.cancel(); -- Maybe this caused the TX exception. + timer.cancel(); //? -- Maybe this caused the TX exception. // Scheduling next timer to timeout after the amount of time that // is set in forgeManagement. Modified: trunk/forge/portal-extensions/maven.xml =================================================================== --- trunk/forge/portal-extensions/maven.xml 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/maven.xml 2005-10-24 14:33:49 UTC (rev 1436) @@ -70,16 +70,16 @@ todir="${forge.ear.dir}/target/${forge.ear.name}" file="${maven.repo.local}/jdom/jars/jdom-1.0.jar" overwrite="true" /> - <ant:copy todir="${forge.ear.dir}/target/${forge.ear.name}" flatten="true" overwrite="true"> + <!--<ant:copy todir="${forge.ear.dir}/target/${forge.ear.name}" flatten="true" overwrite="true"> <ant:fileset dir="${maven.repo.local}/tmate/jars"> <ant:filename name="*.jar" /> </ant:fileset> - </ant:copy> - <ant:copy todir="${forge.ear.dir}/target/${forge.ear.name}" flatten="true" overwrite="true"> + </ant:copy>--> + <!--<ant:copy todir="${forge.ear.dir}/target/${forge.ear.name}" flatten="true" overwrite="true"> <ant:fileset dir="${maven.repo.local}/shotoku/jars"> <ant:filename name="*.jar" /> </ant:fileset> - </ant:copy> + </ant:copy>--> <!-- Deploying the ear --> <ant:copy todir="${local.deploy.dir}" overwrite="true"> Modified: trunk/forge/portal-extensions/portal-default/src/web/WEB-INF/default-portal.xml =================================================================== --- trunk/forge/portal-extensions/portal-default/src/web/WEB-INF/default-portal.xml 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/portal-default/src/web/WEB-INF/default-portal.xml 2005-10-24 14:33:49 UTC (rev 1436) @@ -301,8 +301,36 @@ <region>center</region> <height>0</height> </window> + </page> + + <page> + <page-name>feeds</page-name> + + <window> + <window-name>NavigationPortletWindowDefaultFeeds</window-name> + <instance-ref>navigation.NavigationPortlet.NavigationPortletInstance</instance-ref> + <region>left</region> + <height>0</height> + <window-state>normal</window-state> + </window> + <window> + <window-name>AdsPortletWindowDefaultFeeds</window-name> + <instance-ref>ads.AdsPortlet.AdsPortletInstance</instance-ref> + <region>left</region> + <height>2</height> + <window-state>normal</window-state> + </window> + + <window> + <window-name>FeedsPortletWindowDefault</window-name> + <instance-ref>feeds.FeedsPortlet.FeedsPortletInstance</instance-ref> + <default>true</default> + <region>center</region> + <height>0</height> + </window> </page> + <page> <page-name>freezone</page-name> Modified: trunk/forge/portal-extensions/portal-federation/project.xml =================================================================== --- trunk/forge/portal-extensions/portal-federation/project.xml 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/portal-federation/project.xml 2005-10-24 14:33:49 UTC (rev 1436) @@ -16,24 +16,6 @@ <description></description> <dependencies> <dependency> - <groupId>tmate</groupId> - <artifactId>javasvn</artifactId> - <version>1.0</version> - <jar>javasvn.jar</jar> - <properties> - <war.bundle>true</war.bundle> - </properties> - </dependency> - <dependency> - <groupId>tmate</groupId> - <artifactId>jsch</artifactId> - <version>1.0</version> - <jar>jsch.jar</jar> - <properties> - <war.bundle>true</war.bundle> - </properties> - </dependency> - <dependency> <groupId>jboss-forge</groupId> <artifactId>forge-common</artifactId> <version>1.0</version> Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java 2005-10-23 16:31:25 UTC (rev 1435) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java 2005-10-24 14:33:49 UTC (rev 1436) @@ -36,6 +36,9 @@ ssi.update(); + // Avoiding WARN. + timer.cancel(); + scheduleTimer(ssi.getTimerInterval()); } catch (MalformedObjectNameException e) { e.printStackTrace(); |
From: <jbo...@li...> - 2005-10-23 16:31:33
|
Author: rem...@jb... Date: 2005-10-23 12:31:25 -0400 (Sun, 23 Oct 2005) New Revision: 1435 Modified: trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteRule.java trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteValve.java trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/Substitution.java Log: - Add the rewrite code for backup purposes (not functional yet, though), part 2. Modified: trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteRule.java =================================================================== --- trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteRule.java 2005-10-22 16:24:05 UTC (rev 1434) +++ trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteRule.java 2005-10-23 16:31:25 UTC (rev 1435) @@ -9,7 +9,6 @@ protected RewriteCond[] conditions = new RewriteCond[0]; protected ThreadLocal pattern = new ThreadLocal(); - //protected Matcher matcher = null; protected Substitution substitution = null; protected String patternString = null; Modified: trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteValve.java =================================================================== --- trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteValve.java 2005-10-22 16:24:05 UTC (rev 1434) +++ trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteValve.java 2005-10-23 16:31:25 UTC (rev 1435) @@ -1,10 +1,22 @@ package org.jboss.web.rewrite; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.Hashtable; +import java.util.Map; +import java.util.StringTokenizer; import javax.servlet.ServletException; +import org.apache.catalina.Container; +import org.apache.catalina.Context; import org.apache.catalina.Engine; +import org.apache.catalina.Host; import org.apache.catalina.Lifecycle; import org.apache.catalina.LifecycleException; import org.apache.catalina.LifecycleListener; @@ -13,6 +25,7 @@ import org.apache.catalina.connector.Response; import org.apache.catalina.util.LifecycleSupport; import org.apache.catalina.valves.ValveBase; +import org.xml.sax.InputSource; public class RewriteValve extends ValveBase implements Lifecycle { @@ -42,6 +55,20 @@ protected ThreadLocal invoked = new ThreadLocal(); + /** + * Relative path to the configuration file. + * Note: If the valve's container is a context, this will be relative to + * /WEB-INF/. + */ + protected String resourcePath = "rewrite.properties"; + + + /** + * Maps to be used by the rules. + */ + protected Map maps = new Hashtable(); + + public void addLifecycleListener(LifecycleListener listener) { lifecycle.addLifecycleListener(listener); } @@ -55,18 +82,94 @@ } public void start() throws LifecycleException { + + InputStream is = null; + // Process configuration file for this valve + if (getContainer() instanceof Context) { + is = ((Context) getContainer()).getServletContext() + .getResourceAsStream("/WEB-INF/" + resourcePath); + } else { + String resourceName = getHostConfigPath(resourcePath); + File file = new File(getConfigBase(), resourceName); + try { + if (!file.exists()) { + if (resourceName != null) { + // Use getResource and getResourceAsStream + is = getClass().getClassLoader() + .getResourceAsStream(resourceName); + } + } else { + is = new FileInputStream(file); + } + } catch (Exception e) { + container.getLogger().error("Error opening configuration", e); + } + } + + if (is == null) { + // Will use management operations to configure the valve dynamically + return; + } + + BufferedReader reader = new BufferedReader(new InputStreamReader(is)); + + ArrayList rules = new ArrayList(); + ArrayList conditions = new ArrayList(); + while (true) { + try { + String line = reader.readLine(); + if (line == null) { + break; + } + Object result = parse(line); + if (result instanceof RewriteRule) { + RewriteRule rule = (RewriteRule) result; + for (int i = 0; i < conditions.size(); i++) { + rule.addCondition((RewriteCond) conditions.get(i)); + } + conditions.clear(); + rules.add(rule); + } else if (result instanceof RewriteCond) { + conditions.add(result); + } else if (result instanceof Object[]) { + maps.put(((Object[]) result)[0], ((Object[]) result)[1]); + } + } catch (IOException e) { + container.getLogger().error("Error reading configuration", e); + } + } + this.rules = (RewriteRule[]) rules.toArray(new RewriteRule[0]); + + try { + reader.close(); + } catch (IOException e) { + container.getLogger().error("Error closing configuration", e); + } + try { + if (is != null) { + is.close(); + } + } catch (IOException e) { + container.getLogger().error("Error closing configuration", e); + } + + // Finish parsing the rules + for (int i = 0; i < this.rules.length; i++) { + this.rules[i].parse(maps); + } + } public void stop() throws LifecycleException { - + rules = null; } public void invoke(Request request, Response response) throws IOException, ServletException { - if (rules == null) { + if (rules == null || rules.length == 0) { getNext().invoke(request, response); return; } @@ -125,4 +228,197 @@ } + /** + * Get config base. + */ + protected File getConfigBase() { + File configBase = + new File(System.getProperty("catalina.base"), "conf"); + if (!configBase.exists()) { + return null; + } else { + return configBase; + } + } + + + /** + * Find the configuration path where the rewrite configuration file + * will be stored. + * + * @param resourceName + * @return + */ + protected String getHostConfigPath(String resourceName) { + StringBuffer result = new StringBuffer(); + Container container = getContainer(); + Container host = null; + Container engine = null; + while (container != null) { + if (container instanceof Host) + host = container; + if (container instanceof Engine) + engine = container; + container = container.getParent(); + } + if (engine != null) { + result.append(engine.getName()).append('/'); + } + if (host != null) { + result.append(host.getName()).append('/'); + } + result.append(resourceName); + return result.toString(); + } + + + /** + * This factory method will parse a line formed like: + * RewriteCond TestString CondPattern [Flags] + * Example: + * RewriteCond %{REMOTE_HOST} ^host1.* [OR] + * + * @param rewriteCond + * @return + */ + public static Object parse(String rewriteCond) { + StringTokenizer tokenizer = new StringTokenizer(rewriteCond); + if (tokenizer.hasMoreTokens()) { + String token = tokenizer.nextToken(); + if (token.equals("RewriteCond")) { + RewriteCond condition = new RewriteCond(); + if (tokenizer.countTokens() < 2) { + throw new IllegalArgumentException("Ivalid line: " + rewriteCond); + } + condition.setTestString(tokenizer.nextToken()); + condition.setCondPattern(tokenizer.nextToken()); + if (tokenizer.hasMoreTokens()) { + String flags = tokenizer.nextToken(); + if (flags.startsWith("[") && flags.endsWith("]")) { + flags.substring(1, flags.length() - 1); + } + StringTokenizer flagsTokenizer = new StringTokenizer(flags, ","); + while (flagsTokenizer.hasMoreElements()) { + parseCondFlag(rewriteCond, condition, flagsTokenizer.nextToken()); + } + } + return condition; + } else if (token.equals("RewriteRule")) { + RewriteRule rule = new RewriteRule(); + if (tokenizer.countTokens() < 2) { + throw new IllegalArgumentException("Ivalid line: " + rewriteCond); + } + rule.setPatternString(tokenizer.nextToken()); + rule.setSubstitutionString(tokenizer.nextToken()); + if (tokenizer.hasMoreTokens()) { + String flags = tokenizer.nextToken(); + if (flags.startsWith("[") && flags.endsWith("]")) { + flags.substring(1, flags.length() - 1); + } + StringTokenizer flagsTokenizer = new StringTokenizer(flags, ","); + while (flagsTokenizer.hasMoreElements()) { + parseRuleFlag(rewriteCond, rule, flagsTokenizer.nextToken()); + } + } + return rule; + } else if (token.equals("RewriteMap")) { + // FIXME: Map parsing: return an Object[2] with 0:name 1:RewriteMap + // RewriteMap name rewriteMapClassName;whateverParameterInWhateverFormat + } else { + throw new IllegalArgumentException("Ivalid line: " + rewriteCond); + } + } + return null; + } + + + /** + * Parser for RewriteCond flags. + * + * @param condition + * @param flag + */ + protected static void parseCondFlag(String line, RewriteCond condition, String flag) { + if (flag.equals("NC") || flag.equals("nocase")) { + condition.setNocase(true); + } else if (flag.equals("OR") || flag.equals("ornext")) { + condition.setOrnext(true); + } else { + throw new IllegalArgumentException("Ivalid flag in: " + line); + } + } + + + /** + * Parser for ReweriteRule flags. + * + * @param rule + * @param flag + */ + protected static void parseRuleFlag(String line, RewriteRule rule, String flag) { + if (flag.equals("chain") || flag.equals("C")) { + rule.setChain(true); + } else if (flag.startsWith("cookie=") || flag.startsWith("C=")) { + rule.setCookie(true); + // FIXME: Parse cookie + } else if (flag.startsWith("env=") || flag.startsWith("E=")) { + rule.setEnv(true); + if (flag.startsWith("env=")) { + flag = flag.substring("env=".length()); + } else if (flag.startsWith("E=")) { + flag = flag.substring("E=".length()); + } + int pos = flag.indexOf(':'); + if (pos == -1 || (pos + 1) == flag.length()) { + throw new IllegalArgumentException("Ivalid flag in: " + line); + } + rule.setEnvName(flag.substring(0, pos)); + rule.setEnvValue(flag.substring(pos + 1)); + } else if (flag.startsWith("forbidden") || flag.startsWith("F")) { + rule.setForbidden(true); + } else if (flag.startsWith("gone") || flag.startsWith("G")) { + rule.setGone(true); + } else if (flag.startsWith("last") || flag.startsWith("L")) { + rule.setLast(true); + } else if (flag.startsWith("next") || flag.startsWith("N")) { + rule.setNext(true); + } else if (flag.startsWith("nocase") || flag.startsWith("NC")) { + rule.setNocase(true); + } else if (flag.startsWith("noescape") || flag.startsWith("NE")) { + rule.setNoescape(true); + } else if (flag.startsWith("proxy") || flag.startsWith("P")) { + // FIXME: Proxy not supported at the moment + //rule.setProxy(true); + } else if (flag.startsWith("qsappend") || flag.startsWith("QSA")) { + rule.setQsappend(true); + } else if (flag.startsWith("redirect") || flag.startsWith("R")) { + if (flag.startsWith("redirect=")) { + flag = flag.substring("redirect=".length()); + rule.setRedirect(true); + rule.setRedirectCode(Integer.parseInt(flag)); + } else if (flag.startsWith("R=")) { + flag = flag.substring("R=".length()); + rule.setRedirect(true); + rule.setRedirectCode(Integer.parseInt(flag)); + } + } else if (flag.startsWith("skip") || flag.startsWith("S")) { + if (flag.startsWith("skip=")) { + flag = flag.substring("skip=".length()); + } else if (flag.startsWith("S=")) { + flag = flag.substring("S=".length()); + } + rule.setSkip(Integer.parseInt(flag)); + } else if (flag.startsWith("type") || flag.startsWith("T")) { + if (flag.startsWith("type=")) { + flag = flag.substring("type=".length()); + } else if (flag.startsWith("T=")) { + flag = flag.substring("T=".length()); + } + rule.setType(true); + rule.setTypeValue(flag); + } else { + throw new IllegalArgumentException("Ivalid flag in: " + line); + } + } + } Modified: trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/Substitution.java =================================================================== --- trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/Substitution.java 2005-10-22 16:24:05 UTC (rev 1434) +++ trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/Substitution.java 2005-10-23 16:31:25 UTC (rev 1435) @@ -200,6 +200,128 @@ } + /** + * Create a substitution with the given string. + */ + /* + public Substitution(String sub, Map maps) { + ArrayList elements = new ArrayList(); + int pos = 0; + int percentPos = 0; + int dollarPos = 0; + + while (pos < sub.length()) { + percentPos = sub.indexOf('%', pos); + dollarPos = sub.indexOf('$', pos); + // FIXME: System.out.println("S: " + sub + " pos: " + pos + " L: " + sub.length() + " %: " + percentPos + " $: " + dollarPos); + if (percentPos == -1 && dollarPos == -1) { + // Static text + StaticElement newElement = new StaticElement(); + newElement.value = sub.substring(pos, sub.length()); + pos = sub.length(); + elements.add(newElement); + } else if (percentPos == -1 || ((dollarPos != -1) && (dollarPos < percentPos))) { + // $: backreference to rule or map lookup + if (dollarPos + 1 == sub.length()) { + throw new IllegalArgumentException(sub); + } + if (pos < dollarPos) { + // Static text + StaticElement newElement = new StaticElement(); + newElement.value = sub.substring(pos, dollarPos); + pos = dollarPos; + elements.add(newElement); + } + if (Character.isDigit(sub.charAt(dollarPos + 1))) { + // $: backreference to rule + RewriteRuleBackReferenceElement newElement = new RewriteRuleBackReferenceElement(); + newElement.n = Character.digit(sub.charAt(dollarPos + 1), 10); + pos = dollarPos + 2; + elements.add(newElement); + } else { + // $: map lookup as ${mapname:key|default} + MapElement newElement = new MapElement(); + int open = sub.indexOf('{', dollarPos); + int colon = sub.indexOf(':', dollarPos); + int def = sub.indexOf('|', dollarPos); + int close = sub.indexOf('}', dollarPos); + if (!(-1 < open && open < colon && colon < close)) { + throw new IllegalArgumentException(sub); + } + newElement.map = (RewriteMap) maps.get(sub.substring(open + 1, colon)); + if (newElement.map == null) { + throw new IllegalArgumentException(sub + ": No map: " + sub.substring(open + 1, colon)); + } + if (def > -1) { + if (!(colon < def && def < close)) { + throw new IllegalArgumentException(sub); + } + newElement.key = sub.substring(colon + 1, def); + newElement.defaultValue = sub.substring(def + 1, close); + } else { + newElement.key = sub.substring(colon + 1, close); + } + pos = close + 1; + elements.add(newElement); + } + } else { + // %: backreference to cond or server variable + if (percentPos + 1 == sub.length()) { + throw new IllegalArgumentException(sub); + } + if (pos < percentPos) { + // Static text + StaticElement newElement = new StaticElement(); + newElement.value = sub.substring(pos, percentPos); + pos = percentPos; + elements.add(newElement); + } + if (Character.isDigit(sub.charAt(percentPos + 1))) { + // %: backreference to cond + RewriteCondBackReferenceElement newElement = new RewriteCondBackReferenceElement(); + newElement.n = Character.digit(sub.charAt(percentPos + 1), 10); + pos = percentPos + 2; + elements.add(newElement); + } else { + // %: server variable as %{variable} + SubstitutionElement newElement = null; + int open = sub.indexOf('{', percentPos); + int colon = sub.indexOf(':', percentPos); + int close = sub.indexOf('}', percentPos); + if (!(-1 < open && open < close)) { + throw new IllegalArgumentException(sub); + } + if (colon > -1) { + if (!(open < colon && colon < close)) { + throw new IllegalArgumentException(sub); + } + String type = sub.substring(open + 1, colon); + if (type.equals("ENV")) { + newElement = new ServerVariableEnvElement(); + ((ServerVariableEnvElement) newElement).key = sub.substring(colon + 1, close); + } else if (type.equals("SSL")) { + newElement = new ServerVariableSslElement(); + ((ServerVariableEnvElement) newElement).key = sub.substring(colon + 1, close); + } else if (type.equals("HTTP")) { + newElement = new ServerVariableHttpElement(); + ((ServerVariableEnvElement) newElement).key = sub.substring(colon + 1, close); + } else { + throw new IllegalArgumentException(sub + ": Bad type: " + type); + } + } else { + newElement = new ServerVariableElement(); + ((ServerVariableElement) newElement).key = sub.substring(open + 1, close); + } + pos = close + 1; + elements.add(newElement); + } + } + } + + this.elements = (SubstitutionElement[]) elements.toArray(new SubstitutionElement[0]); + + } + */ /** * Evaluate the substituation based on the context |
From: <jbo...@li...> - 2005-10-22 16:24:10
|
Author: szimano Date: 2005-10-22 12:24:05 -0400 (Sat, 22 Oct 2005) New Revision: 1434 Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/RecentlyChangedPagesPlugin.java Log: removed some stupid loggs Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2005-10-22 16:16:39 UTC (rev 1433) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2005-10-22 16:24:05 UTC (rev 1434) @@ -1000,7 +1000,7 @@ public Credentials getCredentialsInstance(ActionRequest aReq) { Credentials cred = null; - log.info("Getting instance of " + credentialsClass.getName()); + log.debug("Getting instance of " + credentialsClass.getName()); try { cred = (Credentials) credentialsClass.newInstance(); Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/RecentlyChangedPagesPlugin.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/RecentlyChangedPagesPlugin.java 2005-10-22 16:16:39 UTC (rev 1433) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/RecentlyChangedPagesPlugin.java 2005-10-22 16:24:05 UTC (rev 1434) @@ -39,7 +39,7 @@ for (String name : pages) { WikiPage temp = wikiEngine.getByName(name, null); - log.info("name: "+name+" "+temp.getName()); + //log.debug("name: "+name+" "+temp.getName()); then.setTime(temp.getEditDate()); then.add(Calendar.DAY_OF_MONTH, numOfDays); |
From: <jbo...@li...> - 2005-10-22 16:17:01
|
Author: szimano Date: 2005-10-22 12:16:39 -0400 (Sat, 22 Oct 2005) New Revision: 1433 Modified: trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/RenamePageWatcher.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPage.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPlugin.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiType.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiTypeHandler.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/HTMLTranslatorParts.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/RecentlyChangedPagesPlugin.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/DictionaryTest.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/GetSavePageTest.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/WikiTest.java trunk/forge/portal-extensions/jbosswiki/wiki-management/src/java/org/jboss/wiki/management/WikiService.java Log: org.jboss.logging instead of System.out http://jira.jboss.com/jira/browse/JBWIKI-64 Modified: trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java 2005-10-22 08:05:44 UTC (rev 1432) +++ trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java 2005-10-22 16:16:39 UTC (rev 1433) @@ -16,6 +16,7 @@ import javax.portlet.*; +import org.jboss.logging.Logger; import org.jboss.wiki.exceptions.EditSessionExpired; import org.jboss.wiki.management.WikiServiceMenagement; import org.apache.commons.fileupload.PortletDiskFileUpload; @@ -38,8 +39,12 @@ private String defaultPage = "Main"; private WikiEngine wikiEngine; + + private Logger log; public void init() { + log = Logger.getLogger(WikiPortlet.class); + WikiCommon wikiCommon = new WikiCommon(); WikiServiceMenagement wikiServiceMenagement = wikiCommon @@ -173,14 +178,14 @@ } if (rReq.getParameter("version") != null) { - System.out.println("[process action]Getting page " + log.info("[process action]Getting page " + rReq.getParameter("page") + " at version " + rReq.getParameter("version")); rResp.setRenderParameter("version", rReq.getParameter("version")); } if (rReq.getParameter("editAction") != null) { - System.out.println("EDITING PAGE"); + log.info("EDITING PAGE"); // unlock page WikiPage edPage = wikiEngine.getByName((String) rReq @@ -306,7 +311,7 @@ if (rReq.getParameter("version") != null) { // show previous version of page - System.out.println("Getting page " + wikiPage + log.info("Getting page " + wikiPage + " at version " + rReq.getParameter("version")); if ((pageToShow.getLastVersion() > Integer.valueOf(rReq @@ -363,7 +368,7 @@ * if (pageToShow == null) { // if somebody entered a link to info // * non-existing page page = "Wiki.jsp"; try { pageToShow = * (WikiPage) noSuchPage.clone(); } catch - * (CloneNotSupportedException cnse) { System.out.println(cnse); } + * (CloneNotSupportedException cnse) { log.info(cnse); } * * pageToShow.setName(wikiPage); } else { */ @@ -378,7 +383,7 @@ if (rReq.getParameter("type") != null) { type = rReq.getParameter("type"); - // System.out.println("Getting type: " + type); + // log.info("Getting type: " + type); } wikiContext = new WikiContext(credentials, wikiEngine @@ -387,7 +392,7 @@ if (rReq.getParameter("version") != null) { // show previous version of page - System.out.println("Getting page " + wikiPage + " at version " + log.info("Getting page " + wikiPage + " at version " + rReq.getParameter("version")); pageToShow = wikiEngine.getByName(wikiPage, wikiContext, Integer.valueOf(rReq.getParameter("version"))); @@ -404,7 +409,7 @@ * if (pageToShow == null) { * * try { pageToShow = (WikiPage) noSuchPage.clone(); } catch - * (CloneNotSupportedException cnse) { System.out.println(cnse); } + * (CloneNotSupportedException cnse) { log.info(cnse); } * * pageToShow.setName(wikiPage); } */ Modified: trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java 2005-10-22 08:05:44 UTC (rev 1432) +++ trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java 2005-10-22 16:16:39 UTC (rev 1433) @@ -8,7 +8,6 @@ *****************************************/ package org.jboss.wiki.fileaccess; -import java.awt.image.SampleModel; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; @@ -26,6 +25,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.jboss.logging.Logger; import org.jboss.wiki.FileDataSource; import org.jboss.wiki.ServletWikiSession; import org.jboss.wiki.SimpleCredentials; @@ -66,9 +66,13 @@ * private ForgeHelper forgeHelper; private ContentManager contentManager; */ private MimetypesFileTypeMap mimeTypes; + + private Logger log; public void init(FilterConfig conf) { // get wikiEnigne form wikiMenagement + + log = Logger.getLogger(WikiFileAccessFilter.class); WikiCommon wikiCommon = new WikiCommon(); @@ -100,10 +104,10 @@ wikiHome = props.getProperty("wikiHome"); } catch (IOException e) { - System.err.println(e); + log.error(e); } - System.out.println("[WikiFileAccess]Loaded attachements path: " + log.info("Loaded attachements path: " + attachementsPath); } Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java 2005-10-22 08:05:44 UTC (rev 1432) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java 2005-10-22 16:16:39 UTC (rev 1433) @@ -3,6 +3,7 @@ import java.util.Calendar; import java.util.Date; +import org.jboss.logging.Logger; import org.jboss.wiki.exceptions.PageNotEditedException; public class EditSessionWatcher extends Thread { @@ -13,9 +14,14 @@ private WikiPage watchedPage; private boolean runs = true; + + private Logger log; public EditSessionWatcher(Integer editSessionId, int sessionIdExpireTime, WikiPage watchedPage) { + + log = Logger.getLogger(EditSessionWatcher.class); + this.editSessionId = editSessionId; this.watchedPage = watchedPage; Calendar cal = Calendar.getInstance(); @@ -30,11 +36,11 @@ @Override public void run() { while (runs) { - //System.out.println("Checking watcher for page "+watchedPage.getName()+" with sessionid: "+editSessionId); + log.debug("Checking watcher for page "+watchedPage.getName()+" with sessionid: "+editSessionId); Date now = new Date(); if (now.after(endTime)) { - System.out.println("Session time exceeded"); + log.debug("Session time exceeded for page "+watchedPage.getName()+" with sessionid: "+editSessionId); try { watchedPage.addExpiredSessionId(editSessionId); @@ -54,7 +60,7 @@ } public void stopWatcher() { - System.out.println("Stopping watcher for page: "+watchedPage.getName()+" with sessionid: "+editSessionId); + log.debug("Stopping watcher for page: "+watchedPage.getName()+" with sessionid: "+editSessionId); runs = false; } Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java 2005-10-22 08:05:44 UTC (rev 1432) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java 2005-10-22 16:16:39 UTC (rev 1433) @@ -19,7 +19,7 @@ import java.util.Set; import java.util.TreeSet; -import org.jboss.wiki.exceptions.PageAlreadyExistsException; +import org.jboss.logging.Logger; import org.jboss.wiki.exceptions.PageRenamingException; /** @@ -67,13 +67,17 @@ private File pageDictionaryFile; private WikiEngine wikiEngine; + + private Logger log; public void setWikiEngine(WikiEngine wikiEngine) { this.wikiEngine = wikiEngine; } public FileDataSource() { - System.out.println("Looking for props file !"); + log = Logger.getLogger(FileDataSource.class); + + log.info("Looking for props file !"); Properties fileDSProps = new Properties(); @@ -83,8 +87,8 @@ .getResourceAsStream(propFileName)); } catch (IOException ioe) { - System.err.println("Can't load the file " + propFileName + "\n" - + ioe); + log.error("Can't load the file " + propFileName + "\n" + , ioe); } loadProperties(fileDSProps); @@ -104,13 +108,13 @@ pageModProps.load(fis); } catch (IOException ioe) { - System.err.println("Can't load the file " + propModFileName + "\n" - + ioe); + log.error("Can't load the file " + propModFileName + "\n" + , ioe); } finally { try { fis.close(); } catch (IOException ioe) { - System.err.println("Can't close input stream \n" + ioe); + log.error("Can't close input stream \n" , ioe); } } @@ -146,8 +150,7 @@ try { pageDictionaryFile.createNewFile(); } catch (IOException e) { - System.err.println("Cannot create dictionary file: "); - e.printStackTrace(); + log.error("Cannot create dictionary file: ",e); } } else { // there is dictionary file. Load props from it @@ -185,9 +188,9 @@ public void loadProperties(Properties fileDSProps) { if (fileDSProps.getProperty("pathToMedia") != null) { pathToMedia = fileDSProps.getProperty("pathToMedia"); - System.out.println("Path to media is: " + pathToMedia); + log.info("Path to media is: " + pathToMedia); pathToAttachments = fileDSProps.getProperty("pathToAttachements"); - System.out.println("Path to attachements is: " + pathToAttachments); + log.info("Path to attachements is: " + pathToAttachments); } else { System.err .println("Your properties file lacks of pathToMedia property. It will not run properly ! Please update " @@ -222,7 +225,7 @@ + e.toString()); } - System.out.println("Opening files"); + log.info("Opening files"); File pageFile = new File(pathToMedia + "/OLD/" + uid + "/" + (page.getLastVersion() - 1) + ".txt"); File pageOldFile = new File(pathToMedia + "/" + uid @@ -258,11 +261,11 @@ pageFileWriter.close(); status = true; } catch (FileNotFoundException fnfe) { - System.err.println("[FILEDATASOURCE]: Cannot save page: " - + fnfe.toString()); + log.error("[FILEDATASOURCE]: Cannot save page: " + , fnfe); } catch (IOException ioe) { - System.err.println("[FILEDATASOURCE]: Cannot save page: " - + ioe.toString()); + log.error("[FILEDATASOURCE]: Cannot save page: " + , ioe); } } else { // there is no page on disk. We have to create new one. @@ -312,7 +315,7 @@ status = true; } catch (Exception e) { - System.err.println("Cannot write new page: " + e); + log.error("Cannot write new page: ", e); status = false; } } @@ -361,8 +364,8 @@ } } catch (IOException e) { - System.err.println("Cannot create page props file for page: " - + pageName); + log.error("Cannot create page props file for page: " + + pageName,e); } return pageProps; } @@ -423,7 +426,7 @@ } public WikiPage getPage(String pageName) { - // System.out.println("[WIKI:FileDataSource]: Getting new page: " + + // log.info("[WIKI:FileDataSource]: Getting new page: " + // pageName); WikiPage page = null; @@ -458,7 +461,7 @@ nextChr = input.read(); } } catch (IOException ioe) { - System.err.println(ioe); + log.error(ioe); } int pageMods = getPageMod(pageName); @@ -482,8 +485,7 @@ public WikiPage getPage(String pageName, String languageCode) { if (languageCode != null) { - System.out - .println("As for now, languages aren't supported in the wiki. Please do not use language codes"); + log.info("As for now, languages aren't supported in the wiki. Please do not use language codes"); } return getPage(pageName); } @@ -491,8 +493,7 @@ public WikiPage getPageAtVersion(WikiPage originPage, boolean loadContent, String languageCode, int version) { if (languageCode != null) { - System.out - .println("As for now, languages aren't supported in the wiki. Please do not use language codes"); + log.info("As for now, languages aren't supported in the wiki. Please do not use language codes"); } return getPageAtVersion(originPage, loadContent, version); @@ -511,12 +512,12 @@ try { page = (WikiPage) originPage.clone(); } catch (CloneNotSupportedException e) { - System.err.println(e); + log.error(e); } if (page != null) { if (page.getLastVersion() < version) { - System.out.println("There is no version " + version + log.info("There is no version " + version + " of page " + page.getName()); return null; } @@ -534,7 +535,7 @@ /* * cal.setTime(new Date()); * - * System.out.println("PAGE "+page.getName()+" loaded in: + * log.info("PAGE "+page.getName()+" loaded in: * "+(cal.getTimeInMillis() - oldMilis)); */ return page; @@ -564,7 +565,7 @@ page.setLength(ret.length()); } catch (IOException ioe) { - System.err.println(ioe); + log.error(ioe); } } else { page.setLength(pageFile.length()); @@ -633,7 +634,7 @@ newFile = new FileOutputStream(new File(fileName)); oldFile = new FileInputStream(attFile); } catch (FileNotFoundException e) { - System.err.println(e); + log.error(e); } // writing old file to new one @@ -650,7 +651,7 @@ newFile.close(); oldFile.close(); } catch (IOException e) { - System.err.println(e); + log.error(e); } } @@ -847,12 +848,12 @@ fos = new FileOutputStream(modFile); pageModProps.store(fos, SAVE_COMMENT); } catch (IOException ioe) { - System.err.println("Couldn't store mod props: " + ioe); + log.error("Couldn't store mod props: ",ioe); } finally { try { fos.close(); } catch (IOException ioe) { - System.err.println("Can't close input stream \n" + ioe); + log.error("Can't close input stream \n",ioe); } } } @@ -888,7 +889,7 @@ } if (!pageFile.renameTo(pageTrashFile)) { - System.err.println("[FileDataSource]: Problems with moving " + log.error("[FileDataSource]: Problems with moving " + pageFileName + " to " + pageFileTrashName); return false; } @@ -922,7 +923,7 @@ } if (!pageFile.renameTo(pageTrashFile)) { - System.err.println("[FileDataSource]: Problems with moving " + log.error("[FileDataSource]: Problems with moving " + historyDirName + " to " + historyTrashDirName); // return back the page history @@ -941,7 +942,7 @@ return true; } else { // no such page - System.err.println("There is now such page: " + pageName); + log.error("There is now such page: " + pageName); return false; } } @@ -980,14 +981,14 @@ } if (!attFile.renameTo(attTrashFile)) { - System.err.println("[ATTACHMENT DS]:Problems with moving " + log.error("[ATTACHMENT DS]:Problems with moving " + attName + " to " + attTrashName); return false; } return true; } else { - System.err.println("Page " + pageName + " has no " + attachmentName + log.error("Page " + pageName + " has no " + attachmentName + " attachmnet"); return false; } @@ -1022,14 +1023,14 @@ } if (!attFile.renameTo(new File(attTrashName))) { - System.err.println("[ATTACHMENT DS]:Problems with moving " + log.error("[ATTACHMENT DS]:Problems with moving " + attName + " to " + attTrashName); return false; } return true; } else { - System.err.println("Page " + pageName + " has no attachmnets"); + log.error("Page " + pageName + " has no attachmnets"); return false; } } @@ -1071,7 +1072,7 @@ while ((pageExists(uid + String.valueOf(i))) || (pageDictionary.containsKey(uid + String.valueOf(i)))) { - System.out.println(i++); + log.info(i++); } // add maping for new (to be done) with name translated to old uid @@ -1080,7 +1081,7 @@ saveDictionary(); - System.out.println("Renamed (uid) "+uid+" to "+newName); + log.info("Renamed (uid) "+uid+" to "+newName); lock = false; } Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/RenamePageWatcher.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/RenamePageWatcher.java 2005-10-22 08:05:44 UTC (rev 1432) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/RenamePageWatcher.java 2005-10-22 16:16:39 UTC (rev 1433) @@ -3,7 +3,6 @@ import java.util.HashMap; import java.util.Vector; -import org.jboss.wiki.exceptions.PageAlreadyExistsException; import org.jboss.wiki.exceptions.PageRenamingException; public class RenamePageWatcher extends Thread { Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2005-10-22 08:05:44 UTC (rev 1432) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2005-10-22 16:16:39 UTC (rev 1433) @@ -35,7 +35,7 @@ import org.jboss.wiki.exceptions.PageRenamingException; import org.jboss.wiki.exceptions.WikiException; -import sun.security.krb5.internal.p; +import org.jboss.logging.Logger; import java.io.File; @@ -87,6 +87,8 @@ private RenamePageWatcher renamePageWatcher; private Class credentialsClass; + + private Logger log; /** * <p> @@ -162,7 +164,7 @@ WikiPage ret = null; if (!mediaDataSource.preGet()) { - System.err.println("Couldn't get page"); + log.error("Couldn't get page"); s.release(); return null; } @@ -188,7 +190,7 @@ } if (!mediaDataSource.postGet()) { - System.err.println("Problems with postGet"); + log.error("Problems with postGet"); } if (ret != null) { @@ -204,7 +206,7 @@ ret = (WikiPage) noSuchPage.clone(); ret.setName(pageName); } catch (CloneNotSupportedException cne) { - System.err.println(cne); + log.error(cne); } if (wikiContext != null) { @@ -253,7 +255,7 @@ // return noSuchPage if there isn't any /* * try { ret = (WikiPage) noSuchPage.clone(); } catch - * (CloneNotSupportedException cne) { System.err.println(cne); } if + * (CloneNotSupportedException cne) { log.error(cne); } if * (wikiContext != null) { return wikiContext.process(ret); } else { * return ret; } */ @@ -271,6 +273,8 @@ * @return */ public void init() { + log = Logger.getLogger(WikiEngine.class); + editedPages = new HashSet<Integer>(); pages = new HashMap<String, WikiPage>(); @@ -322,8 +326,8 @@ // TODO Auto-generated catch block e.printStackTrace(); } - - System.out.println("[WikiEngine] Loaded mediaDataSource: "+mediaDataSource); + log.info("Loaded mediaDataSource: "+mediaDataSource); + } else { //if sth went wrong @@ -344,7 +348,7 @@ e.printStackTrace(); } - System.out.println("[WikiEngine] Loaded attachmentDataSource: "+attachmentDataSource); + log.info("Loaded attachmentDataSource: "+attachmentDataSource); } else { //if sth went wrong @@ -364,7 +368,7 @@ // TODO Auto-generated catch block e.printStackTrace(); } - System.out.println("[WikiEngine] Loaded wikiPageDictionary: "+wikiPageDictionary); + log.info("Loaded wikiPageDictionary: "+wikiPageDictionary); } else { //if sth went wrong @@ -381,19 +385,18 @@ credentialsClass = Class.forName(jbosswikiprops .getProperty("credentialsClass")); } catch (ClassNotFoundException e) { - System.err.println("Coudln't load credentials class."); - e.printStackTrace(); + log.error("Coudln't load credentials class.",e); } if (credentialsClass != null) - System.out.println("[WikiEngine]Loaded credentialsClass: " + log.info("Loaded credentialsClass: " + credentialsClass); } // if credentialClass didn't load or wasn't set if (credentialsClass == null) { credentialsClass = SimpleCredentials.class; - System.out.println("[WikiEngine](SIMPLE)Loaded credentialsClass: " + log.info("(SIMPLE)Loaded credentialsClass: " + credentialsClass); } @@ -417,8 +420,8 @@ .getResourceAsStream("/WikiTypes.xml"), new WikiTypeHandler(this)); } catch (Exception se) { - System.err.println("Error while parsing WikiType configuration: " - + se); + log.error("Error while parsing WikiType configuration: " + , se); } } @@ -431,18 +434,16 @@ props.loadFromXML(WikiTypeHandler.class .getResourceAsStream("/WikiInsidePlugins.xml")); } catch (InvalidPropertiesFormatException e) { - System.err.println("WikiInsidePlugins.xml has bad format !"); - e.printStackTrace(); + log.error("WikiInsidePlugins.xml has bad format !",e); } catch (IOException e) { - System.err.println("There is no WikiInsidePlugins.xml file !"); - e.printStackTrace(); + log.error("There is no WikiInsidePlugins.xml file !",e); } Iterator it = props.keySet().iterator(); while (it.hasNext()) { String pluginName = (String) it.next(); - System.out.println("[WIKIENGINE]: Loading inside plugin: " + log.info("Loading inside plugin: " + pluginName + " class: " + props.getProperty(pluginName)); WikiInsidePlugin wikiInsidePlugin = null; @@ -544,7 +545,7 @@ } public void addWikiType(String name, WikiType wikiType) { - System.out.println("[WIKIENGINE]: Added WikiType: " + name + " Class: " + log.info("Added WikiType: " + name + " Class: " + wikiType); wikiTypes.put(name, wikiType); } @@ -571,7 +572,7 @@ } public Map<String, Integer> findPages(String searchQuery) { - // System.out.println("Starting search: " + searchQuery); + // log.info("Starting search: " + searchQuery); WikiSearch wikiSearch = new WikiSearch(searchQuery); Map<String, Integer> resPages = new HashMap<String, Integer>(); @@ -613,7 +614,7 @@ resPages.put(entry.getKey(), entry.getValue()); } - // System.out.println("Search completed"); + // ("Search completed"); return resPages; } @@ -672,7 +673,7 @@ public boolean deletePage(String pageName, boolean deleteSubpages) { Set<String> subpages = new HashSet<String>(); - System.out.println("DELETE SUBPAGES: " + deleteSubpages); + log.info("DELETE SUBPAGES: " + deleteSubpages); if (deleteSubpages) { subpages = mediaDataSource.getPagesFor(pageName); @@ -680,7 +681,7 @@ if (attachmentDataSource.getAttachmentsSet(getByName(pageName, null)) != null) { if (!attachmentDataSource.deleteAttachments(pageName)) { - System.err.println("Couldn't delete attachments of page " + log.error("Couldn't delete attachments of page " + pageName); return false; } @@ -707,12 +708,12 @@ pages.remove(pageName); } - System.out.println("Finishing deleting of page " + pageName + log.info("Finishing deleting of page " + pageName + " with ret = " + ret); return ret; } else { - System.err.println("Problems with deleting page " + pageName); + log.error("Problems with deleting page " + pageName); return false; } } @@ -720,7 +721,7 @@ public String getRealName(String uid) { String[] pageTokens = uid.split("/"); - // System.out.println("Looking at page: (realName) "+uid); + // log.info("Looking at page: (realName) "+uid); if (pageTokens.length > 1) { if (!wikiPageDictionary.getRealName(uid).equals(uid)) { @@ -728,7 +729,7 @@ // this page is in dictionary return wikiPageDictionary.getRealName(uid); } else { - // System.out.println("checking parts"); + // log.info("checking parts"); // look if parts of this page are in dictionary for (int i = pageTokens.length - 1; i > 0; i--) { @@ -746,7 +747,7 @@ page = page.substring(1); - // System.out.println("Looking at page: (realName) "+page); + // log.info("Looking at page: (realName) "+page); if (!wikiPageDictionary.getRealName(page).equals(page)) // this // page @@ -766,7 +767,7 @@ public String getUid(String realName) { String[] pageTokens = realName.split("/"); - // System.out.println("Looking at page: (uid) "+realName); + // log.info("Looking at page: (uid) "+realName); if (pageTokens.length > 1) { if (!wikiPageDictionary.getUid(realName).equals(realName)) { @@ -790,7 +791,7 @@ page = page.substring(1); - // System.out.println("Looking at page: (uid) "+page); + // log.info("Looking at page: (uid) "+page); if (!wikiPageDictionary.getUid(page).equals(page)) // this // page @@ -820,7 +821,6 @@ if (!arePagesEdited()) { wikiPageDictionary.rename(uid, newName); - System.out.println(10); } else { // some pages are edited now - execute watcher renamePageWatcher.rename(uid, newName); @@ -988,11 +988,10 @@ cred = (Credentials) credentialsClass.newInstance(); cred.setRenderRequest(rReq); } catch (InstantiationException e) { - System.err.println("Couldn't get instance of class " - + credentialsClass.getName()); - e.printStackTrace(); + log.error("Couldn't get instance of class " + + credentialsClass.getName(),e); } catch (IllegalAccessException e) { - e.printStackTrace(); + log.error(e); } return cred; @@ -1001,15 +1000,14 @@ public Credentials getCredentialsInstance(ActionRequest aReq) { Credentials cred = null; - System.out.println("Getting instance of " + credentialsClass.getName()); + log.info("Getting instance of " + credentialsClass.getName()); try { cred = (Credentials) credentialsClass.newInstance(); cred.setActionRequest(aReq); } catch (InstantiationException e) { - System.err.println("Couldn't get instance of class " - + credentialsClass.getName()); - e.printStackTrace(); + log.error("Couldn't get instance of class " + + credentialsClass.getName(),e); } catch (IllegalAccessException e) { e.printStackTrace(); } Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPage.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPage.java 2005-10-22 08:05:44 UTC (rev 1432) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPage.java 2005-10-22 16:16:39 UTC (rev 1433) @@ -15,7 +15,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Set; -import java.util.Vector; +import org.jboss.logging.Logger; import org.jboss.wiki.exceptions.EditSessionExpired; import org.jboss.wiki.exceptions.PageNotEditedException; @@ -58,6 +58,8 @@ * */ private String name; + + private Logger log; /** * <p> @@ -136,6 +138,7 @@ this.editable = editable; expiredSessionIds = new HashSet<Integer>(); editSessionWatchers = new HashMap<Integer, EditSessionWatcher>(); + log = Logger.getLogger(WikiPage.class); } /** @@ -169,14 +172,14 @@ } if (!wikiEngine.preSave()) { - System.err.println("Couldn't save page"); + log.error("Couldn't save page"); return false; } boolean ret = wikiEngine.savePage(this, null); boolean postSave; if (postSave = !wikiEngine.postSave()) { - System.err.println("Problems with postSave"); + log.error("Problems with postSave"); } return ret || postSave; @@ -267,11 +270,11 @@ } public void showPage() { - System.out.println("Page name: " + getName()); - System.out.println("Page author: " + getLastAuthor()); - System.out.println("Page version: " + getLastVersion()); - System.out.println("Page editdate: " + getEditDate()); - System.out.println("Page Content: \n" + getContent()); + log.info("Page name: " + getName()); + log.info("Page author: " + getLastAuthor()); + log.info("Page version: " + getLastVersion()); + log.info("Page editdate: " + getEditDate()); + log.info("Page Content: \n" + getContent()); } /** @@ -337,7 +340,7 @@ } public void unlock(Credentials user, Integer editSessionId) { - System.out.println("UNLOCK: " + user.getName() + " save user: " + log.info("UNLOCK: " + user.getName() + " save user: " + lockUser); if (editSessionWatchers.get(editSessionId) != null) { @@ -353,7 +356,7 @@ } if ((user.getName()).equals(lockUser)) { - System.out.println("Unlocking page"); + log.info("Unlocking page"); lockTime = null; lockUser = null; } @@ -380,12 +383,12 @@ } if (this.lockTime == null) { - System.out.println("LOCK: " + user.getName()); + log.info("LOCK: " + user.getName()); // page isn't locked or lock expired. Lets lock it. this.lockTime = now; this.lockUser = user.getName(); - System.out.println("LOCK: " + lockUser); + log.info("LOCK: " + lockUser); retDate = null; } Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPlugin.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPlugin.java 2005-10-22 08:05:44 UTC (rev 1432) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPlugin.java 2005-10-22 16:16:39 UTC (rev 1433) @@ -11,6 +11,8 @@ import java.io.InputStream; import java.util.Properties; +import org.jboss.logging.Logger; + /** * * @author <a href="mailto:ds...@jb...">Damon Sicore</a><br /> @@ -52,6 +54,8 @@ final static String propFileName = "wikiPlugins.properties"; + protected Logger log = Logger.getLogger(this.getClass()); + /**Processes given WikiPage and returns processed one. * * @param wikiPage WikiPage to process @@ -85,7 +89,7 @@ pluginProps.load(propsStream); } catch (Exception e) { - System.err.println("[WikiPlugin]: Cannot load WikiPlugin property file: "+e); + log.error("Cannot load WikiPlugin property file: "+e); } } @@ -117,5 +121,4 @@ this.name = name; } - } Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiType.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiType.java 2005-10-22 08:05:44 UTC (rev 1432) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiType.java 2005-10-22 16:16:39 UTC (rev 1433) @@ -10,6 +10,8 @@ import java.util.Vector; +import org.jboss.logging.Logger; + /** * <p> * </p> @@ -35,6 +37,8 @@ protected WikiContext wikiContext; protected Vector<WikiPlugin> plugins = new Vector<WikiPlugin>(); + + protected Logger log = Logger.getLogger(this.getClass()); public void addPlugin(String pluginName, String pluginClass) { @@ -43,7 +47,7 @@ try { plugin = (WikiPlugin) Class.forName(pluginClass).newInstance(); } catch (Exception e) { - System.err.println("Error while loading plugin: " + pluginName + log.error("Error while loading plugin: " + pluginName + "\nclass: " + pluginClass + "\n" + e); } @@ -57,7 +61,7 @@ // run init() function plugin.init(); - System.out.println("[WikiType:" + name + "]Plugin added: " + log.info("Plugin added: " + pluginName + " class: " + pluginClass); } @@ -88,13 +92,13 @@ try { newPage = (WikiPage) wikiPage.clone(); } catch (CloneNotSupportedException cnse) { - System.err.println("cannot clone the page: " + cnse); + log.error("cannot clone the page: " + cnse); } } // execute the plugins for (int i = 0; i < plugins.size(); i++) { - // System.out.println("Executing plugin: + // log.info("Executing plugin: // "+plugins.get(i).getName()); newPage = (plugins.get(i)).process(newPage, wikiSession); } @@ -120,7 +124,7 @@ } public void setName(String name) { - System.out.print("Setting new WikiType name: " + name); + log.info("Setting new WikiType name: " + name); this.name = name; } Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiTypeHandler.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiTypeHandler.java 2005-10-22 08:05:44 UTC (rev 1432) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiTypeHandler.java 2005-10-22 16:16:39 UTC (rev 1433) @@ -10,6 +10,7 @@ import java.util.Stack; +import org.jboss.logging.Logger; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; @@ -37,12 +38,14 @@ private String wikiTypeName; private String pluginName = "", pluginClass = ""; + + private Logger log = Logger.getLogger(WikiTypeHandler.class); @Override public void endDocument() throws SAXException { super.endDocument(); - System.out.println("WikiType configuration file parsed."); + log.info("WikiType configuration file parsed."); } @Override @@ -60,25 +63,25 @@ wikiTypeName = null; } - // System.out.println("End element: "+uri+" "+localName+" "+qName); + // log.info("End element: "+uri+" "+localName+" "+qName); } @Override public void error(SAXParseException e) throws SAXException { super.error(e); - System.err.println("[WikiType Parser:ERROR]: " + e); + log.error("ERROR", e); } @Override public void fatalError(SAXParseException e) throws SAXException { super.fatalError(e); - System.err.println("[WikiType Parser:FATAL ERROR]: " + e); + log.error("FATAL ERROR" , e); } @Override public void startDocument() throws SAXException { super.startDocument(); - System.out.println("Parsing the WikiType configuration file..."); + log.info("Parsing the WikiType configuration file..."); } @Override @@ -86,9 +89,9 @@ Attributes attributes) throws SAXException { super.startElement(uri, localName, qName, attributes); /* - * System.out.println("Element: uri: "+uri+" lname: "+localName+" qname: + * log.info("Element: uri: "+uri+" lname: "+localName+" qname: * "+qName); for (int i = 0; i < attributes.getLength(); i++) { - * System.out.println("Attr "+i+": "+attributes.getQName(i)+" = + * log.info("Attr "+i+": "+attributes.getQName(i)+" = * "+attributes.getIndex(attributes.getQName(i))); } */ if (qName.equals("plugin")) { @@ -105,7 +108,7 @@ @Override public void warning(SAXParseException e) throws SAXException { super.warning(e); - System.out.println("[WikiType Parser:WARNING]: " + e); + log.warn(e); } public WikiTypeHandler(WikiEngine wikiEngine) { @@ -134,7 +137,7 @@ wikiType.setWikiEngine(wikiEngine); } catch(Exception e) { - System.err.println("Cannot load WikiType class: "+e); + log.error("Cannot load WikiType class: ",e); } if (wikiTypeName != null) { Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/HTMLTranslatorParts.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/HTMLTranslatorParts.java 2005-10-22 08:05:44 UTC (rev 1432) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/HTMLTranslatorParts.java 2005-10-22 16:16:39 UTC (rev 1433) @@ -59,6 +59,7 @@ import java.util.Collection; import java.util.StringTokenizer; +import org.jboss.logging.Logger; import org.jboss.wiki.WikiCommon; import org.jboss.wiki.WikiPage; import org.jboss.wiki.WikiPlugin; @@ -66,6 +67,8 @@ public class HTMLTranslatorParts extends WikiPlugin { + private Logger log; + /* URL components, later to be configurable */ private String portalHome = ""; @@ -123,7 +126,7 @@ private String pageName = ""; public HTMLTranslatorParts() { - + } /** @@ -1013,7 +1016,7 @@ try { newPage = (WikiPage) wikiPage.clone(); } catch (CloneNotSupportedException cnse) { - System.out.println("cannot clone the page: " + cnse); + log.error("cannot clone the page: ", cnse); } pageName = newPage.getName(); @@ -1053,7 +1056,7 @@ } } catch (IOException e) { - System.out.println(e); + log.error(e); newPageContent = "error on page"; } Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/RecentlyChangedPagesPlugin.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/RecentlyChangedPagesPlugin.java 2005-10-22 08:05:44 UTC (rev 1432) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/RecentlyChangedPagesPlugin.java 2005-10-22 16:16:39 UTC (rev 1433) @@ -39,7 +39,7 @@ for (String name : pages) { WikiPage temp = wikiEngine.getByName(name, null); - System.out.println("name: "+name+" "+temp.getName()); + log.info("name: "+name+" "+temp.getName()); then.setTime(temp.getEditDate()); then.add(Calendar.DAY_OF_MONTH, numOfDays); Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/DictionaryTest.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/DictionaryTest.java 2005-10-22 08:05:44 UTC (rev 1432) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/DictionaryTest.java 2005-10-22 16:16:39 UTC (rev 1433) @@ -35,7 +35,7 @@ newPage2Name = page2 + (i++); } - System.out.println("New name for page2: "+newPage2Name); + log.info("New name for page2: "+newPage2Name); //wikiEngine.rename(page2, newPage2Name); @@ -44,7 +44,7 @@ String pageContentRenamed = afterRename.getContent(); - System.out.println("page1 content: "+pageContentRenamed); + log.info("page1 content: "+pageContentRenamed); int link = -1; @@ -55,7 +55,7 @@ else { // find link in page String pageName = pageContentRenamed.substring(link + (hostURL+"/wiki/").length(), pageContentRenamed.indexOf("\"", link + (hostURL+"/wiki/").length())); - System.out.println("PAGENAME: "+pageName); + log.info("PAGENAME: "+pageName); // check if the link is the one renamed in dictionary @@ -72,13 +72,13 @@ WikiPage main = wikiEngine.getByName("Main", wikiContext); - System.out.println("Main source:\n"+sourceMain.getContent()); + log.info("Main source:\n"+sourceMain.getContent()); ReTranslateUids reTranslateUids = new ReTranslateUids(wikiEngine); String reTranslated = reTranslateUids.getNewContent(main.getContent()); - System.out.println("Retranslated main:\n"+reTranslated); + log.info("Retranslated main:\n"+reTranslated); //assertEquals(reTranslated, sourceMain.getContent()); } Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/GetSavePageTest.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/GetSavePageTest.java 2005-10-22 08:05:44 UTC (rev 1432) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/GetSavePageTest.java 2005-10-22 16:16:39 UTC (rev 1433) @@ -17,7 +17,7 @@ String pageContent = wikiPage2.getPageContent(); - System.out.println(pageContent); + log.debug(pageContent); if (wikiPage2 == null) { wikiEngine.deletePage(testPageName); @@ -33,7 +33,7 @@ Set<String> pageNames = wikiEngine.getAllPageNames(); for (String pageName : pageNames) { - System.out.println("getting page: "+pageName); + log.info("getting page: "+pageName); if (wikiEngine.getByName(pageName, wikiContext) == null) { fail("Couldn't get page: "+pageName); Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/WikiTest.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/WikiTest.java 2005-10-22 08:05:44 UTC (rev 1432) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/WikiTest.java 2005-10-22 16:16:39 UTC (rev 1433) @@ -8,6 +8,7 @@ import javax.portlet.ActionRequest; import javax.portlet.RenderRequest; +import org.jboss.logging.Logger; import org.jboss.wiki.Credentials; import org.jboss.wiki.WikiContext; import org.jboss.wiki.WikiEngine; @@ -29,7 +30,11 @@ protected String hostURL = "http://HostURL.pl"; protected String actionURL = "/Szimano"; + protected Logger log; + public WikiTest () { + log = Logger.getLogger(WikiTest.class); + wikiEngine = new WikiEngine(); testWikiSession = new TestWikiSession(); pages = new HashSet<String>(); @@ -72,7 +77,7 @@ for (String pageName : pages) { if (!wikiEngine.deletePage(pageName)) { ret = false; - System.out.println("Couldn't delete "+pageName); + log.error("Couldn't delete "+pageName); } } Modified: trunk/forge/portal-extensions/jbosswiki/wiki-management/src/java/org/jboss/wiki/management/WikiService.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-management/src/java/org/jboss/wiki/management/WikiService.java 2005-10-22 08:05:44 UTC (rev 1432) +++ trunk/forge/portal-extensions/jbosswiki/wiki-management/src/java/org/jboss/wiki/management/WikiService.java 2005-10-22 16:16:39 UTC (rev 1433) @@ -4,6 +4,7 @@ import javax.ejb.Remote; import org.jboss.annotation.ejb.Management; import org.jboss.annotation.ejb.Service; +import org.jboss.logging.Logger; import org.jboss.wiki.WikiCommon; import org.jboss.wiki.WikiEngine; import org.jboss.wiki.management.WikiServiceMenagement; @@ -13,8 +14,10 @@ @Remote(WikiServiceRemote.class) @Management(WikiServiceMenagement.class) public class WikiService implements WikiServiceLocal, WikiServiceRemote, WikiServiceMenagement { - WikiEngine wikiEngine; - + + private WikiEngine wikiEngine; + private Logger log = Logger.getLogger(WikiService.class); + public synchronized WikiEngine getWikiEngine() { if (wikiEngine == null) { wikiEngine = new WikiEngine(); @@ -23,19 +26,19 @@ } public void create() throws Exception { - System.out.println("WikiService - Creating"); + log.info("WikiService - Creating"); } public void start() throws Exception { - System.out.println("WikiService - Starting"); + log.info("WikiService - Starting"); } public void stop() { - System.out.println("WikiService - Stoping"); + log.info("WikiService - Stoping"); } public void destroy() { - System.out.println("WikiService - Destroying"); + log.info("WikiService - Destroying"); } |
From: <jbo...@li...> - 2005-10-22 08:05:54
|
Author: adamw Date: 2005-10-22 04:05:44 -0400 (Sat, 22 Oct 2005) New Revision: 1432 Added: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsNodeWatcher.java Log: http://jira.jboss.com/jira/browse/JBLAB-408 : Missing file Added: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsNodeWatcher.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsNodeWatcher.java 2005-10-21 21:51:51 UTC (rev 1431) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsNodeWatcher.java 2005-10-22 08:05:44 UTC (rev 1432) @@ -0,0 +1,17 @@ +package org.jboss.forge.feeds; + +import org.jboss.forge.common.service.NodeWatcher; + +public class FeedsNodeWatcher implements NodeWatcher { + private FeedsDescriptor getDesc(String portalName) { + return new FeedsDescriptor(portalName); + } + + public Object init(String portalName) { + return getDesc(portalName); + } + + public Object nodeUpdate(String portalName, Object currentValue) { + return getDesc(portalName); + } +} \ No newline at end of file |
From: <jbo...@li...> - 2005-10-21 19:25:19
|
Author: dam...@jb... Date: 2005-10-21 15:25:17 -0400 (Fri, 21 Oct 2005) New Revision: 1430 Modified: qa/forge/portal-extensions/jboss-as-binaries/to-copy/server/all/conf/log4j.xml Log: MERGED: -r 1427:1429 https://svn.labs.jboss.com/trunk/forge/portal-extensions into qa. For 1.0.5 Release. Fixes: JBLABS-412 Modified: qa/forge/portal-extensions/jboss-as-binaries/to-copy/server/all/conf/log4j.xml =================================================================== --- qa/forge/portal-extensions/jboss-as-binaries/to-copy/server/all/conf/log4j.xml 2005-10-21 19:20:15 UTC (rev 1429) +++ qa/forge/portal-extensions/jboss-as-binaries/to-copy/server/all/conf/log4j.xml 2005-10-21 19:25:17 UTC (rev 1430) @@ -159,6 +159,18 @@ <!-- Limit categories --> <!-- ================ --> +<category name="org.jboss.ejb.txtimer"> + <priority value="ERROR" /> +</category> + +<category name="org.blojsom.blog"> + <priority value="WARN" /> +</category> +<category name="org.blojsom.plugin"> + <priority value="WARN" /> +</category> + + <!-- Limit the org.apache category to INFO as its DEBUG is verbose --> <category name="org.apache"> <priority value="INFO"/> |
Author: dam...@jb... Date: 2005-10-21 15:20:15 -0400 (Fri, 21 Oct 2005) New Revision: 1429 Added: qa/forge/portal-extensions/binaries/maven-repo-addons/rome/ qa/forge/portal-extensions/binaries/maven-repo-addons/rome/jars/ qa/forge/portal-extensions/binaries/maven-repo-addons/rome/jars/rome-0.7.jar qa/forge/portal-extensions/forge-feeds/src/java/org/ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RomeBasedFeed.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java Removed: qa/forge/portal-extensions/binaries/maven-repo-addons/rome/jars/ qa/forge/portal-extensions/binaries/maven-repo-addons/rome/jars/rome-0.7.jar qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RomeBasedFeed.java qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java Modified: qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/Projects.java qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java qa/forge/portal-extensions/forge-feeds/project.xml qa/forge/portal-extensions/forge-prj-downloads/project.xml qa/forge/portal-extensions/forge-prj-info/project.xml qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/etc/WikiTypes.xml qa/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties.sample qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiContext.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AdminConsolePlugin.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/DictionaryTest.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/GetSavePageTest.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/WikiTest.java Log: MERGED: -r 1416:1427 https://svn.labs.jboss.com/trunk/forge/portal-extensions into qa. For 1.0.5 Release. Fixes: JBWIKI-60, JBWIKI-61, JBWIKI-62, JBWIKI-63. Copied: qa/forge/portal-extensions/binaries/maven-repo-addons/rome (from rev 1427, trunk/forge/portal-extensions/binaries/maven-repo-addons/rome) Copied: qa/forge/portal-extensions/binaries/maven-repo-addons/rome/jars (from rev 1427, trunk/forge/portal-extensions/binaries/maven-repo-addons/rome/jars) Deleted: qa/forge/portal-extensions/binaries/maven-repo-addons/rome/jars/rome-0.7.jar =================================================================== (Binary files differ) Copied: qa/forge/portal-extensions/binaries/maven-repo-addons/rome/jars/rome-0.7.jar (from rev 1427, trunk/forge/portal-extensions/binaries/maven-repo-addons/rome/jars/rome-0.7.jar) Modified: qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java =================================================================== --- qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -84,8 +84,54 @@ return buf.toString(); } + + /** + * Reads and returns a HTML block contained in the children of the specified + * node with a default xml -> html transformer. + * @param root Node from which's children to get the HTML block. + * @return A string representation of the html contained in the given + * node. + */ + public static String unmarshallHtml(Node root) { + return unmarshallHtml(root, new DomToXmlTransformer()); + } /** + * Reads and returns a xml block contained in the entire specified + * node. + * @param root Node from which's to get the xml block. + * @return A string representation of the xml contained in the given + * node, including this node's representation. + */ + public static String unmarshallXml(Node root) { + try { + return new DomToXmlTransformer().transformNode(root); + } catch (TransformerException e) { + return ""; + } + } + + /** + * Gets a node that is a child node of the given one and has the given + * name. + * @param root Node which children are to be searched. + * @param name Name of the searched node. + * @return A child node with the given name or null, if no such node + * exists. + */ + public static Node getFirstNodeWithName(Node root, String name) { + NodeList children = root.getChildNodes(); + + for (int i = 0; i < children.getLength(); i++) { + Node n = children.item(i); + if (name.equalsIgnoreCase(n.getNodeName())) + return n; + } + + return null; + } + + /** * Reads text contained in a tag of the form <tag>text</tag>. * @param textNode Node to read text from. * @return Text contained in the given node. Modified: qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/Projects.java =================================================================== --- qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/Projects.java 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/Projects.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -8,6 +8,8 @@ *****************************************/ package org.jboss.forge.common.projects; +import java.util.Set; + import org.jboss.forge.common.ForgeHelper; import org.jboss.forge.common.projects.permissions.PermissionsChecker; import org.jboss.portal.common.context.DelegateContext; @@ -76,7 +78,8 @@ */ public DelegateContext getLevelContext(PermissionsChecker pc, String id) { return getProjectsDescriptor() - .getOutsidePropertyContext(pc, "level", id); + .getOutsidePropertyContext(pc, + ProjectsDescriptor.LEVEL_ATTRIBUTE, id); } /** @@ -138,7 +141,7 @@ if (pd == null) return null; - return pd.getProperty("level"); + return pd.getProperty(ProjectsDescriptor.LEVEL_ATTRIBUTE); } /** @@ -162,6 +165,19 @@ } /** + * Gets ids of all projects on the given level, accessible with the given + * permissions checker. + * @param pc Permissions checker to use. + * @param projectLevel Level of the projects to return. Null, if all + * projects are to be returned. + * @return A set of project ids on the given level accessible with the + * given permissions checker. + */ + public Set<String> getProjectIds(PermissionsChecker pc, String projectLevel) { + return getProjectsDescriptor().getProjectIds(pc, projectLevel); + } + + /** * Searches for the given string in project's names and descriptions. * * @param pc Permissions checker to use. Modified: qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java =================================================================== --- qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -55,6 +55,8 @@ static final String LINK_ELEMENT = "link"; static final String TYPE_ATTRIBUTE = "type"; + + static final String LEVEL_ATTRIBUTE = "level"; private static final Logger log = Logger .getLogger(ProjectsDescriptor.class); @@ -483,4 +485,29 @@ return toFill; } + + /** + * Gets ids of all projects on the given level, accessible with the given + * permissions checker. + * @param pc Permissions checker to use. + * @param projectLevel Level of the projects to return. Null, if all + * projects are to be returned. + * @return A set of project ids on the given level accessible with the + * given permissions checker. + */ + public Set<String> getProjectIds(PermissionsChecker pc, String projectLevel) { + Set<String> ret = new HashSet<String>(); + + for (String projectId : projects.keySet()) { + ProjectDescriptor project = projects.get(projectId); + if ((project.permissionAllowed(pc)) && + ((projectLevel == null) || + (projectLevel.equals(project.getProperty( + LEVEL_ATTRIBUTE))))) { + ret.add(projectId); + } + } + + return ret; + } } Modified: qa/forge/portal-extensions/forge-feeds/project.xml =================================================================== --- qa/forge/portal-extensions/forge-feeds/project.xml 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/forge-feeds/project.xml 2005-10-21 19:20:15 UTC (rev 1429) @@ -29,5 +29,39 @@ <version>1.0</version> <jar>javax.servlet.jar</jar> </dependency> + + <dependency> + <id>jdom</id> + <version>1.0</version> + <properties> + <war.bundle>true</war.bundle> + </properties> + </dependency> + + <dependency> + <id>rome</id> + <version>0.7</version> + <properties> + <war.bundle>true</war.bundle> + </properties> + </dependency> + + <dependency> + <groupId>xerces</groupId> + <artifactId>xercesImpl</artifactId> + <version>2.6.2</version> + </dependency> + + <dependency> + <groupId>xerces</groupId> + <artifactId>xmlParserAPIs</artifactId> + <version>2.6.2</version> + </dependency> + + <dependency> + <groupId>xalan</groupId> + <artifactId>xalan</artifactId> + <version>2.6.0</version> + </dependency> </dependencies> </project> Copied: qa/forge/portal-extensions/forge-feeds/src/java/org (from rev 1427, trunk/forge/portal-extensions/forge-feeds/src/java/org) Copied: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss (from rev 1427, trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss) Copied: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge (from rev 1427, trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge) Copied: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds (from rev 1427, trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds) Deleted: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java 2005-10-21 19:05:44 UTC (rev 1427) +++ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -1,38 +0,0 @@ -package org.jboss.forge.feeds; - -import java.io.IOException; -import java.io.OutputStream; -import java.net.URL; - -import com.sun.syndication.io.FeedException; -import com.sun.syndication.io.XmlReader; - -/** - * An interface that should be implemented by classes representing data feeds. - * @author adamw - */ -public interface Feed { - /** - * Writes the feed to the given output stream. - * @param os Output stream to write to. - * @throws IOException - */ - public void write(OutputStream os) throws IOException; - /** - * Generates a feed getting content from the given url. - * @param url Url from which to get the content. - */ - public void generateFromUrl(URL url) throws IOException; - /** - * Generates a feed using the given feeds. - * @param feeds Feeds which should be aggregated into a single - * feed. - */ - public void generateFromFeeds(Feed[] feeds) - throws IllegalArgumentException, FeedException, IOException; - /** - * Gets a xml reader for the given feed. - * @return A xml read for the given feed. - */ - public XmlReader getXmlReader() throws IOException; -} Copied: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java (from rev 1427, trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java) Deleted: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java 2005-10-21 19:05:44 UTC (rev 1427) +++ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -1,28 +0,0 @@ -package org.jboss.forge.feeds; - -import java.util.HashMap; -import java.util.Map; - -public class FeedFactory { - private static Map<String, Class> feedClasses; - - static { - feedClasses = new HashMap<String, Class>(); - feedClasses.put("rss2", Rss2Feed.class); - } - - public static Feed getNewFeed(String type) { - Class feedClass = feedClasses.get(type); - if (feedClass == null) return null; - - try { - return (Feed) feedClass.newInstance(); - } catch (Exception e) { - return null; - } - } - - public static String[] getAllFeedTypes() { - return feedClasses.keySet().toArray(new String[0]); - } -} Copied: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java (from rev 1427, trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java) Deleted: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java 2005-10-21 19:05:44 UTC (rev 1427) +++ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -1,170 +0,0 @@ -package org.jboss.forge.feeds; - -import java.io.IOException; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; - -import org.apache.xerces.parsers.DOMParser; -import org.jboss.forge.common.ForgeHelper; -import org.jboss.forge.common.XmlTools; -import org.jboss.forge.common.projects.ProjectsHelper; -import org.jboss.forge.common.projects.permissions.NullPermissionsChecker; -import org.jboss.logging.Logger; -import org.jboss.shotoku.ContentManager; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; - -public class FeedsDescriptor { - private static final Logger log = Logger.getLogger(FeedsDescriptor.class); - - private final static String FEEDS_DIRECTORY = "feeds"; - private final static String FEEDS_NODE_ENDING = "-feeds.xml"; - private final static String REM_FEED_TAG = "remote-feed"; - private final static String AGG_FEED_TAG = "aggregated-feed"; - private final static String SHO_FEED_TAG = "shotoku-feed"; - - private final static String ALL_TOKENS = "*"; - private final static String TOKENS_DELIMITER = ","; - - private final static String TYPE_PARAM = "${type}"; - private final static String PROJECT_PARAM = "${project}"; - - static synchronized FeedsDescriptor getInstance(final String portalName) { - FeedsDescriptor desc = (FeedsDescriptor) ForgeHelper - .getForgeManagement().getFromCache(portalName, - FeedsDescriptor.class.getName()); - - if (desc == null) - desc = (FeedsDescriptor) ForgeHelper.getForgeManagement() - .addNodeWatcher(portalName, - FeedsDescriptor.class.getName(), - new FeedsNodeWatcher()); - - return desc; - } - - /** - * <code>feeds</code> - a map of ready feeds: - * feed name -> (feed type -> feed)). - */ - private Map<String, Map<String, Feed>> feeds; - - public FeedsDescriptor(String portalName) { - ContentManager cm = ContentManager.getContentManager(portalName - + "/" + FEEDS_DIRECTORY); - - // Preparing maps which will hold feed definitions. - Map<String, Node> remoteFeedDefs = new HashMap<String, Node>(); - Map<String, Node> aggregatedFeedDefs = new HashMap<String, Node>(); - Map<String, Node> shotokuFeedDefs = new HashMap<String, Node>(); - - Map<String, Map<String, Node>> allFeedDefs = - new HashMap<String, Map<String, Node>>(); - - allFeedDefs.put(REM_FEED_TAG, remoteFeedDefs); - allFeedDefs.put(AGG_FEED_TAG, aggregatedFeedDefs); - allFeedDefs.put(SHO_FEED_TAG, shotokuFeedDefs); - - // Looking for file containing feed definitons and filling the maps. - for (org.jboss.shotoku.Node feedNode : cm.getRootDirectory().getNodes().toList()) { - if (feedNode.getName().endsWith(FEEDS_NODE_ENDING)) { - try { - addFeedDefinitions(allFeedDefs, feedNode); - } catch (Exception e) { - // We just don't add the feeds ... but log a warning. - log.warn("Can't add feed definitions.", e); - } - } - } - - // Creating the feeds. - feeds = new HashMap<String, Map<String, Feed>>(); - - // Firstly - the remote feeds. - generateRemoteFeeds(portalName, remoteFeedDefs); - - // TODO add shotoku feeds - - // After that, we can create the aggregated feeds. - - } - - private void addFeed(String name, String type, Feed feed) { - Map<String, Feed> typesMap = feeds.get(name); - if (typesMap == null) { - typesMap = new HashMap<String, Feed>(); - feeds.put(name, typesMap); - } - - typesMap.put(type, feed); - } - - private void generateRemoteFeeds(String portalName, Map<String, Node> feedDefs) { - for (String feedName : feedDefs.keySet()) { - Node feedNode = feedDefs.get(feedName); - String addressAttr = XmlTools.getAttributeValue(feedNode, "address"); - String typesAttr = XmlTools.getAttributeValue(feedNode, "type"); - String projectLevelAttr = XmlTools.getAttributeValue(feedNode, "project-level"); - - // Generating the type of feeds that have been requested. - String[] types; - if (ALL_TOKENS.equals(typesAttr)) { - types = FeedFactory.getAllFeedTypes(); - } else { - types = typesAttr.split("[" + TOKENS_DELIMITER + "]"); - } - - // Generating the projects for which the feeds have been requested, - // if any. - String[] projects; - if (projectLevelAttr != null) { - projects = ProjectsHelper.getProjects( - portalName).getProjectIds(new NullPermissionsChecker(), - projectLevelAttr).toArray(new String[0]); - } else { - projects = new String[] { "" }; - } - - // For each type, project pair, generating a feed and storing it in - // the feeds map. - for (String type : types) { - for (String project : projects) { - String address = addressAttr.replace(TYPE_PARAM, type). - replace(PROJECT_PARAM, project); - - try { - Feed newFeed = FeedFactory.getNewFeed(type); - newFeed.generateFromUrl(new URL(address)); - addFeed(feedName.replace(PROJECT_PARAM, project), type, - newFeed); - } catch (Exception e) { - log.warn("Can't add feeed " + address + " : " + type - + ".", e); - e.printStackTrace(); - } - } - } - } - } - - private void addFeedDefinitions( - Map<String, Map<String, Node>> feedDefinitions, - org.jboss.shotoku.Node node) throws SAXException, IOException { - DOMParser parser = new DOMParser(); - parser.parse(new InputSource(node.getContentInputStream())); - Node root = parser.getDocument().getDocumentElement(); - - Node n; - NodeList nodes = root.getChildNodes(); - - for (int i = 0; i < nodes.getLength(); i++) { - n = nodes.item(i); - if (feedDefinitions.get(n.getNodeName()) != null) - feedDefinitions.get(n.getNodeName()).put( - XmlTools.getAttributeValue(n, "name"), n); - } - } -} Copied: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java (from rev 1427, trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java) Deleted: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java 2005-10-21 19:05:44 UTC (rev 1427) +++ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -1,20 +0,0 @@ -package org.jboss.forge.feeds; - -import java.io.IOException; - -import javax.portlet.PortletException; -import javax.portlet.PortletSecurityException; - -import org.jboss.portlet.JBossPortlet; -import org.jboss.portlet.JBossRenderRequest; -import org.jboss.portlet.JBossRenderResponse; - -public class FeedsPortlet extends JBossPortlet { - - @Override - protected void doView(JBossRenderRequest request, JBossRenderResponse response) - throws PortletException, PortletSecurityException, IOException { - - } - -} Copied: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java (from rev 1427, trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java) Deleted: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java 2005-10-21 19:05:44 UTC (rev 1427) +++ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -1,57 +0,0 @@ -package org.jboss.forge.feeds; - -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.net.URL; - -import com.sun.syndication.io.XmlReader; - -public abstract class FileBasedFeed implements Feed { - private final static int BUF_SIZE = 32768; - - private File file; - - public FileBasedFeed(File file) { - this.file = file; - } - - private void transfer(InputStream is, OutputStream os) throws IOException { - byte[] buffer = new byte[BUF_SIZE]; - int read; - while ((read = is.read(buffer)) != -1) - os.write(buffer, 0, read); - } - - public void generateFromUrl(URL url) throws IOException { - file.createNewFile(); - - InputStream is = url.openStream(); - OutputStream os = new BufferedOutputStream(new FileOutputStream(file)); - - transfer(is, os); - - is.close(); - os.close(); - } - - public void write(OutputStream os) throws IOException { - InputStream is = new BufferedInputStream(new FileInputStream(file)); - - transfer(is, os); - is.close(); - } - - public XmlReader getXmlReader() throws IOException { - return new XmlReader(file); - } - - protected File getFile() { - return file; - } -} Copied: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java (from rev 1427, trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java) Deleted: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RomeBasedFeed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RomeBasedFeed.java 2005-10-21 19:05:44 UTC (rev 1427) +++ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RomeBasedFeed.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -1,45 +0,0 @@ -package org.jboss.forge.feeds; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import com.sun.syndication.feed.synd.SyndFeed; -import com.sun.syndication.feed.synd.SyndFeedImpl; -import com.sun.syndication.io.FeedException; -import com.sun.syndication.io.SyndFeedInput; -import com.sun.syndication.io.SyndFeedOutput; - -public abstract class RomeBasedFeed extends FileBasedFeed { - public RomeBasedFeed(File file) { - super(file); - } - - protected abstract void setFeedType(SyndFeed feed); - - @SuppressWarnings("unchecked") - public void generateFromFeeds(Feed[] feeds) throws IllegalArgumentException, FeedException, IOException { - SyndFeed syndFeed = new SyndFeedImpl(); - - setFeedType(syndFeed); - - syndFeed.setTitle("Aggregated Feed"); - syndFeed.setDescription("Anonymous Aggregated Feed"); - syndFeed.setAuthor("anonymous"); - syndFeed.setLink("http://www.anonymous.com"); - - List entries = new ArrayList(); - syndFeed.setEntries(entries); - - for (Feed feed : feeds) { - SyndFeedInput input = new SyndFeedInput(); - SyndFeed inFeed = input.build(feed.getXmlReader()); - - entries.addAll(inFeed.getEntries()); - } - - SyndFeedOutput output = new SyndFeedOutput(); - output.output(syndFeed, getFile()); - } -} Copied: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RomeBasedFeed.java (from rev 1427, trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RomeBasedFeed.java) Deleted: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java 2005-10-21 19:05:44 UTC (rev 1427) +++ qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -1,17 +0,0 @@ -package org.jboss.forge.feeds; - -import java.io.File; -import java.io.IOException; - -import com.sun.syndication.feed.synd.SyndFeed; - -public class Rss2Feed extends RomeBasedFeed { - public Rss2Feed(File file) throws IOException { - super(file); - } - - @Override - protected void setFeedType(SyndFeed feed) { - feed.setFeedType("rss_2.0"); - } -} Copied: qa/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java (from rev 1427, trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java) Modified: qa/forge/portal-extensions/forge-prj-downloads/project.xml =================================================================== --- qa/forge/portal-extensions/forge-prj-downloads/project.xml 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/forge-prj-downloads/project.xml 2005-10-21 19:20:15 UTC (rev 1429) @@ -17,21 +17,7 @@ <description></description> <dependencies> - <dependency> - <groupId>tmate</groupId> - <artifactId>javasvn</artifactId> - <version>1.0</version> - <jar>javasvn.jar</jar> - </dependency> - <dependency> - <groupId>tmate</groupId> - <artifactId>jsch</artifactId> - <version>1.0</version> - <jar>jsch.jar</jar> - </dependency> - - <dependency> <groupId>jboss-forge</groupId> <artifactId>forge-common</artifactId> <version>1.0</version> Modified: qa/forge/portal-extensions/forge-prj-info/project.xml =================================================================== --- qa/forge/portal-extensions/forge-prj-info/project.xml 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/forge-prj-info/project.xml 2005-10-21 19:20:15 UTC (rev 1429) @@ -17,21 +17,7 @@ <description></description> <dependencies> - <dependency> - <groupId>tmate</groupId> - <artifactId>javasvn</artifactId> - <version>1.0</version> - <jar>javasvn.jar</jar> - </dependency> - <dependency> - <groupId>tmate</groupId> - <artifactId>jsch</artifactId> - <version>1.0</version> - <jar>jsch.jar</jar> - </dependency> - - <dependency> <groupId>jboss-forge</groupId> <artifactId>forge-common</artifactId> <version>1.0</version> Modified: qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -122,7 +122,7 @@ } } - if (rReq.getParameter("page") != null) { + if (rReq.getParameter("page") != null && (rReq.getParameter("page").length() > 0)) { StringBuffer sBuf = new StringBuffer(rReq.getParameter("page")); if (Character.isLowerCase(sBuf.charAt(0))) { @@ -293,7 +293,7 @@ showPage = false; WikiContext editWikiContext = new WikiContext( - credentials.getName(), wikiEngine.getWikiType("edit"), + credentials, wikiEngine.getWikiType("edit"), wikiSession); pageToShow = wikiEngine.getByName(wikiPage, editWikiContext); @@ -381,7 +381,7 @@ // System.out.println("Getting type: " + type); } - wikiContext = new WikiContext(credentials.getName(), wikiEngine + wikiContext = new WikiContext(credentials, wikiEngine .getWikiType(type), new PortletWikiSession(rReq .getPortletSession())); Modified: qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -8,6 +8,7 @@ *****************************************/ package org.jboss.wiki.fileaccess; +import java.awt.image.SampleModel; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; @@ -27,6 +28,7 @@ import org.jboss.wiki.FileDataSource; import org.jboss.wiki.ServletWikiSession; +import org.jboss.wiki.SimpleCredentials; import org.jboss.wiki.WikiAttachment; import org.jboss.wiki.WikiCommon; import org.jboss.wiki.WikiContext; @@ -226,7 +228,7 @@ pageName = pageName.substring(1); WikiPage page = wikiEngine.getByName(pageName, - new WikiContext("", wikiEngine + new WikiContext(new SimpleCredentials(""), wikiEngine .getWikiType(wikiTypeName), wikiSession)); httpResponse.setContentType(wikiEngine Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/etc/WikiTypes.xml =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/etc/WikiTypes.xml 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/etc/WikiTypes.xml 2005-10-21 19:20:15 UTC (rev 1429) @@ -17,14 +17,14 @@ <class>org.jboss.wiki.plugins.SubpagesListPlugin</class> </plugin> <plugin> + <name>adminConsole</name> + <class>org.jboss.wiki.plugins.AdminConsolePlugin</class> + </plugin> + <plugin> <name>attachmentList</name> <class>org.jboss.wiki.plugins.AttachmentListPlugin</class> </plugin> <plugin> - <name>adminConsole</name> - <class>org.jboss.wiki.plugins.AdminConsolePlugin</class> - </plugin> - <plugin> <name>wikiToHtmlTranslator</name> <class>org.jboss.wiki.plugins.HTMLTranslatorParts</class> </plugin> Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties.sample =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties.sample 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties.sample 2005-10-21 19:20:15 UTC (rev 1429) @@ -1,7 +1,9 @@ # FileDataSource configuration file # pathToMedia - points, where JSPWiki file structure is situated -pathToMedia = +#pathToMedia=/usr/local/forge/wiki +pathToMedia= # pathToAttachements - points, where JSPWiki attachemets are situated -pathToAttachements = +#pathToAttachements=/usr/local/forge/wiki +pathToAttachements= Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -30,7 +30,7 @@ @Override public void run() { while (runs) { - System.out.println("Checking watcher for page "+watchedPage.getName()+" with sessionid: "+editSessionId); + //System.out.println("Checking watcher for page "+watchedPage.getName()+" with sessionid: "+editSessionId); Date now = new Date(); if (now.after(endTime)) { Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -665,7 +665,7 @@ File attDir = new File(pathToAttachments + "/" + page.getName() + "-att"); - if (attDir.exists()) { + if (attDir.exists() && (attDir.listFiles().length > 0)) { File[] attachements = attDir.listFiles(); for (int i = 0; i < attachements.length; i++) { Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiContext.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiContext.java 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiContext.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -28,7 +28,7 @@ * <p>Represents ...</p> * */ - private String user; + private Credentials user; /** * <p>Represents ...</p> @@ -41,7 +41,7 @@ */ private WikiSession wikiSession; - public WikiContext(String user, WikiType requestedType, WikiSession wikiSession) { + public WikiContext(Credentials user, WikiType requestedType, WikiSession wikiSession) { this.user = user; this.requestedType = requestedType; this.wikiSession = wikiSession; @@ -52,7 +52,7 @@ } - public String getUser() { + public Credentials getUser() { return user; } Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -35,6 +35,8 @@ import org.jboss.wiki.exceptions.PageRenamingException; import org.jboss.wiki.exceptions.WikiException; +import sun.security.krb5.internal.p; + import java.io.File; /** @@ -72,8 +74,6 @@ private WikiPageDictionary wikiPageDictionary; - private String adminUserName = "admin"; - WikiPage noSuchPage; private Integer sessionIdExpireTime = 120; @@ -180,7 +180,7 @@ } if ((wikiContext != null) && (ret != null) && (!ret.isViewable()) - && (!wikiContext.getUser().equals(adminUserName))) { + && (!wikiContext.getUser().isAdmin())) { s.release(); return new WikiPage(realPageName, null, "I am sorry, but you are not allowed to see this page", 0, Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AdminConsolePlugin.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AdminConsolePlugin.java 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AdminConsolePlugin.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -145,7 +145,7 @@ adminConsole.append("This page ").append( (editable) ? "is" : "isn't").append(" editable "); adminConsole.append("<a href=\"").append(actionURL) - .append("&page=").append("&var1=chmod").append("&var2=") + .append("&page=").append(wikiPage.getName()).append("&var1=chmod").append("&var2=") .append(!editable).append("&var3=").append(viewable) .append("\" >SWITCH IT ").append((editable) ? "NOT" : "") .append(" EDITABLE</a><br />\n"); Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/DictionaryTest.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/DictionaryTest.java 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/DictionaryTest.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -10,7 +10,7 @@ public void testDictionary() throws WikiException{ - WikiContext wikiContext = new WikiContext(plainUser.getName(), wikiEngine.getWikiType("html"), testWikiSession); + WikiContext wikiContext = new WikiContext(plainUser, wikiEngine.getWikiType("html"), testWikiSession); String page1 = createTestPage(plainUser, "1 page number 1"); String page2 = createTestPage(plainUser, "2 page number 2"); @@ -66,7 +66,7 @@ } public void testTranslating () { - WikiContext wikiContext = new WikiContext(plainUser.getName(), wikiEngine.getWikiType("edit"), testWikiSession); + WikiContext wikiContext = new WikiContext(plainUser, wikiEngine.getWikiType("edit"), testWikiSession); WikiPage sourceMain = wikiEngine.getByName("Main", null); Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/GetSavePageTest.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/GetSavePageTest.java 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/GetSavePageTest.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -9,7 +9,7 @@ public class GetSavePageTest extends WikiTest { public void testSaveGetPage() throws WikiException { - WikiContext wikiContext = new WikiContext(plainUser.getName(), wikiEngine.getWikiType("html"), testWikiSession); + WikiContext wikiContext = new WikiContext(plainUser, wikiEngine.getWikiType("html"), testWikiSession); String testPageName = createTestPage(plainUser, "This is simple conten [link] \\ Hello !"); @@ -42,7 +42,7 @@ }*/ public void testLocking() throws WikiException{ - WikiContext wikiContext = new WikiContext("test-user", wikiEngine.getWikiType("html"), testWikiSession); + WikiContext wikiContext = new WikiContext(plainUser, wikiEngine.getWikiType("html"), testWikiSession); WikiPage wikiPage = wikiEngine.getByName(createTestPage(plainUser, "some page content"), null); WikiPage wikiPage2 = wikiEngine.getByName(createTestPage(plainUser, "some page content"), null); Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/WikiTest.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/WikiTest.java 2005-10-21 19:17:03 UTC (rev 1428) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/WikiTest.java 2005-10-21 19:20:15 UTC (rev 1429) @@ -41,7 +41,7 @@ } protected String createTestPage(Credentials user, String pageContent) throws WikiException{ - WikiContext wikiContext = new WikiContext(user.getName(), wikiEngine.getWikiType("html"), testWikiSession); + WikiContext wikiContext = new WikiContext(user, wikiEngine.getWikiType("html"), testWikiSession); if (wikiContext == null) { fail("There is no html wikitype"); |
From: <jbo...@li...> - 2005-10-21 19:17:14
|
Author: dam...@jb... Date: 2005-10-21 15:17:03 -0400 (Fri, 21 Oct 2005) New Revision: 1428 Modified: trunk/forge/portal-extensions/jboss-as-binaries/to-copy/server/all/conf/log4j.xml Log: Added the log4j.xml entries to filter out extra logging. See: http://jira.jboss.com/jira/browse/JBLAB-412 Modified: trunk/forge/portal-extensions/jboss-as-binaries/to-copy/server/all/conf/log4j.xml =================================================================== --- trunk/forge/portal-extensions/jboss-as-binaries/to-copy/server/all/conf/log4j.xml 2005-10-21 19:05:44 UTC (rev 1427) +++ trunk/forge/portal-extensions/jboss-as-binaries/to-copy/server/all/conf/log4j.xml 2005-10-21 19:17:03 UTC (rev 1428) @@ -159,6 +159,18 @@ <!-- Limit categories --> <!-- ================ --> +<category name="org.jboss.ejb.txtimer"> + <priority value="ERROR" /> +</category> + +<category name="org.blojsom.blog"> + <priority value="WARN" /> +</category> +<category name="org.blojsom.plugin"> + <priority value="WARN" /> +</category> + + <!-- Limit the org.apache category to INFO as its DEBUG is verbose --> <category name="org.apache"> <priority value="INFO"/> |
From: <jbo...@li...> - 2005-10-21 19:05:50
|
Author: dam...@jb... Date: 2005-10-21 15:05:44 -0400 (Fri, 21 Oct 2005) New Revision: 1427 Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties.sample trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java Log: Commented out a system.out because it is stupid stupid stupid. See: http://jira.jboss.com/jira/browse/JBWIKI-64 Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties.sample =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties.sample 2005-10-21 16:08:55 UTC (rev 1426) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties.sample 2005-10-21 19:05:44 UTC (rev 1427) @@ -1,7 +1,9 @@ # FileDataSource configuration file # pathToMedia - points, where JSPWiki file structure is situated -pathToMedia = +#pathToMedia=/usr/local/forge/wiki +pathToMedia= # pathToAttachements - points, where JSPWiki attachemets are situated -pathToAttachements = +#pathToAttachements=/usr/local/forge/wiki +pathToAttachements= Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java 2005-10-21 16:08:55 UTC (rev 1426) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java 2005-10-21 19:05:44 UTC (rev 1427) @@ -30,7 +30,7 @@ @Override public void run() { while (runs) { - System.out.println("Checking watcher for page "+watchedPage.getName()+" with sessionid: "+editSessionId); + //System.out.println("Checking watcher for page "+watchedPage.getName()+" with sessionid: "+editSessionId); Date now = new Date(); if (now.after(endTime)) { |
From: <jbo...@li...> - 2005-10-21 16:09:09
|
Author: adamw Date: 2005-10-21 12:08:55 -0400 (Fri, 21 Oct 2005) New Revision: 1426 Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/Projects.java trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java Log: http://jira.jboss.com/jira/browse/JBLAB-408 : Implementation contd. Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/Projects.java =================================================================== --- trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/Projects.java 2005-10-21 14:31:30 UTC (rev 1425) +++ trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/Projects.java 2005-10-21 16:08:55 UTC (rev 1426) @@ -8,6 +8,8 @@ *****************************************/ package org.jboss.forge.common.projects; +import java.util.Set; + import org.jboss.forge.common.ForgeHelper; import org.jboss.forge.common.projects.permissions.PermissionsChecker; import org.jboss.portal.common.context.DelegateContext; @@ -76,7 +78,8 @@ */ public DelegateContext getLevelContext(PermissionsChecker pc, String id) { return getProjectsDescriptor() - .getOutsidePropertyContext(pc, "level", id); + .getOutsidePropertyContext(pc, + ProjectsDescriptor.LEVEL_ATTRIBUTE, id); } /** @@ -138,7 +141,7 @@ if (pd == null) return null; - return pd.getProperty("level"); + return pd.getProperty(ProjectsDescriptor.LEVEL_ATTRIBUTE); } /** @@ -162,6 +165,19 @@ } /** + * Gets ids of all projects on the given level, accessible with the given + * permissions checker. + * @param pc Permissions checker to use. + * @param projectLevel Level of the projects to return. Null, if all + * projects are to be returned. + * @return A set of project ids on the given level accessible with the + * given permissions checker. + */ + public Set<String> getProjectIds(PermissionsChecker pc, String projectLevel) { + return getProjectsDescriptor().getProjectIds(pc, projectLevel); + } + + /** * Searches for the given string in project's names and descriptions. * * @param pc Permissions checker to use. Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java =================================================================== --- trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java 2005-10-21 14:31:30 UTC (rev 1425) +++ trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsDescriptor.java 2005-10-21 16:08:55 UTC (rev 1426) @@ -55,6 +55,8 @@ static final String LINK_ELEMENT = "link"; static final String TYPE_ATTRIBUTE = "type"; + + static final String LEVEL_ATTRIBUTE = "level"; private static final Logger log = Logger .getLogger(ProjectsDescriptor.class); @@ -483,4 +485,29 @@ return toFill; } + + /** + * Gets ids of all projects on the given level, accessible with the given + * permissions checker. + * @param pc Permissions checker to use. + * @param projectLevel Level of the projects to return. Null, if all + * projects are to be returned. + * @return A set of project ids on the given level accessible with the + * given permissions checker. + */ + public Set<String> getProjectIds(PermissionsChecker pc, String projectLevel) { + Set<String> ret = new HashSet<String>(); + + for (String projectId : projects.keySet()) { + ProjectDescriptor project = projects.get(projectId); + if ((project.permissionAllowed(pc)) && + ((projectLevel == null) || + (projectLevel.equals(project.getProperty( + LEVEL_ATTRIBUTE))))) { + ret.add(projectId); + } + } + + return ret; + } } Modified: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java 2005-10-21 14:31:30 UTC (rev 1425) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java 2005-10-21 16:08:55 UTC (rev 1426) @@ -1,11 +1,15 @@ package org.jboss.forge.feeds; import java.io.IOException; +import java.net.URL; import java.util.HashMap; import java.util.Map; import org.apache.xerces.parsers.DOMParser; +import org.jboss.forge.common.ForgeHelper; import org.jboss.forge.common.XmlTools; +import org.jboss.forge.common.projects.ProjectsHelper; +import org.jboss.forge.common.projects.permissions.NullPermissionsChecker; import org.jboss.logging.Logger; import org.jboss.shotoku.ContentManager; import org.w3c.dom.Node; @@ -28,6 +32,20 @@ private final static String TYPE_PARAM = "${type}"; private final static String PROJECT_PARAM = "${project}"; + static synchronized FeedsDescriptor getInstance(final String portalName) { + FeedsDescriptor desc = (FeedsDescriptor) ForgeHelper + .getForgeManagement().getFromCache(portalName, + FeedsDescriptor.class.getName()); + + if (desc == null) + desc = (FeedsDescriptor) ForgeHelper.getForgeManagement() + .addNodeWatcher(portalName, + FeedsDescriptor.class.getName(), + new FeedsNodeWatcher()); + + return desc; + } + /** * <code>feeds</code> - a map of ready feeds: * feed name -> (feed type -> feed)). @@ -66,7 +84,7 @@ feeds = new HashMap<String, Map<String, Feed>>(); // Firstly - the remote feeds. - generateRemoteFeeds(remoteFeedDefs); + generateRemoteFeeds(portalName, remoteFeedDefs); // TODO add shotoku feeds @@ -74,13 +92,24 @@ } - private void generateRemoteFeeds(Map<String, Node> feedDefs) { + private void addFeed(String name, String type, Feed feed) { + Map<String, Feed> typesMap = feeds.get(name); + if (typesMap == null) { + typesMap = new HashMap<String, Feed>(); + feeds.put(name, typesMap); + } + + typesMap.put(type, feed); + } + + private void generateRemoteFeeds(String portalName, Map<String, Node> feedDefs) { for (String feedName : feedDefs.keySet()) { Node feedNode = feedDefs.get(feedName); String addressAttr = XmlTools.getAttributeValue(feedNode, "address"); String typesAttr = XmlTools.getAttributeValue(feedNode, "type"); String projectLevelAttr = XmlTools.getAttributeValue(feedNode, "project-level"); + // Generating the type of feeds that have been requested. String[] types; if (ALL_TOKENS.equals(typesAttr)) { types = FeedFactory.getAllFeedTypes(); @@ -88,8 +117,35 @@ types = typesAttr.split("[" + TOKENS_DELIMITER + "]"); } + // Generating the projects for which the feeds have been requested, + // if any. + String[] projects; + if (projectLevelAttr != null) { + projects = ProjectsHelper.getProjects( + portalName).getProjectIds(new NullPermissionsChecker(), + projectLevelAttr).toArray(new String[0]); + } else { + projects = new String[] { "" }; + } + + // For each type, project pair, generating a feed and storing it in + // the feeds map. for (String type : types) { - String address = addressAttr.replace(TYPE_PARAM, type); + for (String project : projects) { + String address = addressAttr.replace(TYPE_PARAM, type). + replace(PROJECT_PARAM, project); + + try { + Feed newFeed = FeedFactory.getNewFeed(type); + newFeed.generateFromUrl(new URL(address)); + addFeed(feedName.replace(PROJECT_PARAM, project), type, + newFeed); + } catch (Exception e) { + log.warn("Can't add feeed " + address + " : " + type + + ".", e); + e.printStackTrace(); + } + } } } } |
From: <jbo...@li...> - 2005-10-21 14:31:39
|
Author: szimano Date: 2005-10-21 10:31:30 -0400 (Fri, 21 Oct 2005) New Revision: 1425 Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/WikiTypes.xml trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java Log: Attachment deleting issues: http://jira.jboss.com/jira/browse/JBWIKI-63 http://jira.jboss.com/jira/browse/JBWIKI-62 Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/WikiTypes.xml =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/WikiTypes.xml 2005-10-21 09:11:14 UTC (rev 1424) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/WikiTypes.xml 2005-10-21 14:31:30 UTC (rev 1425) @@ -17,14 +17,14 @@ <class>org.jboss.wiki.plugins.SubpagesListPlugin</class> </plugin> <plugin> + <name>adminConsole</name> + <class>org.jboss.wiki.plugins.AdminConsolePlugin</class> + </plugin> + <plugin> <name>attachmentList</name> <class>org.jboss.wiki.plugins.AttachmentListPlugin</class> </plugin> <plugin> - <name>adminConsole</name> - <class>org.jboss.wiki.plugins.AdminConsolePlugin</class> - </plugin> - <plugin> <name>wikiToHtmlTranslator</name> <class>org.jboss.wiki.plugins.HTMLTranslatorParts</class> </plugin> Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java 2005-10-21 09:11:14 UTC (rev 1424) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java 2005-10-21 14:31:30 UTC (rev 1425) @@ -665,7 +665,7 @@ File attDir = new File(pathToAttachments + "/" + page.getName() + "-att"); - if (attDir.exists()) { + if (attDir.exists() && (attDir.listFiles().length > 0)) { File[] attachements = attDir.listFiles(); for (int i = 0; i < attachements.length; i++) { |
From: <jbo...@li...> - 2005-10-21 09:11:33
|
Author: adamw Date: 2005-10-21 05:11:14 -0400 (Fri, 21 Oct 2005) New Revision: 1424 Added: trunk/forge/portal-extensions/binaries/maven-repo-addons/rome/ trunk/forge/portal-extensions/binaries/maven-repo-addons/rome/jars/ trunk/forge/portal-extensions/binaries/maven-repo-addons/rome/jars/rome-0.7.jar trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RomeBasedFeed.java Removed: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AggregatedFeed.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AggregatedFileBasedFeed.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedElement.java Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java trunk/forge/portal-extensions/forge-feeds/project.xml trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java trunk/forge/portal-extensions/forge-prj-downloads/project.xml trunk/forge/portal-extensions/forge-prj-info/project.xml Log: http://jira.jboss.com/jira/browse/JBLAB-408 : Rome, FeedsDescriptor start Added: trunk/forge/portal-extensions/binaries/maven-repo-addons/rome/jars/rome-0.7.jar =================================================================== (Binary files differ) Property changes on: trunk/forge/portal-extensions/binaries/maven-repo-addons/rome/jars/rome-0.7.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java =================================================================== --- trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java 2005-10-21 07:54:10 UTC (rev 1423) +++ trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java 2005-10-21 09:11:14 UTC (rev 1424) @@ -110,6 +110,26 @@ return ""; } } + + /** + * Gets a node that is a child node of the given one and has the given + * name. + * @param root Node which children are to be searched. + * @param name Name of the searched node. + * @return A child node with the given name or null, if no such node + * exists. + */ + public static Node getFirstNodeWithName(Node root, String name) { + NodeList children = root.getChildNodes(); + + for (int i = 0; i < children.getLength(); i++) { + Node n = children.item(i); + if (name.equalsIgnoreCase(n.getNodeName())) + return n; + } + + return null; + } /** * Reads text contained in a tag of the form <tag>text</tag>. Modified: trunk/forge/portal-extensions/forge-feeds/project.xml =================================================================== --- trunk/forge/portal-extensions/forge-feeds/project.xml 2005-10-21 07:54:10 UTC (rev 1423) +++ trunk/forge/portal-extensions/forge-feeds/project.xml 2005-10-21 09:11:14 UTC (rev 1424) @@ -29,5 +29,39 @@ <version>1.0</version> <jar>javax.servlet.jar</jar> </dependency> + + <dependency> + <id>jdom</id> + <version>1.0</version> + <properties> + <war.bundle>true</war.bundle> + </properties> + </dependency> + + <dependency> + <id>rome</id> + <version>0.7</version> + <properties> + <war.bundle>true</war.bundle> + </properties> + </dependency> + + <dependency> + <groupId>xerces</groupId> + <artifactId>xercesImpl</artifactId> + <version>2.6.2</version> + </dependency> + + <dependency> + <groupId>xerces</groupId> + <artifactId>xmlParserAPIs</artifactId> + <version>2.6.2</version> + </dependency> + + <dependency> + <groupId>xalan</groupId> + <artifactId>xalan</artifactId> + <version>2.6.0</version> + </dependency> </dependencies> </project> Deleted: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AggregatedFeed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AggregatedFeed.java 2005-10-21 07:54:10 UTC (rev 1423) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AggregatedFeed.java 2005-10-21 09:11:14 UTC (rev 1424) @@ -1,5 +0,0 @@ -package org.jboss.forge.feeds; - -public interface AggregatedFeed { - public Feed getFeed(Feed[] toAggregate); -} Deleted: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AggregatedFileBasedFeed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AggregatedFileBasedFeed.java 2005-10-21 07:54:10 UTC (rev 1423) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AggregatedFileBasedFeed.java 2005-10-21 09:11:14 UTC (rev 1424) @@ -1,53 +0,0 @@ -package org.jboss.forge.feeds; - -import java.io.File; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -public abstract class AggregatedFileBasedFeed implements AggregatedFeed { - private File file; - - public AggregatedFileBasedFeed(File file) { - this.file = file; - } - - protected abstract Feed createNewFeed(File file); - protected abstract void appendHeader(StringBuffer sb, List<FeedElement> elements); - protected abstract void appendFooter(StringBuffer sb); - - public Feed getFeed(Feed[] toAggregate) { - StringBuffer sb = new StringBuffer(); - - List<FeedElement> allElements = new ArrayList<FeedElement>(); - for (Feed feed : toAggregate) { - allElements.addAll(feed.getElements()); - } - - Collections.sort(allElements, new Comparator<FeedElement>() { - public int compare(FeedElement el1, FeedElement el2) { - return el1.getDate().compareTo(el2.getDate()); - } - }); - - appendHeader(sb, allElements); - - for (FeedElement feedElement : allElements) { - sb.append(feedElement.getContent()); - } - - appendFooter(sb); - - try { - file.createNewFile(); - PrintWriter pw = new PrintWriter(file); - pw.append(sb); - } catch (Exception e) { - // What can we do ... - } - - return createNewFeed(file); - } -} Modified: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java 2005-10-21 07:54:10 UTC (rev 1423) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java 2005-10-21 09:11:14 UTC (rev 1424) @@ -2,9 +2,37 @@ import java.io.IOException; import java.io.OutputStream; -import java.util.List; +import java.net.URL; +import com.sun.syndication.io.FeedException; +import com.sun.syndication.io.XmlReader; + +/** + * An interface that should be implemented by classes representing data feeds. + * @author adamw + */ public interface Feed { + /** + * Writes the feed to the given output stream. + * @param os Output stream to write to. + * @throws IOException + */ public void write(OutputStream os) throws IOException; - public List<FeedElement> getElements(); + /** + * Generates a feed getting content from the given url. + * @param url Url from which to get the content. + */ + public void generateFromUrl(URL url) throws IOException; + /** + * Generates a feed using the given feeds. + * @param feeds Feeds which should be aggregated into a single + * feed. + */ + public void generateFromFeeds(Feed[] feeds) + throws IllegalArgumentException, FeedException, IOException; + /** + * Gets a xml reader for the given feed. + * @return A xml read for the given feed. + */ + public XmlReader getXmlReader() throws IOException; } Deleted: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedElement.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedElement.java 2005-10-21 07:54:10 UTC (rev 1423) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedElement.java 2005-10-21 09:11:14 UTC (rev 1424) @@ -1,21 +0,0 @@ -package org.jboss.forge.feeds; - -import java.util.Date; - -public class FeedElement { - private Date date; - private String content; - - public FeedElement(Date date, String content) { - this.date = date; - this.content = content; - } - - public String getContent() { - return content; - } - - public Date getDate() { - return date; - } -} Added: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java 2005-10-21 07:54:10 UTC (rev 1423) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedFactory.java 2005-10-21 09:11:14 UTC (rev 1424) @@ -0,0 +1,28 @@ +package org.jboss.forge.feeds; + +import java.util.HashMap; +import java.util.Map; + +public class FeedFactory { + private static Map<String, Class> feedClasses; + + static { + feedClasses = new HashMap<String, Class>(); + feedClasses.put("rss2", Rss2Feed.class); + } + + public static Feed getNewFeed(String type) { + Class feedClass = feedClasses.get(type); + if (feedClass == null) return null; + + try { + return (Feed) feedClass.newInstance(); + } catch (Exception e) { + return null; + } + } + + public static String[] getAllFeedTypes() { + return feedClasses.keySet().toArray(new String[0]); + } +} Added: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java 2005-10-21 07:54:10 UTC (rev 1423) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsDescriptor.java 2005-10-21 09:11:14 UTC (rev 1424) @@ -0,0 +1,114 @@ +package org.jboss.forge.feeds; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import org.apache.xerces.parsers.DOMParser; +import org.jboss.forge.common.XmlTools; +import org.jboss.logging.Logger; +import org.jboss.shotoku.ContentManager; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; + +public class FeedsDescriptor { + private static final Logger log = Logger.getLogger(FeedsDescriptor.class); + + private final static String FEEDS_DIRECTORY = "feeds"; + private final static String FEEDS_NODE_ENDING = "-feeds.xml"; + private final static String REM_FEED_TAG = "remote-feed"; + private final static String AGG_FEED_TAG = "aggregated-feed"; + private final static String SHO_FEED_TAG = "shotoku-feed"; + + private final static String ALL_TOKENS = "*"; + private final static String TOKENS_DELIMITER = ","; + + private final static String TYPE_PARAM = "${type}"; + private final static String PROJECT_PARAM = "${project}"; + + /** + * <code>feeds</code> - a map of ready feeds: + * feed name -> (feed type -> feed)). + */ + private Map<String, Map<String, Feed>> feeds; + + public FeedsDescriptor(String portalName) { + ContentManager cm = ContentManager.getContentManager(portalName + + "/" + FEEDS_DIRECTORY); + + // Preparing maps which will hold feed definitions. + Map<String, Node> remoteFeedDefs = new HashMap<String, Node>(); + Map<String, Node> aggregatedFeedDefs = new HashMap<String, Node>(); + Map<String, Node> shotokuFeedDefs = new HashMap<String, Node>(); + + Map<String, Map<String, Node>> allFeedDefs = + new HashMap<String, Map<String, Node>>(); + + allFeedDefs.put(REM_FEED_TAG, remoteFeedDefs); + allFeedDefs.put(AGG_FEED_TAG, aggregatedFeedDefs); + allFeedDefs.put(SHO_FEED_TAG, shotokuFeedDefs); + + // Looking for file containing feed definitons and filling the maps. + for (org.jboss.shotoku.Node feedNode : cm.getRootDirectory().getNodes().toList()) { + if (feedNode.getName().endsWith(FEEDS_NODE_ENDING)) { + try { + addFeedDefinitions(allFeedDefs, feedNode); + } catch (Exception e) { + // We just don't add the feeds ... but log a warning. + log.warn("Can't add feed definitions.", e); + } + } + } + + // Creating the feeds. + feeds = new HashMap<String, Map<String, Feed>>(); + + // Firstly - the remote feeds. + generateRemoteFeeds(remoteFeedDefs); + + // TODO add shotoku feeds + + // After that, we can create the aggregated feeds. + + } + + private void generateRemoteFeeds(Map<String, Node> feedDefs) { + for (String feedName : feedDefs.keySet()) { + Node feedNode = feedDefs.get(feedName); + String addressAttr = XmlTools.getAttributeValue(feedNode, "address"); + String typesAttr = XmlTools.getAttributeValue(feedNode, "type"); + String projectLevelAttr = XmlTools.getAttributeValue(feedNode, "project-level"); + + String[] types; + if (ALL_TOKENS.equals(typesAttr)) { + types = FeedFactory.getAllFeedTypes(); + } else { + types = typesAttr.split("[" + TOKENS_DELIMITER + "]"); + } + + for (String type : types) { + String address = addressAttr.replace(TYPE_PARAM, type); + } + } + } + + private void addFeedDefinitions( + Map<String, Map<String, Node>> feedDefinitions, + org.jboss.shotoku.Node node) throws SAXException, IOException { + DOMParser parser = new DOMParser(); + parser.parse(new InputSource(node.getContentInputStream())); + Node root = parser.getDocument().getDocumentElement(); + + Node n; + NodeList nodes = root.getChildNodes(); + + for (int i = 0; i < nodes.getLength(); i++) { + n = nodes.item(i); + if (feedDefinitions.get(n.getNodeName()) != null) + feedDefinitions.get(n.getNodeName()).put( + XmlTools.getAttributeValue(n, "name"), n); + } + } +} Modified: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java 2005-10-21 07:54:10 UTC (rev 1423) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java 2005-10-21 09:11:14 UTC (rev 1424) @@ -9,19 +9,16 @@ import java.io.InputStream; import java.io.OutputStream; import java.net.URL; -import java.util.List; +import com.sun.syndication.io.XmlReader; + public abstract class FileBasedFeed implements Feed { private final static int BUF_SIZE = 32768; private File file; - private List<FeedElement> elements; - - protected abstract List<FeedElement> generateElements(); - + public FileBasedFeed(File file) { this.file = file; - elements = null; } private void transfer(InputStream is, OutputStream os) throws IOException { @@ -31,11 +28,9 @@ os.write(buffer, 0, read); } - public FileBasedFeed(File file, URL url) throws IOException { - this(file); - + public void generateFromUrl(URL url) throws IOException { file.createNewFile(); - + InputStream is = url.openStream(); OutputStream os = new BufferedOutputStream(new FileOutputStream(file)); @@ -45,14 +40,6 @@ os.close(); } - public List<FeedElement> getElements() { - if (elements == null) { - elements = generateElements(); - } - - return elements; - } - public void write(OutputStream os) throws IOException { InputStream is = new BufferedInputStream(new FileInputStream(file)); @@ -60,6 +47,10 @@ is.close(); } + public XmlReader getXmlReader() throws IOException { + return new XmlReader(file); + } + protected File getFile() { return file; } Added: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RomeBasedFeed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RomeBasedFeed.java 2005-10-21 07:54:10 UTC (rev 1423) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RomeBasedFeed.java 2005-10-21 09:11:14 UTC (rev 1424) @@ -0,0 +1,45 @@ +package org.jboss.forge.feeds; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import com.sun.syndication.feed.synd.SyndFeed; +import com.sun.syndication.feed.synd.SyndFeedImpl; +import com.sun.syndication.io.FeedException; +import com.sun.syndication.io.SyndFeedInput; +import com.sun.syndication.io.SyndFeedOutput; + +public abstract class RomeBasedFeed extends FileBasedFeed { + public RomeBasedFeed(File file) { + super(file); + } + + protected abstract void setFeedType(SyndFeed feed); + + @SuppressWarnings("unchecked") + public void generateFromFeeds(Feed[] feeds) throws IllegalArgumentException, FeedException, IOException { + SyndFeed syndFeed = new SyndFeedImpl(); + + setFeedType(syndFeed); + + syndFeed.setTitle("Aggregated Feed"); + syndFeed.setDescription("Anonymous Aggregated Feed"); + syndFeed.setAuthor("anonymous"); + syndFeed.setLink("http://www.anonymous.com"); + + List entries = new ArrayList(); + syndFeed.setEntries(entries); + + for (Feed feed : feeds) { + SyndFeedInput input = new SyndFeedInput(); + SyndFeed inFeed = input.build(feed.getXmlReader()); + + entries.addAll(inFeed.getEntries()); + } + + SyndFeedOutput output = new SyndFeedOutput(); + output.output(syndFeed, getFile()); + } +} Modified: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java 2005-10-21 07:54:10 UTC (rev 1423) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java 2005-10-21 09:11:14 UTC (rev 1424) @@ -2,21 +2,16 @@ import java.io.File; import java.io.IOException; -import java.net.URL; -import java.util.List; -public class Rss2Feed extends FileBasedFeed { - public Rss2Feed(File file, URL url) throws IOException { - super(file, url); - } +import com.sun.syndication.feed.synd.SyndFeed; - public Rss2Feed(File file) { +public class Rss2Feed extends RomeBasedFeed { + public Rss2Feed(File file) throws IOException { super(file); } @Override - protected List<FeedElement> generateElements() { - - return null; + protected void setFeedType(SyndFeed feed) { + feed.setFeedType("rss_2.0"); } } Modified: trunk/forge/portal-extensions/forge-prj-downloads/project.xml =================================================================== --- trunk/forge/portal-extensions/forge-prj-downloads/project.xml 2005-10-21 07:54:10 UTC (rev 1423) +++ trunk/forge/portal-extensions/forge-prj-downloads/project.xml 2005-10-21 09:11:14 UTC (rev 1424) @@ -17,21 +17,7 @@ <description></description> <dependencies> - <dependency> - <groupId>tmate</groupId> - <artifactId>javasvn</artifactId> - <version>1.0</version> - <jar>javasvn.jar</jar> - </dependency> - <dependency> - <groupId>tmate</groupId> - <artifactId>jsch</artifactId> - <version>1.0</version> - <jar>jsch.jar</jar> - </dependency> - - <dependency> <groupId>jboss-forge</groupId> <artifactId>forge-common</artifactId> <version>1.0</version> Modified: trunk/forge/portal-extensions/forge-prj-info/project.xml =================================================================== --- trunk/forge/portal-extensions/forge-prj-info/project.xml 2005-10-21 07:54:10 UTC (rev 1423) +++ trunk/forge/portal-extensions/forge-prj-info/project.xml 2005-10-21 09:11:14 UTC (rev 1424) @@ -17,21 +17,7 @@ <description></description> <dependencies> - <dependency> - <groupId>tmate</groupId> - <artifactId>javasvn</artifactId> - <version>1.0</version> - <jar>javasvn.jar</jar> - </dependency> - <dependency> - <groupId>tmate</groupId> - <artifactId>jsch</artifactId> - <version>1.0</version> - <jar>jsch.jar</jar> - </dependency> - - <dependency> <groupId>jboss-forge</groupId> <artifactId>forge-common</artifactId> <version>1.0</version> |
From: <jbo...@li...> - 2005-10-21 07:54:22
|
Author: mla...@jb... Date: 2005-10-21 03:54:10 -0400 (Fri, 21 Oct 2005) New Revision: 1423 Added: trunk/labs/jbossweb/xdocs/images/design/netoodiag.png trunk/labs/jbossweb/xdocs/sources/netoodiag.vsd Log: Added .NET oo diagram Added: trunk/labs/jbossweb/xdocs/images/design/netoodiag.png =================================================================== (Binary files differ) Property changes on: trunk/labs/jbossweb/xdocs/images/design/netoodiag.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/labs/jbossweb/xdocs/sources/netoodiag.vsd =================================================================== (Binary files differ) Property changes on: trunk/labs/jbossweb/xdocs/sources/netoodiag.vsd ___________________________________________________________________ Name: svn:mime-type + application/octet-stream |
From: <jbo...@li...> - 2005-10-21 07:48:54
|
Author: mla...@jb... Date: 2005-10-21 03:48:41 -0400 (Fri, 21 Oct 2005) New Revision: 1422 Removed: trunk/labs/jbossweb/java/ Log: Moved to src/share/classes |
From: <jbo...@li...> - 2005-10-21 07:48:13
|
Author: mla...@jb... Date: 2005-10-21 03:48:02 -0400 (Fri, 21 Oct 2005) New Revision: 1421 Removed: trunk/labs/jbossweb/native/ Log: Moved to src/native |
From: <jbo...@li...> - 2005-10-20 22:01:46
|
Author: szimano Date: 2005-10-20 18:01:38 -0400 (Thu, 20 Oct 2005) New Revision: 1419 Modified: trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiContext.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AdminConsolePlugin.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/DictionaryTest.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/GetSavePageTest.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/WikiTest.java Log: http://jira.jboss.com/jira/browse/JBWIKI-61 http://jira.jboss.com/jira/browse/JBWIKI-39 fixed bugs Modified: trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java 2005-10-20 21:08:41 UTC (rev 1418) +++ trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java 2005-10-20 22:01:38 UTC (rev 1419) @@ -122,7 +122,7 @@ } } - if (rReq.getParameter("page") != null) { + if (rReq.getParameter("page") != null && (rReq.getParameter("page").length() > 0)) { StringBuffer sBuf = new StringBuffer(rReq.getParameter("page")); if (Character.isLowerCase(sBuf.charAt(0))) { @@ -293,7 +293,7 @@ showPage = false; WikiContext editWikiContext = new WikiContext( - credentials.getName(), wikiEngine.getWikiType("edit"), + credentials, wikiEngine.getWikiType("edit"), wikiSession); pageToShow = wikiEngine.getByName(wikiPage, editWikiContext); @@ -381,7 +381,7 @@ // System.out.println("Getting type: " + type); } - wikiContext = new WikiContext(credentials.getName(), wikiEngine + wikiContext = new WikiContext(credentials, wikiEngine .getWikiType(type), new PortletWikiSession(rReq .getPortletSession())); Modified: trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java 2005-10-20 21:08:41 UTC (rev 1418) +++ trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java 2005-10-20 22:01:38 UTC (rev 1419) @@ -8,6 +8,7 @@ *****************************************/ package org.jboss.wiki.fileaccess; +import java.awt.image.SampleModel; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; @@ -27,6 +28,7 @@ import org.jboss.wiki.FileDataSource; import org.jboss.wiki.ServletWikiSession; +import org.jboss.wiki.SimpleCredentials; import org.jboss.wiki.WikiAttachment; import org.jboss.wiki.WikiCommon; import org.jboss.wiki.WikiContext; @@ -226,7 +228,7 @@ pageName = pageName.substring(1); WikiPage page = wikiEngine.getByName(pageName, - new WikiContext("", wikiEngine + new WikiContext(new SimpleCredentials(""), wikiEngine .getWikiType(wikiTypeName), wikiSession)); httpResponse.setContentType(wikiEngine Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiContext.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiContext.java 2005-10-20 21:08:41 UTC (rev 1418) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiContext.java 2005-10-20 22:01:38 UTC (rev 1419) @@ -28,7 +28,7 @@ * <p>Represents ...</p> * */ - private String user; + private Credentials user; /** * <p>Represents ...</p> @@ -41,7 +41,7 @@ */ private WikiSession wikiSession; - public WikiContext(String user, WikiType requestedType, WikiSession wikiSession) { + public WikiContext(Credentials user, WikiType requestedType, WikiSession wikiSession) { this.user = user; this.requestedType = requestedType; this.wikiSession = wikiSession; @@ -52,7 +52,7 @@ } - public String getUser() { + public Credentials getUser() { return user; } Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2005-10-20 21:08:41 UTC (rev 1418) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2005-10-20 22:01:38 UTC (rev 1419) @@ -35,6 +35,8 @@ import org.jboss.wiki.exceptions.PageRenamingException; import org.jboss.wiki.exceptions.WikiException; +import sun.security.krb5.internal.p; + import java.io.File; /** @@ -72,8 +74,6 @@ private WikiPageDictionary wikiPageDictionary; - private String adminUserName = "admin"; - WikiPage noSuchPage; private Integer sessionIdExpireTime = 120; @@ -180,7 +180,7 @@ } if ((wikiContext != null) && (ret != null) && (!ret.isViewable()) - && (!wikiContext.getUser().equals(adminUserName))) { + && (!wikiContext.getUser().isAdmin())) { s.release(); return new WikiPage(realPageName, null, "I am sorry, but you are not allowed to see this page", 0, Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AdminConsolePlugin.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AdminConsolePlugin.java 2005-10-20 21:08:41 UTC (rev 1418) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AdminConsolePlugin.java 2005-10-20 22:01:38 UTC (rev 1419) @@ -145,7 +145,7 @@ adminConsole.append("This page ").append( (editable) ? "is" : "isn't").append(" editable "); adminConsole.append("<a href=\"").append(actionURL) - .append("&page=").append("&var1=chmod").append("&var2=") + .append("&page=").append(wikiPage.getName()).append("&var1=chmod").append("&var2=") .append(!editable).append("&var3=").append(viewable) .append("\" >SWITCH IT ").append((editable) ? "NOT" : "") .append(" EDITABLE</a><br />\n"); Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/DictionaryTest.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/DictionaryTest.java 2005-10-20 21:08:41 UTC (rev 1418) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/DictionaryTest.java 2005-10-20 22:01:38 UTC (rev 1419) @@ -10,7 +10,7 @@ public void testDictionary() throws WikiException{ - WikiContext wikiContext = new WikiContext(plainUser.getName(), wikiEngine.getWikiType("html"), testWikiSession); + WikiContext wikiContext = new WikiContext(plainUser, wikiEngine.getWikiType("html"), testWikiSession); String page1 = createTestPage(plainUser, "1 page number 1"); String page2 = createTestPage(plainUser, "2 page number 2"); @@ -66,7 +66,7 @@ } public void testTranslating () { - WikiContext wikiContext = new WikiContext(plainUser.getName(), wikiEngine.getWikiType("edit"), testWikiSession); + WikiContext wikiContext = new WikiContext(plainUser, wikiEngine.getWikiType("edit"), testWikiSession); WikiPage sourceMain = wikiEngine.getByName("Main", null); Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/GetSavePageTest.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/GetSavePageTest.java 2005-10-20 21:08:41 UTC (rev 1418) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/GetSavePageTest.java 2005-10-20 22:01:38 UTC (rev 1419) @@ -9,7 +9,7 @@ public class GetSavePageTest extends WikiTest { public void testSaveGetPage() throws WikiException { - WikiContext wikiContext = new WikiContext(plainUser.getName(), wikiEngine.getWikiType("html"), testWikiSession); + WikiContext wikiContext = new WikiContext(plainUser, wikiEngine.getWikiType("html"), testWikiSession); String testPageName = createTestPage(plainUser, "This is simple conten [link] \\ Hello !"); @@ -42,7 +42,7 @@ }*/ public void testLocking() throws WikiException{ - WikiContext wikiContext = new WikiContext("test-user", wikiEngine.getWikiType("html"), testWikiSession); + WikiContext wikiContext = new WikiContext(plainUser, wikiEngine.getWikiType("html"), testWikiSession); WikiPage wikiPage = wikiEngine.getByName(createTestPage(plainUser, "some page content"), null); WikiPage wikiPage2 = wikiEngine.getByName(createTestPage(plainUser, "some page content"), null); Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/WikiTest.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/WikiTest.java 2005-10-20 21:08:41 UTC (rev 1418) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/WikiTest.java 2005-10-20 22:01:38 UTC (rev 1419) @@ -41,7 +41,7 @@ } protected String createTestPage(Credentials user, String pageContent) throws WikiException{ - WikiContext wikiContext = new WikiContext(user.getName(), wikiEngine.getWikiType("html"), testWikiSession); + WikiContext wikiContext = new WikiContext(user, wikiEngine.getWikiType("html"), testWikiSession); if (wikiContext == null) { fail("There is no html wikitype"); |
From: <jbo...@li...> - 2005-10-20 21:08:50
|
Author: adamw Date: 2005-10-20 17:08:41 -0400 (Thu, 20 Oct 2005) New Revision: 1418 Added: trunk/forge/portal-extensions/forge-feeds/src/java/org/ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AggregatedFeed.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AggregatedFileBasedFeed.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedElement.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java Log: http://jira.jboss.com/jira/browse/JBLAB-408 : first classes Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java =================================================================== --- trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java 2005-10-20 20:16:00 UTC (rev 1417) +++ trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/XmlTools.java 2005-10-20 21:08:41 UTC (rev 1418) @@ -84,8 +84,34 @@ return buf.toString(); } + + /** + * Reads and returns a HTML block contained in the children of the specified + * node with a default xml -> html transformer. + * @param root Node from which's children to get the HTML block. + * @return A string representation of the html contained in the given + * node. + */ + public static String unmarshallHtml(Node root) { + return unmarshallHtml(root, new DomToXmlTransformer()); + } /** + * Reads and returns a xml block contained in the entire specified + * node. + * @param root Node from which's to get the xml block. + * @return A string representation of the xml contained in the given + * node, including this node's representation. + */ + public static String unmarshallXml(Node root) { + try { + return new DomToXmlTransformer().transformNode(root); + } catch (TransformerException e) { + return ""; + } + } + + /** * Reads text contained in a tag of the form <tag>text</tag>. * @param textNode Node to read text from. * @return Text contained in the given node. Added: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AggregatedFeed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AggregatedFeed.java 2005-10-20 20:16:00 UTC (rev 1417) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AggregatedFeed.java 2005-10-20 21:08:41 UTC (rev 1418) @@ -0,0 +1,5 @@ +package org.jboss.forge.feeds; + +public interface AggregatedFeed { + public Feed getFeed(Feed[] toAggregate); +} Added: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AggregatedFileBasedFeed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AggregatedFileBasedFeed.java 2005-10-20 20:16:00 UTC (rev 1417) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/AggregatedFileBasedFeed.java 2005-10-20 21:08:41 UTC (rev 1418) @@ -0,0 +1,53 @@ +package org.jboss.forge.feeds; + +import java.io.File; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +public abstract class AggregatedFileBasedFeed implements AggregatedFeed { + private File file; + + public AggregatedFileBasedFeed(File file) { + this.file = file; + } + + protected abstract Feed createNewFeed(File file); + protected abstract void appendHeader(StringBuffer sb, List<FeedElement> elements); + protected abstract void appendFooter(StringBuffer sb); + + public Feed getFeed(Feed[] toAggregate) { + StringBuffer sb = new StringBuffer(); + + List<FeedElement> allElements = new ArrayList<FeedElement>(); + for (Feed feed : toAggregate) { + allElements.addAll(feed.getElements()); + } + + Collections.sort(allElements, new Comparator<FeedElement>() { + public int compare(FeedElement el1, FeedElement el2) { + return el1.getDate().compareTo(el2.getDate()); + } + }); + + appendHeader(sb, allElements); + + for (FeedElement feedElement : allElements) { + sb.append(feedElement.getContent()); + } + + appendFooter(sb); + + try { + file.createNewFile(); + PrintWriter pw = new PrintWriter(file); + pw.append(sb); + } catch (Exception e) { + // What can we do ... + } + + return createNewFeed(file); + } +} Added: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java 2005-10-20 20:16:00 UTC (rev 1417) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Feed.java 2005-10-20 21:08:41 UTC (rev 1418) @@ -0,0 +1,10 @@ +package org.jboss.forge.feeds; + +import java.io.IOException; +import java.io.OutputStream; +import java.util.List; + +public interface Feed { + public void write(OutputStream os) throws IOException; + public List<FeedElement> getElements(); +} Added: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedElement.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedElement.java 2005-10-20 20:16:00 UTC (rev 1417) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedElement.java 2005-10-20 21:08:41 UTC (rev 1418) @@ -0,0 +1,21 @@ +package org.jboss.forge.feeds; + +import java.util.Date; + +public class FeedElement { + private Date date; + private String content; + + public FeedElement(Date date, String content) { + this.date = date; + this.content = content; + } + + public String getContent() { + return content; + } + + public Date getDate() { + return date; + } +} Added: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java 2005-10-20 20:16:00 UTC (rev 1417) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FeedsPortlet.java 2005-10-20 21:08:41 UTC (rev 1418) @@ -0,0 +1,20 @@ +package org.jboss.forge.feeds; + +import java.io.IOException; + +import javax.portlet.PortletException; +import javax.portlet.PortletSecurityException; + +import org.jboss.portlet.JBossPortlet; +import org.jboss.portlet.JBossRenderRequest; +import org.jboss.portlet.JBossRenderResponse; + +public class FeedsPortlet extends JBossPortlet { + + @Override + protected void doView(JBossRenderRequest request, JBossRenderResponse response) + throws PortletException, PortletSecurityException, IOException { + + } + +} Added: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java 2005-10-20 20:16:00 UTC (rev 1417) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/FileBasedFeed.java 2005-10-20 21:08:41 UTC (rev 1418) @@ -0,0 +1,66 @@ +package org.jboss.forge.feeds; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URL; +import java.util.List; + +public abstract class FileBasedFeed implements Feed { + private final static int BUF_SIZE = 32768; + + private File file; + private List<FeedElement> elements; + + protected abstract List<FeedElement> generateElements(); + + public FileBasedFeed(File file) { + this.file = file; + elements = null; + } + + private void transfer(InputStream is, OutputStream os) throws IOException { + byte[] buffer = new byte[BUF_SIZE]; + int read; + while ((read = is.read(buffer)) != -1) + os.write(buffer, 0, read); + } + + public FileBasedFeed(File file, URL url) throws IOException { + this(file); + + file.createNewFile(); + + InputStream is = url.openStream(); + OutputStream os = new BufferedOutputStream(new FileOutputStream(file)); + + transfer(is, os); + + is.close(); + os.close(); + } + + public List<FeedElement> getElements() { + if (elements == null) { + elements = generateElements(); + } + + return elements; + } + + public void write(OutputStream os) throws IOException { + InputStream is = new BufferedInputStream(new FileInputStream(file)); + + transfer(is, os); + is.close(); + } + + protected File getFile() { + return file; + } +} Added: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java =================================================================== --- trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java 2005-10-20 20:16:00 UTC (rev 1417) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/Rss2Feed.java 2005-10-20 21:08:41 UTC (rev 1418) @@ -0,0 +1,22 @@ +package org.jboss.forge.feeds; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.util.List; + +public class Rss2Feed extends FileBasedFeed { + public Rss2Feed(File file, URL url) throws IOException { + super(file, url); + } + + public Rss2Feed(File file) { + super(file); + } + + @Override + protected List<FeedElement> generateElements() { + + return null; + } +} |
From: <jbo...@li...> - 2005-10-20 20:16:10
|
Author: dam...@jb... Date: 2005-10-20 16:16:00 -0400 (Thu, 20 Oct 2005) New Revision: 1417 Added: qa/forge/portal-extensions/jbosswiki/wiki-common/src/etc/WikiInsidePlugins.xml Removed: qa/forge/portal-extensions/jbosswiki/wiki-common/doc/ qa/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/WikiInsidePlugins.xml Modified: qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/AttachmentDataSource.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/Credentials.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/JBossPortalCredentials.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/MediaDataSource.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/SimpleCredentials.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiInsidePlugin.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPageDictionary.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPlugin.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AddTranslatorPartsPlugin.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AttachementInfoPlugin.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/FriendlyLinkPlugin.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/DictionaryTest.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/GetSavePageTest.java qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/WikiTest.java Log: MERGED: -r 1404:1416 for the 1.0.5 Release. Merged trunk into qa portal-extensions. This fixes JBoss Wiki Bug: http://jira.jboss.com/jira/browse/JBWIKI-59 Modified: qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java 2005-10-19 20:21:32 UTC (rev 1416) +++ qa/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java 2005-10-20 20:16:00 UTC (rev 1417) @@ -288,7 +288,7 @@ if ((rReq.getParameter("action") != null) && (rReq.getParameter("action").equals("Edit")) - && (credentials.isLogedIn())) { + && (credentials.isLoggedIn())) { page = "Edit.jsp"; showPage = false; @@ -431,7 +431,7 @@ rReq.setAttribute("author", pageToShow.getLastAuthor()); - rReq.setAttribute("logedIn", credentials.isLogedIn()); + rReq.setAttribute("logedIn", credentials.isLoggedIn()); rReq.setAttribute("defaultPage", defaultPage); Copied: qa/forge/portal-extensions/jbosswiki/wiki-common/src/etc/WikiInsidePlugins.xml (from rev 1416, trunk/forge/portal-extensions/jbosswiki/wiki-common/src/etc/WikiInsidePlugins.xml) Deleted: qa/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/WikiInsidePlugins.xml =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/WikiInsidePlugins.xml 2005-10-19 20:21:32 UTC (rev 1416) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/etc/org/jboss/wiki/WikiInsidePlugins.xml 2005-10-20 20:16:00 UTC (rev 1417) @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> -<properties> -<comment>Here are defined inside plugins</comment> -<entry key="tomek">org.jboss.wiki.plugins.TomekInsidePlugin</entry> -<entry key="InsertPage">org.jboss.wiki.plugins.InsertPageInsidePlugin</entry> -</properties> \ No newline at end of file Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/AttachmentDataSource.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/AttachmentDataSource.java 2005-10-19 20:21:32 UTC (rev 1416) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/AttachmentDataSource.java 2005-10-20 20:16:00 UTC (rev 1417) @@ -12,7 +12,7 @@ import java.util.Set; /** - * @author Tomasz Szymański + * @author <a href="mailto:tom...@jb...">Tomasz Szymanski</a> * */ public interface AttachmentDataSource { Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/Credentials.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/Credentials.java 2005-10-19 20:21:32 UTC (rev 1416) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/Credentials.java 2005-10-20 20:16:00 UTC (rev 1417) @@ -12,23 +12,41 @@ import javax.portlet.ActionRequest; import javax.portlet.RenderRequest; -/** +/**@author <a href="mailto:tom...@jb...">Tomasz Szymanski</a><br /> * <p></p> * */ public abstract class Credentials { + /**Gets userName + * @return userName of current user. + */ public abstract String getName(); - public abstract boolean isLogedIn(); + /**Checks if any user is logged in. + * @return true if anyone is logged in, false othwerwise. + */ + public abstract boolean isLoggedIn(); + /**Checks if logged in user is Admin. + * @return true if user is admin, false othwerwise. + */ public abstract boolean isAdmin(); + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ public String toString() { return getName(); } + /**Sets RenderRequest for current credentials. + * @param rReq RenderRequest to set. + */ public abstract void setRenderRequest(RenderRequest rReq); + /**Sets ActionRequest for current credentials. + * @param rReq ActionRequest to set. + */ public abstract void setActionRequest(ActionRequest rReq); } Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/JBossPortalCredentials.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/JBossPortalCredentials.java 2005-10-19 20:21:32 UTC (rev 1416) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/JBossPortalCredentials.java 2005-10-20 20:16:00 UTC (rev 1417) @@ -59,7 +59,7 @@ public boolean isAdmin() { return isAdmin; } - public boolean isLogedIn() { + public boolean isLoggedIn() { return logedIn; } Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/MediaDataSource.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/MediaDataSource.java 2005-10-19 20:21:32 UTC (rev 1416) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/MediaDataSource.java 2005-10-20 20:16:00 UTC (rev 1417) @@ -11,7 +11,7 @@ import java.util.Set; /** - * @author Tomasz Szymański + * @author <a href="mailto:tom...@jb...">Tomasz Szymanski</a> * */ public interface MediaDataSource { Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/SimpleCredentials.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/SimpleCredentials.java 2005-10-19 20:21:32 UTC (rev 1416) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/SimpleCredentials.java 2005-10-20 20:16:00 UTC (rev 1417) @@ -17,7 +17,7 @@ return name; } - public boolean isLogedIn() { + public boolean isLoggedIn() { return false; } Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2005-10-19 20:21:32 UTC (rev 1416) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2005-10-20 20:16:00 UTC (rev 1417) @@ -429,7 +429,7 @@ try { props.loadFromXML(WikiTypeHandler.class - .getResourceAsStream("WikiInsidePlugins.xml")); + .getResourceAsStream("/WikiInsidePlugins.xml")); } catch (InvalidPropertiesFormatException e) { System.err.println("WikiInsidePlugins.xml has bad format !"); e.printStackTrace(); Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiInsidePlugin.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiInsidePlugin.java 2005-10-19 20:21:32 UTC (rev 1416) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiInsidePlugin.java 2005-10-20 20:16:00 UTC (rev 1417) @@ -13,14 +13,24 @@ import java.util.Properties; /** - * <p></p> - * - */ -/** * - * @author <a href="mailto:ds...@jb...">Damon Sicore</a> - * @author <a href="mailto:tom...@jb...">Tomasz Szymanski</a> - * @version $Id$ + * @author <a href="mailto:ds...@jb...">Damon Sicore</a><br /> + * @author <a href="mailto:tom...@jb...">Tomasz Szymanski</a><br /> + * <br /> + * <br /> + * This class is for making WikiInsidePlugins.<br /> + * <br /> + * The only difference is that they are processed in HTMLTranslatorParts plugin and return + * String to insert inside showed page.<br /> + * <br /> + * WikiSession attributes are the same as in {@link WikiPlugin} <br /> + * <br /> + * To add definition of WikiInsidePlugin you need to add + * coresponding part to <i>wiki-common/src/etc/WikiInsidePlugins.xml:</i> + * <pre> + * <entry key="<i>unique plugin name - this will be used in page source</i>"><i>plugin class name</i></entry> + * </pre> + * @see WikiPlugin */ public abstract class WikiInsidePlugin { @@ -31,29 +41,27 @@ private String name; final static String propFileName = "wikiPlugins.properties"; -/** - * <p></p> - * - */ -/** - * <p>Does ...</p> - * - * - * @return - * @param content - */ + /** + * Processes the given page, and attributes and return String to show in the apropriate place on the page. + * + * @param wikiPage Page where from the plugin was executed. + * @param wikiSession Session for passing attibutes etc. + * @param attributes Attributes given to plugin. + * @return String to show. + */ public abstract String process(final WikiPage wikiPage, WikiSession wikiSession, HashMap<String, String> attributes); - -/** - * <p>Does ...</p> - * - * - * @return - */ + /** + * It's run after initiating plugin. + */ public abstract void init(); + /** + * Sets wikiEngine. + * + * @param wikiEngine WikiEngine to set. + */ public void setWikiEngine(WikiEngine wikiEngine) { this.wikiEngine = wikiEngine; @@ -73,14 +81,30 @@ } } + /** + * Gets property from wikiPlugins.properties + * + * @param propertyName Name of the property to get + * @return Apripriate property. + */ protected String getProperty(String propertyName) { return pluginProps.getProperty(propertyName); } + /** + * Returns name of that plugin. + * + * @return name of current plugin. + */ public String getName() { return name; } + /** + * Sets name of current plugin. + * + * @param name Name of the plugin. + */ public void setName(String name) { this.name = name; } Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPageDictionary.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPageDictionary.java 2005-10-19 20:21:32 UTC (rev 1416) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPageDictionary.java 2005-10-20 20:16:00 UTC (rev 1417) @@ -1,20 +1,60 @@ +/************************************************** + * * + * JBoss Labs: Creating Professional Open Source * + * * + * Distributable under LGPL license. * + * See terms of license at gnu.org. * + * * + *************************************************/ package org.jboss.wiki; -import org.jboss.wiki.exceptions.PageAlreadyExistsException; import org.jboss.wiki.exceptions.PageRenamingException; +/** + * @author <a href="mailto:tom...@jb...">Tomasz Szymanski</a> + * + */ public interface WikiPageDictionary { + /**Return RealName of given UID - this is what will be shown on the page (what user gets) + * + * @param uid uid to translate + * @return apropriate UID + */ public String getRealName(String uid); + /**Return UID of RealName (uid is what JBoss Wiki uses for unique recognition of a page) + * + * @param realName realName to translate + * @return apropriate RealName + */ public String getUid(String realName); + /**Function that adds renaming for current page. You have to remember about all the consequences. + * + * @param uid Uid of a page. + * @param newName New name of a page + * @throws PageRenamingException If there is page with "newName" etc. + */ public void rename(String uid, String newName) throws PageRenamingException; + /** + * @param uid + * @return True if there is mapping for given uid. + */ public boolean uidInDictionary(String uid); + /** + * @param realName + * @return True if there is mapping for given realName + */ public boolean realNameInDictionary(String realName); + /**Removes mapping for given page. If there is no mapping for a page UID = RealName. + * + * @param uid + * @throws PageRenamingException + */ public void removeDictForPage(String uid) throws PageRenamingException; /**Sets wikiEngine reference Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPlugin.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPlugin.java 2005-10-19 20:21:32 UTC (rev 1416) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPlugin.java 2005-10-20 20:16:00 UTC (rev 1417) @@ -12,14 +12,35 @@ import java.util.Properties; /** - * <p></p> - * - */ -/** * - * @author <a href="mailto:ds...@jb...">Damon Sicore</a> - * @author <a href="mailto:tom...@jb...">Tomasz Szymanski</a> - * @version $Id$ + * @author <a href="mailto:ds...@jb...">Damon Sicore</a><br /> + * @author <a href="mailto:tom...@jb...">Tomasz Szymanski</a><br /> + * <br /> + * <br /> + * This class is used for making own plugins, that allow page processing.<br /> + * <br /> + * From inside WikiPlugin you can acess WikiEngine, WikiPage you're processing and some session attributes passed to the plugin in WikiSession.<br /> + * <br /> + * They are:<br /> + * <br /> + * <table> + * <tr><th>Attribute</th><th>Type</th><th>What is it?</th></tr> + * <tr><td>actionURL</td><td>String</td><td>Action url to create links</td></tr> + * <tr><td>hostURL</td><td>String</td><td>Url of the host</td></tr> + * <tr><td>credentials</td><td>org.jboss.wiki.Credentials</td><td>Credentials of browsing user</td></tr> + * </table> + * <br /> + * Also if you add to actionURL parameter val1 val2 ... valn they will be all added to WikiSesion and passed to plugins.<br /> + * <br /> + * To add a plugin to a WikiType you have to add coresponding xml part to + * <i>wiki-common/src/etc/WikiTypes.xml</i>:<br /> + * <pre> + * <plugin> + * <name><i>plugin name</i></name> + * <class><i>plugin class</i><name> + * </plugin> + * </pre> + * @see WikiInsidePlugin */ public abstract class WikiPlugin { @@ -30,29 +51,25 @@ private String name; final static String propFileName = "wikiPlugins.properties"; -/** - * <p></p> - * - */ -/** - * <p>Does ...</p> - * - * - * @return - * @param content - */ + /**Processes given WikiPage and returns processed one. + * + * @param wikiPage WikiPage to process + * @param wikiSession Session for passing attributes and getting some stuff from it. + * @return Processed WikiPage + */ public abstract WikiPage process(final WikiPage wikiPage, WikiSession wikiSession); - -/** - * <p>Does ...</p> - * - * - * @return - */ + /** + * It's run after initiating plugin. + */ public abstract void init(); + /** + * Sets WikiEngine. If you're not sure why would you like to override it, leave that one. + * + * @param wikiEngine + */ public void setWikiEngine(WikiEngine wikiEngine) { this.wikiEngine = wikiEngine; @@ -72,14 +89,30 @@ } } + /** + * Gets property from wikiPlugins.properties + * + * @param propertyName Name of the property to get + * @return Apripriate property. + */ protected String getProperty(String propertyName) { return pluginProps.getProperty(propertyName); } + /** + * Returns name of that plugin. + * + * @return name of current plugin. + */ public String getName() { return name; } + /** + * Sets name of current plugin. + * + * @param name Name of the plugin. + */ public void setName(String name) { this.name = name; } Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AddTranslatorPartsPlugin.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AddTranslatorPartsPlugin.java 2005-10-19 20:21:32 UTC (rev 1416) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AddTranslatorPartsPlugin.java 2005-10-20 20:16:00 UTC (rev 1417) @@ -1,3 +1,11 @@ +/************************************************** + * * + * JBoss Labs: Creating Professional Open Source * + * * + * Distributable under LGPL license. * + * See terms of license at gnu.org. * + * * + *************************************************/ package org.jboss.wiki.plugins; import org.jboss.wiki.WikiPage; @@ -4,6 +12,10 @@ import org.jboss.wiki.WikiPlugin; import org.jboss.wiki.WikiSession; +/** + * @author <a href="mailto:tom...@jb...">Tomasz Szymanski</a> + * + */ public class AddTranslatorPartsPlugin extends WikiPlugin { @Override Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AttachementInfoPlugin.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AttachementInfoPlugin.java 2005-10-19 20:21:32 UTC (rev 1416) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AttachementInfoPlugin.java 2005-10-20 20:16:00 UTC (rev 1417) @@ -20,7 +20,7 @@ String actionURL = (String) wikiSession.getAttribute("actionURL"); if (((wikiPage.isEditable())||(credentials.isAdmin()))&&(rollbackToVer != null) - && (credentials.isLogedIn()) + && (credentials.isLoggedIn()) && (Integer.valueOf((String) rollbackToVer) < wikiEngine.getLastAttachmentVersion( wikiPage.getName(), attachementName))) { WikiAttachment wikiAttachment = wikiEngine.getAttachment( @@ -53,22 +53,22 @@ if (i != lastVer) { history.append("<td>"); - if ((credentials.isLogedIn())&&((wikiPage.isEditable())||(credentials.isAdmin()))) + if ((credentials.isLoggedIn())&&((wikiPage.isEditable())||(credentials.isAdmin()))) history.append("<a href=\"").append(actionURL).append( "&type=fileInfo&page=").append(wikiPage.getName()) .append("&var1=").append(attachementName).append( "&var2=").append(i).append("\" >"); if (wikiPage.isEditable()) { - history.append((!credentials.isLogedIn()) ? "<i>" : "").append( + history.append((!credentials.isLoggedIn()) ? "<i>" : "").append( "Rollback version ").append(i).append( - (!credentials.isLogedIn()) ? " (after login)</i>" : ""); + (!credentials.isLoggedIn()) ? " (after login)</i>" : ""); } else { history.append("<i>This page IS NOT editable</i>"); } - if ((credentials.isLogedIn())&&((wikiPage.isEditable())||(credentials.isAdmin()))) + if ((credentials.isLoggedIn())&&((wikiPage.isEditable())||(credentials.isAdmin()))) history.append("</a>"); history.append("<td>"); Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/FriendlyLinkPlugin.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/FriendlyLinkPlugin.java 2005-10-19 20:21:32 UTC (rev 1416) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/FriendlyLinkPlugin.java 2005-10-20 20:16:00 UTC (rev 1417) @@ -39,7 +39,7 @@ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) { url = (String)wikiSession.getAttribute("hostURL")+"/wiki/"; - pattern = "<a href=\""+(((String)wikiSession.getAttribute("hostURL")+(String)wikiSession.getAttribute("actionURL")).replaceAll("\\.","\\\\.").replaceAll("\\?", "\\\\?"))+"&page=\\w+\">"; + pattern = "<a href=\""+(((String)wikiSession.getAttribute("hostURL")+(String)wikiSession.getAttribute("actionURL")).replaceAll("\\.","\\\\.").replaceAll("\\?", "\\\\?"))+"&page=\\w+(/\\w+)*\">"; //System.out.println(pattern); Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/DictionaryTest.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/DictionaryTest.java 2005-10-19 20:21:32 UTC (rev 1416) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/DictionaryTest.java 2005-10-20 20:16:00 UTC (rev 1417) @@ -49,12 +49,12 @@ int link = -1; // look if there is any link - if ((link = pageContentRenamed.lastIndexOf(actionURL+"&page=")) == -1) { + if ((link = pageContentRenamed.lastIndexOf(hostURL+"/wiki/")) == -1) { fail("There is no link in afterRename page."); } else { // find link in page - String pageName = pageContentRenamed.substring(link + (actionURL+"&page=").length(), pageContentRenamed.indexOf("\"", link + (actionURL+"&page=").length())); + String pageName = pageContentRenamed.substring(link + (hostURL+"/wiki/").length(), pageContentRenamed.indexOf("\"", link + (hostURL+"/wiki/").length())); System.out.println("PAGENAME: "+pageName); Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/GetSavePageTest.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/GetSavePageTest.java 2005-10-19 20:21:32 UTC (rev 1416) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/GetSavePageTest.java 2005-10-20 20:16:00 UTC (rev 1417) @@ -1,6 +1,5 @@ package org.jboss.wiki.test; -import java.util.Set; import java.util.Vector; import org.jboss.wiki.WikiContext; @@ -28,17 +27,19 @@ } - public void testGetAllPages() { + /*public void testGetAllPages() { WikiContext wikiContext = new WikiContext("test-user", wikiEngine.getWikiType("html"), testWikiSession); Set<String> pageNames = wikiEngine.getAllPageNames(); for (String pageName : pageNames) { + System.out.println("getting page: "+pageName); + if (wikiEngine.getByName(pageName, wikiContext) == null) { fail("Couldn't get page: "+pageName); } } - } + }*/ public void testLocking() throws WikiException{ WikiContext wikiContext = new WikiContext("test-user", wikiEngine.getWikiType("html"), testWikiSession); Modified: qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/WikiTest.java =================================================================== --- qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/WikiTest.java 2005-10-19 20:21:32 UTC (rev 1416) +++ qa/forge/portal-extensions/jbosswiki/wiki-common/src/test/java/org/jboss/wiki/test/WikiTest.java 2005-10-20 20:16:00 UTC (rev 1417) @@ -106,11 +106,11 @@ @Override public String getName() { - return (isLogedIn()) ? ((isAdmin()) ? "admin" : "test-user") : "Unknown"; + return (isLoggedIn()) ? ((isAdmin()) ? "admin" : "test-user") : "Unknown"; } @Override - public boolean isLogedIn() { + public boolean isLoggedIn() { return logedIn; } |