You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pc...@apache.org on 2006/07/18 20:11:00 UTC

svn commit: r423162 - in /incubator/openjpa/trunk: openjpa-kernel-5/ openjpa-kernel/ openjpa-kernel/src/main/resources/org/apache/openjpa/conf/ openjpa-lib/ openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ openjpa-lib/src/test/java/org/apache/ope...

Author: pcl
Date: Tue Jul 18 11:10:59 2006
New Revision: 423162

URL: http://svn.apache.org/viewvc?rev=423162&view=rev
Log:
basic logic for converting simple JavaNames to xml-names; added some localization information about forgotten properties; removed spurious memory status printout from base test class; added 'target' to the svn:ignore for all the top-level maven dirs

Added:
    incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestXMLCaseConversions.java   (with props)
Modified:
    incubator/openjpa/trunk/openjpa-kernel/   (props changed)
    incubator/openjpa/trunk/openjpa-kernel-5/   (props changed)
    incubator/openjpa/trunk/openjpa-kernel/src/main/resources/org/apache/openjpa/conf/localizer.properties
    incubator/openjpa/trunk/openjpa-lib/   (props changed)
    incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configuration.java
    incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java
    incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/test/AbstractTestCase.java
    incubator/openjpa/trunk/openjpa-persistence/   (props changed)
    incubator/openjpa/trunk/openjpa-xmlstore/   (props changed)

Propchange: incubator/openjpa/trunk/openjpa-kernel/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Jul 18 11:10:59 2006
@@ -0,0 +1,2 @@
+
+target

Propchange: incubator/openjpa/trunk/openjpa-kernel-5/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Jul 18 11:10:59 2006
@@ -0,0 +1,2 @@
+
+target

Modified: incubator/openjpa/trunk/openjpa-kernel/src/main/resources/org/apache/openjpa/conf/localizer.properties
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/resources/org/apache/openjpa/conf/localizer.properties?rev=423162&r1=423161&r2=423162&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-kernel/src/main/resources/org/apache/openjpa/conf/localizer.properties (original)
+++ incubator/openjpa/trunk/openjpa-kernel/src/main/resources/org/apache/openjpa/conf/localizer.properties Tue Jul 18 11:10:59 2006
@@ -33,6 +33,14 @@
 DataCache-expert: true
 DataCache-interface: org.apache.openjpa.datacache.DataCache
 
+DataCacheManager-name: Data cache
+DataCacheManager-desc: Plugin used to manage configuration''s cache instances.
+DataCacheManager-type: General
+DataCacheManager-cat: Cache
+DataCacheManager-displayorder: 50
+DataCacheManager-expert: true
+DataCacheManager-interface: org.apache.openjpa.datacache.DataCacheManager
+
 DataCacheTimeout-name: Default data cache timeout
 DataCacheTimeout-desc: The number of milliseconds that data in the data cache \
 	is valid for. A value of 0 or less means that by default, cached data does \
@@ -235,6 +243,7 @@
 Connection2UserName-cat: Connecting.XA
 Connection2UserName-displayorder: 50
 Connection2UserName-expert: true
+
 
 Connection2Password-name: Unmanaged connection password
 Connection2Password-desc: The password for the user specified in \

Propchange: incubator/openjpa/trunk/openjpa-lib/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Jul 18 11:10:59 2006
@@ -0,0 +1,2 @@
+
+target

Modified: incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configuration.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configuration.java?rev=423162&r1=423161&r2=423162&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configuration.java (original)
+++ incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/Configuration.java Tue Jul 18 11:10:59 2006
@@ -67,6 +67,12 @@
     public static final String ATTRIBUTE_INTERFACE = "propertyInterface";
 
     /**
+     * Attribute of the returned {@link Value} property descriptors naming
+     * the property's name in XML format (i.e. two-words instead of TwoWords).
+     */
+    public static final String ATTRIBUTE_XML = "xmlName";
+    
+    /**
      * Return the product name. Defaults to <code>solarmetric</code>.
      */
     public String getProductName();

