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
|
Author: adamw Date: 2005-10-29 15:33:52 -0400 (Sat, 29 Oct 2005) New Revision: 1472 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/ForgeTimer.java trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimerLocal.java trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnRepository.java trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceImpl.java 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/SvnServiceTimerLocal.java trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnHeadNode.java trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnService.java Log: Threads instead of timers -test 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-29 16:50:28 UTC (rev 1471) +++ trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeService.java 2005-10-29 19:33:52 UTC (rev 1472) @@ -25,7 +25,6 @@ import java.util.HashMap; import java.util.Map; -import javax.annotation.EJB; import javax.ejb.Local; import org.jboss.annotation.ejb.Management; @@ -150,8 +149,8 @@ public void create() throws Exception { } - @EJB - private ForgeTimerLocal timer; + //@EJB + //private ForgeTimerLocal timer; public void start() throws Exception { cache = Collections.synchronizedMap( @@ -166,7 +165,21 @@ // Setting the default timer interval. timerInterval = DEFAULT_TIMER_INTERVAL; // And starting the timer. - timer.scheduleTimer(DEFAULT_TIMER_INTERVAL); + //timer.scheduleTimer(DEFAULT_TIMER_INTERVAL); + + new Thread() { + public void run() { + while (true) { + try { + sleep(getTimerInterval()); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + update(); + } + } + }.start(); } public void stop() { 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-29 16:50:28 UTC (rev 1471) +++ trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java 2005-10-29 19:33:52 UTC (rev 1472) @@ -38,6 +38,7 @@ * A timer which, when expires, calls the update method of an instance of * ForgeManagement - this instance is looked up as an mbean. * @author adamw + * @deprecated */ @Stateless @Local(ForgeTimerLocal.class) Modified: trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimerLocal.java =================================================================== --- trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimerLocal.java 2005-10-29 16:50:28 UTC (rev 1471) +++ trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimerLocal.java 2005-10-29 19:33:52 UTC (rev 1472) @@ -21,6 +21,10 @@ */ package org.jboss.forge.service; +/** + * @author adamw + * @deprecated + */ public interface ForgeTimerLocal { /** * Schedules a timer that updates forge management to timeout after the Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnHeadNode.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnHeadNode.java 2005-10-29 16:50:28 UTC (rev 1471) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnHeadNode.java 2005-10-29 19:33:52 UTC (rev 1472) @@ -130,7 +130,7 @@ return file.lastModified(); else try { - return service.getLastCommited(id, fullPath); + return service.getLastModification(id, fullPath); } catch (SvnOperationFailed e) { throw new RepositoryException(e); } Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnService.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnService.java 2005-10-29 16:50:28 UTC (rev 1471) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnService.java 2005-10-29 19:33:52 UTC (rev 1472) @@ -197,7 +197,7 @@ * @return Time of last commit of the given resource. * @throws SvnOperationFailed */ - public long getLastCommited(String id, String path) + public long getLastModification(String id, String path) throws SvnOperationFailed; /** Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnRepository.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnRepository.java 2005-10-29 16:50:28 UTC (rev 1471) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnRepository.java 2005-10-29 19:33:52 UTC (rev 1472) @@ -310,11 +310,17 @@ } } - public long getLastCommited(String path) + public long getLastModification(String path) throws SvnOperationFailed { try { - return ourClientManager.getWCClient().doInfo( - new File(getFileSystemPath(path)), + File file = new File(getFileSystemPath(path)); + + if (ourClientManager.getStatusClient().doStatus( + file, false).getContentsStatus() != + SVNStatusType.STATUS_NORMAL) + return file.lastModified(); + else + return ourClientManager.getWCClient().doInfo(file, SVNRevision.WORKING).getCommittedDate().getTime(); } catch (SVNException e) { throw new SvnOperationFailed(e); Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceImpl.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceImpl.java 2005-10-29 16:50:28 UTC (rev 1471) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceImpl.java 2005-10-29 19:33:52 UTC (rev 1472) @@ -26,7 +26,6 @@ import java.util.Map; -import javax.annotation.EJB; import javax.ejb.Local; import org.apache.log4j.Logger; @@ -59,8 +58,8 @@ private final static long DEFAULT_TIMER_INTERVAL = 1000*5; // 5 seconds private long timerInterval; - @EJB - private SvnServiceTimerLocal timer; + //@EJB + //private SvnServiceTimerLocal timer; private Map<String, SvnRepository> repositories; @@ -123,7 +122,21 @@ // Setting the default timer interval. timerInterval = DEFAULT_TIMER_INTERVAL; // And starting the timer. - timer.scheduleTimer(DEFAULT_TIMER_INTERVAL); + //timer.scheduleTimer(DEFAULT_TIMER_INTERVAL); + + new Thread() { + public void run() { + while (true) { + try { + sleep(getTimerInterval()); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + update(); + } + } + }.start(); } public void stop() { @@ -214,8 +227,8 @@ return repositories.get(id).getLogMessage(path); } - public long getLastCommited(String id, String path) + public long getLastModification(String id, String path) throws SvnOperationFailed { - return repositories.get(id).getLastCommited(path); + return repositories.get(id).getLastModification(path); } } 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-29 16:50:28 UTC (rev 1471) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java 2005-10-29 19:33:52 UTC (rev 1472) @@ -35,6 +35,7 @@ /** * @author adamw + * @deprecated */ @Stateless @Local(SvnServiceTimerLocal.class) Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimerLocal.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimerLocal.java 2005-10-29 16:50:28 UTC (rev 1471) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimerLocal.java 2005-10-29 19:33:52 UTC (rev 1472) @@ -23,6 +23,7 @@ /** * @author adamw + * @deprecated */ public interface SvnServiceTimerLocal { /** |
Author: adamw Date: 2005-10-29 12:50:28 -0400 (Sat, 29 Oct 2005) New Revision: 1471 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 trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimerLocal.java trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ParentTest.java Log: Timers test 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-29 12:05:24 UTC (rev 1470) +++ trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java 2005-10-29 16:50:28 UTC (rev 1471) @@ -35,39 +35,34 @@ import org.jboss.mx.util.MBeanServerLocator; /** - * @author adamw * A timer which, when expires, calls the update method of an instance of * ForgeManagement - this instance is looked up as an mbean. + * @author adamw */ @Stateless @Local(ForgeTimerLocal.class) public class ForgeTimer implements ForgeTimerLocal { private @Resource SessionContext ctx; + private ForgeManagement fm; public void scheduleTimer(long interval) { // ctx.getTimerService().createTimer(new Date(new Date().getTime() + interval), null); - ctx.getTimerService().createTimer(0, interval, null); + ctx.getTimerService().createTimer(interval, interval, null); } @Timeout public void timeoutHandler(Timer timer) { - try { - ForgeManagement fm = - ((ForgeManagement) MBeanProxyExt.create( - ForgeManagement.class, - ForgeHelper.FORGE_SERVICE_NAME, - MBeanServerLocator.locate())); - - fm.update(); - - // Avoiding WARN. - //timer.cancel(); //? -- Maybe this caused the TX exception. - - // Scheduling next timer to timeout after the amount of time that - // is set in forgeManagement. - // scheduleTimer(fm.getTimerInterval()); - } catch (MalformedObjectNameException e) { - e.printStackTrace(); + if (fm == null) { + try { + fm = ((ForgeManagement) MBeanProxyExt.create( + ForgeManagement.class, + ForgeHelper.FORGE_SERVICE_NAME, + MBeanServerLocator.locate())); + } catch (MalformedObjectNameException e) { + e.printStackTrace(); + } } + + fm.update(); } } 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-29 12:05:24 UTC (rev 1470) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java 2005-10-29 16:50:28 UTC (rev 1471) @@ -33,34 +33,34 @@ import org.jboss.mx.util.MBeanServerLocator; import org.jboss.shotoku.svn.SvnService; +/** + * @author adamw + */ @Stateless @Local(SvnServiceTimerLocal.class) public class SvnServiceTimer { //private static final Logger log = Logger.getLogger(SvnServiceTimer.class); private @Resource SessionContext ctx; + private SvnServiceLocal ssi; public void scheduleTimer(long interval) { //ctx.getTimerService().createTimer(new Date(new Date().getTime() + interval), null); - ctx.getTimerService().createTimer(0, interval, null); + ctx.getTimerService().createTimer(interval, interval, null); } @Timeout public void timeoutHandler(Timer timer) { - try { - SvnServiceLocal ssi = - ((SvnServiceLocal) MBeanProxyExt.create( - SvnServiceLocal.class, - SvnService.SVN_SERVICE_NAME, - MBeanServerLocator.locate())); + if (ssi == null) { + try { + ssi = ((SvnServiceLocal) MBeanProxyExt.create( + SvnServiceLocal.class, + SvnService.SVN_SERVICE_NAME, + MBeanServerLocator.locate())); + } catch (MalformedObjectNameException e) { + e.printStackTrace(); + } + } - ssi.update(); - - // Avoiding WARN. - //timer.cancel(); - - //scheduleTimer(ssi.getTimerInterval()); - } catch (MalformedObjectNameException e) { - e.printStackTrace(); - } + ssi.update(); } } Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimerLocal.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimerLocal.java 2005-10-29 12:05:24 UTC (rev 1470) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimerLocal.java 2005-10-29 16:50:28 UTC (rev 1471) @@ -21,6 +21,9 @@ */ package org.jboss.shotoku.svn.service; +/** + * @author adamw + */ public interface SvnServiceTimerLocal { /** * Schedules a timer that updates svn service to timeout after the Modified: trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ParentTest.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ParentTest.java 2005-10-29 12:05:24 UTC (rev 1470) +++ trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ParentTest.java 2005-10-29 16:50:28 UTC (rev 1471) @@ -22,7 +22,6 @@ package org.jboss.shotoku.test; import org.jboss.shotoku.Directory; -import org.jboss.shotoku.exceptions.ResourceDoesNotExist; public class ParentTest extends ShotokuTest { private final static String TEST_DIR1 = "parent-test-1"; @@ -66,7 +65,7 @@ public void tearDown() { try { cm.getDirectory(TEST_DIR1).delete(); - } catch (ResourceDoesNotExist e) { + } catch (Exception e) { } } |
Author: adamw Date: 2005-10-29 04:53:49 -0400 (Sat, 29 Oct 2005) New Revision: 1468 Added: trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewDirectoryHelper.java trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewNodeHelper.java trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewResourceHelper.java Modified: trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/ContentManager.java trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/Directory.java trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnRepository.java trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnDirectory.java trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewDirectory.java trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewNode.java Log: http://jira.jboss.com/jira/browse/JBSHOTOKU-24 Modified: trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/ContentManager.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/ContentManager.java 2005-10-28 22:06:28 UTC (rev 1467) +++ trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/ContentManager.java 2005-10-29 08:53:49 UTC (rev 1468) @@ -171,8 +171,8 @@ return (ContentManager) constructor.newInstance(new Object[] { id, prefix }); } catch (Throwable e) { - // TODO - e.printStackTrace(); + log.warn("Unable to get a content manager: (" + id + ", " + + prefix + ").", e); return null; } } Modified: trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/Directory.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/Directory.java 2005-10-28 22:06:28 UTC (rev 1467) +++ trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/Directory.java 2005-10-29 08:53:49 UTC (rev 1468) @@ -85,7 +85,8 @@ public boolean hasIndex(String propertyName) throws RepositoryException; /** - * Creates or deletes an index on a property. + * Creates or deletes an index on a property. The directory must be saved + * before this operation. * * @param propertyName * Name of the property for which to create/ delete an index. Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnDirectory.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnDirectory.java 2005-10-28 22:06:28 UTC (rev 1467) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnDirectory.java 2005-10-29 08:53:49 UTC (rev 1468) @@ -111,7 +111,8 @@ if (newFile.exists()) throw new ResourceAlreadyExists(); - return new SvnNewNode(id, childFullPath, newFile, name, svnCm); + return new SvnNewNodeHelper(id, childFullPath, newFile, name, + svnCm, this); } catch (SvnOperationFailed e) { throw new RepositoryException(e); } @@ -128,7 +129,7 @@ if (newDir.exists()) throw new ResourceAlreadyExists(); - return new SvnNewDirectory(id, childFullPath, newDir, name, svnCm); + return new SvnNewDirectoryHelper(id, childFullPath, newDir, name, svnCm, this); } catch (SvnOperationFailed e) { throw new RepositoryException(e); } Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewDirectory.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewDirectory.java 2005-10-28 22:06:28 UTC (rev 1467) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewDirectory.java 2005-10-29 08:53:49 UTC (rev 1468) @@ -10,122 +10,84 @@ import org.jboss.shotoku.exceptions.ResourceDoesNotExist; public class SvnNewDirectory extends SvnDirectory { - private boolean saved; - public SvnNewDirectory(String id, String fullPath, File file, String name, SvnContentManager svnCm) { super(id, fullPath, file, name, svnCm); - - saved = false; } @Override public void delete() { - // We only have to delete a corresponding directory if this directory - // has been saved already. - if (saved) - super.delete(); + // We don't have to do anything if this is a new node, not yet saved. } @Override public List<Directory> getDirectories() { - if (saved) - return super.getDirectories(); - else - return null; + return null; } public Node getNode(String name) throws RepositoryException, ResourceDoesNotExist { - if (saved) - return super.getNode(name); - else - return null; + return null; } public Directory getDirectory(String name) throws RepositoryException, ResourceDoesNotExist { - if (saved) - return super.getDirectory(name); - else - return null; + return null; } @Override public String getLogMessage() { - if (saved) - return super.getLogMessage(); - else - return null; + return null; } @Override public NodeList getNodes() { - if (saved) - return super.getNodes(); - else - return null; + return null; } @Override public boolean hasIndex(String propertyName) { - if (saved) - return super.hasIndex(propertyName); - else - return false; + return false; } @Override public Directory newDirectory(String name) { - if (saved) - return super.newDirectory(name); - else - return null; + return null; } @Override public Node newNode(String name) { - if (saved) - return super.newNode(name); - else - return null; + return null; } @Override public void save(String logMessage) { - if (saved) { - super.save(logMessage); - } else { - service.getWriteLock(id, fullPath); + service.getWriteLock(id, fullPath); + + if (!file.mkdir()) { + service.putWriteLock(id, fullPath); + throw new RepositoryException( + "Could not create directory: " + + file.getAbsolutePath()); + } + + try { + service.add(id, fullPath); - if (!file.mkdir()) { - service.putWriteLock(id, fullPath); - throw new RepositoryException( - "Could not create directory: " - + file.getAbsolutePath()); - } - - try { - service.add(id, fullPath); - - // Saving properties. - save(); - } catch (SvnOperationFailed e) { - service.putWriteLock(id, fullPath); - throw new RepositoryException(e); - } - - try { - service.commit(id, fullPath, logMessage); - } catch (SvnOperationFailed e) { - throw new RepositoryException(e); - } - - saved = true; + // Saving properties. + save(); + } catch (SvnOperationFailed e) { + service.putWriteLock(id, fullPath); + throw new RepositoryException(e); } + + try { + service.commit(id, fullPath, logMessage); + } catch (SvnOperationFailed e) { + throw new RepositoryException(e); + } } @Override public void setIndex(String propertyName, boolean index) { - if (saved) - super.setIndex(propertyName, index); + throw new RepositoryException("Directory not yet saved."); } } Added: trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewDirectoryHelper.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewDirectoryHelper.java 2005-10-28 22:06:28 UTC (rev 1467) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewDirectoryHelper.java 2005-10-29 08:53:49 UTC (rev 1468) @@ -0,0 +1,87 @@ +package org.jboss.shotoku.svn; + +import java.io.File; +import java.util.List; + +import org.jboss.shotoku.Directory; +import org.jboss.shotoku.Node; +import org.jboss.shotoku.NodeList; +import org.jboss.shotoku.exceptions.RepositoryException; +import org.jboss.shotoku.exceptions.ResourceAlreadyExists; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; + +public class SvnNewDirectoryHelper extends SvnNewResourceHelper implements + Directory { + private Directory currentDirectory; + + public SvnNewDirectoryHelper(String id, String fullPath, File file, + String name, SvnContentManager svnCm, Directory parentDirectory) { + super(parentDirectory, name); + currentDirectory = new SvnNewDirectory(id, fullPath, file, name, svnCm); + } + + public void save(String logMessage) throws RepositoryException { + currentDirectory.save(logMessage); + currentDirectory = parentDirectory.getDirectory(name); + } + + public void delete() throws RepositoryException { + currentDirectory.delete(); + } + + public List<Directory> getDirectories() throws RepositoryException { + return currentDirectory.getDirectories(); + } + + public Directory getDirectory(String name) throws RepositoryException, + ResourceDoesNotExist { + return currentDirectory.getDirectory(name); + } + + public String getLogMessage() throws RepositoryException { + return currentDirectory.getLogMessage(); + } + + public String getName() { + return currentDirectory.getName(); + } + + public Node getNode(String name) throws RepositoryException, + ResourceDoesNotExist { + return currentDirectory.getNode(name); + } + + public NodeList getNodes() throws RepositoryException { + return currentDirectory.getNodes(); + } + + public Directory getParent() throws RepositoryException { + return currentDirectory.getParent(); + } + + public String getProperty(String name) throws RepositoryException { + return currentDirectory.getProperty(name); + } + + public boolean hasIndex(String name) throws RepositoryException { + return currentDirectory.hasIndex(name); + } + + public Directory newDirectory(String name) throws ResourceAlreadyExists, + RepositoryException { + return currentDirectory.newDirectory(name); + } + + public Node newNode(String name) throws ResourceAlreadyExists, + RepositoryException { + return currentDirectory.newNode(name); + } + + public void setIndex(String name, boolean index) throws RepositoryException { + currentDirectory.setIndex(name, index); + } + + public void setProperty(String name, String value) { + currentDirectory.setProperty(name, value); + } +} Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewNode.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewNode.java 2005-10-28 22:06:28 UTC (rev 1467) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewNode.java 2005-10-29 08:53:49 UTC (rev 1468) @@ -12,179 +12,121 @@ public class SvnNewNode extends SvnHeadNode { private NodeContent content; - private boolean saved; - public SvnNewNode(String id, String fullPath, File file, String name, SvnContentManager svnCm) { super(id, fullPath, file, name, svnCm); content = new NodeContent(); - saved = false; } @Override public void delete() { - // We only have to delete a corresponding file if this node has - // been saved already. - if (saved) - super.delete(); + // If the file hasn't been saved, no deleting necessary. } @Override public String getContent() { - if (saved) - return super.getContent(); - else { - return content.asString(); - } + return content.asString(); } @Override public InputStream getContentInputStream() { - if (saved) - return super.getContentInputStream(); - else { - return content.asInputStream(); - } + return content.asInputStream(); } @Override public byte[] getContentByteArray() { - if (saved) - return super.getContentByteArray(); - else { - return content.asByteArray(); - } + return content.asByteArray(); } @Override public History getHistory() { - if (saved) - return super.getHistory(); - else - return null; + return null; } @Override public long getLastModfication() { - if (saved) - return super.getLastModfication(); - else - return Calendar.getInstance().getTimeInMillis(); + return Calendar.getInstance().getTimeInMillis(); } @Override public long getLength() { - if (saved) - return super.getLength(); - else - return content.getLength(); + return content.getLength(); } @Override public String getLogMessage() { - if (saved) - return super.getLogMessage(); - else - return null; + return null; } @Override public int getRevisionNumber() { - if (saved) - return super.getRevisionNumber(); - else - return -1; + return -1; } + @Override protected boolean checkForChanges() { - if (saved) - return super.checkForChanges(); - else - return true; + return true; } @Override public void save(String logMessage) throws RepositoryException { - if (saved) - super.save(logMessage); - else { - service.getWriteLock(id, fullPath); - - try { - if (!file.createNewFile()) { - service.putWriteLock(id, fullPath); - throw new RepositoryException( - "Could not create file: " - + file.getAbsolutePath()); - } - } catch (IOException e) { + service.getWriteLock(id, fullPath); + + try { + if (!file.createNewFile()) { service.putWriteLock(id, fullPath); - throw new RepositoryException(e); - } - - try { - service.add(id, fullPath); - } catch (SvnOperationFailed e) { - service.putWriteLock(id, fullPath); - throw new RepositoryException(e); - } - - super.setContent(content.asString()); + throw new RepositoryException( + "Could not create file: " + + file.getAbsolutePath()); + } + } catch (IOException e) { + service.putWriteLock(id, fullPath); + throw new RepositoryException(e); + } - saveWithLock(logMessage); - - saved = true; + try { + service.add(id, fullPath); + } catch (SvnOperationFailed e) { + service.putWriteLock(id, fullPath); + throw new RepositoryException(e); } + + super.setContent(content.asString()); + + saveWithLock(logMessage); } @Override public void setContent(String stringContent) { - if (saved) - super.setContent(stringContent); - else { - content.setContent(stringContent); - } + content.setContent(stringContent); } + @Override public void setContent(InputStream is) { - if (saved) - super.setContent(is); - else { - try { - content.setContent(is); - } catch (IOException e) { - throw new RepositoryException(e); - } + try { + content.setContent(is); + } catch (IOException e) { + throw new RepositoryException(e); } } + @Override public void setContent(byte[] bytes) { - if (saved) - super.setContent(bytes); - else { - content.setContent(bytes); - } + content.setContent(bytes); } + @Override public OutputStream getOutputStream() { - if (saved) - return super.getOutputStream(); - else { - return content.getOutputStream(); - } + return content.getOutputStream(); } @Override public void copyToFile(String filename) throws RepositoryException { - if (saved) - super.copyToFile(filename); - else { - try { - content.copyToFile(file); - } catch (Exception e) { - throw new RepositoryException(e); - } + try { + content.copyToFile(file); + } catch (Exception e) { + throw new RepositoryException(e); } } } Added: trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewNodeHelper.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewNodeHelper.java 2005-10-28 22:06:28 UTC (rev 1467) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewNodeHelper.java 2005-10-29 08:53:49 UTC (rev 1468) @@ -0,0 +1,101 @@ +package org.jboss.shotoku.svn; + +import java.io.File; +import java.io.InputStream; +import java.io.OutputStream; + +import org.jboss.shotoku.Directory; +import org.jboss.shotoku.History; +import org.jboss.shotoku.Node; +import org.jboss.shotoku.exceptions.RepositoryException; + +public class SvnNewNodeHelper extends SvnNewResourceHelper implements Node { + private Node currentNode; + + public SvnNewNodeHelper(String id, String fullPath, File file, String name, + SvnContentManager svnCm, Directory parentDirectory) { + super(parentDirectory, name); + currentNode = new SvnNewNode(id, fullPath, file, name, svnCm); + } + + public void save(String logMessage) throws RepositoryException { + currentNode.save(logMessage); + currentNode = parentDirectory.getNode(name); + } + + public void copyToFile(String fileName) throws RepositoryException { + currentNode.copyToFile(fileName); + } + + public void delete() throws RepositoryException { + currentNode.delete(); + } + + public String getContent() throws RepositoryException { + return currentNode.getContent(); + } + + public byte[] getContentByteArray() throws RepositoryException { + return currentNode.getContentByteArray(); + } + + public InputStream getContentInputStream() throws RepositoryException { + return currentNode.getContentInputStream(); + } + + public History getHistory() throws RepositoryException { + return currentNode.getHistory(); + } + + public long getLastModfication() throws RepositoryException { + return currentNode.getLastModfication(); + } + + public long getLength() throws RepositoryException { + return currentNode.getLength(); + } + + public String getLogMessage() throws RepositoryException { + return currentNode.getLogMessage(); + } + + public String getMimeType() { + return currentNode.getMimeType(); + } + + public String getName() { + return currentNode.getName(); + } + + public OutputStream getOutputStream() { + return currentNode.getOutputStream(); + } + + public Directory getParent() throws RepositoryException { + return currentNode.getParent(); + } + + public String getProperty(String name) throws RepositoryException { + return currentNode.getProperty(name); + } + + public int getRevisionNumber() throws RepositoryException { + return currentNode.getRevisionNumber(); + } + + public void setContent(byte[] bytes) { + currentNode.setContent(bytes); + } + + public void setContent(InputStream is) { + currentNode.setContent(is); + } + + public void setContent(String content) { + currentNode.setContent(content); + } + + public void setProperty(String name, String value) { + currentNode.setProperty(name, value); + } +} Added: trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewResourceHelper.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewResourceHelper.java 2005-10-28 22:06:28 UTC (rev 1467) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewResourceHelper.java 2005-10-29 08:53:49 UTC (rev 1468) @@ -0,0 +1,13 @@ +package org.jboss.shotoku.svn; + +import org.jboss.shotoku.Directory; + +public abstract class SvnNewResourceHelper { + protected Directory parentDirectory; + protected String name; + + public SvnNewResourceHelper(Directory parentDirectory, String name) { + this.parentDirectory = parentDirectory; + this.name = name; + } +} Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnRepository.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnRepository.java 2005-10-28 22:06:28 UTC (rev 1467) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnRepository.java 2005-10-29 08:53:49 UTC (rev 1468) @@ -103,8 +103,7 @@ SVNRevision.HEAD, SVNRevision.HEAD, true); } } catch (SVNException e) { - // TODO - e.printStackTrace(); + log.error("Error while updating the repository.", e); tryCleanup(); } @@ -233,10 +232,10 @@ try { final List<RevisionInfo> ret = new ArrayList<RevisionInfo>(); - // TODO: check the maximum number. + // Hopefully nobody will have more the 10mil revisions :). ourClientManager.getLogClient().doLog(new File[] { file }, SVNRevision.create(0), SVNRevision.HEAD, false, - false, 999999, + false, 10000000, new ISVNLogEntryHandler() { public void handleLogEntry(SVNLogEntry entry) { ret.add(new RevisionInfo(entry.getDate(), |
From: <jbo...@li...> - 2005-10-28 16:33:00
|
Author: adamw Date: 2005-10-28 12:32:35 -0400 (Fri, 28 Oct 2005) New Revision: 1466 Added: trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/NodeContent.java trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ContentSettingTest.java Modified: trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RomeBasedFeed.java trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/ContentManager.java trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/Node.java trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/NodeList.java trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnRepository.java trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnHeadNode.java trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnHistoricNode.java trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewNode.java Log: http://jira.jboss.com/jira/browse/JBSHOTOKU-19 : implementation + test Modified: 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-28 15:56:29 UTC (rev 1465) +++ trunk/forge/portal-extensions/forge-feeds/src/java/org/jboss/forge/feeds/RomeBasedFeed.java 2005-10-28 16:32:35 UTC (rev 1466) @@ -24,10 +24,10 @@ setFeedType(syndFeed); - syndFeed.setTitle("Aggregated Feed"); - syndFeed.setDescription("Anonymous Aggregated Feed"); - syndFeed.setAuthor("anonymous"); - syndFeed.setLink("http://www.anonymous.com"); + syndFeed.setTitle("Labs feed"); + syndFeed.setDescription("Labs aggregated feed"); + syndFeed.setAuthor("Labs team"); + syndFeed.setLink("http://labs.jboss.com"); List entries = new ArrayList(); syndFeed.setEntries(entries); Modified: trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/ContentManager.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/ContentManager.java 2005-10-28 15:56:29 UTC (rev 1465) +++ trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/ContentManager.java 2005-10-28 16:32:35 UTC (rev 1466) @@ -132,7 +132,6 @@ * * @return A ""-prefixed, default content manager, or null, if a default * content manager is not registered. - * @deprecated */ public static ContentManager getContentManager() { return getContentManager(""); Modified: trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/Node.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/Node.java 2005-10-28 15:56:29 UTC (rev 1465) +++ trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/Node.java 2005-10-28 16:32:35 UTC (rev 1466) @@ -1,6 +1,7 @@ package org.jboss.shotoku; import java.io.InputStream; +import java.io.OutputStream; import org.jboss.shotoku.exceptions.RepositoryException; @@ -29,6 +30,31 @@ public void setContent(String content); /** + * Sets this node's content, reading from the given input stream. + * + * @param is + * Input stream to read from. + */ + public void setContent(InputStream is); + + /** + * Sets this node's content, given as an array of bytes. + * + * @param bytes + * Byte array of new content. + */ + public void setContent(byte[] bytes); + + /** + * Gets an output stream for writing data to the node. The stream will be + * automatically closed upon invocation of any getContent...() methods, or + * the save() method. + * + * @return An output stream for writing data to the node. + */ + public OutputStream getOutputStream(); + + /** * Gets a history of this node. * * @return A history of this node. @@ -62,6 +88,14 @@ public InputStream getContentInputStream() throws RepositoryException; /** + * Gets the content of this node as a byte array. + * + * @return Content of this node as a byte array. + * @throws RepositoryException + */ + public byte[] getContentByteArray() throws RepositoryException; + + /** * Gets the length of this node's content. * * @return Length of this node's content. @@ -76,7 +110,7 @@ * @throws RepositoryException */ public long getLastModfication() throws RepositoryException; - + /** * Gets the mime type of this node. * Modified: trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/NodeList.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/NodeList.java 2005-10-28 15:56:29 UTC (rev 1465) +++ trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/NodeList.java 2005-10-28 16:32:35 UTC (rev 1466) @@ -39,7 +39,7 @@ return nodeList; } - /* - * public InputStream getFeed(Template velocityTemplate); - */ + /*public InputStream getFeed(String velocityTemplate) { + throw new RuntimeException("Operation not yet implemented"); + }*/ } Added: trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/NodeContent.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/NodeContent.java 2005-10-28 15:56:29 UTC (rev 1465) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/NodeContent.java 2005-10-28 16:32:35 UTC (rev 1466) @@ -0,0 +1,129 @@ +package org.jboss.shotoku.svn; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +public class NodeContent { + private final static int BUF_SIZE = 32768; + + private String stringContent; + private byte[] byteContent; + + private ByteArrayOutputStream currentBaos; + + private boolean changed; + + public NodeContent() { + changed = false; + } + + /* HELPER METHODS */ + + private void emptyContent() { + stringContent = null; + byteContent = null; + currentBaos = 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); + } + + /* CONVERSION METHODS */ + + public String asString() { + if (currentBaos != null) { + try { currentBaos.flush(); } catch (IOException e) { } + stringContent = currentBaos.toString(); + currentBaos = null; + } else if (stringContent == null) { + if (byteContent == null) + stringContent = ""; + else + stringContent = new String(byteContent); + } + + return stringContent; + } + + public byte[] asByteArray() { + if (currentBaos != null) { + try { currentBaos.flush(); } catch (IOException e) { } + byteContent = currentBaos.toByteArray(); + currentBaos = null; + } else if (byteContent == null) { + if (stringContent == null) + byteContent = new byte[0]; + else + byteContent = stringContent.getBytes(); + } + + return byteContent; + } + + public InputStream asInputStream() { + return new ByteArrayInputStream(asByteArray()); + } + + /* SETTING METHODS */ + + public void setContent(InputStream is) throws IOException { + emptyContent(); + ByteArrayOutputStream boas = new ByteArrayOutputStream(); + transfer(is, boas); + + byteContent = boas.toByteArray(); + + changed = true; + } + + public void setContent(String content) { + emptyContent(); + stringContent = content; + + changed = true; + } + + public void setContent(byte[] bytes) { + emptyContent(); + byteContent = bytes; + + changed = true; + } + + public void copyToFile(File file) throws FileNotFoundException, IOException { + transfer(asInputStream(), new FileOutputStream(file)); + } + + public OutputStream getOutputStream() { + currentBaos = new ByteArrayOutputStream(); + changed = true; + + return currentBaos; + } + + /* VARIOUS METHODS */ + + public boolean getChanged() { + return changed; + } + + public long getLength() { + if (stringContent != null) + return stringContent.length(); + + if (byteContent != null) + return byteContent.length; + + return 0; + } +} Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnHeadNode.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnHeadNode.java 2005-10-28 15:56:29 UTC (rev 1465) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnHeadNode.java 2005-10-28 16:32:35 UTC (rev 1466) @@ -6,7 +6,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.io.PrintWriter; +import java.io.OutputStream; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.charset.Charset; @@ -14,48 +14,92 @@ import org.jboss.shotoku.exceptions.RepositoryException; public class SvnHeadNode extends SvnNode { - private String newContent; + private NodeContent content; + private NodeContent getNodeContent() { + if (content == null) + content = new NodeContent(); + + return content; + } + public SvnHeadNode(String id, String fullPath, File file, String name, SvnContentManager svnCm) { super(id, fullPath, file, name, svnCm); - newContent = null; + content = null; } + private ByteBuffer getFileBytes() throws IOException { + FileChannel fc = new FileInputStream(file).getChannel(); + ByteBuffer buff = ByteBuffer.allocate((int) file.length()); + fc.read(buff); + buff.flip(); + + return buff; + } + public String getContent() { - if (newContent != null) return newContent; - + if (content == null) { + try { + return Charset.forName( + System.getProperty("file.encoding")).decode( + getFileBytes()).toString(); + } catch (IOException e) { + throw new RepositoryException(e); + } + } else + return content.asString(); + } + + + public byte[] getContentByteArray() { + if (content == null) { + try { + return getFileBytes().array(); + } catch (IOException e) { + throw new RepositoryException(e); + } + } else + return content.asByteArray(); + } + + public void setContent(String stringContent) { + getNodeContent().setContent(stringContent); + } + + + public void setContent(InputStream is) { try { - FileChannel fc = new FileInputStream(file).getChannel(); - ByteBuffer buff = ByteBuffer.allocate((int) file.length()); - fc.read(buff); - buff.flip(); - - return Charset.forName( - System.getProperty("file.encoding")).decode( - buff).toString(); + getNodeContent().setContent(is); } catch (IOException e) { throw new RepositoryException(e); } } - public void setContent(String content) { - newContent = content; + public void setContent(byte[] bytes) { + getNodeContent().setContent(bytes); } - public int getRevisionNumber() { - int historicRevisions = getHistory().getRevisionsCount(); - return historicRevisions + (checkForChanges() ? 1 : 0); + public OutputStream getOutputStream() { + return getNodeContent().getOutputStream(); } public InputStream getContentInputStream() { try { - return new FileInputStream(file); + if ((content != null) && (content.getChanged())) + return content.asInputStream(); + else + return new FileInputStream(file); } catch (FileNotFoundException e) { throw new RepositoryException(e); } } + public int getRevisionNumber() { + int historicRevisions = getHistory().getRevisionsCount(); + return historicRevisions + (checkForChanges() ? 1 : 0); + } + public long getLength() { return file.length(); } @@ -72,7 +116,7 @@ } protected boolean checkForChanges() { - return newContent != null || super.checkForChanges(); + return ((content != null) && (content.getChanged())) || (super.checkForChanges()); } protected void saveWithLock(String logMessage) { @@ -81,20 +125,15 @@ save(); // Saving modified content. - if (newContent != null) { - PrintWriter pw; - + if ((content != null) && (content.getChanged())) { try { - pw = new PrintWriter(file); - } catch (FileNotFoundException e) { + content.copyToFile(file); + } catch (Exception e) { service.putWriteLock(id, fullPath); throw new RepositoryException(e); } - pw.print(newContent); - pw.close(); - - newContent = null; + content = null; } service.commit(id, fullPath, logMessage); Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnHistoricNode.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnHistoricNode.java 2005-10-28 15:56:29 UTC (rev 1465) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnHistoricNode.java 2005-10-28 16:32:35 UTC (rev 1466) @@ -4,6 +4,7 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.InputStream; +import java.io.OutputStream; import java.io.PrintWriter; import java.util.Date; import java.util.Map; @@ -64,6 +65,12 @@ return new ByteArrayInputStream(content.toByteArray()); } + + public byte[] getContentByteArray() throws RepositoryException { + loadContentAndProperties(); + + return content.toByteArray(); + } public long getLength() { loadContentAndProperties(); @@ -116,4 +123,16 @@ public void delete() { throw new NodeReadOnly(); } + + public void setContent(InputStream arg0) { + throw new NodeReadOnly(); + } + + public OutputStream getOutputStream() { + throw new NodeReadOnly(); + } + + public void setContent(byte[] arg0) { + throw new NodeReadOnly(); + } } Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewNode.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewNode.java 2005-10-28 15:56:29 UTC (rev 1465) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewNode.java 2005-10-28 16:32:35 UTC (rev 1466) @@ -3,21 +3,22 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.io.PrintWriter; +import java.io.OutputStream; import java.util.Calendar; import org.jboss.shotoku.History; import org.jboss.shotoku.exceptions.RepositoryException; public class SvnNewNode extends SvnHeadNode { - private String content; + private NodeContent content; + private boolean saved; public SvnNewNode(String id, String fullPath, File file, String name, SvnContentManager svnCm) { super(id, fullPath, file, name, svnCm); - content = null; + content = new NodeContent(); saved = false; } @@ -33,18 +34,28 @@ public String getContent() { if (saved) return super.getContent(); - else - return content; + else { + return content.asString(); + } } @Override public InputStream getContentInputStream() { if (saved) return super.getContentInputStream(); - else - // TODO - return null; + else { + return content.asInputStream(); + } } + + @Override + public byte[] getContentByteArray() { + if (saved) + return super.getContentByteArray(); + else { + return content.asByteArray(); + } + } @Override public History getHistory() { @@ -67,7 +78,7 @@ if (saved) return super.getLength(); else - return content.length(); + return content.getLength(); } @Override @@ -118,6 +129,8 @@ service.putWriteLock(id, fullPath); throw new RepositoryException(e); } + + super.setContent(content.asString()); saveWithLock(logMessage); @@ -126,29 +139,52 @@ } @Override - public void setContent(String content) { - super.setContent(content); - this.content = content; + public void setContent(String stringContent) { + if (saved) + super.setContent(stringContent); + else { + content.setContent(stringContent); + } } + + public void setContent(InputStream is) { + if (saved) + super.setContent(is); + else { + try { + content.setContent(is); + } catch (IOException e) { + throw new RepositoryException(e); + } + } + } + + public void setContent(byte[] bytes) { + if (saved) + super.setContent(bytes); + else { + content.setContent(bytes); + } + } + + public OutputStream getOutputStream() { + if (saved) + return super.getOutputStream(); + else { + return content.getOutputStream(); + } + } @Override public void copyToFile(String filename) throws RepositoryException { if (saved) super.copyToFile(filename); else { - File target = new File(filename); - - PrintWriter pw; - try { - target.createNewFile(); - pw = new PrintWriter(target); + content.copyToFile(file); } catch (Exception e) { throw new RepositoryException(e); } - - pw.print(content); - pw.close(); } } } Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnRepository.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnRepository.java 2005-10-28 15:56:29 UTC (rev 1465) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnRepository.java 2005-10-28 16:32:35 UTC (rev 1466) @@ -136,7 +136,7 @@ op.performOperation(ourClientManager); } catch (SVNException e) { tryCleanup(); - log.warn("Performing delayed op: " + op.getClass().getName() + " failed.", e); + log.error("Performing delayed op: " + op.getClass().getName() + " failed.", e); } } } @@ -146,7 +146,6 @@ } public void getWriteLock(String path) { - // TODO if (path.contains("//")) throw new RuntimeException("Two / in: " + path); Added: trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ContentSettingTest.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ContentSettingTest.java 2005-10-28 15:56:29 UTC (rev 1465) +++ trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ContentSettingTest.java 2005-10-28 16:32:35 UTC (rev 1466) @@ -0,0 +1,68 @@ +package org.jboss.shotoku.test; + +import java.io.IOException; +import java.util.Arrays; + +import org.jboss.shotoku.Node; + +public class ContentSettingTest extends ShotokuTest { + private final static String TEST_FILE = "content-saving-test-1"; + private final static String TEST_CONTENT = "content 1\nline 2"; + private final static String TEST_CONTENT_2 = "content 2\nline 2\nline 3"; + private final static String TEST_CONTENT_3 = "content 3\n\nline 3"; + + @Override + protected void setUp() throws Exception { + Node n = cm.getRootDirectory().newNode(TEST_FILE); + n.save(TEST_FILE); + } + + private void assertNodeContent(Node n, String content) { + assertTrue(content.equals(n.getContent())); + assertTrue(Arrays.equals(content.getBytes(), n.getContentByteArray())); + } + + public void testString() { + // Getting the test node. + Node n = cm.getNode(TEST_FILE); + + // Modifying the content. + n.setContent(TEST_CONTENT); + n.save(TEST_FILE); + + // Checking if changes are visible. + assertNodeContent(n, TEST_CONTENT); + assertNodeContent(cm.getRootDirectory().getNode(TEST_FILE), TEST_CONTENT); + } + + public void testByteArray() { + // Getting the test node. + Node n = cm.getNode(TEST_FILE); + + // Modifying the content. + n.setContent(TEST_CONTENT_2.getBytes()); + n.save(TEST_FILE); + + // Checking if changes are visible. + assertNodeContent(n, TEST_CONTENT_2); + assertNodeContent(cm.getRootDirectory().getNode(TEST_FILE), TEST_CONTENT_2); + } + + public void testOutputStream() throws IOException { + // Getting the test node. + Node n = cm.getNode(TEST_FILE); + + // Modifying the content. + n.getOutputStream().write(TEST_CONTENT_3.getBytes()); + n.save(TEST_FILE); + + // Checking if changes are visible. + assertNodeContent(n, TEST_CONTENT_3); + assertNodeContent(cm.getRootDirectory().getNode(TEST_FILE), TEST_CONTENT_3); + } + + @Override + protected void tearDown() throws Exception { + cm.getNode(TEST_FILE).delete(); + } +} |
From: <jbo...@li...> - 2005-10-28 15:56:32
|
Author: adamw Date: 2005-10-28 11:56:29 -0400 (Fri, 28 Oct 2005) New Revision: 1465 Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java Log: Timer fix 2 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-28 15:48:33 UTC (rev 1464) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java 2005-10-28 15:56:29 UTC (rev 1465) @@ -35,9 +35,9 @@ ssi.update(); // Avoiding WARN. - timer.cancel(); + //timer.cancel(); - scheduleTimer(ssi.getTimerInterval()); + //scheduleTimer(ssi.getTimerInterval()); } catch (MalformedObjectNameException e) { e.printStackTrace(); } |
Author: adamw Date: 2005-10-28 11:48:33 -0400 (Fri, 28 Oct 2005) New Revision: 1464 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: Timer fix 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-28 15:26:18 UTC (rev 1463) +++ trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java 2005-10-28 15:48:33 UTC (rev 1464) @@ -1,7 +1,5 @@ package org.jboss.forge.service; -import java.util.Date; - import javax.annotation.Resource; import javax.ejb.Local; import javax.ejb.SessionContext; @@ -24,14 +22,10 @@ @Local(ForgeTimerLocal.class) public class ForgeTimer implements ForgeTimerLocal { private @Resource SessionContext ctx; - private static boolean once=true; public void scheduleTimer(long interval) { - if(once) { - ctx.getTimerService().createTimer(new Date(new Date().getTime() + interval), - null); - once = false; - } + // ctx.getTimerService().createTimer(new Date(new Date().getTime() + interval), null); + ctx.getTimerService().createTimer(0, interval, null); } @Timeout @@ -50,7 +44,7 @@ // Scheduling next timer to timeout after the amount of time that // is set in forgeManagement. - scheduleTimer(fm.getTimerInterval()); + // scheduleTimer(fm.getTimerInterval()); } catch (MalformedObjectNameException e) { e.printStackTrace(); } 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-28 15:26:18 UTC (rev 1463) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java 2005-10-28 15:48:33 UTC (rev 1464) @@ -1,7 +1,5 @@ package org.jboss.shotoku.svn.service; -import java.util.Date; - import javax.annotation.Resource; import javax.ejb.Local; import javax.ejb.SessionContext; @@ -19,10 +17,10 @@ public class SvnServiceTimer { //private static final Logger log = Logger.getLogger(SvnServiceTimer.class); private @Resource SessionContext ctx; - private static boolean once=true; public void scheduleTimer(long interval) { - ctx.getTimerService().createTimer(new Date(new Date().getTime() + interval), null); + //ctx.getTimerService().createTimer(new Date(new Date().getTime() + interval), null); + ctx.getTimerService().createTimer(0, interval, null); } @Timeout @@ -34,10 +32,7 @@ SvnService.SVN_SERVICE_NAME, MBeanServerLocator.locate())); - if(once) { - ssi.update(); - once=false; - } + ssi.update(); // Avoiding WARN. timer.cancel(); |
From: <jbo...@li...> - 2005-10-28 15:26:24
|
Author: rem...@jb... Date: 2005-10-28 11:26:18 -0400 (Fri, 28 Oct 2005) New Revision: 1463 Modified: trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteValve.java trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/TomcatResolver.java Log: - Should handle setting the valve to a Context (config is in /WEB-INF/rewrite.properties). - Update Tomcat resolver to return non null strings for paths. 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-28 15:14:47 UTC (rev 1462) +++ trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteValve.java 2005-10-28 15:26:18 UTC (rev 1463) @@ -26,6 +26,7 @@ import org.apache.catalina.connector.Response; import org.apache.catalina.util.LifecycleSupport; import org.apache.catalina.valves.ValveBase; +import org.apache.tomcat.util.buf.CharChunk; public class RewriteValve extends ValveBase implements Lifecycle { @@ -64,6 +65,12 @@ /** + * Will be set to true if the valve is associated with a context. + */ + protected boolean context = false; + + + /** * Maps to be used by the rules. */ protected Map maps = new Hashtable(); @@ -87,6 +94,7 @@ // Process configuration file for this valve if (getContainer() instanceof Context) { + context = true; is = ((Context) getContainer()).getServletContext() .getResourceAsStream("/WEB-INF/" + resourcePath); } else { @@ -210,10 +218,7 @@ // As long as MB isn't a char sequence or affiliated, this has to be // converted to a string - // FIXME: Most likely need to use the requestPath to handle the case - // where the valve is set at the context level, and then reconstruct the - // full URL at the end - String url = request.getDecodedRequestURI(); + String url = context ? request.getRequestPathMB().toString() : request.getDecodedRequestURI(); boolean rewritten = false; boolean done = false; for (int i = 0; i < rules.length; i++) { @@ -293,9 +298,16 @@ if (rewritten) { if (!done) { + // Set the new URL + CharChunk chunk = request.getCoyoteRequest().requestURI().getCharChunk(); + chunk.recycle(); + if (context) { + chunk.append(request.getContextPath()); + } + chunk.append(url); + request.getCoyoteRequest().requestURI().toChars(); // Reinvoke the whole request recursively try { - request.getCoyoteRequest().requestURI().setString(url); request.getConnector().getProtocolHandler().getAdapter().service (request.getCoyoteRequest(), response.getCoyoteResponse()); } catch (Exception e) { Modified: trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/TomcatResolver.java =================================================================== --- trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/TomcatResolver.java 2005-10-28 15:14:47 UTC (rev 1462) +++ trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/TomcatResolver.java 2005-10-28 15:26:18 UTC (rev 1463) @@ -17,7 +17,7 @@ * - IS_SUBREQ */ public String resolve(String key) { - // FIXME: Time based stuff not implemented + // FIXME: Time based stuff is not implemented if (key.equals("HTTP_USER_AGENT")) { return request.getHeader("user-agent"); } else if (key.equals("HTTP_USER_AGENT")) { @@ -48,10 +48,16 @@ return request.getMethod(); } else if (key.equals("SCRIPT_FILENAME")) { return request.getRealPath(request.getServletPath()); //FIXME ? + } else if (key.equals("REQUEST_PATH")) { + return request.getRequestPathMB().toString(); + } else if (key.equals("CONTEXT_PATH")) { + return request.getContextPath(); + } else if (key.equals("SERVLET_PATH")) { + return emptyStringIfNull(request.getServletPath()); } else if (key.equals("PATH_INFO")) { - return request.getPathInfo(); + return emptyStringIfNull(request.getPathInfo()); } else if (key.equals("QUERY_STRING")) { - return request.getQueryString(); + return emptyStringIfNull(request.getQueryString()); } else if (key.equals("AUTH_TYPE")) { return request.getAuthType(); } else if (key.equals("DOCUMENT_ROOT")) { @@ -80,12 +86,20 @@ } public String resolveSsl(String key) { - // FIXME: Implement SSL env variables + // FIXME: Implement SSL environment variables return null; } public String resolveHttp(String key) { return request.getHeader(key); } + + private static final String emptyStringIfNull(String value) { + if (value == null) { + return ""; + } else { + return value; + } + } } |
From: <jbo...@li...> - 2005-10-28 15:15:02
|
Author: dam...@jb... Date: 2005-10-28 11:14:47 -0400 (Fri, 28 Oct 2005) New Revision: 1462 Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java Log: Adding the timer.cancel method. 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-28 14:27:42 UTC (rev 1461) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java 2005-10-28 15:14:47 UTC (rev 1462) @@ -40,7 +40,7 @@ } // Avoiding WARN. - // timer.cancel(); + timer.cancel(); scheduleTimer(ssi.getTimerInterval()); } catch (MalformedObjectNameException e) { |
From: <jbo...@li...> - 2005-10-28 14:27:46
|
Author: dam...@jb... Date: 2005-10-28 10:27:42 -0400 (Fri, 28 Oct 2005) New Revision: 1461 Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java Log: Turning timer back on, but turning off ssi.update() to isolate memleak in either the ejb3 service or the svn service. 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-28 14:21:35 UTC (rev 1460) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java 2005-10-28 14:27:42 UTC (rev 1461) @@ -22,10 +22,7 @@ private static boolean once=true; public void scheduleTimer(long interval) { - if(once) { - ctx.getTimerService().createTimer(new Date(new Date().getTime() + interval), null); - once=false; - } + ctx.getTimerService().createTimer(new Date(new Date().getTime() + interval), null); } @Timeout @@ -37,7 +34,10 @@ SvnService.SVN_SERVICE_NAME, MBeanServerLocator.locate())); - ssi.update(); + if(once) { + ssi.update(); + once=false; + } // Avoiding WARN. // timer.cancel(); |
From: <jbo...@li...> - 2005-10-28 14:21:43
|
Author: dam...@jb... Date: 2005-10-28 10:21:35 -0400 (Fri, 28 Oct 2005) New Revision: 1460 Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java Log: Turning off shotoku service except for once. 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-28 13:56:41 UTC (rev 1459) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceTimer.java 2005-10-28 14:21:35 UTC (rev 1460) @@ -19,10 +19,13 @@ public class SvnServiceTimer { //private static final Logger log = Logger.getLogger(SvnServiceTimer.class); private @Resource SessionContext ctx; + private static boolean once=true; public void scheduleTimer(long interval) { - ctx.getTimerService().createTimer(new Date(new Date().getTime() + interval), - null); + if(once) { + ctx.getTimerService().createTimer(new Date(new Date().getTime() + interval), null); + once=false; + } } @Timeout |
From: <jbo...@li...> - 2005-10-28 13:56:45
|
Author: rem...@jb... Date: 2005-10-28 09:56:41 -0400 (Fri, 28 Oct 2005) New Revision: 1459 Modified: trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteValve.java Log: - I actually had added Request.get/setConnector a long time ago, so there's no need for useless hacks. 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-28 13:45:16 UTC (rev 1458) +++ trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteValve.java 2005-10-28 13:56:41 UTC (rev 1459) @@ -294,17 +294,12 @@ if (rewritten) { if (!done) { // Reinvoke the whole request recursively - Engine engine = (Engine) request.getHost().getParent(); - Connector[] connectors = engine.getService().findConnectors(); - // Find the right connector (note: this is the only real hack) - // FIXME: do it by comparing ports and stuff for now ? - Connector connector = connectors[0]; try { request.getCoyoteRequest().requestURI().setString(url); - connector.getProtocolHandler().getAdapter().service + request.getConnector().getProtocolHandler().getAdapter().service (request.getCoyoteRequest(), response.getCoyoteResponse()); } catch (Exception e) { - // This doesn't actually happen in Tomcat + // This doesn't actually happen in the Catalina adapter implementation } } } else { |
From: <jbo...@li...> - 2005-10-28 13:45:23
|
Author: rem...@jb... Date: 2005-10-28 09:45:16 -0400 (Fri, 28 Oct 2005) New Revision: 1458 Modified: trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteValve.java Log: - Actually update the right URI field (it should be the "undecoded" URI). Ooops. - It works, but setting the valve to a Context won't work yet (URLs are relative to the context during most of the processing, so it isn't exactly the same thing). 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-28 11:57:43 UTC (rev 1457) +++ trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteValve.java 2005-10-28 13:45:16 UTC (rev 1458) @@ -210,6 +210,9 @@ // As long as MB isn't a char sequence or affiliated, this has to be // converted to a string + // FIXME: Most likely need to use the requestPath to handle the case + // where the valve is set at the context level, and then reconstruct the + // full URL at the end String url = request.getDecodedRequestURI(); boolean rewritten = false; boolean done = false; @@ -294,10 +297,10 @@ Engine engine = (Engine) request.getHost().getParent(); Connector[] connectors = engine.getService().findConnectors(); // Find the right connector (note: this is the only real hack) - // FIXME + // FIXME: do it by comparing ports and stuff for now ? Connector connector = connectors[0]; try { - request.getCoyoteRequest().decodedURI().setString(url); + request.getCoyoteRequest().requestURI().setString(url); connector.getProtocolHandler().getAdapter().service (request.getCoyoteRequest(), response.getCoyoteResponse()); } catch (Exception e) { @@ -472,7 +475,8 @@ } 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 + // FIXME: Proxy not supported at the moment, would require proxy + // capabilities //rule.setProxy(true); } else if (flag.startsWith("qsappend") || flag.startsWith("QSA")) { rule.setQsappend(true); |
From: <jbo...@li...> - 2005-10-28 11:58:00
|
Author: aron.gombas Date: 2005-10-28 07:57:43 -0400 (Fri, 28 Oct 2005) New Revision: 1457 Added: trunk/labs/kosmos/web-portlet/WEB-INF/lib/junit-3.8.1.jar trunk/labs/kosmos/web-server/WEB-INF/lib/commons-lang-2.0.jar Log: Dependencies fixed for both subprojects Added: trunk/labs/kosmos/web-portlet/WEB-INF/lib/junit-3.8.1.jar =================================================================== (Binary files differ) Property changes on: trunk/labs/kosmos/web-portlet/WEB-INF/lib/junit-3.8.1.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/labs/kosmos/web-server/WEB-INF/lib/commons-lang-2.0.jar =================================================================== (Binary files differ) Property changes on: trunk/labs/kosmos/web-server/WEB-INF/lib/commons-lang-2.0.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream |
From: <jbo...@li...> - 2005-10-28 11:57:24
|
Author: aron.gombas Date: 2005-10-28 07:57:09 -0400 (Fri, 28 Oct 2005) New Revision: 1456 Modified: trunk/labs/kosmos/web-portlet/pages/images/new.gif trunk/labs/kosmos/web-portlet/pages/includes/table_expander.jsp Log: Cosmetic changes Modified: trunk/labs/kosmos/web-portlet/pages/images/new.gif =================================================================== (Binary files differ) Modified: trunk/labs/kosmos/web-portlet/pages/includes/table_expander.jsp =================================================================== --- trunk/labs/kosmos/web-portlet/pages/includes/table_expander.jsp 2005-10-27 22:31:56 UTC (rev 1455) +++ trunk/labs/kosmos/web-portlet/pages/includes/table_expander.jsp 2005-10-28 11:57:09 UTC (rev 1456) @@ -3,8 +3,8 @@ <%@include file="../scripts/main.js"%> </script> -<img src="<%= renderRequest.getContextPath() %>/pages/images/table.gif" title="<fmt:message key="legend.warning"/>"/> - +<img src="<%= renderRequest.getContextPath() %>/pages/images/table.gif"/> + <a href="javascript:void(0)" onclick="javascript:showTableRows('row-<portlet:namespace/>-${listIndex}-', ${listSize}, 10)"> <fmt:message key="action.show"/> 10 </a> |
From: <jbo...@li...> - 2005-10-27 22:32:03
|
Author: dam...@jb... Date: 2005-10-27 18:31:56 -0400 (Thu, 27 Oct 2005) New Revision: 1455 Modified: trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java Log: Making timer schedule only once.. to see if this fixes memory leak problem. 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-27 14:57:11 UTC (rev 1454) +++ trunk/forge/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeTimer.java 2005-10-27 22:31:56 UTC (rev 1455) @@ -24,10 +24,14 @@ @Local(ForgeTimerLocal.class) public class ForgeTimer implements ForgeTimerLocal { private @Resource SessionContext ctx; + private static boolean once=true; public void scheduleTimer(long interval) { + if(once) { ctx.getTimerService().createTimer(new Date(new Date().getTime() + interval), null); + once = false; + } } @Timeout |
From: <jbo...@li...> - 2005-10-27 14:57:35
|
Author: aron.gombas Date: 2005-10-27 10:57:11 -0400 (Thu, 27 Oct 2005) New Revision: 1454 Modified: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/cc/CcServiceTest.java trunk/labs/kosmos/src/test/hu/midori/kosmos/server/jira/JiraServiceTest.java trunk/labs/kosmos/src/test/hu/midori/kosmos/server/sf/SfServiceTest.java trunk/labs/kosmos/src/test/hu/midori/kosmos/server/svn/SvnServiceTest.java Log: Basic assertions added to the tests Modified: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/cc/CcServiceTest.java =================================================================== --- trunk/labs/kosmos/src/test/hu/midori/kosmos/server/cc/CcServiceTest.java 2005-10-26 17:03:46 UTC (rev 1453) +++ trunk/labs/kosmos/src/test/hu/midori/kosmos/server/cc/CcServiceTest.java 2005-10-27 14:57:11 UTC (rev 1454) @@ -7,11 +7,14 @@ package hu.midori.kosmos.server.cc; import hu.midori.kosmos.model.CcProject; +import hu.midori.kosmos.model.CcTest; import hu.midori.kosmos.protocol.CcService; import hu.midori.kosmos.server.AbstractKosmosServiceTest; import java.util.List; +import org.apache.commons.lang.StringUtils; + /** * Unit test. * @@ -21,7 +24,7 @@ public class CcServiceTest extends AbstractKosmosServiceTest { private CcService service = new CcServiceImpl(); - /** TODO */ + /** Tests finding the most recent logfile. */ public void testMostRecentFinder() { // TODO } @@ -52,11 +55,34 @@ // TODO add more logfiles - /** TODO */ - public void testLog(String dir) { + /** Tests a dir. */ + protected void testLog(String dir) { List<CcProject> projects = service.getProjects(dir); assertEquals(1, projects.size()); // one CC log contains exactly one project - // TODO assert for properties + // test project + CcProject project = projects.get(0); + assertTrue(project.getName().length() > 0); + assertTrue(project.getBuildLabel().length() > 0); + // TODO assert getStatus() { + assertTrue(project.getTimestamp().getTime() > 0); + assertTrue(project.getModifications() >= 0); + assertTrue(project.getBuildTime().length() > 0); + assertTrue(project.getTests() >= 0); + assertTrue(project.getTestsSucceded() >= 0); + assertTrue(project.getFailures() >= 0); + assertTrue(project.getErrors() >= 0); + assertEquals(project.getTests(), project.getTestsSucceded() + project.getFailures() + project.getErrors()); + assertEquals(project.getTests(), project.getTestCases().size()); + assertFalse(StringUtils.isBlank(project.getTestsPerCategoryChartUrl())); + assertTrue((project.getSuccessRate() >= 0.0) && (project.getSuccessRate() <= 1.0)); + assertTrue(project.getLastBuildAge() >= 0); + + // test testcases + for(CcTest testCase : project.getTestCases()) { + assertTrue(testCase.getResult() >= 0); + assertFalse(StringUtils.isBlank(testCase.getClassName())); + assertFalse(StringUtils.isBlank(testCase.getTestCaseName())); + } } } Modified: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/jira/JiraServiceTest.java =================================================================== --- trunk/labs/kosmos/src/test/hu/midori/kosmos/server/jira/JiraServiceTest.java 2005-10-26 17:03:46 UTC (rev 1453) +++ trunk/labs/kosmos/src/test/hu/midori/kosmos/server/jira/JiraServiceTest.java 2005-10-27 14:57:11 UTC (rev 1454) @@ -12,6 +12,8 @@ import java.util.List; +import org.apache.commons.lang.StringUtils; + /** * Unit test. * @@ -26,9 +28,13 @@ assertEquals(0, service.getProjects("http://www.nosuchdomain.com/jira").size()); } - /** TODO */ + /** Tests authentication. */ public void testAuthentication() { - // TODO implement after the authentication is implemented + // login with invalid account + // TODO implement after the authentication is implemented + + // login with valid account + // TODO implement after the authentication is implemented } public void testApacheInstance() { @@ -99,11 +105,40 @@ // TODO add further instances seen in the Atlassian pages - /** TODO */ + /** Tests a public instance. */ protected void testPublicInstance(String url) { List<JiraProject> projects = service.getProjects(url); assertTrue(projects.size() > 0); - // TODO assert for properties + // test projects + for(JiraProject project : projects) { + assertFalse(StringUtils.isBlank(project.getName())); + assertFalse(StringUtils.isBlank(project.getUrl())); + assertFalse(StringUtils.isBlank(project.getKey())); + assertFalse(StringUtils.isBlank(project.getProjectUrl())); + assertFalse(StringUtils.isBlank(project.getDescription())); + assertFalse(StringUtils.isBlank(project.getLead())); + + assertTrue(project.getOpenIssues() >= 0); + assertTrue(project.getCodingInProgressIssues() >= 0); + assertTrue(project.getReopenedIssues() >= 0); + assertTrue(project.getResolvedIssues() >= 0); + assertTrue(project.getClosedIssues() >= 0); + + assertTrue(project.getBlockerOpenIssues() >= 0); + assertTrue(project.getCriticalOpenIssues() >= 0); + assertTrue(project.getMajorOpenIssues() >= 0); + assertTrue(project.getMinorOpenIssues() >= 0); + assertTrue(project.getTrivialOpenIssues() >= 0); + assertTrue(project.getOptionalOpenIssues() >= 0); + + // TODO assert getOpenIssuesPerAssignee() + + assertFalse(StringUtils.isBlank(project.getIssuesPerStatusChartUrl())); + assertFalse(StringUtils.isBlank(project.getOpenIssuesPerPriorityChartUrl())); + assertFalse(StringUtils.isBlank(project.getOpenIssuesPerAssigneeChartUrl())); + + assertEquals(project.getTotalIssues(), project.getOpenIssues() + project.getCodingInProgressIssues() + project.getReopenedIssues() + project.getResolvedIssues() + project.getClosedIssues()); + } } } Modified: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/sf/SfServiceTest.java =================================================================== --- trunk/labs/kosmos/src/test/hu/midori/kosmos/server/sf/SfServiceTest.java 2005-10-26 17:03:46 UTC (rev 1453) +++ trunk/labs/kosmos/src/test/hu/midori/kosmos/server/sf/SfServiceTest.java 2005-10-27 14:57:11 UTC (rev 1454) @@ -12,6 +12,8 @@ import java.util.List; +import org.apache.commons.lang.StringUtils; + /** * Unit test. * @@ -51,11 +53,20 @@ // TODO test various projects here with long release list - /** TODO */ + /** Tests a release. */ protected void testProjectWithRelease(String url) { List<SfRelease> releases = service.getFileReleases(url); assertTrue(releases.size() > 0); - // TODO assert for properties + // test releases + for(SfRelease release : releases) { + assertFalse(StringUtils.isBlank(release.getPackageName())); + assertFalse(StringUtils.isBlank(release.getPackageUrl())); + assertFalse(StringUtils.isBlank(release.getVersion())); + assertFalse(StringUtils.isBlank(release.getVersionUrl())); + assertTrue(release.getDate().getTime() > 0); + assertTrue(release.getAge() > 0); + assertTrue(release.getAgeInDays() > 0); + } } } Modified: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/svn/SvnServiceTest.java =================================================================== --- trunk/labs/kosmos/src/test/hu/midori/kosmos/server/svn/SvnServiceTest.java 2005-10-26 17:03:46 UTC (rev 1453) +++ trunk/labs/kosmos/src/test/hu/midori/kosmos/server/svn/SvnServiceTest.java 2005-10-27 14:57:11 UTC (rev 1454) @@ -12,6 +12,8 @@ import java.util.List; +import org.apache.commons.lang.StringUtils; + /** * Unit test. * @@ -49,11 +51,38 @@ // TODO add more instances here - /** TODO */ + /** Tests a public instance. */ protected void testPublicInstance(String url) { List<SvnRepository> repositories = service.getRepositories(url); assertTrue(repositories.size() > 0); - // TODO assert for properties + // test repositories + for(SvnRepository repository : repositories) { + assertFalse(StringUtils.isBlank(repository.getLocation())); + assertTrue(repository.getRevision() > 0); + assertTrue(repository.getCreatedDate().getTime() > 0); + // TODO assert getCommits() + assertTrue(repository.getCommitsTotal() >= 0); + assertTrue((repository.getCommitsToday() >= 0) && (repository.getCommitsToday() <= repository.getCommitsTotal())); + assertTrue((repository.getCommitsLast7Days() >= 0) && (repository.getCommitsLast7Days() <= repository.getCommitsTotal())); + assertTrue((repository.getCommitsLast31Days() >= 0) && (repository.getCommitsLast31Days() <= repository.getCommitsTotal())); + assertTrue(repository.getCommittersTotal() >= 0); + assertTrue((repository.getCommittersToday() >= 0) && (repository.getCommittersToday() <= repository.getCommittersTotal())); + assertTrue((repository.getCommittersLast7Days() >= 0) && (repository.getCommittersLast7Days() <= repository.getCommittersTotal())); + assertTrue((repository.getCommittersLast31Days() >= 0) && (repository.getCommittersLast31Days() <= repository.getCommittersTotal())); + assertFalse(StringUtils.isBlank(repository.getCommitsPerAuthorChartUrl())); + assertFalse(StringUtils.isBlank(repository.getCommitsPerFileChartUrl())); + assertFalse(StringUtils.isBlank(repository.getCommitsPerWeekChartUrl())); + assertFalse(StringUtils.isBlank(repository.getRepoEntriesPerWeekChartUrl())); + assertTrue(repository.getDirs() >= 0); + assertTrue(repository.getFiles() >= 0); + assertTrue(repository.getTotalFileSize() >= 0); + // TODO assert getCommitsPerAuthor() + // TODO assert getCommitsPerFile() + assertTrue(repository.getAge() >= 0); + assertTrue((repository.getLatestTouchAge() >= 0) && (repository.getLatestTouchAge() < repository.getAge())); + assertTrue(repository.getLatestTouchAgeInDays() >= 0); + assertTrue((repository.getActivity() >= 0) && (repository.getActivity() <= 1.0)); + } } } |
From: <jbo...@li...> - 2005-10-26 17:04:05
|
Author: rem...@jb... Date: 2005-10-26 13:03:46 -0400 (Wed, 26 Oct 2005) New Revision: 1453 Modified: trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteValve.java Log: - Add debug messages to the valve. 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-26 13:47:50 UTC (rev 1452) +++ trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteValve.java 2005-10-26 17:03:46 UTC (rev 1453) @@ -98,8 +98,14 @@ // Use getResource and getResourceAsStream is = getClass().getClassLoader() .getResourceAsStream(resourceName); + if (is != null && container.getLogger().isDebugEnabled()) { + container.getLogger().debug("Read configuration from CL at " + resourceName); + } } } else { + if (container.getLogger().isDebugEnabled()) { + container.getLogger().debug("Read configuration from " + file.getAbsolutePath()); + } is = new FileInputStream(file); } } catch (Exception e) { @@ -108,6 +114,9 @@ } if (is == null) { + if (container.getLogger().isDebugEnabled()) { + container.getLogger().debug("No configuration found"); + } // Will use management operations to configure the valve dynamically return; } @@ -125,7 +134,18 @@ Object result = parse(line); if (result instanceof RewriteRule) { RewriteRule rule = (RewriteRule) result; + if (container.getLogger().isDebugEnabled()) { + container.getLogger().debug("Add rule with pattern " + rule.getPatternString() + + " and substitution " + rule.getSubstitutionString()); + } for (int i = 0; i < conditions.size(); i++) { + if (container.getLogger().isDebugEnabled()) { + RewriteCond cond = (RewriteCond) conditions.get(i); + container.getLogger().debug("Add condition " + cond.getCondPattern() + + " test " + cond.getTestString() + " to rule with pattern " + + rule.getPatternString() + " and substitution " + + rule.getSubstitutionString()); + } rule.addCondition((RewriteCond) conditions.get(i)); } conditions.clear(); @@ -196,6 +216,10 @@ for (int i = 0; i < rules.length; i++) { CharSequence newurl = rules[i].evaluate(url, resolver); if (newurl != null && !url.equals(newurl.toString())) { + if (container.getLogger().isDebugEnabled()) { + container.getLogger().debug("Rewrote " + url + " as " + newurl + + " with rule pattern " + rules[i].getPatternString()); + } url = newurl.toString(); rewritten = true; } |
From: <jbo...@li...> - 2005-10-26 13:47:56
|
Author: rem...@jb... Date: 2005-10-26 09:47:50 -0400 (Wed, 26 Oct 2005) New Revision: 1452 Modified: trunk/labs/jbossweb/build.properties.default trunk/labs/jbossweb/build.xml trunk/labs/jbossweb/jboss/readme.txt trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteTestCase.java Log: - Change the place where the JBoss binary should be put. Autodownload is possible, but would take a while (not for me, but ...). - Build the rewrite component. Modified: trunk/labs/jbossweb/build.properties.default =================================================================== --- trunk/labs/jbossweb/build.properties.default 2005-10-26 12:47:08 UTC (rev 1451) +++ trunk/labs/jbossweb/build.properties.default 2005-10-26 13:47:50 UTC (rev 1452) @@ -12,10 +12,8 @@ # ----- Vesion Control Flags ----- version.major=4 version.minor=0 -version.build=0 -version.patch=0 -#Set the pretty version name -version=4.0.0-dev +version.build=3 +version.patch=SP1 # ----- Compile Control Flags ----- compile.debug=on Modified: trunk/labs/jbossweb/build.xml =================================================================== --- trunk/labs/jbossweb/build.xml 2005-10-26 12:47:08 UTC (rev 1451) +++ trunk/labs/jbossweb/build.xml 2005-10-26 13:47:50 UTC (rev 1452) @@ -16,9 +16,8 @@ <property name="version.major" value="4" /> <property name="version.minor" value="0" /> <property name="version.build" value="0" /> - <property name="version.patch" value="0" /> - <property name="version" value="4.0.0-dev" /> - <property name="version.number" value="${version.major}.${version.minor}.${version.build}.${version.patch}" /> + <property name="version.patch" value="" /> + <property name="version" value="${version.major}.${version.minor}.${version.build}${version.patch}" /> <property name="project" value="jbossweb" /> <property name="final.name" value="${project}-${version}" /> @@ -30,7 +29,7 @@ value="${basedir}/.."/> <!-- Build Defaults --> - <property name="jboss.build" value="${basedir}/jboss"/> + <property name="jboss.build" value="${basedir}/jboss/jboss-${version}"/> <property name="jbossweb.build" value="${basedir}/output"/> <property name="jbossweb.release" value="${basedir}/release"/> @@ -41,7 +40,18 @@ <property name="compile.deprecation" value="false" /> <property name="compile.source" value="1.4" /> - + <path id="catalina.classpath"> + <fileset dir="${jboss.build}/server/all"> + <include name="deploy/jbossweb-tomcat55.sar/**"/> + <include name="lib/commons-logging.jar" /> + <include name="lib/javax.servlet.jar" /> + <include name="lib/javax.servlet.jsp.jar" /> + </fileset> + <fileset dir="${jboss.build}/lib"> + <include name="jboss-jmx.jar" /> + </fileset> + </path> + <!-- ===================== DEPLOY: Create Directories =================== --> <target name="init"> @@ -112,6 +122,27 @@ <target name="deploy" depends="deploy-static"> + <mkdir dir="${jbossweb.build}/classes" /> + + <javac srcdir="src/share/classes" destdir="${jbossweb.build}/classes" + debug="${compile.debug}" + deprecation="${compile.deprecation}" + source="${compile.source}" + optimize="${compile.optimize}" + excludes="**/CVS/**"> + <classpath refid="catalina.classpath" /> + <exclude name="**/*TestCase.java" /> + </javac> + + <jar jarfile="${jbossweb.build}/${final.name}/server/default/deploy/jbossweb-tomcat55.sar/catalina-rewrite.jar" index="true"> + <fileset dir="${jbossweb.build}/classes"> + <include name="org/jboss/web/rewrite/**"/> + <!-- Javadoc and i18n exclusions --> + <exclude name="**/package.html" /> + <exclude name="**/LocalStrings_*" /> + </fileset> + </jar> + </target> <target name="clean"> Modified: trunk/labs/jbossweb/jboss/readme.txt =================================================================== --- trunk/labs/jbossweb/jboss/readme.txt 2005-10-26 12:47:08 UTC (rev 1451) +++ trunk/labs/jbossweb/jboss/readme.txt 2005-10-26 13:47:50 UTC (rev 1452) @@ -1 +1,2 @@ -Place here a JBoss 4.0.2 binary distribution. \ No newline at end of file +Expand here the required JBoss 4.0.x binary distribution (as defined in the +build.properties.default file or overridden in the build.properties file). \ No newline at end of file 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-26 12:47:08 UTC (rev 1451) +++ trunk/labs/jbossweb/src/share/classes/org/jboss/web/rewrite/RewriteTestCase.java 2005-10-26 13:47:50 UTC (rev 1452) @@ -8,17 +8,14 @@ protected class TestResolver extends Resolver { - @Override public String resolve(String key) { return "server_variable_value[" + key + "]"; } - @Override public String resolveHttp(String key) { return "http_header_value[" + key + "]"; } - @Override public String resolveSsl(String key) { return "ssl_property_value[" + key + "]"; } |
From: <jbo...@li...> - 2005-10-26 12:47:17
|
Author: aron.gombas Date: 2005-10-26 08:47:08 -0400 (Wed, 26 Oct 2005) New Revision: 1451 Modified: trunk/labs/kosmos/src/java/hu/midori/kosmos/server/svn/SvnServiceImpl.java Log: Comments added Modified: trunk/labs/kosmos/src/java/hu/midori/kosmos/server/svn/SvnServiceImpl.java =================================================================== --- trunk/labs/kosmos/src/java/hu/midori/kosmos/server/svn/SvnServiceImpl.java 2005-10-26 12:41:50 UTC (rev 1450) +++ trunk/labs/kosmos/src/java/hu/midori/kosmos/server/svn/SvnServiceImpl.java 2005-10-26 12:47:08 UTC (rev 1451) @@ -175,7 +175,7 @@ // assert calculations int calculatedCommitsTotal = 0; - for(int i = 0; i < commitsPerWeek.getItemCount(); i++) + for(int i = 0; i < commitsPerWeek.getItemCount(); i++) // FIXME these kind of counting should be rather done with a commons Bag calculatedCommitsTotal += commitsPerWeek.getDataItem(i).getValue().intValue(); if(calculatedCommitsTotal != commitsTotal) throw new IllegalStateException(String.format("Calculated commits (%d) does not equal statistical commits (%d)", calculatedCommitsTotal, commitsTotal)); |
From: <jbo...@li...> - 2005-10-26 12:42:10
|
Author: aron.gombas Date: 2005-10-26 08:41:50 -0400 (Wed, 26 Oct 2005) New Revision: 1450 Added: trunk/labs/kosmos/src/test/hu/midori/kosmos/AbstractKosmosTest.java trunk/labs/kosmos/src/test/hu/midori/kosmos/server/AbstractKosmosServiceTest.java Modified: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/cc/CcServiceTest.java trunk/labs/kosmos/src/test/hu/midori/kosmos/server/jira/JiraServiceTest.java trunk/labs/kosmos/src/test/hu/midori/kosmos/server/sf/SfServiceTest.java trunk/labs/kosmos/src/test/hu/midori/kosmos/server/svn/SvnServiceTest.java Log: Further unit test skeletons Added: trunk/labs/kosmos/src/test/hu/midori/kosmos/AbstractKosmosTest.java =================================================================== --- trunk/labs/kosmos/src/test/hu/midori/kosmos/AbstractKosmosTest.java 2005-10-25 17:48:52 UTC (rev 1449) +++ trunk/labs/kosmos/src/test/hu/midori/kosmos/AbstractKosmosTest.java 2005-10-26 12:41:50 UTC (rev 1450) @@ -0,0 +1,33 @@ +/* + * Kosmos. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +package hu.midori.kosmos; + +import java.util.Properties; + +import junit.framework.TestCase; + +import org.apache.log4j.PropertyConfigurator; + +/** + * Unit test. + * + * @author <a href="mailto:aro...@mi...">Aron Gombas</a> + * @version $Id$ + */ +public class AbstractKosmosTest extends TestCase { + public void setUp() throws Exception { + super.setUp(); + + // configure log4j programatically (it doesn't require new files in the webapp class-path) + Properties props = new Properties(); + props.put("log4j.rootLogger", "DEBUG, stdout"); + props.put("log4j.appender.stdout", "org.apache.log4j.ConsoleAppender"); + props.put("log4j.appender.stdout.layout", "org.apache.log4j.PatternLayout"); + props.put("log4j.appender.stdout.layout.ConversionPattern", "%-4r %-5p %c %x - %m%n" ); + PropertyConfigurator.configure(props); + } +} Added: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/AbstractKosmosServiceTest.java =================================================================== --- trunk/labs/kosmos/src/test/hu/midori/kosmos/server/AbstractKosmosServiceTest.java 2005-10-25 17:48:52 UTC (rev 1449) +++ trunk/labs/kosmos/src/test/hu/midori/kosmos/server/AbstractKosmosServiceTest.java 2005-10-26 12:41:50 UTC (rev 1450) @@ -0,0 +1,19 @@ +/* + * Kosmos. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +package hu.midori.kosmos.server; + +import hu.midori.kosmos.AbstractKosmosTest; + +/** + * Unit test. + * + * @author <a href="mailto:aro...@mi...">Aron Gombas</a> + * @version $Id$ + */ +public class AbstractKosmosServiceTest extends AbstractKosmosTest { + // TODO add testing for caching, timestamping and such +} Modified: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/cc/CcServiceTest.java =================================================================== --- trunk/labs/kosmos/src/test/hu/midori/kosmos/server/cc/CcServiceTest.java 2005-10-25 17:48:52 UTC (rev 1449) +++ trunk/labs/kosmos/src/test/hu/midori/kosmos/server/cc/CcServiceTest.java 2005-10-26 12:41:50 UTC (rev 1450) @@ -6,11 +6,57 @@ */ package hu.midori.kosmos.server.cc; +import hu.midori.kosmos.model.CcProject; +import hu.midori.kosmos.protocol.CcService; +import hu.midori.kosmos.server.AbstractKosmosServiceTest; + +import java.util.List; + /** * Unit test. * * @author <a href="mailto:aro...@mi...">Aron Gombas</a> * @version $Id$ */ -public class CcServiceTest {// TODO just pass in test logfiles and check the result returned +public class CcServiceTest extends AbstractKosmosServiceTest { + private CcService service = new CcServiceImpl(); + + /** TODO */ + public void testMostRecentFinder() { + // TODO + } + + /** Tests with an invalid path. */ + public void testInvalidPath() { + assertEquals(0, service.getProjects("nosuchpath").size()); + } + + public void testStandardLogs() {// TODO add these files to the repo and the src distro + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/ais"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/cargo-m2-trunk"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/commons-math"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/frifinans"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/gridportlets"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/gridsphere"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/gvlam"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/jboss-3.2"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/jboss-remoting"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/log4rss"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/mobicents-dailytckrun"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/mock-apis-trunk"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/openpacs"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/scarab-mysql"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/scarab-pgsql"); + testLog("/!Usr/Aron/Own/midori/projects/kosmos/testdata/cc-log/weta-dfs"); + } + + // TODO add more logfiles + + /** TODO */ + public void testLog(String dir) { + List<CcProject> projects = service.getProjects(dir); + assertEquals(1, projects.size()); // one CC log contains exactly one project + + // TODO assert for properties + } } Modified: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/jira/JiraServiceTest.java =================================================================== --- trunk/labs/kosmos/src/test/hu/midori/kosmos/server/jira/JiraServiceTest.java 2005-10-25 17:48:52 UTC (rev 1449) +++ trunk/labs/kosmos/src/test/hu/midori/kosmos/server/jira/JiraServiceTest.java 2005-10-26 12:41:50 UTC (rev 1450) @@ -6,11 +6,104 @@ */ package hu.midori.kosmos.server.jira; +import hu.midori.kosmos.model.JiraProject; +import hu.midori.kosmos.protocol.JiraService; +import hu.midori.kosmos.server.AbstractKosmosServiceTest; + +import java.util.List; + /** * Unit test. * * @author <a href="mailto:aro...@mi...">Aron Gombas</a> * @version $Id$ */ -public class JiraServiceTest {// TODO just pass in test URLs and check the result returned +public class JiraServiceTest extends AbstractKosmosServiceTest { + private JiraService service = new JiraServiceImpl(); + + /** Tests with invalid URL. */ + public void testInvalidUrl() { + assertEquals(0, service.getProjects("http://www.nosuchdomain.com/jira").size()); + } + + /** TODO */ + public void testAuthentication() { + // TODO implement after the authentication is implemented + } + + public void testApacheInstance() { + // TODO pass Apache URL to testInstance(); + } + + public void testAtlassianInstance() { + testPublicInstance("http://jira.atlassian.com/browse/COBJ"); + testPublicInstance("http://jira.atlassian.com/browse/CORE"); + testPublicInstance("http://jira.atlassian.com/browse/MAIL"); + testPublicInstance("http://jira.atlassian.com/browse/PLUG"); + testPublicInstance("http://jira.atlassian.com/browse/CONF"); + testPublicInstance("http://jira.atlassian.com/browse/JRA"); + testPublicInstance("http://jira.atlassian.com/browse/PERF"); + testPublicInstance("http://jira.atlassian.com/browse/SVN"); + testPublicInstance("http://jira.atlassian.com/browse/TST"); + } + + public void testCodeHausInstance() { + testPublicInstance("http://jira.codehaus.org/browse/ACL"); + testPublicInstance("http://jira.codehaus.org/browse/ACTIVEIO"); + testPublicInstance("http://jira.codehaus.org/browse/AWS"); + testPublicInstance("http://jira.codehaus.org/browse/ASP"); + testPublicInstance("http://jira.codehaus.org/browse/AJLIB"); + testPublicInstance("http://jira.codehaus.org/browse/ANNOGEN"); + testPublicInstance("http://jira.codehaus.org/browse/ASH"); + testPublicInstance("http://jira.codehaus.org/browse/AWARE"); + testPublicInstance("http://jira.codehaus.org/browse/BERKANO"); + testPublicInstance("http://jira.codehaus.org/browse/BLISSED"); + testPublicInstance("http://jira.codehaus.org/browse/BOO"); + testPublicInstance("http://jira.codehaus.org/browse/CARGO"); + } + + public void testJBossInstance() { + testPublicInstance("http://jira.jboss.com/jira/browse/JBQA"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBWIKI"); + testPublicInstance("http://jira.jboss.com/jira/browse/EJBTHREE"); + testPublicInstance("http://jira.jboss.com/jira/browse/HIBERNATE"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBAOP"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBAS"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBIDE"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBMESSAGING"); + testPublicInstance("http://jira.jboss.com/jira/browse/JGRP"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBTPL"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBDOCS"); + testPublicInstance("http://jira.jboss.com/jira/browse/JASSIST"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBADMCON"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBBENCH"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBBUILD"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBCACHE"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBCLUSTER"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBINSTALL"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBPM"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBLAB"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBMAIL"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBMICROCONT"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBPORTAL"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBPROFILER"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBREM"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBSEAM"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBSER"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBSHARP"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBWEB"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBXB"); + testPublicInstance("http://jira.jboss.com/jira/browse/JBWS"); + testPublicInstance("http://jira.jboss.com/jira/browse/KOSMOS"); + } + + // TODO add further instances seen in the Atlassian pages + + /** TODO */ + protected void testPublicInstance(String url) { + List<JiraProject> projects = service.getProjects(url); + assertTrue(projects.size() > 0); + + // TODO assert for properties + } } Modified: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/sf/SfServiceTest.java =================================================================== --- trunk/labs/kosmos/src/test/hu/midori/kosmos/server/sf/SfServiceTest.java 2005-10-25 17:48:52 UTC (rev 1449) +++ trunk/labs/kosmos/src/test/hu/midori/kosmos/server/sf/SfServiceTest.java 2005-10-26 12:41:50 UTC (rev 1450) @@ -8,51 +8,54 @@ import hu.midori.kosmos.model.SfRelease; import hu.midori.kosmos.protocol.SfService; +import hu.midori.kosmos.server.AbstractKosmosServiceTest; import java.util.List; -import java.util.Properties; -import org.apache.log4j.PropertyConfigurator; - -import junit.framework.TestCase; - /** * Unit test. * * @author <a href="mailto:aro...@mi...">Aron Gombas</a> * @version $Id$ */ -public class SfServiceTest extends TestCase { - SfService service = new SfServiceImpl(); - - public void setUp() throws Exception {// TODO move to AbstractTestCase - super.setUp(); - - // configure log4j programatically (it doesn't require new files in the webapp class-path) - Properties props = new Properties(); - props.put("log4j.rootLogger", "DEBUG, stdout"); - props.put("log4j.appender.stdout", "org.apache.log4j.ConsoleAppender"); - props.put("log4j.appender.stdout.layout", "org.apache.log4j.PatternLayout"); - props.put("log4j.appender.stdout.layout.ConversionPattern", "%-4r %-5p %c %x - %m%n" ); - PropertyConfigurator.configure(props); - } +public class SfServiceTest extends AbstractKosmosServiceTest { + private SfService service = new SfServiceImpl(); - /** Tests with a project that has releases. */ - public void testRelease() { - List<SfRelease> releases = service.getFileReleases("http://sourceforge.net/projects/struts"); - assertTrue(releases.size() > 0); - - // TODO assert for properties - // TODO test other service things + /** Tests with invalid URL. */ + public void testInvalidUrl() { + assertEquals(0, service.getFileReleases("http://sourceforge.net/projects/nosuchproject").size()); } /** Tests with a project that has no release yet. */ public void testNoRelease() { - assertEquals(0, service.getFileReleases("http://sourceforge.net/projects/pixie-perl")); + assertEquals(0, service.getFileReleases("http://sourceforge.net/projects/pixie-perl").size()); } - /** Tests with invalid URL. */ - public void testInvalidUrl() { - assertEquals(0, service.getFileReleases("http://sourceforge.net/projects/nosuchproject")); + public void testKosmosDependencyProjects() { + testProjectWithRelease("http://sourceforge.net/projects/cruisecontrol"); + testProjectWithRelease("http://sourceforge.net/projects/displaytag"); + testProjectWithRelease("http://sourceforge.net/projects/jfreechart"); + testProjectWithRelease("http://sourceforge.net/projects/jtidy"); + testProjectWithRelease("http://sourceforge.net/projects/saxon"); + testProjectWithRelease("http://www.sourceforge.net/projects/springframework"); } + + public void testJBossProjects() { + testProjectWithRelease("http://sourceforge.net/projects/jboss"); + } + + public void testKosmosToolProjects() { + testProjectWithRelease("http://sourceforge.net/projects/docbook"); + testProjectWithRelease("http://sourceforge.net/projects/junit"); + } + + // TODO test various projects here with long release list + + /** TODO */ + protected void testProjectWithRelease(String url) { + List<SfRelease> releases = service.getFileReleases(url); + assertTrue(releases.size() > 0); + + // TODO assert for properties + } } Modified: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/svn/SvnServiceTest.java =================================================================== --- trunk/labs/kosmos/src/test/hu/midori/kosmos/server/svn/SvnServiceTest.java 2005-10-25 17:48:52 UTC (rev 1449) +++ trunk/labs/kosmos/src/test/hu/midori/kosmos/server/svn/SvnServiceTest.java 2005-10-26 12:41:50 UTC (rev 1450) @@ -6,11 +6,54 @@ */ package hu.midori.kosmos.server.svn; +import hu.midori.kosmos.model.SvnRepository; +import hu.midori.kosmos.protocol.SvnService; +import hu.midori.kosmos.server.AbstractKosmosServiceTest; + +import java.util.List; + /** * Unit test. * * @author <a href="mailto:aro...@mi...">Aron Gombas</a> * @version $Id$ */ -public class SvnServiceTest {// TODO just pass in test URLs and check the result returned +public class SvnServiceTest extends AbstractKosmosServiceTest { + private SvnService service = new SvnServiceImpl(); + + /** Tests with invalid URL. */ + public void testInvalidUrl() { + assertEquals(0, service.getRepositories("http://www.nosuchdomain.com/svn").size()); + } + + /** TODO */ + public void testAuthentication() { + // TODO implement after the authentication is implemented + } + + public void testApacheInstance() { + testPublicInstance("http://svn.apache.org/repos/asf/commons"); + testPublicInstance("http://svn.apache.org/repos/asf/db"); + testPublicInstance("http://svn.apache.org/repos/asf/incubator/agila"); + } + + public void testJBossInstance() { + testPublicInstance("http://anonsvn.labs.jboss.com/trunk/labs/demo"); + testPublicInstance("http://anonsvn.labs.jboss.com/trunk/labs/jbossprofiler"); + testPublicInstance("http://anonsvn.labs.jboss.com/trunk/labs/jbossweb"); + testPublicInstance("http://anonsvn.labs.jboss.com/trunk/labs/jrunit"); + testPublicInstance("http://anonsvn.labs.jboss.com/trunk/labs/kosmos"); + testPublicInstance("http://anonsvn.labs.jboss.com/trunk/labs/portletswap"); + testPublicInstance("http://anonsvn.labs.jboss.com/trunk/labs/reportingservices"); + } + + // TODO add more instances here + + /** TODO */ + protected void testPublicInstance(String url) { + List<SvnRepository> repositories = service.getRepositories(url); + assertTrue(repositories.size() > 0); + + // TODO assert for properties + } } |
From: <jbo...@li...> - 2005-10-25 17:48:57
|
Author: aron.gombas Date: 2005-10-25 13:48:52 -0400 (Tue, 25 Oct 2005) New Revision: 1449 Modified: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/sf/SfServiceTest.java Log: Test skeleton added (not running yet) Modified: trunk/labs/kosmos/src/test/hu/midori/kosmos/server/sf/SfServiceTest.java =================================================================== --- trunk/labs/kosmos/src/test/hu/midori/kosmos/server/sf/SfServiceTest.java 2005-10-25 17:48:19 UTC (rev 1448) +++ trunk/labs/kosmos/src/test/hu/midori/kosmos/server/sf/SfServiceTest.java 2005-10-25 17:48:52 UTC (rev 1449) @@ -6,11 +6,53 @@ */ package hu.midori.kosmos.server.sf; +import hu.midori.kosmos.model.SfRelease; +import hu.midori.kosmos.protocol.SfService; + +import java.util.List; +import java.util.Properties; + +import org.apache.log4j.PropertyConfigurator; + +import junit.framework.TestCase; + /** * Unit test. * * @author <a href="mailto:aro...@mi...">Aron Gombas</a> * @version $Id$ */ -public class SfServiceTest {// TODO just pass in test URLs and check the result returned +public class SfServiceTest extends TestCase { + SfService service = new SfServiceImpl(); + + public void setUp() throws Exception {// TODO move to AbstractTestCase + super.setUp(); + + // configure log4j programatically (it doesn't require new files in the webapp class-path) + Properties props = new Properties(); + props.put("log4j.rootLogger", "DEBUG, stdout"); + props.put("log4j.appender.stdout", "org.apache.log4j.ConsoleAppender"); + props.put("log4j.appender.stdout.layout", "org.apache.log4j.PatternLayout"); + props.put("log4j.appender.stdout.layout.ConversionPattern", "%-4r %-5p %c %x - %m%n" ); + PropertyConfigurator.configure(props); + } + + /** Tests with a project that has releases. */ + public void testRelease() { + List<SfRelease> releases = service.getFileReleases("http://sourceforge.net/projects/struts"); + assertTrue(releases.size() > 0); + + // TODO assert for properties + // TODO test other service things + } + + /** Tests with a project that has no release yet. */ + public void testNoRelease() { + assertEquals(0, service.getFileReleases("http://sourceforge.net/projects/pixie-perl")); + } + + /** Tests with invalid URL. */ + public void testInvalidUrl() { + assertEquals(0, service.getFileReleases("http://sourceforge.net/projects/nosuchproject")); + } } |
From: <jbo...@li...> - 2005-10-25 17:48:29
|
Author: aron.gombas Date: 2005-10-25 13:48:19 -0400 (Tue, 25 Oct 2005) New Revision: 1448 Modified: trunk/labs/kosmos/src/java/hu/midori/kosmos/server/AbstractKosmosService.java trunk/labs/kosmos/src/java/hu/midori/kosmos/server/util/ChartUtils.java Log: Unused imports removed Modified: trunk/labs/kosmos/src/java/hu/midori/kosmos/server/AbstractKosmosService.java =================================================================== --- trunk/labs/kosmos/src/java/hu/midori/kosmos/server/AbstractKosmosService.java 2005-10-25 17:47:50 UTC (rev 1447) +++ trunk/labs/kosmos/src/java/hu/midori/kosmos/server/AbstractKosmosService.java 2005-10-25 17:48:19 UTC (rev 1448) @@ -15,7 +15,6 @@ import java.util.Date; import java.util.Enumeration; import java.util.HashMap; -import java.util.Iterator; import java.util.Map; import org.apache.commons.httpclient.HttpURL; Modified: trunk/labs/kosmos/src/java/hu/midori/kosmos/server/util/ChartUtils.java =================================================================== --- trunk/labs/kosmos/src/java/hu/midori/kosmos/server/util/ChartUtils.java 2005-10-25 17:47:50 UTC (rev 1447) +++ trunk/labs/kosmos/src/java/hu/midori/kosmos/server/util/ChartUtils.java 2005-10-25 17:48:19 UTC (rev 1448) @@ -23,7 +23,6 @@ import org.jfree.chart.JFreeChart; import org.jfree.chart.labels.PieSectionLabelGenerator; import org.jfree.chart.plot.PiePlot; -import org.jfree.chart.plot.PiePlot3D; import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.data.general.DefaultPieDataset; import org.jfree.data.general.PieDataset; |
From: <jbo...@li...> - 2005-10-25 17:48:04
|
Author: aron.gombas Date: 2005-10-25 13:47:50 -0400 (Tue, 25 Oct 2005) New Revision: 1447 Added: trunk/labs/kosmos/web-server/WEB-INF/lib/junit-3.8.1.jar Modified: trunk/labs/kosmos/build/build.xml Log: JUnit JAR added Modified: trunk/labs/kosmos/build/build.xml =================================================================== --- trunk/labs/kosmos/build/build.xml 2005-10-25 17:47:10 UTC (rev 1446) +++ trunk/labs/kosmos/build/build.xml 2005-10-25 17:47:50 UTC (rev 1447) @@ -70,6 +70,7 @@ <copy todir="${dist-bin.bin.dir}"> <fileset dir="${web.dir}" excludes="**/*.jsp"> <exclude name="**/jsp-api*.jar"/> + <exclude name="**/junit-api*.jar"/> <exclude name="**/portlet-api*.jar"/> <exclude name="**/servletapi*.jar"/> <exclude name="**/portlet/**/*.properties"/> Added: trunk/labs/kosmos/web-server/WEB-INF/lib/junit-3.8.1.jar =================================================================== (Binary files differ) Property changes on: trunk/labs/kosmos/web-server/WEB-INF/lib/junit-3.8.1.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream |
From: <jbo...@li...> - 2005-10-25 17:47:32
|
Author: aron.gombas Date: 2005-10-25 13:47:10 -0400 (Tue, 25 Oct 2005) New Revision: 1446 Modified: trunk/labs/kosmos/web-server/WEB-INF/lib/javasvn.jar Log: JavaSVN upgraded Modified: trunk/labs/kosmos/web-server/WEB-INF/lib/javasvn.jar =================================================================== (Binary files differ) |
From: <jbo...@li...> - 2005-10-25 17:46:53
|
Author: aron.gombas Date: 2005-10-25 13:46:43 -0400 (Tue, 25 Oct 2005) New Revision: 1445 Modified: trunk/labs/kosmos/xdocs/reference/reference-manual.xml Log: Dependency URLs updated Modified: trunk/labs/kosmos/xdocs/reference/reference-manual.xml =================================================================== --- trunk/labs/kosmos/xdocs/reference/reference-manual.xml 2005-10-25 14:51:31 UTC (rev 1444) +++ trunk/labs/kosmos/xdocs/reference/reference-manual.xml 2005-10-25 17:46:43 UTC (rev 1445) @@ -251,71 +251,72 @@ <listitem> - <para>Apache Commons: various subprojects used as utility classes.</para> + <para><ulink url="http://jakarta.apache.org/commons">Apache Commons</ulink> projects: various packages used as utility classes.</para> </listitem> <listitem> - <para>Displaytag: used for rendering the tables.</para> + <para><ulink url="http://displaytag.sourceforge.net">Display tag</ulink> library: used for rendering the tables.</para> </listitem> <listitem> - <para>Hessian: used for implementing the + <para><ulink url="http://www.caucho.com/hessian">Hessian</ulink> binary web service protocol: used for implementing the web-services.</para> </listitem> <listitem> - <para>Javasvn: used for processing Subversion repositories.</para> + <para><ulink url="http://tmate.org/svn">JavaSVN</ulink> Subversion client library: used for processing Subversion repositories.</para> </listitem> <listitem> - <para>JFreeChart: used to generate the chart images.</para> + <para><ulink url="http://jakarta.apache.org/slide">Jakarta Slide</ulink>: its client library is used to access the + WebDAV-based cache. Additionally, Slide is also our + primary WebDAV server implementation.</para> </listitem> <listitem> - <para>JTidy: used to transform the HTML documents to XML - before further processing.</para> + <para><ulink url="http://www.jfree.org/jfreechart">JFreeChart</ulink> library: used to generate the chart images.</para> </listitem> <listitem> - <para>JSTL: used in the view tier.</para> + <para><ulink url="http://jtidy.sourceforge.net">JTidy</ulink>: used to transform the HTML documents to XML + before further processing.</para> </listitem> <listitem> - <para>Log4j: used for general-purpose logging.</para> + <para><ulink url="http://jakarta.apache.org/taglibs">JSTL</ulink> tag library: used in the view tier.</para> </listitem> <listitem> - <para>Saxon: used to analyze HTML documents.</para> + <para><ulink url="http://logging.apache.org/log4j/docs">Log4j</ulink> library: used for general-purpose logging.</para> </listitem> <listitem> - <para>Slide: its client library is used to access the - WebDAV-based cache. Additionally, Slide is also our - primary WebDAV server implementation.</para> + <para><ulink url="http://saxon.sourceforge.net">Saxon</ulink> XSLT and XQuery processor: used to analyze HTML documents.</para> </listitem> + <listitem> - <para>Spring: used as IoC container.</para> + <para><ulink url="http://www.springframework.org">Spring Framework</ulink>: used as IoC container.</para> </listitem> |