db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Watzek <mwa.t...@spree.de>
Subject Re: Patch implementing logging proposal
Date Fri, 19 Aug 2005 11:15:22 GMT
Hi Michael,

> Hi Michael,
> 
> what do you think about the proposal adding a summary file for the tck 
> run results? Is this hard to be implemented?
I like that idea! See my first reply.

> 
> Some questions/comments about the patch:
> 
> TCKFileAppender.java:
> - I'm just curious: do we need the four different constructors?
I have not found any comment in the Log4J doc saying "If you subclass a 
file appender, then it is sufficient to implement constructor XXX.". 
Thus, I prefer to implement all superclass constructors. If we implement 
only 1 constructor because we know that constructor is called during 
Log4J initialization (by looking into the source code), then we would 
depend on a particular Log4J version.

> 
> BatchTestRunner.java:
> - Could you add some comments and some javadoc describing the semantics 
> of the new methods. Especially because methods 
> getFileNameCreateDirectory and changeFileNameCreateDirectory have a side 
> effect that they create a directrory in the file system.
Sure, I'll add java doc comments.

> - Why do we need getSysPropertyAsPartialFileName(String property)? As 
> far as I understand the code it calls System.getProperty. Do I miss 
> something here?
A log file name may consist of several parts: <database>, <identity 
type>, <configuration>, and <suffix>. The first 3 parts are determined 
by system properties. The suffix is determined by a property in the 
Log4J properties file, e.g. "log4j.appender.JPOX.File". Depending on the 
presence of system properties, the log file name may vary, e.g. 
"derby-app-alltests-jpox.txt" and "app-jpox.txt". The latter is 
generated by the enhancer. Method "getSysPropertyAsPartialFileName" 
tracks this fact.

> 
> project.properties:
> - I propose to specify the value of jdo.tck.log.directory as path and 
> not just as the name of the directory under target. Class 
> BatchTestRunner uses the property to create the directory which works 
> today because we call the jvm from ${maven.build.dir}. How about the 
> following settings:
> jdo.tck.log.directory = ${maven.build.dir}/logs
> jdo.tck.log.directory.database = ${jdo.tck.log.directory}/database
> jdo.tck.log.directory.enhancer = ${jdo.tck.log.directory}/enhancer
Good catch!

> 
> maven.xml:
> - Why do we need the new property jdo.tck.util.enhancer.sources listing 
> the TCKFileAppender class? It is used when compiling the 
> persistence-capable and persistence-aware classes into the enhanced 
> directory and I think we do not need to recompile TCKFileAppender. It is 
> compiled by the rule java:compile and should be available through the 
> classpath.
Without specifying property "jdo.tck.util.enhancer.sources", class 
"TCKFileAppender" is not compiled to the "enhanced" directory. Goal 
"java:compile" is not called by goal "enhance.XXX". Instead, goal 
"enhance.XXX" calls the java compiler explicitly passing pc classes and 
pa classes. Note, there is not any reference in TCK code to class 
"TCKFileAppender"! If you prefer to drop the property above, then we 
would need to either change the enhancement build, or to add a source 
code reference to class "TCKFileAppender", e.g. in class 
"BatchTestRunner". What do you think?

> - The enhancer call defines a system property no.log.file and sets it to 
> true, meaning there is no log file by default. Should we change the 
> default to false? Would it make sense to explicitly specify the system 
> property for runtck, too? Furthermore, should we add two properties to 
> project.properties specifying the no.log.file value for runtck and the 
> enhancer call. Then the user can change this value by editing 
> project.properties or specifying a -D option, instead of changing the 
> maven.xml.
The system property "no.log.file" controls weather to generate a log 
file for TCK configuration results. It does not control weather to 
generate JDORI/IUT log files. Note, that the enhancer call loads class 
"BatchTestRunner" implictly because of dependencies from pa classes. Due 
to the fact that TCK log file creation is initiated by static 
initializer, the enhancer call would create a TCK log file in addition 
to enhancer log files. For this reason, the system property 
"no.log.file" does not implement the semantics you are envisioning. I 
agree, that a property controling weather to generate log files would 
make sence. But I doubt that we can implement that. Note, that we cannot 
hook into Derby logging initialization process.

