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>