You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(233) |
Sep
(199) |
Oct
(206) |
Nov
(185) |
Dec
(270) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(232) |
Feb
(426) |
Mar
(623) |
Apr
(592) |
May
(506) |
Jun
(389) |
Jul
(160) |
Aug
(3) |
Sep
(1) |
Oct
(1) |
Nov
(2) |
Dec
(5) |
2007 |
Jan
(1) |
Feb
(1) |
Mar
(2) |
Apr
(2) |
May
(4) |
Jun
(2) |
Jul
|
Aug
(3) |
Sep
(5) |
Oct
(9) |
Nov
(6) |
Dec
(6) |
2008 |
Jan
(3) |
Feb
|
Mar
(1) |
Apr
(3) |
May
(3) |
Jun
(5) |
Jul
(10) |
Aug
(2) |
Sep
(12) |
Oct
(10) |
Nov
(54) |
Dec
(49) |
2009 |
Jan
(19) |
Feb
(13) |
Mar
(20) |
Apr
(24) |
May
(44) |
Jun
(29) |
Jul
(32) |
Aug
(10) |
Sep
(7) |
Oct
(10) |
Nov
(4) |
Dec
(17) |
2010 |
Jan
(14) |
Feb
(5) |
Mar
(23) |
Apr
(50) |
May
(31) |
Jun
(9) |
Jul
(5) |
Aug
(4) |
Sep
(7) |
Oct
(5) |
Nov
(2) |
Dec
(3) |
2011 |
Jan
(12) |
Feb
(5) |
Mar
(5) |
Apr
(3) |
May
(4) |
Jun
(3) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2012 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(4) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
2015 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <jbo...@li...> - 2005-10-07 18:44:14
|
Author: dam...@jb... Date: 2005-10-07 14:44:09 -0400 (Fri, 07 Oct 2005) New Revision: 1304 Added: servicepacks/jems/jboss-4.0.3/sp0/release/ Log: SERVICE PACK RELEASE BRANCH: Creating release branch for sp0. Copied: servicepacks/jems/jboss-4.0.3/sp0/release (from rev 1303, servicepacks/jems/jboss-4.0.3/sp0/base) |
From: <jbo...@li...> - 2005-10-07 18:31:32
|
Author: dam...@jb... Date: 2005-10-07 14:31:22 -0400 (Fri, 07 Oct 2005) New Revision: 1303 Removed: servicepacks/jems/jboss-4.0.3/sp0/release/ Log: |
From: <jbo...@li...> - 2005-10-07 18:29:19
|
Author: dam...@jb... Date: 2005-10-07 14:29:12 -0400 (Fri, 07 Oct 2005) New Revision: 1302 Added: servicepacks/jems/jboss-4.0.3/sp0/release/base/ Log: SERVICE PACK RELEASE BRANCH: Creating release branch for sp0. Copied: servicepacks/jems/jboss-4.0.3/sp0/release/base (from rev 1301, servicepacks/jems/jboss-4.0.3/sp0/base) |
From: <jbo...@li...> - 2005-10-07 18:27:52
|
Author: dam...@jb... Date: 2005-10-07 14:27:45 -0400 (Fri, 07 Oct 2005) New Revision: 1301 Added: servicepacks/jems/jboss-4.0.3/sp0/release/ Log: SERVICE PACK RELEASE BRANCH: Creating release branch for sp0. Copied: servicepacks/jems/jboss-4.0.3/sp0/release (from rev 1300, servicepacks/jems/jboss-4.0.3/sp0/base) |
From: <jbo...@li...> - 2005-10-07 18:27:03
|
Author: dam...@jb... Date: 2005-10-07 14:27:00 -0400 (Fri, 07 Oct 2005) New Revision: 1300 Removed: servicepacks/jems/jboss-4.0.3/sp0/release/ Log: SP TESTING: removing a release... |
From: <jbo...@li...> - 2005-10-07 18:20:39
|
Author: dam...@jb... Date: 2005-10-07 14:20:31 -0400 (Fri, 07 Oct 2005) New Revision: 1299 Added: servicepacks/jems/jboss-4.0.3/sp0/release/base/ Log: SERVICE PACK RELEASE BRANCH: Creating release branch for sp0. Copied: servicepacks/jems/jboss-4.0.3/sp0/release/base (from rev 1298, servicepacks/jems/jboss-4.0.3/sp0/base) |
From: <jbo...@li...> - 2005-10-07 18:13:22
|
Author: dam...@jb... Date: 2005-10-07 14:13:20 -0400 (Fri, 07 Oct 2005) New Revision: 1298 Added: servicepacks/jems/jboss-4.0.3/sp0/release/ Log: SERVICE PACK RELEASE BRANCH: Creating release branch for sp0. Copied: servicepacks/jems/jboss-4.0.3/sp0/release (from rev 1297, servicepacks/jems/jboss-4.0.3/sp0/base) |
From: <jbo...@li...> - 2005-10-07 16:36:02
|
Author: dam...@jb... Date: 2005-10-07 12:35:59 -0400 (Fri, 07 Oct 2005) New Revision: 1297 Added: servicepacks/jems/jboss-4.0.3/sp0/JBAS-1234/ Log: TASK BRANCH: Created task branch JBAS-1234 for sp0 of jboss-4.0.3. Copied: servicepacks/jems/jboss-4.0.3/sp0/JBAS-1234 (from rev 1296, servicepacks/jems/jboss-4.0.3/sp0/base) |
From: <jbo...@li...> - 2005-10-07 16:34:40
|
Author: dam...@jb... Date: 2005-10-07 12:34:31 -0400 (Fri, 07 Oct 2005) New Revision: 1294 Added: servicepacks/jems/jboss-4.0.3/ Log: SERVICE PACK CREATE: Creating release branch jboss-4.0.3, under /servicepacks/jems to hold service packs. |
From: <jbo...@li...> - 2005-10-07 16:34:40
|
Author: dam...@jb... Date: 2005-10-07 12:34:35 -0400 (Fri, 07 Oct 2005) New Revision: 1296 Added: servicepacks/jems/jboss-4.0.3/sp0/base/ Log: SERVICE PACK BRANCH: Created base branch for sp0 of jboss-4.0.3. Copied: servicepacks/jems/jboss-4.0.3/sp0/base (from rev 1295, trunk/jems/jboss-4.0) |
From: <jbo...@li...> - 2005-10-07 16:34:39
|
Author: dam...@jb... Date: 2005-10-07 12:34:33 -0400 (Fri, 07 Oct 2005) New Revision: 1295 Added: servicepacks/jems/jboss-4.0.3/sp0/ Log: SERVICE PACK CREATE: Creating service pack branch, sp0, for jboss-4.0.3. |
From: <jbo...@li...> - 2005-10-07 15:43:44
|
Author: dam...@jb... Date: 2005-10-07 11:43:41 -0400 (Fri, 07 Oct 2005) New Revision: 1293 Removed: servicepacks/jboss-4.0.4/ Log: Cleaning up. |
From: <jbo...@li...> - 2005-10-07 15:43:41
|
Author: dam...@jb... Date: 2005-10-07 11:43:34 -0400 (Fri, 07 Oct 2005) New Revision: 1292 Removed: servicepacks/jboss-4.0.3/ Log: Cleaning up. |
From: <jbo...@li...> - 2005-10-07 15:32:05
|
Author: dam...@jb... Date: 2005-10-07 11:31:33 -0400 (Fri, 07 Oct 2005) New Revision: 1290 Added: servicepacks/jboss-4.0.4/sp0/ Log: SERVICE PACK CREATE: Creating service pack branch, sp0, for jboss-4.0.4. |
From: <jbo...@li...> - 2005-10-07 15:31:52
|
Author: dam...@jb... Date: 2005-10-07 11:31:31 -0400 (Fri, 07 Oct 2005) New Revision: 1289 Added: servicepacks/jboss-4.0.4/ Log: SERVICE PACK CREATE: Creating release branch jboss-4.0.4, under /servicepacks to hold service packs. |
From: <jbo...@li...> - 2005-10-07 15:31:42
|
Author: dam...@jb... Date: 2005-10-07 11:31:35 -0400 (Fri, 07 Oct 2005) New Revision: 1291 Added: servicepacks/jboss-4.0.4/sp0/base/ Log: SERVICE PACK BRANCH: Created base branch for sp0 of jboss-4.0.4. Copied: servicepacks/jboss-4.0.4/sp0/base (from rev 1290, trunk/jems/jboss-4.0) |
From: <jbo...@li...> - 2005-10-07 15:31:06
|
Author: dam...@jb... Date: 2005-10-07 11:30:31 -0400 (Fri, 07 Oct 2005) New Revision: 1288 Added: servicepacks/jboss-4.0.3/sp0/base/ Log: SERVICE PACK BRANCH: Created base branch for sp0 of jboss-4.0.3. Copied: servicepacks/jboss-4.0.3/sp0/base (from rev 1287, trunk/jems/jboss-4.0) |
From: <jbo...@li...> - 2005-10-07 15:27:36
|
Author: dam...@jb... Date: 2005-10-07 11:27:26 -0400 (Fri, 07 Oct 2005) New Revision: 1286 Added: servicepacks/jboss-4.0.3/ Log: SERVICE PACK CREATE: Creating release branch jboss-4.0.3, under //servicepacks to hold service packs. |
From: <jbo...@li...> - 2005-10-07 15:27:36
|
Author: dam...@jb... Date: 2005-10-07 11:27:28 -0400 (Fri, 07 Oct 2005) New Revision: 1287 Added: servicepacks/jboss-4.0.3/sp0/ Log: SERVICE PACK CREATE: Creating service pack branch, sp0, for jboss-4.0.3. |
From: <jbo...@li...> - 2005-10-07 14:36:04
|
Author: dam...@jb... Date: 2005-10-07 10:35:56 -0400 (Fri, 07 Oct 2005) New Revision: 1285 Added: servicepacks/jems/ Log: Added a jems service pack dir. |
From: <jbo...@li...> - 2005-10-07 14:35:23
|
Author: dam...@jb... Date: 2005-10-07 10:35:07 -0400 (Fri, 07 Oct 2005) New Revision: 1284 Added: servicepacks/ Log: Added a place for service packs. |
From: <jbo...@li...> - 2005-10-06 20:53:15
|
Author: adamw Date: 2005-10-06 16:52:56 -0400 (Thu, 06 Oct 2005) New Revision: 1283 Added: trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/HistoryTest.java trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/LogMessageTest.java trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ParentTest.java Modified: trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/AbstractResource.java trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/History.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/src/java/org/jboss/shotoku/svn/AbstractSvnResource.java trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnContentManager.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/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 trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNode.java trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnService.java Log: In shotoku: - added a test for getHistory() - implemented and added a test for getParent(), getLogMessage() Modified: trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/AbstractResource.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/AbstractResource.java 2005-10-06 16:28:07 UTC (rev 1282) +++ trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/AbstractResource.java 2005-10-06 20:52:56 UTC (rev 1283) @@ -4,52 +4,70 @@ /** * Common parts of nodes and directories interface. + * * @author adamw */ public interface AbstractResource { /** * Gets the value of a given property. - * @param propertyName Name of the property to get. + * + * @param propertyName + * Name of the property to get. * @return Value of the given property. * @throws RepositoryException */ public String getProperty(String propertyName) throws RepositoryException; + /** - * Sets the value of a given property. Only after saving this change will - * be persisted. - * @param propertyName Name of the property to set. - * @param propertyValue Value of the property to set. + * Sets the value of a given property. Only after saving this change will be + * persisted. + * + * @param propertyName + * Name of the property to set. + * @param propertyValue + * Value of the property to set. */ public void setProperty(String propertyName, String propertyValue); + /** * Gets a directory to which this node/ directory belongs. - * @return A directory to which this node/ directory belongs. Null - * if this directory is already the root directory. + * + * @return A directory to which this node/ directory belongs. Null if this + * directory is already the root directory. */ public Directory getParent() throws RepositoryException; + /** * Saves modified properties and possibly content (in case of nodes). - * @param logMessage Log message for saving this node/ directory. + * + * @param logMessage + * Log message for saving this node/ directory. * @throws RepositoryException */ public void save(String logMessage) throws RepositoryException; + /** * Gets a log message with which this node/ directory was saved. - * @return Log message with which this node/ directory was saved. + * + * @return Log message with which this node/ directory was saved. Null, if + * the resource is not yet saved or contains modifications. * @throws RepositoryException */ public String getLogMessage() throws RepositoryException; + /** - * Deletes this node or directory (immediately, no <code>save()</code> - * is needed). This node should not be used after performing this - * operation. + * Deletes this node or directory (immediately, no <code>save()</code> is + * needed). This node should not be used after performing this operation. + * * @throws RepositoryException */ public void delete() throws RepositoryException; + /** * Gets the name of this resource (node/ directory). - * @return Name of this resource (node/ directory). An empty string, if - * this is the root directory. + * + * @return Name of this resource (node/ directory). An empty string, if this + * is the root directory. */ public String getName(); } Modified: trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/History.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/History.java 2005-10-06 16:28:07 UTC (rev 1282) +++ trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/History.java 2005-10-06 20:52:56 UTC (rev 1283) @@ -19,7 +19,7 @@ public int getRevisionsCount() throws RepositoryException; /** - * Gets a node with a given revision. + * Gets a node with a given revision. Revisions are numbered from 0. * * @param revision * Revision number to get. Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/AbstractSvnResource.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/AbstractSvnResource.java 2005-10-06 16:28:07 UTC (rev 1282) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/AbstractSvnResource.java 2005-10-06 20:52:56 UTC (rev 1283) @@ -5,6 +5,7 @@ import java.util.Map; import org.jboss.shotoku.AbstractResource; +import org.jboss.shotoku.Directory; import org.jboss.shotoku.exceptions.RepositoryException; public abstract class AbstractSvnResource implements AbstractResource { @@ -20,11 +21,15 @@ protected String fullPath; protected File file; protected String name; + protected SvnContentManager svnCm; - public AbstractSvnResource(String id, String resFullPath, File file, String name) { + public AbstractSvnResource(String id, String resFullPath, File file, String name, + SvnContentManager svnCm) { this.file = file; this.id = id; this.name = name; + + this.svnCm = svnCm; fullPath = resFullPath; @@ -106,4 +111,57 @@ throw new RepositoryException(e); } } + + public String getLogMessage() { + if (checkForChanges()) + return null; + else + try { + return service.getLogMessage(id, fullPath); + } catch (SvnOperationFailed e) { + throw new RepositoryException(e); + } + } + + public Directory getParent() { + // Checking if this isn't the root directory already. + if ("".equals(name)) + return null; + + String parentPath; + String parentName; + + int lastSlash = fullPath.lastIndexOf('/'); + if (lastSlash == -1) { + // No / at all in the path - this resource must be a child of the + // root directory. + parentPath = ""; + parentName = ""; + } else { + // Getting the parent path. + parentPath = fullPath.substring(0, lastSlash); + + // Getting the name from the parent's path. This is either the same + // as path, if the parent directory is a child of the root + // directory, or the last segment of parent's path. + int parentLastSlash = parentPath.lastIndexOf('/'); + if (parentLastSlash == -1) + parentName = parentPath; + else + parentName = parentPath.substring(parentLastSlash+1); + } + + // Checking if the path that we constructed is valid (that is, not + // "higher" then the content manager's prefix). + if (!svnCm.checkPathChild(parentPath)) { + parentPath = ""; + } + + if ("".equals(parentPath)) + return svnCm.getRootDirectory(); + + File parentFile = svnCm.getFileForPrefixedPath(parentPath); + + return new SvnDirectory(id, parentPath, parentFile, parentName, svnCm); + } } Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnContentManager.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnContentManager.java 2005-10-06 16:28:07 UTC (rev 1282) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnContentManager.java 2005-10-06 20:52:56 UTC (rev 1283) @@ -72,6 +72,18 @@ throw new RepositoryException(e); } } + + /** + * Checks if the given full-path is a child path of this content manager, + * that is, if it represents a child, grandchild, grandgrandchild etc + * of it's root directory. + * @param path Path to check. + * @return True iff the given path represents a descendant of this content + * manger's root directory. + */ + boolean checkPathChild(String path) { + return path.startsWith(prefix) && (!path.equals(prefix)); + } @Override public Directory getRootDirectory() { @@ -108,7 +120,7 @@ throw new ResourceDoesNotExist(file.getAbsolutePath()); return new SvnHeadNode(id, getPrefixedPath(path), file, - getNameFromPath(path)); + getNameFromPath(path), this); } @Override 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-06 16:28:07 UTC (rev 1282) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnDirectory.java 2005-10-06 20:52:56 UTC (rev 1283) @@ -13,13 +13,9 @@ import org.jboss.shotoku.exceptions.ResourceDoesNotExist; public class SvnDirectory extends AbstractSvnResource implements Directory { - SvnContentManager svnCm; - public SvnDirectory(String id, String fullPath, File file, String name, SvnContentManager svnCm) { - super(id, fullPath, file, name); - - this.svnCm = svnCm; + super(id, fullPath, file, name, svnCm); } public NodeList getNodes() { @@ -38,7 +34,7 @@ })) { String childFullPath = fullPath + '/' + node; ret.add(new SvnHeadNode(id, childFullPath, new File(service - .getFileSystemPath(id, childFullPath)), node)); + .getFileSystemPath(id, childFullPath)), node, svnCm)); } } catch (SvnOperationFailed e) { throw new RepositoryException(e); @@ -89,7 +85,7 @@ if (!reqNode.isFile()) throw new ResourceDoesNotExist(reqNode.getAbsolutePath()); - return new SvnHeadNode(id, reqFullPath, reqNode, name); + return new SvnHeadNode(id, reqFullPath, reqNode, name, svnCm); } public Directory getDirectory(String name) throws RepositoryException, ResourceDoesNotExist { @@ -115,7 +111,7 @@ if (newFile.exists()) throw new ResourceAlreadyExists(); - return new SvnNewNode(id, childFullPath, newFile, name); + return new SvnNewNode(id, childFullPath, newFile, name, svnCm); } catch (SvnOperationFailed e) { throw new RepositoryException(e); } @@ -166,14 +162,6 @@ throw new RuntimeException("Operation not yet implemented"); } - public Directory getParent() { - throw new RuntimeException("Operation not yet implemented"); - } - - public String getLogMessage() { - throw new RuntimeException("Operation not yet implemented"); - } - private boolean deleteDir(File dir) { if (dir.isDirectory()) { String[] children = dir.list(); 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-06 16:28:07 UTC (rev 1282) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnHeadNode.java 2005-10-06 20:52:56 UTC (rev 1283) @@ -11,14 +11,14 @@ import java.nio.channels.FileChannel; import java.nio.charset.Charset; -import org.jboss.shotoku.Directory; import org.jboss.shotoku.exceptions.RepositoryException; public class SvnHeadNode extends SvnNode { private String newContent; - public SvnHeadNode(String id, String fullPath, File file, String name) { - super(id, fullPath, file, name); + public SvnHeadNode(String id, String fullPath, File file, String name, + SvnContentManager svnCm) { + super(id, fullPath, file, name, svnCm); newContent = null; } @@ -65,10 +65,6 @@ return file.lastModified(); } - public Directory getParent() { - throw new RuntimeException("Operation not yet implemented"); - } - protected boolean checkForChanges() { return newContent != null || super.checkForChanges(); } @@ -130,10 +126,6 @@ } } - public String getLogMessage() { - throw new RuntimeException("Operation not yet implemented"); - } - protected boolean deleteResource() { return file.delete(); } 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-06 16:28:07 UTC (rev 1282) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnHistoricNode.java 2005-10-06 20:52:56 UTC (rev 1283) @@ -19,9 +19,9 @@ private String content; public SvnHistoricNode(String id, String fullPath, File file, String name, - Date commitDate, String logMessage, long revisionAbsolute, - int revisionRelative) { - super(id, fullPath, file, name); + SvnContentManager svnCm, Date commitDate, String logMessage, + long revisionAbsolute, int revisionRelative) { + super(id, fullPath, file, name, svnCm); this.logMessage = logMessage; this.commitDate = commitDate; 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-06 16:28:07 UTC (rev 1282) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewNode.java 2005-10-06 20:52:56 UTC (rev 1283) @@ -12,8 +12,9 @@ private String content; private boolean saved; - public SvnNewNode(String id, String fullPath, File file, String name) { - super(id, fullPath, file, name); + public SvnNewNode(String id, String fullPath, File file, String name, + SvnContentManager svnCm) { + super(id, fullPath, file, name, svnCm); content = null; saved = false; Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNode.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNode.java 2005-10-06 16:28:07 UTC (rev 1282) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNode.java 2005-10-06 20:52:56 UTC (rev 1283) @@ -10,8 +10,9 @@ import org.jboss.shotoku.exceptions.RepositoryException; public abstract class SvnNode extends AbstractSvnResource implements Node { - public SvnNode(String id, String fullPath, File file, String name) { - super(id, fullPath, file, name); + public SvnNode(String id, String fullPath, File file, String name, + SvnContentManager svnCm) { + super(id, fullPath, file, name, svnCm); } public History getHistory() { @@ -27,7 +28,7 @@ int revisionRelative = 0; for (RevisionInfo revision : revisions) { nodes.add(new SvnHistoricNode(id, fullPath, file, - name, revision.getDate(), revision.getMessage(), + name, svnCm, revision.getDate(), revision.getMessage(), revision.getRevision(), revisionRelative++)); } 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-06 16:28:07 UTC (rev 1282) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnService.java 2005-10-06 20:52:56 UTC (rev 1283) @@ -144,6 +144,19 @@ throws SvnOperationFailed; /** + * Gets a log message for the given path. + * + * @param id + * Id of the repository. + * @param path + * Path to the resource. + * @return A log message with which the resource has last been saved. + * @throws SvnOperationFailed + */ + public abstract String getLogMessage(String id, String path) + throws SvnOperationFailed; + + /** * <code>SVN_SERVICE_NAME</code> - name under which the svn service is * registered. */ 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-06 16:28:07 UTC (rev 1282) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnRepository.java 2005-10-06 20:52:56 UTC (rev 1283) @@ -266,4 +266,29 @@ return new HistoricNodeContent(baos.toString(), properties); } + + public String getLogMessage(String path) + throws SvnOperationFailed { + synchronizeWithLock(path); + + File file = new File(getFileSystemPath(path)); + try { + class LocalStringHolder { String content; }; + final LocalStringHolder ret = new LocalStringHolder(); + + // TODO: check the maximum number. + ourClientManager.getLogClient().doLog(new File[] { file }, + SVNRevision.HEAD, SVNRevision.HEAD, false, + false, 1, + new ISVNLogEntryHandler() { + public void handleLogEntry(SVNLogEntry entry) { + ret.content = entry.getMessage(); + } + }); + + return ret.content; + } 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-06 16:28:07 UTC (rev 1282) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnServiceImpl.java 2005-10-06 20:52:56 UTC (rev 1283) @@ -180,4 +180,9 @@ throws SvnOperationFailed { return repositories.get(id).getRevisionInfo(path); } + + public String getLogMessage(String id, String path) + throws SvnOperationFailed { + return repositories.get(id).getLogMessage(path); + } } Added: trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/HistoryTest.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/HistoryTest.java 2005-10-06 16:28:07 UTC (rev 1282) +++ trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/HistoryTest.java 2005-10-06 20:52:56 UTC (rev 1283) @@ -0,0 +1,62 @@ +package org.jboss.shotoku.test; + +import org.jboss.shotoku.History; +import org.jboss.shotoku.Node; + +public class HistoryTest extends ShotokuTest { + private final static String TEST_FILE = "history-test-1"; + + @Override + protected void setUp() throws Exception { + Node n = cm.getRootDirectory().newNode(TEST_FILE); + n.save(TEST_FILE); + } + + public void testHistoryLengthThree() { + Node n = cm.getRootDirectory().getNode(TEST_FILE); + + // First making a history for the test file. + n.setContent("c1"); + n.setProperty("p1", "1"); + n.save("log1"); + + n.setContent("c2"); + n.setProperty("p1", "3"); + n.setProperty("p2", "2"); + n.save("log2"); + + n.setContent("c3"); + n.setProperty("p2", "y"); + n.save("log3"); + + // Now getting the history. + History h = n.getHistory(); + + // There should be 4 nodes. + assertEquals(4, h.getRevisionsCount()); + + // Now checking the content of individual nodes. + Node n1 = h.getNodeAtRevision(1); + assertTrue("c1".equals(n1.getContent())); + assertTrue("1".equals(n1.getProperty("p1"))); + assertNull(n1.getProperty("p2")); + assertTrue("log1".equals(n1.getLogMessage())); + + n1 = h.getNodeAtRevision(2); + assertTrue("c2".equals(n1.getContent())); + assertTrue("3".equals(n1.getProperty("p1"))); + assertTrue("2".equals(n1.getProperty("p2"))); + assertTrue("log2".equals(n1.getLogMessage())); + + n1 = h.getNodeAtRevision(3); + assertTrue("c3".equals(n1.getContent())); + assertTrue("3".equals(n1.getProperty("p1"))); + assertTrue("y".equals(n1.getProperty("p2"))); + assertTrue("log3".equals(n1.getLogMessage())); + } + + @Override + protected void tearDown() throws Exception { + cm.getNode(TEST_FILE).delete(); + } +} Added: trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/LogMessageTest.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/LogMessageTest.java 2005-10-06 16:28:07 UTC (rev 1282) +++ trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/LogMessageTest.java 2005-10-06 20:52:56 UTC (rev 1283) @@ -0,0 +1,58 @@ +package org.jboss.shotoku.test; + +import org.jboss.shotoku.Directory; +import org.jboss.shotoku.Node; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; + +public class LogMessageTest extends ShotokuTest { + private final static String TEST_FILE = "log-message-test-1"; + private final static String TEST_DIR = "log-message-test-2"; + + public void testNodeLogMessage() { + // Creating a new node. + Node n = cm.getRootDirectory().newNode(TEST_FILE); + + // Not yet saved - should be null. + assertNull(n.getLogMessage()); + + // Saving and checking if the log message is visible. + n.save("log1"); + assertTrue("log1".equals(cm.getRootDirectory().getNode(TEST_FILE).getLogMessage())); + assertTrue("log1".equals(n.getLogMessage())); + + // Setting content, but not saving - log message should be null. + n.setContent("a"); + assertNull(n.getLogMessage()); + } + + public void testDirectoryLogMessage() { + // Creating a new directory. + Directory d = cm.getRootDirectory().newDirectory(TEST_DIR); + + // Not yet saved - should be null. + assertNull(d.getLogMessage()); + + // Saving and checking if the log message is visible. + d.save("log2"); + assertTrue("log2".equals(cm.getRootDirectory().getDirectory(TEST_DIR).getLogMessage())); + assertTrue("log2".equals(d.getLogMessage())); + + // Setting content, but not saving - log message should be null. + d.setProperty("a", "b"); + assertNull(d.getLogMessage()); + } + + public void tearDown() { + try { + cm.getDirectory(TEST_DIR).delete(); + } catch (ResourceDoesNotExist e) { + + } + + try { + cm.getNode(TEST_FILE).delete(); + } catch (ResourceDoesNotExist e) { + + } + } +} Added: 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-06 16:28:07 UTC (rev 1282) +++ trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ParentTest.java 2005-10-06 20:52:56 UTC (rev 1283) @@ -0,0 +1,53 @@ +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"; + private final static String TEST_DIR2 = "parent-test-2"; + private final static String TEST_DIR3 = "parent-test-3"; + + public void testThreeLevelParents() { + // First creating a simple directory structure. + Directory new1 = cm.getRootDirectory().newDirectory(TEST_DIR1); + new1.save(TEST_DIR1); + + Directory new2 = new1.newDirectory(TEST_DIR2); + new2.save(TEST_DIR2); + + Directory new3 = new2.newDirectory(TEST_DIR3); + new3.save(TEST_DIR3); + + // Now, having this structure, testing the parents. + + // This should be "identical" to new2. + Directory parentNew3 = new3.getParent(); + + // This should be "identical" to new1. + Directory parentNew2 = new2.getParent(); + + // This should be the root directory. + Directory parentNew1 = new1.getParent(); + + // Checking names. + assertTrue(parentNew3.getName().equals(new2.getName())); + assertTrue(parentNew2.getName().equals(new1.getName())); + assertTrue(parentNew1.getName().equals(cm.getRootDirectory().getName())); + + // The parents should have appropriate children - trying to + // get them. + parentNew1.getDirectory(TEST_DIR1); + parentNew2.getDirectory(TEST_DIR2); + parentNew3.getDirectory(TEST_DIR3); + } + + public void tearDown() { + try { + cm.getDirectory(TEST_DIR1).delete(); + } catch (ResourceDoesNotExist e) { + + } + } +} + |
From: <jbo...@li...> - 2005-10-06 16:28:26
|
Author: adamw Date: 2005-10-06 12:28:07 -0400 (Thu, 06 Oct 2005) New Revision: 1282 Modified: trunk/forge/portal-extensions/binaries/maven-repo-addons/jboss/jars/jboss-aop.jar trunk/forge/portal-extensions/forge-navigation/src/java/org/jboss/forge/navigation/NavigationPortlet.java trunk/forge/portal-extensions/maven.xml 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/test/PropertiesTest.java trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/servlet/ShotokuServlet.java Log: Finished history. Not yet tested though. Modified: trunk/forge/portal-extensions/binaries/maven-repo-addons/jboss/jars/jboss-aop.jar =================================================================== (Binary files differ) Modified: trunk/forge/portal-extensions/forge-navigation/src/java/org/jboss/forge/navigation/NavigationPortlet.java =================================================================== --- trunk/forge/portal-extensions/forge-navigation/src/java/org/jboss/forge/navigation/NavigationPortlet.java 2005-10-06 14:20:18 UTC (rev 1281) +++ trunk/forge/portal-extensions/forge-navigation/src/java/org/jboss/forge/navigation/NavigationPortlet.java 2005-10-06 16:28:07 UTC (rev 1282) @@ -14,8 +14,8 @@ import org.jboss.portlet.JBossRenderResponse; /** + * Navigation portlet. * @author adamw - * Navigation portlet. */ public class NavigationPortlet extends JBossPortlet { public void doView(JBossRenderRequest request, JBossRenderResponse response) Modified: trunk/forge/portal-extensions/maven.xml =================================================================== --- trunk/forge/portal-extensions/maven.xml 2005-10-06 14:20:18 UTC (rev 1281) +++ trunk/forge/portal-extensions/maven.xml 2005-10-06 16:28:07 UTC (rev 1282) @@ -11,7 +11,7 @@ <!-- Helper goal - should be called only from a project's build - copies the forge tld to an appropriate directory in the web application. --> <goal name="copy-tld"> - <ant:copy todir="src/web/WEB-INF/tld" file="../forge-common/src/web/WEB-INF/tld/forge.tld" /> + <ant:copy todir="src/web/WEB-INF/tld" file="../forge-common/src/web/WEB-INF/tld/forge.tld" overwrite="true" /> </goal> <!-- Common goals that can be called from a project's build --> @@ -21,7 +21,7 @@ </goal> <goal name="prj-war-deploy"> - <ant:copy todir="../${forge.ear.dir}/target/${forge.ear.name}" flatten="true"> + <ant:copy todir="../${forge.ear.dir}/target/${forge.ear.name}" flatten="true" overwrite="true"> <ant:fileset dir="."> <ant:filename name="target/*.war" /> </ant:fileset> @@ -38,7 +38,7 @@ <attainGoal name="clean" /> <attainGoal name="build" /> <attainGoal name="deploy" /> - <ant:copy todir="${local.deploy.dir}/${forge.ear.name}" flatten="true"> + <ant:copy todir="${local.deploy.dir}/${forge.ear.name}" flatten="true" overwrite="true"> <ant:fileset dir="."> <ant:filename name="target/*.war" /> </ant:fileset> @@ -58,28 +58,31 @@ <!-- Copying application.xml --> <ant:copy file="${forge.ear.dir}/src/META-INF/application.xml" - tofile="${forge.ear.dir}/target/${forge.ear.name}/META-INF/application.xml" /> + tofile="${forge.ear.dir}/target/${forge.ear.name}/META-INF/application.xml" + overwrite="true" /> <!-- Copying the dependency JARs --> <ant:copy todir="${forge.ear.dir}/target/${forge.ear.name}" - file="${maven.repo.local}/rome/jars/rome-0.5.jar" /> + file="${maven.repo.local}/rome/jars/rome-0.5.jar" + overwrite="true" /> <ant:copy todir="${forge.ear.dir}/target/${forge.ear.name}" - file="${maven.repo.local}/jdom/jars/jdom-1.0.jar" /> - <ant:copy todir="${forge.ear.dir}/target/${forge.ear.name}" flatten="true"> + file="${maven.repo.local}/jdom/jars/jdom-1.0.jar" + overwrite="true" /> + <ant:copy todir="${forge.ear.dir}/target/${forge.ear.name}" flatten="true" overwrite="true"> <ant:fileset dir="${maven.repo.local}/tmate/jars"> <ant:filename name="*.jar" /> </ant:fileset> </ant:copy> - <ant:copy todir="${forge.ear.dir}/target/${forge.ear.name}" flatten="true"> + <ant:copy todir="${forge.ear.dir}/target/${forge.ear.name}" flatten="true" overwrite="true"> <ant:fileset dir="${maven.repo.local}/shotoku/jars"> <ant:filename name="*.jar" /> </ant:fileset> </ant:copy> <!-- Deploying the ear --> - <ant:copy todir="${local.deploy.dir}"> + <ant:copy todir="${local.deploy.dir}" overwrite="true"> <ant:fileset dir="${forge.ear.dir}/target/${forge.ear}"> <ant:include name="**" /> </ant:fileset> @@ -92,7 +95,7 @@ <!-- Copies necessary jars to the repository --> <goal name="prepare-repo"> - <ant:copy todir="${maven.repo.local}"> + <ant:copy todir="${maven.repo.local}" overwrite="true"> <ant:fileset dir="binaries/maven-repo-addons" /> </ant:copy> 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-06 14:20:18 UTC (rev 1281) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/svn/service/SvnRepository.java 2005-10-06 16:28:07 UTC (rev 1282) @@ -178,6 +178,11 @@ s.release(); } + private void synchronizeWithLock(String path) { + getWriteLock(path); + putWriteLock(path); + } + private String replaceSeparators(String path) { return '/' == File.separatorChar ? path : path.replace('/', File.separatorChar); @@ -191,6 +196,8 @@ SVNStatusType currentStatus = ourClientManager.getStatusClient(). doStatus(file, false).getContentsStatus(); + System.out.println(currentStatus.getID()); + // Checking if this item is under version control // already. If not - returning null, as it cannot have // any saved properties. @@ -223,12 +230,14 @@ public List<RevisionInfo> getRevisionInfo(String path) throws SvnOperationFailed { - File f = new File(getFileSystemPath(path)); + synchronizeWithLock(path); + + File file = new File(getFileSystemPath(path)); try { final List<RevisionInfo> ret = new ArrayList<RevisionInfo>(); // TODO: check the maximum number. - ourClientManager.getLogClient().doLog(new File[] { f }, + ourClientManager.getLogClient().doLog(new File[] { file }, SVNRevision.create(0), SVNRevision.HEAD, false, false, 999999, new ISVNLogEntryHandler() { Modified: trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/test/PropertiesTest.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/test/PropertiesTest.java 2005-10-06 14:20:18 UTC (rev 1281) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn-service/src/java/org/jboss/shotoku/test/PropertiesTest.java 2005-10-06 16:28:07 UTC (rev 1282) @@ -5,26 +5,60 @@ import org.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory; import org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryFactoryImpl; import org.tmatesoft.svn.core.wc.ISVNOptions; +import org.tmatesoft.svn.core.wc.ISVNPropertyHandler; import org.tmatesoft.svn.core.wc.SVNClientManager; +import org.tmatesoft.svn.core.wc.SVNRevision; import org.tmatesoft.svn.core.wc.SVNWCUtil; public class PropertiesTest { + SVNClientManager clientManager; + File file; + + private void setProperty(String value) throws Exception { + clientManager.getWCClient().doSetProperty(file, "test", value, true, false, ISVNPropertyHandler.NULL); + } + + private void getProperty() throws Exception { + clientManager.getWCClient().doGetProperty(file, "test", SVNRevision.WORKING, SVNRevision.WORKING, + false); + } + + private void commit() throws Exception { + clientManager.getCommitClient().doCommit(new File[] { file }, false, "", true, false); + } + + private void add() throws Exception { + clientManager.getWCClient().doAdd(file, true, false, false, false); + } + + private void delete() throws Exception { + clientManager.getWCClient().doDelete(file, true, false); + } + public void test() throws Exception { DAVRepositoryFactory.setup(); SVNRepositoryFactoryImpl.setup(); - File file = new File("/home/adamw/jboss/content/trunk/forge/portal-content/shotoku-test/prop-test"); + file = new File("/home/adamw/jboss/content/trunk/forge/portal-content/shotoku-test/prop-test"); ISVNOptions options = SVNWCUtil.createDefaultOptions(true); - SVNClientManager clientManager = + clientManager = SVNClientManager.newInstance(options, "jbf...@jb...", "rO@B5oPfff"); - - System.out.println(file.createNewFile()); - clientManager.getWCClient().doAdd(file, true, false, false, false); - clientManager.getCommitClient().doCommit(new File[] { file }, false, "", true, false); - clientManager.getWCClient().doDelete(file, true, false); - clientManager.getCommitClient().doCommit(new File[] { file }, false, "", true, false); - System.out.println(file.createNewFile()); + + file.createNewFile(); + add(); + commit(); + setProperty("1"); + commit(); + setProperty("2"); + commit(); + getProperty(); + getProperty(); + getProperty(); + delete(); + commit(); + file.createNewFile(); + Thread.sleep(1000); System.out.println( clientManager.getStatusClient().doStatus(file, false).getContentsStatus().getID()); } Modified: trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/servlet/ShotokuServlet.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/servlet/ShotokuServlet.java 2005-10-06 14:20:18 UTC (rev 1281) +++ trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/servlet/ShotokuServlet.java 2005-10-06 16:28:07 UTC (rev 1282) @@ -28,7 +28,7 @@ pw.write("Depends test: " + test + "<br />"); pw.write("<br />"); - /*ContentManager cm = ContentManager.getContentManager("shotoku-test"); + ContentManager cm = ContentManager.getContentManager("shotoku-test"); Node n; @@ -55,7 +55,7 @@ pw.write("Rel rev: " + h.getRevisionNumber() + "<br />"); pw.write("Last mod: " + h.getLastModfication() + "<br />"); pw.write("<br />"); - }*/ + } } } |
From: <jbo...@li...> - 2005-10-05 21:52:52
|
Author: dam...@jb... Date: 2005-10-05 17:52:49 -0400 (Wed, 05 Oct 2005) New Revision: 1278 Added: trunk/jems/jboss-4.0/ Log: Adding jboss-4.0 code line |
From: <jbo...@li...> - 2005-10-05 21:52:24
|
Author: dam...@jb... Date: 2005-10-05 17:52:18 -0400 (Wed, 05 Oct 2005) New Revision: 1277 Added: branches/jems/ Log: Creating a place for jems branches. |