You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2012/02/23 11:13:26 UTC

svn commit: r1292731 [2/2] - in /directory/jdbm/trunk: ./ jdbm2/ jdbm2/src/main/java/jdbm/ jdbm2/src/main/java/jdbm/btree/ jdbm2/src/main/java/jdbm/helper/ jdbm2/src/main/java/jdbm/htree/ jdbm2/src/main/java/jdbm/recman/ jdbm2/src/main/resources/ jdbm2...

Modified: directory/jdbm/trunk/jdbm2/src/main/java/jdbm/recman/SnapshotRecordManager.java
URL: http://svn.apache.org/viewvc/directory/jdbm/trunk/jdbm2/src/main/java/jdbm/recman/SnapshotRecordManager.java?rev=1292731&r1=1292561&r2=1292731&view=diff
==============================================================================
--- directory/jdbm/trunk/jdbm2/src/main/java/jdbm/recman/SnapshotRecordManager.java (original)
+++ directory/jdbm/trunk/jdbm2/src/main/java/jdbm/recman/SnapshotRecordManager.java Thu Feb 23 10:13:25 2012
@@ -6,16 +6,16 @@
  *  to you 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. 
- *  
+ *  under the License.
+ * 
  */
 package jdbm.recman;
 
@@ -33,7 +33,7 @@ import jdbm.helper.EntryIO;
 import jdbm.helper.LRUCache;
 import jdbm.helper.Serializer;
 
-import org.apache.directory.server.i18n.I18n;
+import jdbm.I18n;
 
 
 /**
@@ -48,10 +48,10 @@ public class SnapshotRecordManager imple
     protected RecordManager recordManager;
     
     /** Per thread action context */