Modified: incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java?rev=423162&r1=423161&r2=423162&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java (original)
+++ incubator/openjpa/trunk/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java Tue Jul 18 11:10:59 2006
@@ -131,7 +131,7 @@
      */
     public ConfigurationImpl(boolean loadDefaults) {
         _prefixes.add("openjpa");
-        
+
         logFactoryPlugin = addPlugin("Log", true);
         String[] aliases = new String[]{
             "true", "org.apache.openjpa.lib.log.LogFactoryImpl",
@@ -456,6 +456,8 @@
         String cat = findLocalized(prop + "-cat", false, val.getScope());
         if (cat != null)
             pd.setValue(ATTRIBUTE_CATEGORY, cat);
+        
+        pd.setValue(ATTRIBUTE_XML, toXMLName(prop));
 
         String order = findLocalized(prop + "-displayorder", false,
             val.getScope());
@@ -762,6 +764,44 @@
         return toProperties(false).hashCode();
     }
 
+    /**
+     * Convert <code>propName</code> to a lowercase-with-hyphens-style string.
+     * This algorithm is only designed for mixes of uppercase and lowercase 
+     * letters and lone digits. A more sophisticated conversion should probably 
+     * be handled by a proper parser generator or regular expressions.
+     */
+    static String toXMLName(String propName) {
+        if (propName == null)
+            return null;
+        StringBuffer buf = new StringBuffer();
+        char c;
+        for (int i = 0; i < propName.length(); i++) {
+            c = propName.charAt(i);
+
+            // convert sequences of all-caps to downcase with dashes around 
+            // them. put a trailing cap that is followed by downcase into the
+            // downcase word.
+            if (i != 0 && Character.isUpperCase(c) 
+                && (Character.isLowerCase(propName.charAt(i-1))
+                    || (i > 1 && i < propName.length() - 1
+                        && Character.isUpperCase(propName.charAt(i-1)) 
+                        && Character.isLowerCase(propName.charAt(i+1)))))
+                buf.append('-');
+            
+            // surround sequences of digits with dashes.
+            if (i != 0
+                && ((!Character.isLetter(c) && Character.isLetter(propName
+                    .charAt(i - 1))) 
+                    || 
+                    (Character.isLetter(c) && !Character.isLetter(propName
+                        .charAt(i - 1)))))
+                buf.append('-');
+            
+            buf.append(Character.toLowerCase(c));
+        }
+        return buf.toString();
+    }
+    
     /**
      * Implementation of the {@link Externalizable} interface to read from
      * the properties written by {@link #writeExternal}.

Added: incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestXMLCaseConversions.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestXMLCaseConversions.java?rev=423162&view=auto
==============================================================================
--- incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestXMLCaseConversions.java (added)
+++ incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestXMLCaseConversions.java Tue Jul 18 11:10:59 2006
@@ -0,0 +1,45 @@
+package org.apache.openjpa.lib.conf;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+
+public class TestXMLCaseConversions extends TestCase {
+
+    public void testToXMLName() {
+        assertEquals("easy-xml-conversion", 
+            ConfigurationImpl.toXMLName("easyXmlConversion"));
+        assertEquals("initial-caps", 
+            ConfigurationImpl.toXMLName("InitialCaps"));
+        assertEquals("nodash", 
+            ConfigurationImpl.toXMLName("nodash"));
+        assertEquals("anothernodash", 
+            ConfigurationImpl.toXMLName("Anothernodash"));
+        assertEquals("multiple-caps", 
+            ConfigurationImpl.toXMLName("MUltipleCaps"));
+        assertEquals("trailing-multi-caps", 
+            ConfigurationImpl.toXMLName("TrailingMultiCAPS"));
+        assertEquals("two-i-nner-caps", 
+            ConfigurationImpl.toXMLName("TwoINnerCaps"));
+        assertEquals("four-inn-er-caps", 
+            ConfigurationImpl.toXMLName("FourINNErCaps"));
+        assertEquals("inner-3-number", 
+            ConfigurationImpl.toXMLName("Inner3Number"));
+        assertEquals("inner-03-number", 
+            ConfigurationImpl.toXMLName("Inner03Number"));
+    }
+    
+    public static void main(String[] args) throws IOException {
+        BufferedReader r = new BufferedReader (new FileReader(new File(args[0])));
+        while (true) {
+            String s = r.readLine();
+            if (s == null)
+                break;
+            System.out.println(s + ": " + ConfigurationImpl.toXMLName(s));
+        }
+    }
+}

Propchange: incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestXMLCaseConversions.java
------------------------------------------------------------------------------
    svn:executable = *

Modified: incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/test/AbstractTestCase.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/test/AbstractTestCase.java?rev=423162&r1=423161&r2=423162&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/test/AbstractTestCase.java (original)
+++ incubator/openjpa/trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/test/AbstractTestCase.java Tue Jul 18 11:10:59 2006
@@ -218,7 +218,7 @@
     }
 
     public void tearDown() throws Exception {
-        if ("true".equals(System.getProperty("meminfo", "true")))
+        if ("true".equals(System.getProperty("meminfo")))
             printMemoryInfo();
 
         super.tearDown();

Propchange: incubator/openjpa/trunk/openjpa-persistence/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Jul 18 11:10:59 2006
@@ -0,0 +1,2 @@
+
+target

Propchange: incubator/openjpa/trunk/openjpa-xmlstore/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Jul 18 11:10:59 2006
@@ -0,0 +1,2 @@
+
+target