Regards,
Michael
> 
> Regards Michael
> 
>> Hi,
>>
>> please find the attached patch implementing the logging proposal.
>>
>> After applying the patch and before running the TCK, make sure to 
>> reinstall the schema or to copy "derby.properties" to 
>> "target/database/derby". That file contains a property specifying 
>> where to write the Derby logging file. I changed the logging level in 
>> order to see SQL statements in that file.
>>
>> This is the output of "svn status" in my workspace:
>>
>> tck20>svn status
>> A      test/java/org/apache/jdo/tck/util/TCKFileAppender.java
>> M      test/java/org/apache/jdo/tck/util/BatchTestRunner.java
>> M      test/conf/logging.properties
>> M      test/conf/derby.properties
>> A      test/conf/log4j.properties
>> M      project.properties
>> M      maven.xml
>>
>> Regards,
>> Michael
>>
>> ------------------------------------------------------------------------
>>
>> Index: test/java/org/apache/jdo/tck/util/TCKFileAppender.java
>> ===================================================================
>> --- test/java/org/apache/jdo/tck/util/TCKFileAppender.java    
>> (revision 0)
>> +++ test/java/org/apache/jdo/tck/util/TCKFileAppender.java    
>> (revision 0)
>> @@ -0,0 +1,54 @@
>> +/*
>> + * Copyright 2005 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.jdo.tck.util;
>> +
>> +import java.io.IOException;
>> +
>> +import org.apache.log4j.FileAppender;
>> +import org.apache.log4j.Layout;
>> +
>> +/**
>> + *  FileAppender appends log events to a file.
>> + */
>> +public class TCKFileAppender extends FileAppender {
>> +
>> +    /**
>> +     * Delegates to super constructor.
>> +     */
>> +    public TCKFileAppender() {}
>> +    +    public TCKFileAppender(Layout layout, String filename, 
>> boolean append, +            boolean bufferedIO, int bufferSize) 
>> throws IOException {
>> +        super(layout, filename, append, bufferedIO, bufferSize);
>> +    }
>> +    +    public TCKFileAppender(Layout layout, String filename, 
>> boolean append) +        throws IOException {
>> +        super(layout, filename, append);
>> +    }
>> +    +    public TCKFileAppender(Layout layout, String filename) 
>> throws IOException {
>> +        this(layout, filename, true);
>> +    }
>> +
>> +    public synchronized void setFile(String fileName, boolean append, 
>> boolean bufferedIO, int bufferSize) +        throws IOException {
>> +        String changedFileName = 
>> BatchTestRunner.changeFileNameCreateDirectory(fileName);
>> +        super.setFile(changedFileName, append, bufferedIO, bufferSize);
>> +    }
>> +}
>> +
>>
>> Property changes on: 
>> test/java/org/apache/jdo/tck/util/TCKFileAppender.java
>> ___________________________________________________________________
>> Name: svn:executable
>>   + *
>>
>> Index: test/java/org/apache/jdo/tck/util/BatchTestRunner.java
>> ===================================================================
>> --- test/java/org/apache/jdo/tck/util/BatchTestRunner.java    
>> (revision 233318)
>> +++ test/java/org/apache/jdo/tck/util/BatchTestRunner.java    (working 
>> copy)
>> @@ -17,16 +17,13 @@
>> package org.apache.jdo.tck.util;
>>
>> import java.io.File;
>> -import java.io.FileNotFoundException;
>> import java.io.FileOutputStream;
>> import java.io.IOException;
>> import java.io.OutputStream;
>> import java.io.PrintStream;
>> import java.lang.reflect.Constructor;
>> import java.lang.reflect.InvocationTargetException;
>> -import java.text.SimpleDateFormat;
>> import java.util.Arrays;
>> -import java.util.Date;
>>
>> import junit.framework.Test;
>> import junit.framework.TestResult;
>> @@ -57,7 +54,7 @@
>>
>>     /** Redirect System.out and System.err to an ConsoleFileOutput 
>> instance. */
>>     static {
>> -        if (!Boolean.getBoolean("noLogFile")) {
>> +        if (!Boolean.getBoolean("no.log.file")) {
>>             PrintStream printStream = new PrintStream(new 
>> ConsoleFileOutput());
>>             System.setErr(printStream);
>>             System.setOut(printStream);
>> @@ -191,34 +188,17 @@
>>         private static class ConsoleFileOutput extends OutputStream {
>>
>> -        private static String outDir = "logs";
>> -        private static String fileNameSuffix = ".txt";
>> -        private static SimpleDateFormat simpleDateFormat = new 
>> SimpleDateFormat("yyyyMMdd-HHmmss");
>>         private PrintStream systemOut = System.out;
>>         private FileOutputStream fileOut;
>>                 private ConsoleFileOutput() {
>> -            String identityType =  
>> System.getProperty("jdo.tck.identitytype");
>> -            String db =  System.getProperty("jdo.tck.database");
>> -            String testConfig =  System.getProperty("jdo.tck.cfg");
>> -            if (identityType.equals("applicationidentity"))
>> -                identityType = "app";
>> -            else identityType = "dsid";
>> -            testConfig = testConfig.substring(0, 
>> testConfig.indexOf('.'));
>> -            String fileName = simpleDateFormat.format(new Date()) + "-"
>> -                              + db + "-"
>> -                              + identityType + "-"
>> -                              + testConfig
>> -                              + fileNameSuffix;
>> -            File dir = new File(outDir);
>> -            if (!dir.exists()) {
>> -                dir.mkdir();
>> -            }
>> -            +            String fileName = null;
>>             try {
>> -                fileOut = new FileOutputStream(new File(dir, fileName));
>> -            } catch (FileNotFoundException e) {
>> -                System.err.println("Cannot create log file 
>> "+fileName+". "+e);
>> +                fileName = getFileNameCreateDirectory();
>> +                this.fileOut = new FileOutputStream(fileName);
>> +            } catch (IOException e) {
>> +                if (fileName!=null)
>> +                    System.err.println("Cannot create log file 
>> "+fileName+". "+e);
>>             }
>>         }
>>         @@ -246,4 +226,85 @@
>>             this.fileOut.flush();
>>         }            }
>> +    +    public static String getFileNameCreateDirectory() throws 
>> IOException {
>> +        return changeFileNameCreateDirectory(".txt");
>> +    }
>> +    +    public static String changeFileNameCreateDirectory(String 
>> fileName) throws IOException {
>> +        String directory = 
>> getSysPropertyAsPartialFileName("jdo.tck.log.directory", 
>> File.separatorChar);
>> +        if (directory!=null) {
>> +            File dir = new File(directory);
>> +            if (!dir.exists() &&
>> +                !dir.mkdirs()) {
>> +                throw new IOException("Cannot create directory "+dir);
>> +            }
>> +        }
>> +
>> +        String db =  
>> getSysPropertyAsPartialFileName("jdo.tck.database");
>> +        +        String identityType =  
>> getSysPropertyAsPartialFileName("jdo.tck.identitytype");
>> +        if (identityType!=null) {
>> +            if (identityType.equals("applicationidentity")) {
>> +                identityType = "app";
>> +            } else { +                identityType = "dsid";
>> +            }
>> +        }
>> +        +        String configuration =  
>> getSysPropertyAsPartialFileName("jdo.tck.cfg");
>> +        if (configuration!=null) {
>> +            int index = configuration.indexOf('.');
>> +            if (index!=-1) {
>> +                configuration = configuration.substring(0, index);
>> +            }
>> +        }
>> +        +        directory = fixPartialFileName(directory);
>> +        db = fixPartialFileName(db, '-',
>> +                new String[]{identityType, configuration, fileName});
>> +        identityType = fixPartialFileName(identityType, '-',
>> +                new String[]{configuration, fileName});
>> +        configuration = fixPartialFileName(configuration, '-',
>> +                new String[]{fileName});
>> +
>> +        return directory + db + identityType + configuration + fileName;
>> +    }
>> +    +    private static String getSysPropertyAsPartialFileName(String 
>> property) {
>> +        return getSysPropertyAsPartialFileName(property, (char)0);
>> +    }
>> +    +    private static String getSysPropertyAsPartialFileName(String 
>> property, char trailingChar) {
>> +        String result = System.getProperty(property);
>> +        if (result!=null &&
>> +            trailingChar!=0) {
>> +            result += trailingChar;
>> +        }
>> +        return result;
>> +    }
>> +
>> +    private static String fixPartialFileName(String str) {
>> +        if (str==null) {
>> +            str = "";
>> +        }
>> +        return str;
>> +    }
>> +    +    private static String fixPartialFileName(String str, char c, 
>> +            String[] values) {
>> +        str = fixPartialFileName(str);
>> +        if (!str.equals("")) {
>> +            for (int i = 0; i < values.length; i++) {
>> +                String value = values[i];
>> +                if (value!=null &&
>> +                    !value.equals("") &&
>> +                    !value.startsWith(".")) {
>> +                    str += c;
>> +                    break;
>> +                }
>> +            }
>> +        }
>> +        return str;
>> +    }
>> }
>> Index: test/conf/logging.properties
>> ===================================================================
>> --- test/conf/logging.properties    (revision 233318)
>> +++ test/conf/logging.properties    (working copy)
>> @@ -41,26 +41,3 @@
>>
>> handlers = java.util.logging.ConsoleHandler
>> java.util.logging.ConsoleHandler.level = FINEST
>> -
>> -
>> -######################
>> -# JPOX logging properties
>> -######################
>> -
>> -# Define the destination and format of our logging
>> -log4j.appender.A1=org.apache.log4j.FileAppender
>> -log4j.appender.A1.File=jpox.log
>> -log4j.appender.A1.layout=org.apache.log4j.PatternLayout
>> -log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p 
>> [%c] - %m%n
>> -
>> -# JPOX Categories
>> -log4j.category.JPOX.JDO=INFO, A1
>> -log4j.category.JPOX.Cache=INFO, A1
>> -log4j.category.JPOX.MetaData=INFO, A1
>> -log4j.category.JPOX.General=DEBUG, A1
>> -log4j.category.JPOX.Utility=INFO, A1
>> -log4j.category.JPOX.Transaction=INFO, A1
>> -log4j.category.JPOX.RDBMS=DEBUG, A1
>> -
>> -log4j.category.JPOX.Enhancer=INFO, A1
>> -log4j.category.JPOX.SchemaTool=INFO, A1
>> Index: test/conf/derby.properties
>> ===================================================================
>> --- test/conf/derby.properties    (revision 233318)
>> +++ test/conf/derby.properties    (working copy)
>> @@ -1,2 +1,46 @@
>> -# This flag must be set on Mac OSX
>> -#derby.storage.fileSyncTransactionLog=true
>> +# This flag must be set on Mac OSX
>> +#derby.storage.fileSyncTransactionLog=true
>> +
>> +#When this property is set to true, Derby writes the query plan 
>> information +#into the derby.log file for all executed queries.
>> +#Default: false
>> +#derby.language.logQueryPlan=true
>> +
>> +#When this property is set to true, Derby writes the text and 
>> parameter values +#of all executed statements to the information log 
>> at the beginning of +#execution. It also writes information about 
>> commits and rollbacks. +#Information includes the time and thread number.
>> +#Default: false
>> +derby.language.logStatementText=true
>> +
>> +#Specifies name of the file to which the error log is written. +#If 
>> the file name is relative, it is taken as relative to the system 
>> directory.
>> +#If this property is set, the derby.stream.error.method and 
>> +#derby.stream.error.field properties are ignored.
>> +#Default: derby.log
>> +derby.stream.error.file=../../logs/database/derby.log
>> +
>> +#Specifies which errors are logged to the Derby error log 
>> +#(typically the derby.log file). In test environments, use the 
>> setting +#derby.stream.error.logSeverityLevel=0 so that all problems 
>> are reported.
>> +#Any error raised in a Derby system is given a level of severity. 
>> +#This property indicates the minimum severity necessary for an error 
>> to appear +#in the error log. The severities are defined in the class 
>> +#org.apache.derby.types.ExceptionSeverity. +#The higher the number, 
>> the more severe the error.
>> +#20000: Errors that cause the statement to be rolled back, +#for 
>> example syntax errors and constraint violations.
>> +#30000: Errors that cause the transaction to be rolled back, +#for 
>> example deadlocks.
>> +#40000: Errors that cause the connection to be closed.
>> +#50000: Errors that shut down the Derby system.
>> +#Default: 40000
>> +#derby.stream.error.logSeverityLevel=0
>> +
>> +#Specifies whether to append to or destroy and re-create the 
>> derby.log file, +#which is used to record error and other information 
>> +#when Derby starts up in a JVM.
>> +#You can set this property even if the file does not yet exist; 
>> +#Derby creates the file.
>> +#Default: false
>> +derby.infolog.append=true
>> Index: test/conf/log4j.properties
>> ===================================================================
>> --- test/conf/log4j.properties    (revision 0)
>> +++ test/conf/log4j.properties    (revision 0)
>> @@ -0,0 +1,40 @@
>> +#
>> +# Copyright 2005 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.
>> +
>> +###########################
>> +# JPOX logging properties #
>> +###########################
>> +
>> +# JPOX appenders
>> +log4j.appender.JPOX=org.apache.jdo.tck.util.TCKFileAppender
>> +log4j.appender.JPOX.File=jpox.txt
>> +log4j.appender.JPOX.layout=org.apache.log4j.PatternLayout
>> +log4j.appender.JPOX.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) 
>> %-5p [%c] - %m%n
>> +
>> +# JPOX loggers
>> +log4j.logger.JPOX=INFO, JPOX
>> +#log4j.logger.JPOX.JDO=INFO, JPOX
>> +#log4j.logger.JPOX.Cache=INFO, JPOX
>> +#log4j.logger.JPOX.MetaData=INFO, JPOX
>> +#log4j.logger.JPOX.General=DEBUG, JPOX
>> +#log4j.logger.JPOX.Utility=INFO, JPOX
>> +#log4j.logger.JPOX.Transaction=INFO, JPOX
>> +#log4j.logger.JPOX.RDBMS=INFO, JPOX
>> +
>> +log4j.logger.JPOX.Enhancer=INFO, JPOX
>> +log4j.logger.JPOX.SchemaTool=INFO, JPOX
>> +
>> +# C3P0 loggers
>> +log4j.logger.com.mchange.v2=INFO, JPOX
>>
>> Property changes on: test/conf/log4j.properties
>> ___________________________________________________________________
>> Name: svn:executable
>>   + *
>>
>> Index: project.properties
>> ===================================================================
>> --- project.properties    (revision 233318)
>> +++ project.properties    (working copy)
>> @@ -21,7 +21,7 @@
>>
>> # iut properties file
>> iut.runtck.properties = iut.properties
>> -iut.runtck.sysproperties = 
>> -Dderby.system.home=${jdo.tck.testdir}/database/${jdo.tck.database} 
>> -Dlog4j.configuration=file:${basedir}/test/conf/logging.properties
>> +iut.runtck.sysproperties = 
>> -Dderby.system.home=${jdo.tck.testdir}/database/${jdo.tck.database}
>>
>> # Flags indicating whether IUT supports application/datastore identity 
>> iut.applicationidentity.supported = yes
>> @@ -32,7 +32,7 @@
>> iut.enhancer.main = ${jdo.enhancer.main}
>> iut.enhancer.options = -v -d "${iut.enhanced.dir}"
>> iut.enhancer.args = ${jdo.tck.jdometadata.files}
>> -iut.enhancer.sysproperties = 
>> -Dlog4j.configuration=file:${basedir}/test/conf/logging.properties
>> +iut.enhancer.sysproperties =
>> iut.enhancer.sourcepath = 
>> ${jdo.tck.testclasses.dir}${path.separator}${jdo.jdoapi.jarfile}${path.separator}${junit.jarfile}${path.separator}${log4j.jarfile}

>>
>> iut.enhancer.classpath = 
>> ${jpox.enhancer.jarfile}${path.separator}${jpox.jdori.jarfile}${path.separator}${jdo.jdoapi.jarfile}${path.separator}${log4j.jarfile}${path.separator}${bcel.jarfile}${path.separator}${jdo.tck.testclasses.dir}

>>
>>
>> @@ -49,7 +49,10 @@
>> jdo.tck.testclasses.dir = ${maven.build.dir}/classes
>> jdo.tck.testdir = ${maven.build.dir}
>> jdo.tck.resultprinterclass = org.apache.jdo.tck.util.BatchResultPrinter
>> -database.runtck.sysproperties = 
>> -Dderby.system.home=${jdo.tck.testdir}/database/${jdo.tck.database} 
>> -Dlog4j.configuration=file:${basedir}/test/conf/logging.properties
>> +jdo.tck.log.directory = logs
>> +jdo.tck.log.directory.database = 
>> ${maven.build.dir}/${jdo.tck.log.directory}/database
>> +jdo.tck.log.directory.enhancer = 
>> ${maven.build.dir}/${jdo.tck.log.directory}/enhancer
>> +database.runtck.sysproperties = 
>> -Dderby.system.home=${jdo.tck.testdir}/database/${jdo.tck.database}
>> jdo.runtck.sysproperties = -Xmx512m
>>
>> # dependencies
>> @@ -307,6 +310,9 @@
>>     
>> org/apache/jdo/tck/api/instancecallbacks/NoAccessToFieldsAfterPredelete.class 
>> \
>>     org/apache/jdo/tck/api/instancecallbacks/TestParts.class
>>
>> +jdo.tck.util.enhancer.sources = \
>> +    org/apache/jdo/tck/util/TCKFileAppender.java
>> +    jdo.tck.jdometadata.files = \
>>     org/apache/jdo/tck/pc/company/package.jdo \
>>     org/apache/jdo/tck/pc/fieldtypes/AllTypes.jdo \
>> Index: maven.xml
>> ===================================================================
>> --- maven.xml    (revision 233318)
>> +++ maven.xml    (working copy)
>> @@ -142,6 +142,7 @@
>>     </goal>
>>
>>     <goal name="privateInstallSchema">
>> +        <mkdir dir="${jdo.tck.log.directory.database}"/>
>>         <!-- load mappings into a HashSet to unique them -->
>>         <j:new var="uniqueMappings" className="java.util.HashSet"/>
>>         <j:forEach var="cfg" items="${jdo.tck.cfglist}">
>> @@ -197,12 +198,16 @@
>>     <!-- ================== -->
>>
>>     <goal name="runtck.iut" prereqs="setProps">
>> +        <mkdir dir="${jdo.tck.log.directory.database}"/>
>>         <attainGoal name="privateRuntck.iut"/>
>>     </goal>
>>
>>     <goal name="privateRuntck.iut"
>>           prereqs="java:compile, testrunner.set, copyprops, 
>> doEnhance.iut, package.iut">
>>         <!-- Run tests for all databases, identity types, and 
>> configurations -->
>> +        <tstamp>
>> +            <format property="timestamp" pattern="yyyyMMdd-HHmmss"/>
>> +        </tstamp>
>>         <echo>Run all configurations on iut</echo>
>>         <j:forEach var="jdo.tck.database" items="${jdo.tck.dblist}">
>>             <j:forEach var="jdo.tck.identitytype" 
>> items="${jdo.tck.identitytypes}">
>> @@ -228,12 +233,16 @@
>>     </goal>
>>
>>     <goal name="runtck.jdori" prereqs="setProps">
>> +        <mkdir dir="${jdo.tck.log.directory.database}"/>
>>         <attainGoal name="privateRuntck.jdori"/>
>>     </goal>
>>
>>     <goal name="privateRuntck.jdori"
>>           prereqs="java:compile, testrunner.set, copyprops, 
>> doEnhance.jdori, package.jdori">
>>         <!-- Run tests for all databases, identity types, and 
>> configurations -->
>> +        <tstamp>
>> +            <format property="timestamp" pattern="yyyyMMdd-HHmmss"/>
>> +        </tstamp>
>>         <echo>Run all configurations on jdori</echo>
>>         <j:forEach var="jdo.tck.database" items="${jdo.tck.dblist}">
>>             <j:forEach var="jdo.tck.identitytype" 
>> items="${jdo.tck.identitytypes}">
>> @@ -296,6 +305,8 @@
>>                          value="${jdo.tck.cfg}"/>
>>             <sysproperty key="jdo.tck.exclude"
>>                          value="${jdo.tck.exclude}"/>
>> +            <sysproperty key="jdo.tck.log.directory"
>> +                         value="${jdo.tck.log.directory}/${timestamp}"/>
>>             <jvmarg line="${database.runtck.sysproperties}"/>
>>             <jvmarg line="${iut.runtck.sysproperties}"/>
>>             <arg line="${jdo.tck.classes}"/>
>> @@ -341,6 +352,8 @@
>>                          value="${jdo.tck.cfg}"/>
>>             <sysproperty key="jdo.tck.exclude"
>>                          value="${jdo.tck.exclude}"/>
>> +            <sysproperty key="jdo.tck.log.directory"
>> +                         value="${jdo.tck.log.directory}/${timestamp}"/>
>>             <jvmarg line="${database.runtck.sysproperties}"/>
>>             <jvmarg line="${jdo.runtck.sysproperties}"/>
>>             <arg line="${jdo.tck.classes}"/>
>> @@ -381,10 +394,17 @@
>>         <copy todir="${jdo.tck.enhanced.dir}/${jdo.tck.identitytype}">
>>             <fileset dir="${basedir}/test/jdo/${jdo.tck.identitytype}"
>>                      includes="**/*.jdo, **/jdoTest.properties"/>
>> +            <fileset dir="${basedir}/test/conf">
>> +               <include name="commons-logging.properties"/>
>> +               <include name="simplelog.properties"/>
>> +               <include name="logging.properties"/>
>> +               <include name="log4j.properties"/>
>> +            </fileset>
>>         </copy>
>>         <!-- compile pc and pa classes -->
>>         <javac srcdir="${basedir}/test/java"
>> -           includes="${jdo.tck.pcclasses.sources} 
>> ${jdo.tck.paclasses.sources}"
>> +           includes="${jdo.tck.pcclasses.sources} 
>> ${jdo.tck.paclasses.sources}
>> +                     ${jdo.tck.util.enhancer.sources}"
>>            destdir="${jdo.tck.enhanced.dir}/${jdo.tck.identitytype}"
>>            debug="on"
>>            classpathref="project.class.path">
>> @@ -410,6 +430,12 @@
>>                       
>> dir="${jdo.tck.enhanced.dir}/${jdo.tck.identitytype}"
>>                       classname="${iut.enhancer.main}"
>>                       classpathref="this.enhance.class.path">
>> +                     <sysproperty key="jdo.tck.identitytype"
>> +                                  value="${jdo.tck.identitytype}"/>
>> +                     <sysproperty key="jdo.tck.log.directory"
>> +                                  
>> value="${jdo.tck.log.directory.enhancer}"/>
>> +                     <sysproperty key="no.log.file"
>> +                                  value="true"/>
>>                      <jvmarg line="${iut.enhancer.sysproperties}"/>
>>                      <arg line="${iut.enhancer.options}"/>
>>                      <arg line="${iut.enhancer.args}"/>
>> @@ -432,6 +458,12 @@
>>                       
>> dir="${jdo.tck.enhanced.dir}/${jdo.tck.identitytype}"
>>                       classname="${jdo.enhancer.main}"
>>                       classpathref="this.enhance.class.path">
>> +                     <sysproperty key="jdo.tck.identitytype"
>> +                                  value="${jdo.tck.identitytype}"/>
>> +                     <sysproperty key="jdo.tck.log.directory"
>> +                                  
>> value="${jdo.tck.log.directory.enhancer}"/>
>> +                     <sysproperty key="no.log.file"
>> +                                  value="true"/>
>>                      <jvmarg line="${jdo.enhancer.sysproperties}"/>
>>                      <arg line="${jdo.enhancer.options}"/>
>>                      <arg line="${jdo.enhancer.args}"/>
>> @@ -577,6 +609,7 @@
>>                <include name="commons-logging.properties"/>
>>                <include name="simplelog.properties"/>
>>                <include name="logging.properties"/>
>> +               <include name="log4j.properties"/>
>>                <include name="jndi.properties"/>
>>             </fileset>
>>             <fileset dir="${basedir}/test/java">
>>  
>>
> 
> 


-- 
-------------------------------------------------------------------
Michael Watzek                  Tech@Spree Engineering GmbH
mailto:mwa.tech@spree.de        Buelowstr. 66
Tel.:  ++49/30/235 520 36       10783 Berlin - Germany
Fax.:  ++49/30/217 520 12       http://www.spree.de/
-------------------------------------------------------------------

Mime
View raw message