Author: adamw Date: 2005-11-16 16:32:28 -0500 (Wed, 16 Nov 2005) New Revision: 1578 Modified: trunk/forge/portal-extensions/forge-ads/src/java/org/jbosslabs/portlet/ads/AdsPortlet.java trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/FilesFromRepoFilter.java trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/portlet/ContentPortlet.java trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDescriptor.java trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/XmlInputFactory.java trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/service/ResourceWatcher.java trunk/forge/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConServer.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/exceptions/ResourceAlreadyExists.java trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/exceptions/ResourceDoesNotExist.java trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/search/DirectoryIncludeParameter.java trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/search/HistoryIncludeParameter.java trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/search/Search.java trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/search/SearchParameter.java trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/velocity/ShotokuResourceLoader.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/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 trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/AddDeleteTest.java 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/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/ModifyContentTest.java 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/PropertiesTest.java trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ResourceInjectTest.java trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/SimpleDirectoryTest.java trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/SlashNamesTest.java trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/servlet/ShotokuServlet.java Log: Shotoku exceptions runtime --> normal. Modified: trunk/forge/portal-extensions/forge-ads/src/java/org/jbosslabs/portlet/ads/AdsPortlet.java =================================================================== --- trunk/forge/portal-extensions/forge-ads/src/java/org/jbosslabs/portlet/ads/AdsPortlet.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/forge-ads/src/java/org/jbosslabs/portlet/ads/AdsPortlet.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -27,6 +27,8 @@ import org.jboss.forge.common.portlet.ContentPortlet; import org.jboss.portal.core.servlet.jsp.PortalJsp; import org.jboss.portal.common.context.DelegateContext; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; + import java.io.IOException; import javax.portlet.*; @@ -46,7 +48,12 @@ protected Object generateContent(JBossRenderRequest rReq, String portalName) throws IOException { - String content = readFile(portalName+"/ads/ads.txt"); + String content; + try { + content = readFile(portalName+"/ads/ads.txt"); + } catch (ResourceDoesNotExist e) { + content = "Error reading node."; + } //System.out.println("ADS.TXT content "+ content); String[] data = parse(content); DelegateContext root = new DelegateContext(); Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/FilesFromRepoFilter.java =================================================================== --- trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/FilesFromRepoFilter.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/FilesFromRepoFilter.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -30,6 +30,7 @@ import org.jboss.shotoku.ContentManager; import org.jboss.shotoku.Node; import org.jboss.shotoku.aop.Inject; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** * A filter for reading JSP (and html, text etc) files from a file repository @@ -89,7 +90,12 @@ .indexOf(ForgeHelper.REPO_ACCESS_DIR) + repoAccessDirLength + 1); - Node requestedNode = contentManager.getNode(requestedFile); + Node requestedNode; + try { + requestedNode = contentManager.getNode(requestedFile); + } catch (ResourceDoesNotExist e) { + throw new ServletException(e); + } if (requestedFile.toLowerCase().endsWith("jsp")) { // If the requested page is a jsp, then we copy it and dispatch // a request for it Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/portlet/ContentPortlet.java =================================================================== --- trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/portlet/ContentPortlet.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/portlet/ContentPortlet.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -28,6 +28,7 @@ import org.jboss.portlet.JBossRenderRequest; import org.jboss.portlet.JBossRenderResponse; import org.jboss.shotoku.ContentManager; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; import javax.portlet.*; @@ -172,8 +173,10 @@ * Name of the file to read. * @return Content of the demanded file. * @throws IOException + * @throws ResourceDoesNotExist + * @throws */ - public String readFile(String filename) throws IOException { + public String readFile(String filename) throws IOException, ResourceDoesNotExist { return cm.getNode(filename).getContent(); } Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDescriptor.java =================================================================== --- trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDescriptor.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDescriptor.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -35,6 +35,7 @@ import org.jboss.forge.common.XmlTools; import org.jboss.shotoku.ContentManager; import org.jboss.shotoku.Directory; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; @@ -151,7 +152,13 @@ Map<String,org.jboss.shotoku.Node> nodes = new Hashtable<String,org.jboss.shotoku.Node>(); // Getting the members dir. - Directory membersDir = contentManager.getDirectory(portalName+File.separator+ProjectsHelper.MEMBERS_DIR); + Directory membersDir; + try { + membersDir = contentManager.getDirectory(portalName+File.separator+ProjectsHelper.MEMBERS_DIR); + } catch (ResourceDoesNotExist e) { + // TODO + return null; + } // Getting all projects dirs in members directory. List<Directory> membersProjectDirs = membersDir.getDirectories(); @@ -160,7 +167,13 @@ for (org.jboss.shotoku.Node n:projectDir.getNodes().toList()) { // Checking if node is a node containing download counter descriptor. if (n.getName().compareTo(ProjectsHelper.DOWNLOADCOUNTER_DESC)==0) { - org.jboss.shotoku.Node counter = projectDir.getNode(ProjectsHelper.DOWNLOADCOUNTER_DESC); + org.jboss.shotoku.Node counter; + try { + counter = projectDir.getNode(ProjectsHelper.DOWNLOADCOUNTER_DESC); + } catch (ResourceDoesNotExist e) { + // TODO + return null; + } String projectId = projectDir.getName(); nodes.put(projectId,counter); break; Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/XmlInputFactory.java =================================================================== --- trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/XmlInputFactory.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/XmlInputFactory.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -85,7 +85,11 @@ * @return Length of the given resource. */ public long getLength(String identifier) { - return cm.getNode(identifier).getLength(); + try { + return cm.getNode(identifier).getLength(); + } catch (ResourceDoesNotExist e) { + return 0; + } } /** @@ -97,7 +101,11 @@ * @return Last modification time of the given resource. */ public long getLastModification(String identifier) { - return cm.getNode(identifier).getLastModification(); + try { + return cm.getNode(identifier).getLastModification(); + } catch (ResourceDoesNotExist e) { + return 0; + } } public static XmlInputFactory getContentReadingInstance(ContentManager cm) { Modified: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/service/ResourceWatcher.java =================================================================== --- trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/service/ResourceWatcher.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/service/ResourceWatcher.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -25,6 +25,7 @@ import java.util.Map; import org.jboss.shotoku.ContentManager; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** * @author adamw @@ -46,7 +47,11 @@ * @param name Name of the resouce to add. */ public void watchResource(String name) { - lastUpdates.put(name, cm.getNode(name).getLastModification()); + try { + lastUpdates.put(name, cm.getNode(name).getLastModification()); + } catch (ResourceDoesNotExist e) { + // Just not adding. + } } /** @@ -57,7 +62,14 @@ public boolean checkResources() { boolean ret = false; for (String name : lastUpdates.keySet()) { - long lastModification = cm.getNode(name).getLastModification(); + long lastModification; + try { + lastModification = cm.getNode(name).getLastModification(); + } catch (ResourceDoesNotExist e) { + // Not checking. + continue; + } + if (lastModification != lastUpdates.get(name)) { ret = true; lastUpdates.put(name, lastModification); Modified: trunk/forge/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConServer.java =================================================================== --- trunk/forge/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConServer.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/forge-contributor/src/java/org/jboss/forge/contributor/ConServer.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -39,6 +39,7 @@ import org.jboss.shotoku.ContentManager; import org.jboss.shotoku.Node; import org.jboss.shotoku.aop.Inject; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; import org.xml.sax.InputSource; /** @@ -182,7 +183,13 @@ try { // Values ok, adding application. - Node confirmed = cm.getNode(getConfirmedFilePath()); + Node confirmed; + try { + confirmed = cm.getNode(getConfirmedFilePath()); + } catch (ResourceDoesNotExist e) { + // Nothing to do here ... + throw new RuntimeException(e); + } String content = confirmed.getContent(); String newContent = ForgeHelper.replace(content, 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-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/ContentManager.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -95,7 +95,7 @@ * Search to perform. * @return A node list that is the result of the search. */ - public NodeList search(Search search) { + public NodeList search(Search search) throws ResourceDoesNotExist { return search.perform(this); } Modified: trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/exceptions/ResourceAlreadyExists.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/exceptions/ResourceAlreadyExists.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/exceptions/ResourceAlreadyExists.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -24,7 +24,7 @@ /** * @author Adam Warski (ad...@as...) */ -public class ResourceAlreadyExists extends RuntimeException { +public class ResourceAlreadyExists extends Exception { public ResourceAlreadyExists(String msg) { super(msg); } Modified: trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/exceptions/ResourceDoesNotExist.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/exceptions/ResourceDoesNotExist.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/exceptions/ResourceDoesNotExist.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -24,7 +24,7 @@ /** * @author Adam Warski (ad...@as...) */ -public class ResourceDoesNotExist extends RuntimeException { +public class ResourceDoesNotExist extends Exception { public ResourceDoesNotExist(String msg) { super(msg); } Modified: trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/search/DirectoryIncludeParameter.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/search/DirectoryIncludeParameter.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/search/DirectoryIncludeParameter.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -26,6 +26,7 @@ import org.jboss.shotoku.ContentManager; import org.jboss.shotoku.Directory; import org.jboss.shotoku.NodeList; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** * A search parameter which includes to the result all nodes from a directory. @@ -43,7 +44,7 @@ this.path = params.get("path"); } - public NodeList transform(NodeList list, ContentManager cm) { + public NodeList transform(NodeList list, ContentManager cm) throws ResourceDoesNotExist { if (path == null) { list.addAll(directory.getNodes()); } else { Modified: trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/search/HistoryIncludeParameter.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/search/HistoryIncludeParameter.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/search/HistoryIncludeParameter.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -27,6 +27,7 @@ import org.jboss.shotoku.History; import org.jboss.shotoku.Node; import org.jboss.shotoku.NodeList; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** * A search parameter which includes to the result all nodes from the @@ -49,7 +50,7 @@ this.path = params.get("path"); } - public NodeList transform(NodeList list, ContentManager cm) { + public NodeList transform(NodeList list, ContentManager cm) throws ResourceDoesNotExist { if (path == null) { list.addAll(history.getAllRevisions()); } else { Modified: trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/search/Search.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/search/Search.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/search/Search.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -26,6 +26,7 @@ import org.jboss.shotoku.ContentManager; import org.jboss.shotoku.NodeList; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** * A class representing a search or a sub-search. @@ -42,7 +43,7 @@ searchParametersStack.add(parameter); } - public NodeList perform(ContentManager cm) { + public NodeList perform(ContentManager cm) throws ResourceDoesNotExist { NodeList list = new NodeList(); for (SearchParameter parameter : searchParametersStack) { list = parameter.transform(list, cm); @@ -51,7 +52,7 @@ return list; } - public NodeList transform(NodeList list, ContentManager cm) { + public NodeList transform(NodeList list, ContentManager cm) throws ResourceDoesNotExist { list.addAll(perform(cm)); return list; } Modified: trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/search/SearchParameter.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/search/SearchParameter.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/search/SearchParameter.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -23,10 +23,11 @@ import org.jboss.shotoku.ContentManager; import org.jboss.shotoku.NodeList; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** * @author Adam Warski (ad...@as...) */ public interface SearchParameter { - public NodeList transform(NodeList list, ContentManager cm); + public NodeList transform(NodeList list, ContentManager cm) throws ResourceDoesNotExist; } Modified: trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/velocity/ShotokuResourceLoader.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/velocity/ShotokuResourceLoader.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-base/src/java/org/jboss/shotoku/velocity/ShotokuResourceLoader.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -28,6 +28,7 @@ import org.apache.velocity.runtime.resource.Resource; import org.apache.velocity.runtime.resource.loader.ResourceLoader; import org.jboss.shotoku.ContentManager; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** * @author Adam Warski (ad...@as...) @@ -55,17 +56,29 @@ @Override public InputStream getResourceStream(String resource) throws ResourceNotFoundException { - return cm.getNode(resource).getContentInputStream(); + try { + return cm.getNode(resource).getContentInputStream(); + } catch (ResourceDoesNotExist e) { + throw new ResourceNotFoundException(e.getMessage()); + } } @Override public boolean isSourceModified(Resource resource) { - return resource.getLastModified() != cm.getNode(resource.getName()).getLastModification(); + try { + return resource.getLastModified() != cm.getNode(resource.getName()).getLastModification(); + } catch (ResourceDoesNotExist e) { + return false; + } } @Override public long getLastModified(Resource resource) { - return cm.getNode(resource.getName()).getLastModification(); + try { + return cm.getNode(resource.getName()).getLastModification(); + } catch (ResourceDoesNotExist e) { + return 0; + } } } 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-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnContentManager.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -130,11 +130,16 @@ @Override public Directory getRootDirectory() { - return getDirectory(""); + try { + return getDirectory(""); + } catch (ResourceDoesNotExist e) { + // Impossible. + return null; + } } @Override - public Node getNode(String path) { + public Node getNode(String path) throws ResourceDoesNotExist { File file = getFileForPath(path); if (!file.isFile()) @@ -145,7 +150,7 @@ } @Override - public Directory getDirectory(String path) { + public Directory getDirectory(String path) throws ResourceDoesNotExist { File file = getFileForPath(path); if (!file.isDirectory()) 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-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnDirectory.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -124,7 +124,7 @@ return new SvnDirectory(id, reqFullPath, reqDir, svnCm); } - public Node newNode(String name) { + public Node newNode(String name) throws ResourceAlreadyExists { String childFullPath = fullPath + '/' + name; try { @@ -143,7 +143,7 @@ } } - public Directory newDirectory(String name) throws RepositoryException { + public Directory newDirectory(String name) throws RepositoryException, ResourceAlreadyExists { String childFullPath = fullPath + '/' + name; try { service.synchronizeWithWriteLock(id, childFullPath); 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-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnHeadNode.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -76,7 +76,6 @@ return content.asString(); } - public byte[] getContentByteArray() { if (content == null) { try { Modified: 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-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewDirectoryHelper.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -49,7 +49,11 @@ } protected AbstractResource getNormalResource() { - currentDirectory = parentDirectory.getDirectory(name); + try { + currentDirectory = parentDirectory.getDirectory(name); + } catch (ResourceDoesNotExist e) { + // Impossible. + } return currentDirectory; } Modified: 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-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewNodeHelper.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -31,6 +31,7 @@ import org.jboss.shotoku.History; import org.jboss.shotoku.Node; import org.jboss.shotoku.exceptions.RepositoryException; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** * @author Adam Warski (ad...@as...) @@ -48,7 +49,12 @@ } protected AbstractResource getNormalResource() { - currentNode = parentDirectory.getNode(name); + try { + currentNode = parentDirectory.getNode(name); + } catch (ResourceDoesNotExist e) { + // Impossible. + } + return currentNode; } Modified: 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-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnNewResourceHelper.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -24,6 +24,7 @@ import org.jboss.shotoku.AbstractResource; import org.jboss.shotoku.Directory; import org.jboss.shotoku.exceptions.RepositoryException; +import org.jboss.shotoku.exceptions.ResourceAlreadyExists; import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** @@ -55,7 +56,11 @@ try { lastParent = lastParent.getDirectory(nameParts[i]); } catch (ResourceDoesNotExist e) { - lastParent = lastParent.newDirectory(nameParts[i]); + try { + lastParent = lastParent.newDirectory(nameParts[i]); + } catch (ResourceAlreadyExists e1) { + // Impossible. + } lastParent.save(logMessage); } } Modified: trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/AddDeleteTest.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/AddDeleteTest.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/AddDeleteTest.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -22,6 +22,7 @@ package org.jboss.shotoku.test; import org.jboss.shotoku.Node; +import org.jboss.shotoku.exceptions.ResourceAlreadyExists; import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** @@ -42,7 +43,7 @@ } } - public void testDeleteWithoutSave() { + public void testDeleteWithoutSave() throws ResourceAlreadyExists, ResourceDoesNotExist { Node n = cm.getRootDirectory().newNode(TEST_FILE); checkTestFileNotExists(); @@ -52,7 +53,7 @@ checkTestFileNotExists(); } - public void testDeleteWithSaveImmediate() { + public void testDeleteWithSaveImmediate() throws ResourceAlreadyExists, ResourceDoesNotExist { Node n = cm.getRootDirectory().newNode(TEST_FILE); checkTestFileNotExists(); @@ -71,7 +72,7 @@ checkTestFileNotExists(); } - public void testDeleteWithSaveDelayed() { + public void testDeleteWithSaveDelayed() throws ResourceAlreadyExists, ResourceDoesNotExist { Node n = cm.getRootDirectory().newNode(TEST_FILE); checkTestFileNotExists(); @@ -104,7 +105,7 @@ checkTestFileNotExists(); } - public void testAddAfterDelete() { + public void testAddAfterDelete() throws ResourceAlreadyExists, ResourceDoesNotExist { // Adding and deleting Node n = cm.getRootDirectory().newNode(TEST_FILE); n.save(TEST_FILE); Modified: 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-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ContentSettingTest.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -25,6 +25,8 @@ import java.util.Arrays; import org.jboss.shotoku.Node; +import org.jboss.shotoku.exceptions.ResourceAlreadyExists; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** * @author Adam Warski (ad...@as...) @@ -47,7 +49,7 @@ assertTrue(Arrays.equals(content.getBytes(), n.getContentByteArray())); } - public void testString() { + public void testString() throws ResourceAlreadyExists, ResourceDoesNotExist { // Getting the test node. Node n = cm.getNode(TEST_FILE); @@ -60,7 +62,7 @@ assertNodeContent(cm.getRootDirectory().getNode(TEST_FILE), TEST_CONTENT); } - public void testByteArray() { + public void testByteArray() throws ResourceAlreadyExists, ResourceDoesNotExist{ // Getting the test node. Node n = cm.getNode(TEST_FILE); @@ -73,7 +75,7 @@ assertNodeContent(cm.getRootDirectory().getNode(TEST_FILE), TEST_CONTENT_2); } - public void testOutputStream() throws IOException { + public void testOutputStream() throws ResourceAlreadyExists, ResourceDoesNotExist, IOException { // Getting the test node. Node n = cm.getNode(TEST_FILE); Modified: 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-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/HistoryTest.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -23,6 +23,8 @@ import org.jboss.shotoku.History; import org.jboss.shotoku.Node; +import org.jboss.shotoku.exceptions.ResourceAlreadyExists; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** * @author Adam Warski (ad...@as...) @@ -37,7 +39,7 @@ n.save(TEST_FILE); } - public void testHistoryLengthThree() { + public void testHistoryLengthThree() throws ResourceAlreadyExists, ResourceDoesNotExist { Node n = cm.getRootDirectory().getNode(TEST_FILE); // First making a history for the test file. Modified: 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-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/LogMessageTest.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -23,6 +23,7 @@ import org.jboss.shotoku.Directory; import org.jboss.shotoku.Node; +import org.jboss.shotoku.exceptions.ResourceAlreadyExists; import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** @@ -33,7 +34,7 @@ private final static String TEST_FILE = "log-message-test-1"; private final static String TEST_DIR = "log-message-test-2"; - public void testNodeLogMessage() { + public void testNodeLogMessage() throws ResourceAlreadyExists, ResourceDoesNotExist { // Creating a new node. Node n = cm.getRootDirectory().newNode(TEST_FILE); @@ -50,7 +51,7 @@ assertNull(n.getLogMessage()); } - public void testDirectoryLogMessage() { + public void testDirectoryLogMessage() throws ResourceAlreadyExists, ResourceDoesNotExist { // Creating a new directory. Directory d = cm.getRootDirectory().newDirectory(TEST_DIR); Modified: trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ModifyContentTest.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ModifyContentTest.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ModifyContentTest.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -22,6 +22,8 @@ package org.jboss.shotoku.test; import org.jboss.shotoku.Node; +import org.jboss.shotoku.exceptions.ResourceAlreadyExists; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** * @author Adam Warski (ad...@as...) @@ -40,7 +42,7 @@ n.save(TEST_FILE); } - public void testOneContentChange() { + public void testOneContentChange() throws ResourceAlreadyExists, ResourceDoesNotExist { // Getting the test node. Node n = cm.getNode(TEST_FILE); @@ -64,7 +66,7 @@ TEST_FILE).getContent())); } - public void testTwoContentChange() { + public void testTwoContentChange() throws ResourceAlreadyExists, ResourceDoesNotExist { Node n = cm.getNode(TEST_FILE); Node n2 = cm.getNode(TEST_FILE); 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-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ParentTest.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -22,6 +22,8 @@ package org.jboss.shotoku.test; import org.jboss.shotoku.Directory; +import org.jboss.shotoku.exceptions.ResourceAlreadyExists; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** * @author Adam Warski (ad...@as...) @@ -32,7 +34,7 @@ private final static String TEST_DIR2 = "parent-test-2"; private final static String TEST_DIR3 = "parent-test-3"; - public void testThreeLevelParents() { + public void testThreeLevelParents() throws ResourceAlreadyExists, ResourceDoesNotExist { // First creating a simple directory structure. Directory new1 = cm.getRootDirectory().newDirectory(TEST_DIR1); new1.save(TEST_DIR1); Modified: trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/PropertiesTest.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/PropertiesTest.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/PropertiesTest.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -22,6 +22,8 @@ package org.jboss.shotoku.test; import org.jboss.shotoku.Node; +import org.jboss.shotoku.exceptions.ResourceAlreadyExists; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** * @author Adam Warski (ad...@as...) @@ -39,7 +41,7 @@ n.save(TEST_FILE); } - public void testOnePropertyChange() { + public void testOnePropertyChange() throws ResourceAlreadyExists, ResourceDoesNotExist { // Getting the test node. Node n = cm.getNode(TEST_FILE); @@ -62,7 +64,7 @@ PROP_NAME))); } - public void testTwoPropertyChange() { + public void testTwoPropertyChange() throws ResourceAlreadyExists, ResourceDoesNotExist { // Getting the test nodes. Node n = cm.getNode(TEST_FILE); Node n2 = cm.getNode(TEST_FILE); @@ -86,7 +88,7 @@ } @Override - protected void tearDown() throws Exception { + protected void tearDown() throws ResourceAlreadyExists, ResourceDoesNotExist { cm.getNode(TEST_FILE).delete(); } } Modified: trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ResourceInjectTest.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ResourceInjectTest.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/ResourceInjectTest.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -25,6 +25,8 @@ import org.jboss.shotoku.Node; import org.jboss.shotoku.aop.DirectoryInject; import org.jboss.shotoku.aop.NodeInject; +import org.jboss.shotoku.exceptions.ResourceAlreadyExists; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** * @author Adam Warski (ad...@as...) @@ -37,7 +39,7 @@ private final static String TEST_TEXT_2 = "text2"; private final static String TEST_LOG = "log"; - public void setUp() { + public void setUp() throws ResourceAlreadyExists, ResourceDoesNotExist { Node testNode = cm.getRootDirectory().newNode(TEST_NODE); testNode.setContent(TEST_TEXT); testNode.save(TEST_LOG); @@ -55,14 +57,14 @@ @NodeInject(SHOTOKU_TEST_DIR + "/" + TEST_NODE) private String injectedString; - public void testInjects() { + public void testInjects() throws ResourceAlreadyExists, ResourceDoesNotExist { assertTrue(TEST_TEXT.equals(injectedString)); assertTrue(TEST_TEXT.equals(injectedNode.getContent())); assertTrue(TEST_LOG.equals(injectedNode.getLogMessage())); assertTrue(TEST_LOG.equals(injectedDir.getLogMessage())); } - public void testContentChange() { + public void testContentChange() throws ResourceAlreadyExists, ResourceDoesNotExist { injectedNode.setContent(TEST_TEXT_2); injectedNode.save(TEST_LOG); @@ -71,7 +73,7 @@ assertTrue(TEST_TEXT_2.equals(cm.getNode(TEST_NODE).getContent())); } - public void tearDown() { + public void tearDown() throws ResourceAlreadyExists, ResourceDoesNotExist { cm.getNode(TEST_NODE).delete(); cm.getDirectory(TEST_DIR).delete(); } Modified: trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/SimpleDirectoryTest.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/SimpleDirectoryTest.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/SimpleDirectoryTest.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -23,6 +23,7 @@ import org.jboss.shotoku.Directory; import org.jboss.shotoku.Node; +import org.jboss.shotoku.exceptions.ResourceAlreadyExists; import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** @@ -30,7 +31,7 @@ * @author Damon Sicore (da...@si...) */ public class SimpleDirectoryTest extends ShotokuTest { - public void testAddDeleteDirectory() { + public void testAddDeleteDirectory() throws ResourceAlreadyExists, ResourceDoesNotExist { // Creating the directory. Directory newDir = cm.getRootDirectory().newDirectory("new-dir-test"); @@ -52,7 +53,7 @@ "new-dir-test/node2").getContent())); } - public void testNames() { + public void testNames() throws ResourceAlreadyExists, ResourceDoesNotExist { // Checking name of the root directory. assertTrue("".equals(cm.getRootDirectory().getName())); @@ -77,7 +78,7 @@ } @Override - protected void tearDown() { + protected void tearDown() throws ResourceAlreadyExists, ResourceDoesNotExist { try { Directory newDir = cm.getDirectory("new-dir-test"); newDir.delete(); Modified: trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/SlashNamesTest.java =================================================================== --- trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/SlashNamesTest.java 2005-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/SlashNamesTest.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -24,6 +24,8 @@ import org.jboss.shotoku.ContentManager; import org.jboss.shotoku.Directory; import org.jboss.shotoku.Node; +import org.jboss.shotoku.exceptions.ResourceAlreadyExists; +import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** * @author Adam Warski (ad...@as...) @@ -35,11 +37,11 @@ private final static String TEST_NESTED_NODE = "h/j/k"; private final static String TEST_CONTENT = "T"; - public void setUp() { + public void setUp() throws ResourceAlreadyExists, ResourceDoesNotExist { cm.getRootDirectory().newDirectory(TEST_DIR).save(TEST_DIR); } - public void testNested() { + public void testNested() throws ResourceAlreadyExists, ResourceDoesNotExist { Directory base = cm.getDirectory(TEST_DIR); Directory nested1 = base.newDirectory(TEST_NESTED_DIR); Node nested2 = base.newNode(TEST_NESTED_NODE); @@ -61,7 +63,7 @@ assertTrue(TEST_CONTENT.equals(base.getNode(TEST_NESTED_NODE).getContent())); } - public void testNestedExisting() { + public void testNestedExisting() throws ResourceAlreadyExists, ResourceDoesNotExist { Directory base = cm.getDirectory(TEST_DIR); base.newDirectory("h").save("h"); @@ -79,7 +81,7 @@ /** * Checks if content managers work with prefixes that contain unnecessary /. */ - public void testSlashesInCmPrefix() { + public void testSlashesInCmPrefix() throws ResourceAlreadyExists, ResourceDoesNotExist { ContentManager cm1 = ContentManager.getContentManager("/shotoku-test/"); cm1.getRootDirectory().getDirectory(TEST_DIR); @@ -88,7 +90,7 @@ cm2.getRootDirectory(); } - public void tearDown() { + public void tearDown() throws ResourceAlreadyExists, ResourceDoesNotExist { cm.getDirectory(TEST_DIR).delete(); } } 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-11-16 19:29:14 UTC (rev 1577) +++ trunk/forge/portal-extensions/shotoku/shotoku-test/src/java/org/jboss/shotoku/test/servlet/ShotokuServlet.java 2005-11-16 21:32:28 UTC (rev 1578) @@ -1,6 +1,5 @@ package org.jboss.shotoku.test.servlet; -import java.io.FileInputStream; import java.io.IOException; import java.io.PrintWriter; @@ -10,9 +9,9 @@ import javax.servlet.http.HttpServletResponse; import org.jboss.shotoku.ContentManager; +import org.jboss.shotoku.Directory; import org.jboss.shotoku.Node; import org.jboss.shotoku.aop.Inject; -import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** * @author Adam Warski (ad...@as...) @@ -31,21 +30,31 @@ @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - response.setContentType("text/html"); - PrintWriter pw = response.getWriter(); - pw.write("Depends test: " + test + "<br />"); - pw.write("<br />"); - - Node n; try { - n = test.getNode("image.png"); - } catch (ResourceDoesNotExist e) { - n = test.getRootDirectory().newNode("image.png"); + response.setContentType("text/html"); + PrintWriter pw = response.getWriter(); + pw.write("Depends test: " + test + "<br />"); + pw.write("<br />"); + + try { + Directory d = test.getRootDirectory().newDirectory("Z"); + d.save(""); + + test.getRootDirectory().newNode("BB").save(""); + + d = test.getDirectory("Z"); + Node n = d.newNode("A"); + n.save("C"); + + test.getRootDirectory().getNode("BB").getLastModification(); + d.getNode("A").getLastModification(); + } finally { + test.getDirectory("Z").delete(); + } + } catch (Exception e) { + throw new ServletException(e); } - n.setContent(new FileInputStream("/home/adamw/downloads/image.png")); - n.save(""); - //NodeList nl = new NodeList(); //pw.write(nl.getFeed("default/feeds/templates/hello-world.vm", null, new HashMap<String, Object>()).toString()); |