Hi Craig, On Tue, Mar 9, 2010 at 12:21 AM, Craig L Russell <[email protected]>wrote:
> > Any ideas why adding properties to the command line or persistence.xml > doesn't take effect for tests, but adding the properties to setup does work? > Nothing other than some ol' fashioned debugging... :-) As the OpenJPA manual section [1] pointed out, any properties sent in via a Map when creating the EMF/EM will override any previous settings, including the persistence.xml. So, at least that explains why calling setup() with properties is picking up the settings like you requested. Maybe there's something in the testcase setup processing that is deleting or overriding any previously set properties (in order to make the tests repeatable). Or, maybe there's a bug in the way that the Map is processed and it's accidentally overriding properties that are not meant to be overridden. This might just take some debugging to figure out why this isn't working as expected. Kevin [1] http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_conf_specify On Tue, Mar 9, 2010 at 12:21 AM, Craig L Russell <[email protected]>wrote: > Hi Kevin, > > I did a little more experimentation. There are two persistence units in the > persistence.xml: xml-persistence-unit and test. > > I can override the settings of the xml-persistence-unit on the command > line. > > So the settings for File, DefaultLevel, Tool, Enhance, MetaData are all > getting set properly for enhancement. > > But the log settings I put into the persistence unit test are not taking > effect properly. To verify that I'm using the right persistence unit, I > deliberately caused an error and the error was reported. > > But even with setting openjpa.Log in the persistence unit, I still get > console logging: > > Running org.apache.openjpa.persistence.identity.TestSQLBigIntegerId > TestSQLBigIntegerId 1268089380000 > 543 test INFO [main] openjpa.Runtime - Starting OpenJPA 1.3.0-SNAPSHOT > 5763 test INFO [main] openjpa.jdbc.JDBC - Using dictionary class > "org.apache.openjpa.jdbc.sql.MySQLDictionary" (MySQL > 5.1.41-ndb-7.1.2-beta-debug ,MySQL-AB JDBC Driver > mysql-connector-java-5.1.12 ( Revision: ${bzr.revision-id} )). > Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 10.698 sec > > I modified a test case to put the logging information into the setup string > and this changed the behavior of the logger. > > public void setUp() { > setUp(SQLBigIntegerIdEntity.class > , "openjpa.Log", > "File=openjpaLogger.log,DefaultLevel=INFO,SQL=TRACE,JDBC=TRACE" > ); > } > > Any ideas why adding properties to the command line or persistence.xml > doesn't take effect for tests, but adding the properties to setup does work? > > Thanks, > > Craig > > > On Mar 8, 2010, at 2:25 PM, Kevin Sutter wrote: > > Hi Craig, >> We have found exceptions to the rules, but the order of property >> configuration is documented in this section [1] of the manual. Based on >> what you have provided, my guess is that some of your persistence.xml >> file(s) are overriding the system properties you are trying to set. >> >> I don't personally use the system properties, but I would guess you need >> to >> enclose the values in quotes. So, I would try that for setting the >> openjpa.Log property. >> >> Good luck! >> Kevin >> >> [1] >> >> http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_conf_specify >> >> On Mon, Mar 8, 2010 at 2:24 PM, Craig L Russell <[email protected] >> >wrote: >> >> Hi, >>> >>> I'm trying to do a few simple things with logging, and having trouble. >>> >>> 1. Disable WARN messages from the enhancer. >>> >>> 2. Get SQL TRACE messages. >>> >>> I've tried unsuccessfully to get either of these to work. I'm using the >>> standard OpenJPA logging, and get a few hundred messages out of the >>> enhancer, so I know logging is basically working. >>> >>> Reading everything I can about the logging system, I tried to get the >>> enhancer to stop logging WARN but only log ERROR: >>> >>> -Dopenjpa.Log=none >>> >>> I still get WARN messages; don't get any errors from the logging system; >>> it >>> looks like the enhancer is just ignoring this setting >>> >>> -Dopenjpa.Log=SQL=TRACE,File=openjpaLogger.log >>> >>> I get output sent to openjpaLogger.log file as expected, but nothing of >>> interest. Just: >>> >>> 11 TRACE [main] openjpa.Runtime - Default configuration information >>> couldn't be loaded from any configuration provider.0 TRACE [main] >>> openjpa.Runtime - Default configuration information couldn't be loaded >>> from >>> any configuration provider. >>> 17 WARN [main] openjpa.Runtime - The configuration property named >>> "openjpa.LogLevel" was not recognized and will be ignored, although the >>> name >>> closely matches a valid property called "openjpa.Log". >>> 17 TRACE [main] openjpa.Runtime - Default configuration information >>> couldn't be loaded from any configuration provider. >>> 2 WARN [main] openjpa.Runtime - The configuration property named >>> "openjpa.LogLevel" was not recognized and will be ignored, although the >>> name >>> closely matches a valid property called "openjpa.Log". >>> 2 TRACE [main] openjpa.Runtime - Default configuration information >>> couldn't be loaded from any configuration provider. >>> 10 TRACE [main] openjpa.Runtime - Default configuration information >>> couldn't be loaded from any configuration provider. >>> >>> And where did it get the LogLevel? I didn't set this property! >>> >>> Can anyone point me in the right direction? Is the -Dopenjpa.Log useful >>> for >>> anything or do I have to use persistence.xml properties (I haven't tried >>> this since there are hundreds of persistence.xml files that I would need >>> to >>> fiddle). >>> >>> Thanks, >>> >>> Craig >>> >>> Craig L Russell >>> Architect, Sun Java Enterprise System http://db.apache.org/jdo >>> 408 276-5638 mailto:[email protected] >>> P.S. A good JDO? O, Gasp! >>> >>> >>> > Craig L Russell > Architect, Sun Java Enterprise System http://db.apache.org/jdo > 408 276-5638 mailto:[email protected] > P.S. A good JDO? O, Gasp! > >