-    private static final ThreadLocal < ActionContext > actionContextVar = 
-         new ThreadLocal < ActionContext > () 
+    private static final ThreadLocal < ActionContext > actionContextVar =
+         new ThreadLocal < ActionContext > ()
          {
-             @Override 
+             @Override
              protected ActionContext initialValue()
              {
                  return null;
@@ -77,7 +77,7 @@ public class SnapshotRecordManager imple
      */
     public SnapshotRecordManager( RecordManager recordManager, int size)
     {
-        if ( recordManager == null ) 
+        if ( recordManager == null )
         {
             throw new IllegalArgumentException( I18n.err( I18n.ERR_517 ) );
         }
@@ -90,7 +90,7 @@ public class SnapshotRecordManager imple
     
     /**
      * {@inheritDoc}
-     */     
+     */
      public ActionContext beginAction( boolean readOnly , String whoStarted )
      {
          ActionContext actionContext = new ActionContext();
@@ -137,7 +137,7 @@ public class SnapshotRecordManager imple
          
          if ( actionContext != context )
          {
-             throw new IllegalStateException( "Trying to end action context not set in the thread context variable" + context + 
+             throw new IllegalStateException( "Trying to end action context not set in the thread context variable" + context +
                      " " + actionContext );
          }
 
@@ -154,7 +154,7 @@ public class SnapshotRecordManager imple
          
          if ( actionContext.isReadOnlyAction() )
          {
-             ActionVersioning.Version version = actionContext.getVersion(); 
+             ActionVersioning.Version version = actionContext.getVersion();
              minVersion = versioning.endReadAction( version );
              actionContext.endAction();
          }
@@ -187,7 +187,7 @@ public class SnapshotRecordManager imple
          
          if ( actionContext.isReadOnlyAction() )
          {
-             ActionVersioning.Version version = actionContext.getVersion(); 
+             ActionVersioning.Version version = actionContext.getVersion();
              minVersion = versioning.endReadAction( version );
              actionContext.endAction();
          }
@@ -198,7 +198,7 @@ public class SnapshotRecordManager imple
               *  so that the readers wont see the effect of the aborted
               *  txn. The sensible thing to do would be to have the underling
               *  record manager expose a abort action interface. When that lacks.
-              *  the right thing for the upper layer to do would is to rollback whatever 
+              *  the right thing for the upper layer to do would is to rollback whatever
               *  is part of what JDBM calls a txn.
               */
              
@@ -273,7 +273,7 @@ public class SnapshotRecordManager imple
             
             versionedCache.put( Long.valueOf( recid ), obj, actionContext.getVersion().getVersion(),
                 serializer, false );
-        } 
+        }
         catch ( IOException e )
         {
             if ( startedAction )
@@ -284,7 +284,7 @@ public class SnapshotRecordManager imple
             
             throw e;
         }
-        catch ( CacheEvictionException except ) 
+        catch ( CacheEvictionException except )
         {
             if ( startedAction )
             {
@@ -293,7 +293,7 @@ public class SnapshotRecordManager imple
             }
             
             throw new IOException( except.getLocalizedMessage() );
-        }       
+        }
         finally
         {
             if ( startedAction && !abortedAction )
@@ -327,7 +327,7 @@ public class SnapshotRecordManager imple
         }
         
         // Update the cache
-        try 
+        try
         {
             versionedCache.put( Long.valueOf( recid ), null, actionContext.getVersion().getVersion(),
                 null, false );
@@ -342,7 +342,7 @@ public class SnapshotRecordManager imple
             
             throw e;
         }
-        catch ( CacheEvictionException except ) 
+        catch ( CacheEvictionException except )
         {
             if ( startedAction )
             {
@@ -396,10 +396,10 @@ public class SnapshotRecordManager imple
             startedAction = true;
         }
 
-        try 
+        try
         {
            versionedCache.put( Long.valueOf( recid ), obj, actionContext.getVersion().getVersion(),
-               serializer, recid < 0 );       
+               serializer, recid < 0 );
         }
         catch ( IOException e )
         {
@@ -411,7 +411,7 @@ public class SnapshotRecordManager imple
             
             throw e;
         }
-        catch ( CacheEvictionException except ) 
+        catch ( CacheEvictionException except )
         {
             if ( startedAction )
             {
@@ -420,7 +420,7 @@ public class SnapshotRecordManager imple
             }
             
             throw new IOException( except.getLocalizedMessage() );
-        }       
+        }
         finally
         {
             if ( startedAction && !abortedAction )
@@ -467,11 +467,11 @@ public class SnapshotRecordManager imple
             startedAction = true;
         }
         
-        try 
+        try
         {
            obj = versionedCache.get( Long.valueOf( recid ), actionContext.getVersion().getVersion(),
                serializer, recid < 0 );
-        } 
+        }
         catch ( IOException e )
         {
             if ( startedAction )
@@ -654,7 +654,7 @@ public class SnapshotRecordManager imple
      */
     private void checkIfClosed() throws IllegalStateException
     {
-        if ( recordManager == null ) 
+        if ( recordManager == null )
         {
             throw new IllegalStateException( I18n.err( I18n.ERR_538 ) );
         }

Modified: directory/jdbm/trunk/jdbm2/src/main/java/jdbm/recman/TransactionManager.java
URL: http://svn.apache.org/viewvc/directory/jdbm/trunk/jdbm2/src/main/java/jdbm/recman/TransactionManager.java?rev=1292731&r1=1292561&r2=1292731&view=diff
==============================================================================
--- directory/jdbm/trunk/jdbm2/src/main/java/jdbm/recman/TransactionManager.java (original)
+++ directory/jdbm/trunk/jdbm2/src/main/java/jdbm/recman/TransactionManager.java Thu Feb 23 10:13:25 2012
@@ -47,10 +47,19 @@
 
 package jdbm.recman;
 
-import java.io.*;
-import java.util.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.List;
+import java.util.TreeSet;
 
-import org.apache.directory.server.i18n.I18n;
+import jdbm.I18n;
 
 /**
  *  This class manages the transaction log that belongs to every
@@ -72,13 +81,13 @@ public final class TransactionManager {
     private FileOutputStream fos;
     private ObjectOutputStream oos;
 
-    /** 
+    /**
      * By default, we keep 10 transactions in the log file before
      * synchronizing it with the main database file.
      */
     static final int DEFAULT_TXNS_IN_LOG = 10;
 
-    /** 
+    /**
      * Maximum number of transactions before the log file is
      * synchronized with the main database file.
      */
@@ -90,7 +99,7 @@ public final class TransactionManager {
      * core anyway, so we might as well point to them and spare us a lot
      * of hassle.
      */
-    private ArrayList[] txns = new ArrayList[DEFAULT_TXNS_IN_LOG];
+    private List<BlockIo>[] txns = new ArrayList[DEFAULT_TXNS_IN_LOG];
     private int curTxn = -1;
 
     /** Extension of a log file. */
@@ -102,7 +111,8 @@ public final class TransactionManager {
      *
      *  @param owner the RecordFile instance that owns this transaction mgr.
      */
-    TransactionManager(RecordFile owner) throws IOException {
+    TransactionManager(RecordFile owner) throws IOException
+    {
         this.owner = owner;
         recover();
         open();
@@ -112,12 +122,11 @@ public final class TransactionManager {
     /**
      * Synchronize log file data with the main database file.
      * <p>
-     * After this call, the main database file is guaranteed to be 
-     * consistent and guaranteed to be the only file needed for 
+     * After this call, the main database file is guaranteed to be
+     * consistent and guaranteed to be the only file needed for
      * backup purposes.
      */
-    public void synchronizeLog()
-        throws IOException
+    public void synchronizeLog() throws IOException
     {
         synchronizeLogFromMemory();
     }
@@ -131,49 +140,63 @@ public final class TransactionManager {
      * This method must be called while there are no
      * pending transactions in the log.
      */
-    public void setMaximumTransactionsInLog( int maxTxns )
-        throws IOException
+    public void setMaximumTransactionsInLog( int maxTxns ) throws IOException
     {
-        if ( maxTxns <= 0 ) {
+        if ( maxTxns <= 0 )
+        {
             throw new IllegalArgumentException( I18n.err( I18n.ERR_563 ) );
         }
-        if ( curTxn != -1 ) {
+        
+        if ( curTxn != -1 )
+        {
             throw new IllegalStateException( I18n.err( I18n.ERR_564 ) );
         }
+        
         _maxTxns = maxTxns;
         txns = new ArrayList[ maxTxns ];
     }
 
     
     /** Builds logfile name  */
-    private String makeLogName() {
+    private String makeLogName()
+    {
         return owner.getFileName() + extension;
     }
 
 
     /** Synchs in-core transactions to data file and opens a fresh log */
-    private void synchronizeLogFromMemory() throws IOException {
+    private void synchronizeLogFromMemory() throws IOException
+    {
         close();
 
-        TreeSet blockList = new TreeSet( new BlockIoComparator() );
+        TreeSet<BlockIo> blockList = new TreeSet<BlockIo>( new BlockIoComparator() );
 
-        for (int i = 0; i < _maxTxns; i++) {
+        for (int i = 0; i < _maxTxns; i++)
+        {
             if (txns[i] == null)
+            {
                 continue;
+            }
+            
             // Add each block to the blockList, replacing the old copy of this
             // block if necessary, thus avoiding writing the same block twice
-            for (Iterator k = txns[i].iterator(); k.hasNext(); ) {
-                BlockIo block = (BlockIo)k.next();
-                if ( blockList.contains( block ) ) {
+            for ( Iterator<BlockIo> k = txns[i].iterator(); k.hasNext(); )
+            {
+                BlockIo block = k.next();
+                
+                if ( blockList.contains( block ) )
+                {
                     block.decrementTransactionCount();
                 }
-                else {
+                else
+                {
                     blockList.add( block );
                 }
             }
 
             txns[i] = null;
         }
+        
         // Write the blocks from the blockList to disk
         synchronizeBlocks(blockList.iterator(), true);
 
@@ -183,7 +206,8 @@ public final class TransactionManager {
 
 
     /** Opens the log file */
-    private void open() throws IOException {
+    private void open() throws IOException
+    {
         fos = new FileOutputStream(makeLogName());
         oos = new ObjectOutputStream(fos);
         oos.writeShort(Magic.LOGFILE_HEADER);
@@ -192,13 +216,20 @@ public final class TransactionManager {
     }
 
     /** Startup recovery on all files */
-    private void recover() throws IOException {
+    private void recover() throws IOException
+    {
         String logName = makeLogName();
         File logFile = new File(logName);
+        
         if (!logFile.exists())
+        {
             return;
-        if (logFile.length() == 0) {
+        }
+        
+        if (logFile.length() == 0)
+        {
             logFile.delete();
+            
             return;
         }
 
@@ -206,54 +237,75 @@ public final class TransactionManager {
         ObjectInputStream ois = new ObjectInputStream(fis);
 
         try {
-            if (ois.readShort() != Magic.LOGFILE_HEADER) {
+            if (ois.readShort() != Magic.LOGFILE_HEADER)
+            {
                 ois.close();
                 throw new Error( I18n.err( I18n.ERR_565 ) );
             }
-        } catch (IOException e) {
+        }
+        catch (IOException e)
+        {
             // corrupted/empty logfile
             ois.close();
             logFile.delete();
             return;
         }
 
-        while (true) {
-            ArrayList blocks = null;
-            try {
-                blocks = (ArrayList) ois.readObject();
-            } catch (ClassNotFoundException e) {
+        while (true)
+        {
+            List<BlockIo> blocks = null;
+            
+            try
+            {
+                blocks = (List<BlockIo>) ois.readObject();
+            }
+            catch (ClassNotFoundException e)
+            {
                 ois.close();
                 throw new Error( I18n.err( I18n.ERR_566, e ) );
-            } catch (IOException e) {
+            }
+            catch (IOException e)
+            {
                 // corrupted logfile, ignore rest of transactions
                 break;
             }
+            
             synchronizeBlocks(blocks.iterator(), false);
 
             // ObjectInputStream must match exactly each
             // ObjectOutputStream created during writes
-            try {
+            try
+            {
                 ois = new ObjectInputStream(fis);
-            } catch (IOException e) {
+            }
+            catch (IOException e)
+            {
                 // corrupted logfile, ignore rest of transactions
                 break;
             }
         }
+        
         owner.sync();
         ois.close();
         logFile.delete();
     }
 
     /** Synchronizes the indicated blocks with the owner. */
-    private void synchronizeBlocks(Iterator blockIterator, boolean fromCore)
-    throws IOException {
+    private void synchronizeBlocks(Iterator<BlockIo> blockIterator, boolean fromCore)
+        throws IOException
+    {
         // write block vector elements to the data file.
-        while ( blockIterator.hasNext() ) {
-            BlockIo cur = (BlockIo)blockIterator.next();
+        while ( blockIterator.hasNext() )
+        {
+            BlockIo cur = blockIterator.next();
             owner.sync(cur);
-            if (fromCore) {
+            
+            if (fromCore)
+            {
                 cur.decrementTransactionCount();
-                if (!cur.isInTransaction()) {
+                
+                if (!cur.isInTransaction())
+                {
                     owner.releaseFromTransaction(cur, true);
                 }
             }
@@ -262,21 +314,25 @@ public final class TransactionManager {
 
 
     /** Set clean flag on the blocks. */
-    private void setClean(ArrayList blocks)
-    throws IOException {
-        for (Iterator k = blocks.iterator(); k.hasNext(); ) {
-            BlockIo cur = (BlockIo) k.next();
+    private void setClean(List<BlockIo> blocks) throws IOException
+    {
+        for (Iterator<BlockIo> k = blocks.iterator(); k.hasNext(); )
+        {
+            BlockIo cur = k.next();
             cur.setClean();
         }
     }
 
     /** Discards the indicated blocks and notify the owner. */
-    private void discardBlocks(ArrayList blocks)
-    throws IOException {
-        for (Iterator k = blocks.iterator(); k.hasNext(); ) {
-            BlockIo cur = (BlockIo) k.next();
+    private void discardBlocks(List<BlockIo> blocks) throws IOException
+    {
+        for (Iterator<BlockIo> k = blocks.iterator(); k.hasNext(); )
+        {
+            BlockIo cur = k.next();
             cur.decrementTransactionCount();
-            if (!cur.isInTransaction()) {
+            
+            if (!cur.isInTransaction())
+            {
                 owner.releaseFromTransaction(cur, false);
             }
         }
@@ -287,19 +343,24 @@ public final class TransactionManager {
      *  with full transactions, waiting for the synchronization thread to
      *  clean out slots.
      */
-    void start() throws IOException {
+    void start() throws IOException
+    {
         curTxn++;
-        if (curTxn == _maxTxns) {
+        
+        if (curTxn == _maxTxns)
+        {
             synchronizeLogFromMemory();
             curTxn = 0;
         }
+        
         txns[curTxn] = new ArrayList();
     }
 
     /**
      *  Indicates the block is part of the transaction.
      */
-    void add(BlockIo block) throws IOException {
+    void add(BlockIo block) throws IOException
+    {
         block.incrementTransactionCount();
         txns[curTxn].add(block);
     }
@@ -307,7 +368,8 @@ public final class TransactionManager {
     /**
      *  Commits the transaction to the log file.
      */
-    void commit() throws IOException {
+    void commit() throws IOException
+    {
         oos.writeObject(txns[curTxn]);
         sync();
 
@@ -321,7 +383,8 @@ public final class TransactionManager {
     }
 
     /** Flushes and syncs */
-    private void sync() throws IOException {
+    private void sync() throws IOException
+    {
         oos.flush();
         fos.flush();
         fos.getFD().sync();
@@ -331,7 +394,8 @@ public final class TransactionManager {
      *  Shutdowns the transaction manager. Resynchronizes outstanding
      *  logs.
      */
-    void shutdown() throws IOException {
+    void shutdown() throws IOException
+    {
         synchronizeLogFromMemory();
         close();
     }
@@ -339,7 +403,8 @@ public final class TransactionManager {
     /**
      *  Closes open files.
      */
-    private void close() throws IOException {
+    private void close() throws IOException
+    {
         sync();
         oos.close();
         fos.close();
@@ -351,7 +416,8 @@ public final class TransactionManager {
      * Force closing the file without synchronizing pending transaction data.
      * Used for testing purposes only.
      */
-    void forceClose() throws IOException {
+    void forceClose() throws IOException
+    {
         oos.close();
         fos.close();
         oos = null;
@@ -363,12 +429,17 @@ public final class TransactionManager {
      * Outstanding memory logs are discarded because they are believed
      * to be inconsistent.
      */
-    void synchronizeLogFromDisk() throws IOException {
+    void synchronizeLogFromDisk() throws IOException
+    {
         close();
 
-        for ( int i=0; i < _maxTxns; i++ ) {
+        for ( int i=0; i < _maxTxns; i++ )
+        {
             if (txns[i] == null)
+            {
                 continue;
+            }
+            
             discardBlocks(txns[i]);
             txns[i] = null;
         }
@@ -383,29 +454,31 @@ public final class TransactionManager {
      *  to write for this transaction.  The BlockIo objects are ordered by
      *  their blockIds.
      */
-    public static class BlockIoComparator
-        implements Comparator
+    public static class BlockIoComparator implements Comparator<BlockIo>
     {
-
-        public int compare( Object o1, Object o2 ) {
-            BlockIo block1 = (BlockIo)o1;
-            BlockIo block2 = (BlockIo)o2;
+        public int compare( BlockIo block1, BlockIo block2 )
+        {
             int result = 0;
-            if ( block1.getBlockId() == block2.getBlockId() ) {
+            
+            if ( block1.getBlockId() == block2.getBlockId() )
+            {
                 result = 0;
             }
-            else if ( block1.getBlockId() < block2.getBlockId() ) {
+            else if ( block1.getBlockId() < block2.getBlockId() )
+            {
                 result = -1;
             }
-            else {
+            else
+            {
                 result = 1;
             }
+            
             return result;
         }
 
-        public boolean equals(Object obj) {
+        public boolean equals(Object obj)
+        {
             return super.equals(obj);
         }
     } // class BlockIOComparator
-
 }

Added: directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/errors.properties
URL: http://svn.apache.org/viewvc/directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/errors.properties?rev=1292731&view=auto
==============================================================================
--- directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/errors.properties (added)
+++ directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/errors.properties Thu Feb 23 10:13:25 2012
@@ -0,0 +1,79 @@
+#
+#   Licensed to the Apache Software Foundation (ASF) under one
+#   or more contributor license agreements.  See the NOTICE file
+#   distributed with this work for additional information
+#   regarding copyright ownership.  The ASF licenses this file
+#   to you 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.
+#
+#
+
+#
+# Default error code translations comes here 
+#
+
+ERR_513=Error during underflow [{0}]
+ERR_514=Key not found: {0}
+ERR_515=BPage not ordered
+ERR_516=Invalid child subordinate key
+ERR_517=Argument ''recman'' is null
+ERR_518=Argument ''comparator'' is null
+ERR_519=Argument ''comparator'' must be serializable
+# ERR_520=Argument ''keySerializer'' must be serializable
+# ERR_521=Argument ''valueSerializer'' must be serializable
+ERR_522=Argument ''pageSize'' must be even
+ERR_523=Argument ''key'' is null
+ERR_524=Argument ''value'' is null
+ERR_525=Argument ''obj1'' is null
+ERR_526=Argument ''obj2'' is null
+ERR_527=Platform doesn''t support UTF8 encoding
+ERR_528=MRU cache must contain at least one entry
+ERR_529=Cannot add null listener.
+# ERR_530=
+ERR_531=Internal cache cannot be null.
+ERR_532=key cannot be null.
+ERR_533=value cannot be null.
+ERR_534=Cannot create bucket with depth > MAX_DEPTH+1. Depth={0}
+ERR_535=Cannot create deeper directory. Depth={0}
+ERR_536=Argument ''recid'' is invalid: {0}
+ERR_537=Name directory must exist
+ERR_538=RecordManager has been closed
+ERR_539_BAD_BLOCK_ID=bogus block id {0}, it should not be negative
+ERR_540=BlockId assigned for transaction block
+ERR_541=transaction count on block {0} below zero!
+ERR_542=Argument ''cache'' is null
+ERR_543=DataPage.setFirst: offset {0} too small
+ERR_544=CRITICAL: file header magic not OK {0}
+ERR_545=couldn''t obtain free translation
+ERR_546=CRITICAL: page header magic for block {0} not OK {1}
+ERR_547=CRITICAL: page header magic not OK {0}
+ERR_548=allocate of free page?
+ERR_549=free free page?
+ERR_550=free header page?
+ERR_551=Soft reference cache not implemented
+ERR_552=Weak reference cache not implemented
+ERR_553=Invalid cache type: {0}
+ERR_554=double get for block {0}
+ERR_555=bad blockid {0} on release
+ERR_556=in use list not empty at commit time ({0})
+ERR_557=in use list not empty at rollback time ({0})
+ERR_558=in txn list not empty at rollback time ({0})
+ERR_559=In transaction not empty
+ERR_560=Dirty blocks at close time
+ERR_561=inUse blocks at close time
+ERR_562=Offset too large for record header ({0}:{1})
+ERR_563=Argument ''maxTxns'' must be greater than 0.
+ERR_564=Cannot change setting while transactions are pending in the log
+ERR_565=Bad magic on log file
+ERR_566=Unexcepted exception: {0}
+ERR_567=Invalid record manager provider\: {0}\n[{1}\: {2}]

Added: directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/errors_de.properties
URL: http://svn.apache.org/viewvc/directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/errors_de.properties?rev=1292731&view=auto
==============================================================================
--- directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/errors_de.properties (added)
+++ directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/errors_de.properties Thu Feb 23 10:13:25 2012
@@ -0,0 +1,24 @@
+#
+#   Licensed to the Apache Software Foundation (ASF) under one
+#   or more contributor license agreements.  See the NOTICE file
+#   distributed with this work for additional information
+#   regarding copyright ownership.  The ASF licenses this file
+#   to you 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.
+#
+#
+
+#
+# German error code translations comes here 
+#
+

Added: directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/errors_fr.properties
URL: http://svn.apache.org/viewvc/directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/errors_fr.properties?rev=1292731&view=auto
==============================================================================
--- directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/errors_fr.properties (added)
+++ directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/errors_fr.properties Thu Feb 23 10:13:25 2012
@@ -0,0 +1,24 @@
+#
+#   Licensed to the Apache Software Foundation (ASF) under one
+#   or more contributor license agreements.  See the NOTICE file
+#   distributed with this work for additional information
+#   regarding copyright ownership.  The ASF licenses this file
+#   to you 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.
+#
+#
+
+#
+# French error code translations comes here 
+#
+

Added: directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/messages.properties
URL: http://svn.apache.org/viewvc/directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/messages.properties?rev=1292731&view=auto
==============================================================================
--- directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/messages.properties (added)
+++ directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/messages.properties Thu Feb 23 10:13:25 2012
@@ -0,0 +1,23 @@
+#
+#   Licensed to the Apache Software Foundation (ASF) under one
+#   or more contributor license agreements.  See the NOTICE file
+#   distributed with this work for additional information
+#   regarding copyright ownership.  The ASF licenses this file
+#   to you 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.
+#
+#
+
+#
+# Default message translations comes here 
+#

Added: directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/messages_de.properties?rev=1292731&view=auto
==============================================================================
--- directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/messages_de.properties (added)
+++ directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/messages_de.properties Thu Feb 23 10:13:25 2012
@@ -0,0 +1,23 @@
+#
+#   Licensed to the Apache Software Foundation (ASF) under one
+#   or more contributor license agreements.  See the NOTICE file
+#   distributed with this work for additional information
+#   regarding copyright ownership.  The ASF licenses this file
+#   to you 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.
+#
+#
+
+#
+# German message translations comes here 
+#

Added: directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/messages_fr.properties?rev=1292731&view=auto
==============================================================================
--- directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/messages_fr.properties (added)
+++ directory/jdbm/trunk/jdbm2/src/main/resources/jdbm/messages_fr.properties Thu Feb 23 10:13:25 2012
@@ -0,0 +1,23 @@
+#
+#   Licensed to the Apache Software Foundation (ASF) under one
+#   or more contributor license agreements.  See the NOTICE file
+#   distributed with this work for additional information
+#   regarding copyright ownership.  The ASF licenses this file
+#   to you 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.
+#
+#
+
+#
+# French message translations comes here 
+#

Modified: directory/jdbm/trunk/pom.xml
URL: http://svn.apache.org/viewvc/directory/jdbm/trunk/pom.xml?rev=1292731&r1=1292730&r2=1292731&view=diff
==============================================================================
--- directory/jdbm/trunk/pom.xml (original)
+++ directory/jdbm/trunk/pom.xml Thu Feb 23 10:13:25 2012
@@ -69,7 +69,7 @@
   
   <modules>
     <module>jdbm</module>
-    <!--module>jdbm2</module-->
+    <module>jdbm2</module>
   </modules>
 
   <build>