Indeed a remarkable achievement, I really appreciate all your efforts. We shouldn't be far from a release candidate now.
thanks, Harry 2009/10/27 <[email protected]> > Author: ajaquith > Date: Tue Oct 27 04:34:36 2009 > New Revision: 830055 > > URL: http://svn.apache.org/viewvc?rev=830055&view=rev > Log: > Fixed single last unit test bug. Although LDAP tests won't work if a test > LDAP server isn't running, all other unit tests run 100% clean. This is the > first time that has happened in at least a year. Test times: 7 minutes 51 > seconds for 1024 tests. Added Ant script to start OpenLDAP test fixture if > available. Fixed JCRWikiPage bug that was causing JCR exceptions when > attributes were not set. > > Modified: > incubator/jspwiki/trunk/ChangeLog > incubator/jspwiki/trunk/build.xml > incubator/jspwiki/trunk/etc/ldap/slapd.conf > incubator/jspwiki/trunk/src/java/org/apache/wiki/Release.java > > incubator/jspwiki/trunk/src/java/org/apache/wiki/content/jcr/JCRWikiPage.java > > > incubator/jspwiki/trunk/tests/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java > > Modified: incubator/jspwiki/trunk/ChangeLog > URL: > http://svn.apache.org/viewvc/incubator/jspwiki/trunk/ChangeLog?rev=830055&r1=830054&r2=830055&view=diff > > ============================================================================== > --- incubator/jspwiki/trunk/ChangeLog (original) > +++ incubator/jspwiki/trunk/ChangeLog Tue Oct 27 04:34:36 2009 > @@ -1,3 +1,18 @@ > +2009-10-26 Andrew Jaquith <ajaquith AT apache DOT org> > + > + * 3.0.0-svn-173 > + > + * Fixed single last unit test bug. Although LDAP tests won't work > + if a test LDAP server isn't running, all other unit tests run > + 100% clean. This is the first time that has happened in at > + least a year. Test times: 7 minutes 51 seconds for 1024 tests. > + > + * Added Ant script to start OpenLDAP test fixture if > + available. > + > + * Fixed JCRWikiPage bug that was causing JCR exceptions when > + attributes were not set. > + > 2009-10-25 Andrew Jaquith <ajaquith AT apache DOT org> > > * 3.0.0-svn-172 > > Modified: incubator/jspwiki/trunk/build.xml > URL: > http://svn.apache.org/viewvc/incubator/jspwiki/trunk/build.xml?rev=830055&r1=830054&r2=830055&view=diff > > ============================================================================== > --- incubator/jspwiki/trunk/build.xml (original) > +++ incubator/jspwiki/trunk/build.xml Tue Oct 27 04:34:36 2009 > @@ -103,9 +103,11 @@ > <property name="tests.classpath" value="${build}/tests/classpath" /> > <property name="tests.webinf" value="${tests.classpath}/WEB-INF" /> > <property name="tests.db" value="${build}/tests/db" /> > + <property name="tests.ldap" value="${build}/tests/ldap" /> > <property name="tests.pagedir" value="${build}/tests/priha" /> > <property name="tests.reports" value="${build}/tests/reports" /> > <property name="tests.workdir" value="${build}/tests/workdir" /> > + <available property="openldap" file="/usr/libexec/slapd" > value="/usr/libexec/slapd" /> > > <!-- The location of the JAR file for the test classes --> > <property name="testjarfile" > location="${build}/${ant.project.name}-tests.jar" > /> > @@ -756,7 +758,7 @@ > > More info http://ant.apache.org/faq.html#delegating-classloader > --> > - <target name="tests" depends="jar,tests-init,jartests,tests-db-init" > + <target name="tests" > depends="jar,tests-init,jartests,tests-db-init,tests-ldap-init" > description="Runs the JUnit tests."> > > <junit printsummary="yes" haltonfailure="no" fork="yes" forkmode="once" > maxmemory="512m"> > @@ -1302,6 +1304,74 @@ > </target> > > <!-- ============================================================== --> > + > + <!-- OpenLDAP server startup/shutdown (for testing LDAP integration) --> > + > + <!-- Special "init" target for OpenLDAP --> > + <target name="tests-ldap-init" depends="ldap-check-start,ldap-start" > if="openldap" /> > + > + <target name="ldap-check-start" if="openldap"> > + <echo message="Checking to see if OpenLDAP server is running already." > /> > + <condition property="ldap.up"> > + <socket server="localhost" port="4890" /> > + </condition> > + </target> > + > + <target name="ldap-start" depends="ldap-check-start" unless="ldap.up" > if="openldap" > + description="Starts OpenLDAP for testing."> > + <echo message="Starting OpenLDAP server on localhost." /> > + <delete dir="${tests.ldap}" /> > + <mkdir dir="${tests.ldap}" /> > + <mkdir dir="${tests.ldap}/data" /> > + <exec executable="${openldap}" dir="." spawn="true"> > + <arg value="-f" /> > + <arg value="${basedir}/etc/ldap/slapd.conf" /> > + <arg value="-h" /> > + <arg value="ldap://127.0.0.1:4890/" /> > + <arg value="-d" /> > + <arg value="-1" /> > + <arg value="-u" /> > + <arg value="${env.USER}" /> > + </exec> > + <sleep seconds="3" /> > + <echo message="Loading sample schema." /> > + <exec executable="ldapadd" dir="."> > + <arg value="-x" /> > + <arg value="-h" /> > + <arg value="127.0.0.1" /> > + <arg value="-p" /> > + <arg value="4890" /> > + <arg value="-D" /> > + <arg value="cn=Manager,dc=jspwiki,dc=org" /> > + <arg value="-w" /> > + <arg value="test" /> > + <arg value="-f" /> > + <arg value="${basedir}/etc/ldap/test.ldif" /> > + </exec> > + <sleep seconds="3" /> > + <available file="${tests.ldap}/slapd.pid" property="ldap.up"/> > + <fail unless="ldap.up">OpenLDAP didn't appear to start up properly. > You can start it manually from the command line as follows: > + ${openldap} -f etc/ldap/slapd.conf -h "ldap://127.0.0.1:4890/" -d -1 > -u ${env.USER} > + </fail> > + <echo message="Done." /> > + </target> > + > + <target name="ldap-stop" depends="ldap-check-start" if="ldap.up" > + description="Shuts down the OpenLDAP test server, if it's up."> > + <echo message="Shutting down OpenLDAP server on localhost." /> > + <exec executable="killall"> > + <arg value="-u" /> > + <arg value="arj" /> > + <arg value="-c" /> > + <arg value="slapd" /> > + </exec> > + <delete dir="${tests.ldap}/data" /> > + <delete file="${tests.ldap}/slapd.args" /> > + <delete file="${tests.ldap}/slapd.pid" /> > + <echo message="Done." /> > + </target> > + > + <!-- ============================================================== --> > <target name="i18n-create-template" description="Creates a given > directory structure with all the needed files to make an i18n jar"> > <input message="i18n template code to generate (ie: es_ES):" > addproperty="i18n.template" /> > > > Modified: incubator/jspwiki/trunk/etc/ldap/slapd.conf > URL: > http://svn.apache.org/viewvc/incubator/jspwiki/trunk/etc/ldap/slapd.conf?rev=830055&r1=830054&r2=830055&view=diff > > ============================================================================== > --- incubator/jspwiki/trunk/etc/ldap/slapd.conf (original) > +++ incubator/jspwiki/trunk/etc/ldap/slapd.conf Tue Oct 27 04:34:36 2009 > @@ -2,8 +2,8 @@ > include /private/etc/openldap/schema/cosine.schema > include /private/etc/openldap/schema/inetorgperson.schema > include /private/etc/openldap/schema/nis.schema > -pidfile /Users/arj/workspace/ldap/run/slapd.pid > -argsfile /Users/arj/workspace/ldap/run/slapd.args > +pidfile build/tests/ldap/slapd.pid > +argsfile build/tests/ldap/slapd.args > database bdb > suffix "dc=jspwiki,dc=org" > # Use SASL so we can use DIGEST-MD5 authentication > @@ -31,6 +31,6 @@ > rootdn "cn=Manager,dc=jspwiki,dc=org" > rootpw {SSHA}RJMzbtilrHxvREvaJP7eTBZzSN1Za73l > > -directory /Users/arj/workspace/ldap/data > +directory build/tests/ldap/data > index objectClass,uid,uidNumber,gidNumber eq > index cn,mail,surname,givenname > eq,subinitial > > Modified: incubator/jspwiki/trunk/src/java/org/apache/wiki/Release.java > URL: > http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/Release.java?rev=830055&r1=830054&r2=830055&view=diff > > ============================================================================== > --- incubator/jspwiki/trunk/src/java/org/apache/wiki/Release.java > (original) > +++ incubator/jspwiki/trunk/src/java/org/apache/wiki/Release.java Tue Oct > 27 04:34:36 2009 > @@ -77,7 +77,7 @@ > * <p> > * If the build identifier is empty, it is not added. > */ > - public static final String BUILD = "172"; > + public static final String BUILD = "173"; > > /** > * This is the generic version string you should use > > Modified: > incubator/jspwiki/trunk/src/java/org/apache/wiki/content/jcr/JCRWikiPage.java > URL: > http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/content/jcr/JCRWikiPage.java?rev=830055&r1=830054&r2=830055&view=diff > > ============================================================================== > --- > incubator/jspwiki/trunk/src/java/org/apache/wiki/content/jcr/JCRWikiPage.java > (original) > +++ > incubator/jspwiki/trunk/src/java/org/apache/wiki/content/jcr/JCRWikiPage.java > Tue Oct 27 04:34:36 2009 > @@ -136,7 +136,17 @@ > */ > public Node getJCRNode() throws RepositoryException > { > - return m_engine.getContentManager().getJCRNode(m_jcrPath); > + Node node; > + try > + { > + node = m_engine.getContentManager().getJCRNode(m_jcrPath); > + } > + catch ( PathNotFoundException e ) > + { > + // If the Node was never created, create one now > + node = m_engine.getContentManager().createJCRNode( m_jcrPath > ); > + } > + return node; > } > > /** > @@ -157,6 +167,8 @@ > > /** > * {...@inheritdoc} > + * This implementation looks up the JCR {...@link Property} with the name > {...@code key}. > + * If the attribute is found, its value is found. If not, {...@code null} > is returned. > */ > public Serializable getAttribute( String key ) > { > @@ -173,6 +185,11 @@ > throw new IllegalStateException( "The value returned by " + > key + " was not a Serializable, as expected."); > } > } > + catch( PathNotFoundException e ) > + { > + // This just means the attribute does not exist. No worries... > + return null; > + } > catch( ItemNotFoundException e ) > { > log.error( "ItemNotFoundException occurred while getting > Attribute " + key, e ); > @@ -182,8 +199,6 @@ > // the following exception still occurs quite often, so no > stacktrace for now > log.info( "RepositoryException occurred while getting > Attribute " + key + " : " + e ); > } > - // until this is fixed we want some more diagnostic info > - log.info("attribute value for key " + key + " is not > Serializable, returning null value"); > return null; > } > > @@ -224,7 +239,7 @@ > // the right thing to do here. > getJCRNode().setProperty( key, attribute.toString() ); > } > - catch(RepositoryException e) > + catch( RepositoryException e ) > { > log.error( "Exception occurred while setting (Serializable) > attribute " + key, e ); > } > > Modified: > incubator/jspwiki/trunk/tests/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java > URL: > http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java?rev=830055&r1=830054&r2=830055&view=diff > > ============================================================================== > --- > incubator/jspwiki/trunk/tests/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java > (original) > +++ > incubator/jspwiki/trunk/tests/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java > Tue Oct 27 04:34:36 2009 > @@ -69,9 +69,11 @@ > > public void tearDown() throws Exception > { > - testEngine.emptyRepository(); > - > - testEngine.shutdown(); > + if ( testEngine != null ) > + { > + testEngine.emptyRepository(); > + testEngine.shutdown(); > + } > } > > private void newPage( String name ) > @@ -128,6 +130,8 @@ > props.load( TestEngine.findTestProperties() ); > > props.setProperty( "jspwiki.translatorReader.useRelNofollow", > "true" ); > + testEngine.shutdown(); > + > TestEngine testEngine2 = new TestEngine( props ); > > WikiContext context = > testEngine2.getWikiContextFactory().newViewContext( testEngine2.createPage( > PAGE_NAME ) ); > @@ -531,6 +535,8 @@ > > assertEquals( "This should be a <a class=\"external\" href=\" > http://www.regex.fi/\" rel=\"nofollow\">link</a>", > translate_nofollow(src) ); > + > + testEngine = null; > } > > // > > >
