upayavira 2004/04/30 05:55:55
Modified: src/java/org/apache/cocoon Main.java src/java/org/apache/cocoon/bean CocoonBean.java src/java/org/apache/cocoon/bean/helpers AntDelegate.java Added: src/test/org/apache/cocoon/bean CocoonBeanTestCase.java Log: Adding a simple (to be extended CocoonBeanTestCase. First test: the processURI(uri, outputStream) method. Fixes to actually make the processURI method work Revision Changes Path 1.26 +6 -1 cocoon-2.1/src/java/org/apache/cocoon/Main.java Index: Main.java =================================================================== RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/Main.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- Main.java 28 Mar 2004 20:51:24 -0000 1.25 +++ Main.java 30 Apr 2004 12:55:55 -0000 1.26 @@ -312,6 +312,11 @@ listener.messageGenerated(CocoonBean.getProlog()); + if (cocoon.getTargetCount() ==0 && cocoon.isPrecompileOnly()) { + listener.messageGenerated("Please, specify at least one starting URI."); + System.exit(1); + } + cocoon.initialize(); cocoon.process(); cocoon.dispose(); 1.41 +14 -7 cocoon-2.1/src/java/org/apache/cocoon/bean/CocoonBean.java Index: CocoonBean.java =================================================================== RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/bean/CocoonBean.java,v retrieving revision 1.40 retrieving revision 1.41 diff -u -r1.40 -r1.41 --- CocoonBean.java 10 Mar 2004 12:58:09 -0000 1.40 +++ CocoonBean.java 30 Apr 2004 12:55:55 -0000 1.41 @@ -96,12 +96,6 @@ if (this.initialized == false) { super.initialize(); - if (crawler.getRemainingCount() == 0 && !precompileOnly) { - String error = "Please, specify at least one starting URI."; - log.fatalError(error); - throw new ProcessingException(error); - } - this.sourceResolver = (SourceResolver) getComponentManager().lookup( SourceResolver.ROLE); @@ -131,6 +125,10 @@ this.precompileOnly = precompileOnly; } + public boolean isPrecompileOnly() { + return precompileOnly; + } + public void setVerbose(boolean verbose) { this.verbose = verbose; } @@ -239,6 +237,10 @@ crawler.addTarget(target); } + public int getTargetCount() { + return crawler.getRemainingCount(); + } + public void addExcludePattern(String pattern) { int preparedPattern[] = WildcardHelper.compilePattern(pattern); excludePatterns.add(preparedPattern); @@ -331,6 +333,11 @@ if (!this.initialized) { this.initialize(); + } + + if (crawler.getRemainingCount() == 0 && !precompileOnly) { + log.info("No targets for to be processed."); + return; } if (this.checksumsURI != null) { 1.3 +6 -1 cocoon-2.1/src/java/org/apache/cocoon/bean/helpers/AntDelegate.java Index: AntDelegate.java =================================================================== RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/bean/helpers/AntDelegate.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- AntDelegate.java 5 Mar 2004 13:02:45 -0000 1.2 +++ AntDelegate.java 30 Apr 2004 12:55:55 -0000 1.3 @@ -39,6 +39,11 @@ System.out.println(CocoonBean.getProlog()); + if (cocoon.getTargetCount() ==0 && cocoon.isPrecompileOnly()) { + listener.messageGenerated("Please, specify at least one starting URI."); + System.exit(1); + } + cocoon.initialize(); cocoon.process(); cocoon.dispose(); 1.1 cocoon-2.1/src/test/org/apache/cocoon/bean/CocoonBeanTestCase.java Index: CocoonBeanTestCase.java =================================================================== /* * Copyright 1999-2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.cocoon.bean; import java.io.ByteArrayOutputStream; import org.apache.cocoon.bean.helpers.OutputStreamListener; import junit.framework.TestCase; /** * <p>Test case for the CocoonBean.</p> * * <p>To function correctly, this test case expects a built webapp at * <code>build/webapp/</code>, which includes the test-suite * within it. Ensure this is included in build.properties by * commenting out <code>exclude.webapp.test-suite=true</code>.</p> * * @version CVS $Id: CocoonBeanTestCase.java,v 1.1 2004/04/30 12:55:55 upayavira Exp $ */ public class CocoonBeanTestCase extends TestCase { /** * Constructor for CocoonBeanTest. * @param arg0 */ public CocoonBeanTestCase(String arg0) { super(arg0); } public void testProcessToStream() throws Exception { CocoonBean cocoon = getCocoonBean(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); cocoon.processURI("test-suite/static-site/index.html", baos); String result = baos.toString(); assertEquals(1603, result.length()); assertTrue(result.indexOf("Cocoon TestSuite")>-1); assertTrue(result.indexOf("<h1>General information</h1>")>-1); cocoon.dispose(); } private CocoonBean getCocoonBean() throws Exception { CocoonBean cocoon = new CocoonBean(); cocoon.setContextDir("build/webapp"); cocoon.setConfigFile("WEB-INF/cocoon.xconf"); cocoon.setPrecompileOnly(false); cocoon.setWorkDir("build/work"); cocoon.setLogKit("build/webapp/WEB-INF/logkit.xconf"); cocoon.setLogger("cli-test"); cocoon.setLogLevel("DEBUG"); //cocoon.setAgentOptions(*something*)); //cocoon.setAcceptOptions(*something*); //cocoon.setDefaultFilename(*something*); //listener.setReportFile(*something*); cocoon.setFollowLinks(true); cocoon.setConfirmExtensions(false); //cocoon.addLoadedClasses(Arrays.asList(*something*)); //cocoon.addTargets(BeanConfigurator.processURIFile(*some file*), destDir); cocoon.addListener(new OutputStreamListener(System.out)); cocoon.initialize(); return cocoon; } }