directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From elecha...@apache.org
Subject svn commit: r576193 [6/6] - in /directory/apacheds/trunk/mitosis/src: main/java/org/apache/directory/mitosis/common/ main/java/org/apache/directory/mitosis/configuration/ main/java/org/apache/directory/mitosis/service/ main/java/org/apache/directory/mi...
Date Sun, 16 Sep 2007 22:12:09 GMT
Modified: directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/BeginLogEntriesAckMessageCodecTest2.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/BeginLogEntriesAckMessageCodecTest2.java?rev=576193&r1=576192&r2=576193&view=diff
==============================================================================
--- directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/BeginLogEntriesAckMessageCodecTest2.java (original)
+++ directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/BeginLogEntriesAckMessageCodecTest2.java Sun Sep 16 15:12:06 2007
@@ -1,37 +1,37 @@
-/*
- *  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. 
- *  
- */
-package org.apache.directory.mitosis.service.protocol.codec;
-
-
-import org.apache.directory.mitosis.service.protocol.Constants;
-import org.apache.directory.mitosis.service.protocol.codec.BeginLogEntriesAckMessageDecoder;
-import org.apache.directory.mitosis.service.protocol.codec.BeginLogEntriesAckMessageEncoder;
-import org.apache.directory.mitosis.service.protocol.message.BeginLogEntriesAckMessage;
-
-
-public class BeginLogEntriesAckMessageCodecTest2 extends AbstractMessageCodecTest
-{
-
-    public BeginLogEntriesAckMessageCodecTest2()
-    {
-        super( new BeginLogEntriesAckMessage( 1234, Constants.NOT_OK, null, null ),
-            new BeginLogEntriesAckMessageEncoder(), new BeginLogEntriesAckMessageDecoder() );
-    }
-}
+/*
+ *  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. 
+ *  
+ */
+package org.apache.directory.mitosis.service.protocol.codec;
+
+
+import org.apache.directory.mitosis.service.protocol.Constants;
+import org.apache.directory.mitosis.service.protocol.codec.BeginLogEntriesAckMessageDecoder;
+import org.apache.directory.mitosis.service.protocol.codec.BeginLogEntriesAckMessageEncoder;
+import org.apache.directory.mitosis.service.protocol.message.BeginLogEntriesAckMessage;
+
+
+public class BeginLogEntriesAckMessageCodecTest2 extends AbstractMessageCodecTest
+{
+
+    public BeginLogEntriesAckMessageCodecTest2()
+    {
+        super( new BeginLogEntriesAckMessage( 1234, Constants.NOT_OK, null, null ),
+            new BeginLogEntriesAckMessageEncoder(), new BeginLogEntriesAckMessageDecoder() );
+    }
+}

Modified: directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/BeginLogEntriesMessageCodecTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/BeginLogEntriesMessageCodecTest.java?rev=576193&r1=576192&r2=576193&view=diff
==============================================================================
--- directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/BeginLogEntriesMessageCodecTest.java (original)
+++ directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/BeginLogEntriesMessageCodecTest.java Sun Sep 16 15:12:06 2007
@@ -1,36 +1,36 @@
-/*
- *  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. 
- *  
- */
-package org.apache.directory.mitosis.service.protocol.codec;
-
-
-import org.apache.directory.mitosis.service.protocol.codec.BeginLogEntriesMessageDecoder;
-import org.apache.directory.mitosis.service.protocol.codec.BeginLogEntriesMessageEncoder;
-import org.apache.directory.mitosis.service.protocol.message.BeginLogEntriesMessage;
-
-
-public class BeginLogEntriesMessageCodecTest extends AbstractMessageCodecTest
-{
-
-    public BeginLogEntriesMessageCodecTest()
-    {
-        super( new BeginLogEntriesMessage( 1234 ), new BeginLogEntriesMessageEncoder(),
-            new BeginLogEntriesMessageDecoder() );
-    }
-}
+/*
+ *  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. 
+ *  
+ */
+package org.apache.directory.mitosis.service.protocol.codec;
+
+
+import org.apache.directory.mitosis.service.protocol.codec.BeginLogEntriesMessageDecoder;
+import org.apache.directory.mitosis.service.protocol.codec.BeginLogEntriesMessageEncoder;
+import org.apache.directory.mitosis.service.protocol.message.BeginLogEntriesMessage;
+
+
+public class BeginLogEntriesMessageCodecTest extends AbstractMessageCodecTest
+{
+
+    public BeginLogEntriesMessageCodecTest()
+    {
+        super( new BeginLogEntriesMessage( 1234 ), new BeginLogEntriesMessageEncoder(),
+            new BeginLogEntriesMessageDecoder() );
+    }
+}

Modified: directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/EndLogEntriesAckMessageCodecTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/EndLogEntriesAckMessageCodecTest.java?rev=576193&r1=576192&r2=576193&view=diff
==============================================================================
--- directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/EndLogEntriesAckMessageCodecTest.java (original)
+++ directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/EndLogEntriesAckMessageCodecTest.java Sun Sep 16 15:12:06 2007
@@ -1,36 +1,36 @@
-/*
- *  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. 
- *  
- */
-package org.apache.directory.mitosis.service.protocol.codec;
-
-
-import org.apache.directory.mitosis.service.protocol.codec.EndLogEntriesAckMessageDecoder;
-import org.apache.directory.mitosis.service.protocol.codec.EndLogEntriesAckMessageEncoder;
-import org.apache.directory.mitosis.service.protocol.message.EndLogEntriesAckMessage;
-
-
-public class EndLogEntriesAckMessageCodecTest extends AbstractMessageCodecTest
-{
-
-    public EndLogEntriesAckMessageCodecTest()
-    {
-        super( new EndLogEntriesAckMessage( 1234, 5678 ), new EndLogEntriesAckMessageEncoder(),
-            new EndLogEntriesAckMessageDecoder() );
-    }
-}
+/*
+ *  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. 
+ *  
+ */
+package org.apache.directory.mitosis.service.protocol.codec;
+
+
+import org.apache.directory.mitosis.service.protocol.codec.EndLogEntriesAckMessageDecoder;
+import org.apache.directory.mitosis.service.protocol.codec.EndLogEntriesAckMessageEncoder;
+import org.apache.directory.mitosis.service.protocol.message.EndLogEntriesAckMessage;
+
+
+public class EndLogEntriesAckMessageCodecTest extends AbstractMessageCodecTest
+{
+
+    public EndLogEntriesAckMessageCodecTest()
+    {
+        super( new EndLogEntriesAckMessage( 1234, 5678 ), new EndLogEntriesAckMessageEncoder(),
+            new EndLogEntriesAckMessageDecoder() );
+    }
+}

Modified: directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/EndLogEntriesMessageCodecTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/EndLogEntriesMessageCodecTest.java?rev=576193&r1=576192&r2=576193&view=diff
==============================================================================
--- directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/EndLogEntriesMessageCodecTest.java (original)
+++ directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/EndLogEntriesMessageCodecTest.java Sun Sep 16 15:12:06 2007
@@ -1,35 +1,35 @@
-/*
- *  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. 
- *  
- */
-package org.apache.directory.mitosis.service.protocol.codec;
-
-
-import org.apache.directory.mitosis.service.protocol.codec.EndLogEntriesMessageDecoder;
-import org.apache.directory.mitosis.service.protocol.codec.EndLogEntriesMessageEncoder;
-import org.apache.directory.mitosis.service.protocol.message.EndLogEntriesMessage;
-
-
-public class EndLogEntriesMessageCodecTest extends AbstractMessageCodecTest
-{
-
-    public EndLogEntriesMessageCodecTest()
-    {
-        super( new EndLogEntriesMessage( 1234 ), new EndLogEntriesMessageEncoder(), new EndLogEntriesMessageDecoder() );
-    }
-}
+/*
+ *  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. 
+ *  
+ */
+package org.apache.directory.mitosis.service.protocol.codec;
+
+
+import org.apache.directory.mitosis.service.protocol.codec.EndLogEntriesMessageDecoder;
+import org.apache.directory.mitosis.service.protocol.codec.EndLogEntriesMessageEncoder;
+import org.apache.directory.mitosis.service.protocol.message.EndLogEntriesMessage;
+
+
+public class EndLogEntriesMessageCodecTest extends AbstractMessageCodecTest
+{
+
+    public EndLogEntriesMessageCodecTest()
+    {
+        super( new EndLogEntriesMessage( 1234 ), new EndLogEntriesMessageEncoder(), new EndLogEntriesMessageDecoder() );
+    }
+}

Modified: directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/LogEntryAckMessageCodecTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/LogEntryAckMessageCodecTest.java?rev=576193&r1=576192&r2=576193&view=diff
==============================================================================
--- directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/LogEntryAckMessageCodecTest.java (original)
+++ directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/LogEntryAckMessageCodecTest.java Sun Sep 16 15:12:06 2007
@@ -1,35 +1,35 @@
-/*
- *  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. 
- *  
- */
-package org.apache.directory.mitosis.service.protocol.codec;
-
-
-import org.apache.directory.mitosis.service.protocol.codec.LogEntryAckMessageDecoder;
-import org.apache.directory.mitosis.service.protocol.codec.LogEntryAckMessageEncoder;
-import org.apache.directory.mitosis.service.protocol.message.LogEntryAckMessage;
-
-
-public class LogEntryAckMessageCodecTest extends AbstractMessageCodecTest
-{
-
-    public LogEntryAckMessageCodecTest()
-    {
-        super( new LogEntryAckMessage( 1234, 5678 ), new LogEntryAckMessageEncoder(), new LogEntryAckMessageDecoder() );
-    }
-}
+/*
+ *  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. 
+ *  
+ */
+package org.apache.directory.mitosis.service.protocol.codec;
+
+
+import org.apache.directory.mitosis.service.protocol.codec.LogEntryAckMessageDecoder;
+import org.apache.directory.mitosis.service.protocol.codec.LogEntryAckMessageEncoder;
+import org.apache.directory.mitosis.service.protocol.message.LogEntryAckMessage;
+
+
+public class LogEntryAckMessageCodecTest extends AbstractMessageCodecTest
+{
+
+    public LogEntryAckMessageCodecTest()
+    {
+        super( new LogEntryAckMessage( 1234, 5678 ), new LogEntryAckMessageEncoder(), new LogEntryAckMessageDecoder() );
+    }
+}

Modified: directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/LogEntryMessageCodecTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/LogEntryMessageCodecTest.java?rev=576193&r1=576192&r2=576193&view=diff
==============================================================================
--- directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/LogEntryMessageCodecTest.java (original)
+++ directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/LogEntryMessageCodecTest.java Sun Sep 16 15:12:06 2007
@@ -1,59 +1,59 @@
-/*
- *  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. 
- *  
- */
-package org.apache.directory.mitosis.service.protocol.codec;
-
-
-import javax.naming.InvalidNameException;
-
-import org.apache.directory.mitosis.common.ReplicaId;
-import org.apache.directory.mitosis.common.DefaultCSN;
-import org.apache.directory.mitosis.operation.AddAttributeOperation;
-import org.apache.directory.mitosis.service.protocol.codec.LogEntryMessageDecoder;
-import org.apache.directory.mitosis.service.protocol.codec.LogEntryMessageEncoder;
-import org.apache.directory.mitosis.service.protocol.message.BaseMessage;
-import org.apache.directory.mitosis.service.protocol.message.LogEntryMessage;
-import org.apache.directory.shared.ldap.message.AttributeImpl;
-import org.apache.directory.shared.ldap.name.LdapDN;
-
-
-public class LogEntryMessageCodecTest extends AbstractMessageCodecTest
-{
-
-    public LogEntryMessageCodecTest() throws InvalidNameException
-    {
-        super(
-            new LogEntryMessage( 1234, new AddAttributeOperation( new DefaultCSN( System.currentTimeMillis(),
-                new ReplicaId( "testReplica0" ), 1234 ), new LdapDN( "ou=system" ),
-                new AttributeImpl( "Hello", "Test" ) ) ), new LogEntryMessageEncoder(), new LogEntryMessageDecoder() );
-    }
-
-
-    protected boolean compare( BaseMessage expected0, BaseMessage actual0 )
-    {
-        LogEntryMessage expected = ( LogEntryMessage ) expected0;
-        LogEntryMessage actual = ( LogEntryMessage ) actual0;
-
-        // We don't compare operation here because it is {@link OperationCodec}'s
-        // duty to serialize and deserialize Invocations.
-        return expected.getType() == actual.getType() && expected.getSequence() == actual.getSequence()
-            && expected.getOperation().getCSN().equals( actual.getOperation().getCSN() )
-            && expected.getOperation().getClass() == actual.getOperation().getClass();
-    }
-}
+/*
+ *  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. 
+ *  
+ */
+package org.apache.directory.mitosis.service.protocol.codec;
+
+
+import javax.naming.InvalidNameException;
+
+import org.apache.directory.mitosis.common.ReplicaId;
+import org.apache.directory.mitosis.common.DefaultCSN;
+import org.apache.directory.mitosis.operation.AddAttributeOperation;
+import org.apache.directory.mitosis.service.protocol.codec.LogEntryMessageDecoder;
+import org.apache.directory.mitosis.service.protocol.codec.LogEntryMessageEncoder;
+import org.apache.directory.mitosis.service.protocol.message.BaseMessage;
+import org.apache.directory.mitosis.service.protocol.message.LogEntryMessage;
+import org.apache.directory.shared.ldap.message.AttributeImpl;
+import org.apache.directory.shared.ldap.name.LdapDN;
+
+
+public class LogEntryMessageCodecTest extends AbstractMessageCodecTest
+{
+
+    public LogEntryMessageCodecTest() throws InvalidNameException
+    {
+        super(
+            new LogEntryMessage( 1234, new AddAttributeOperation( new DefaultCSN( System.currentTimeMillis(),
+                new ReplicaId( "testReplica0" ), 1234 ), new LdapDN( "ou=system" ),
+                new AttributeImpl( "Hello", "Test" ) ) ), new LogEntryMessageEncoder(), new LogEntryMessageDecoder() );
+    }
+
+
+    protected boolean compare( BaseMessage expected0, BaseMessage actual0 )
+    {
+        LogEntryMessage expected = ( LogEntryMessage ) expected0;
+        LogEntryMessage actual = ( LogEntryMessage ) actual0;
+
+        // We don't compare operation here because it is {@link OperationCodec}'s
+        // duty to serialize and deserialize Invocations.
+        return expected.getType() == actual.getType() && expected.getSequence() == actual.getSequence()
+            && expected.getOperation().getCSN().equals( actual.getOperation().getCSN() )
+            && expected.getOperation().getClass() == actual.getOperation().getClass();
+    }
+}

Modified: directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/LoginAckMessageCodecTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/LoginAckMessageCodecTest.java?rev=576193&r1=576192&r2=576193&view=diff
==============================================================================
--- directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/LoginAckMessageCodecTest.java (original)
+++ directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/LoginAckMessageCodecTest.java Sun Sep 16 15:12:06 2007
@@ -1,37 +1,37 @@
-/*
- *  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. 
- *  
- */
-package org.apache.directory.mitosis.service.protocol.codec;
-
-
-import org.apache.directory.mitosis.common.ReplicaId;
-import org.apache.directory.mitosis.service.protocol.codec.LoginAckMessageDecoder;
-import org.apache.directory.mitosis.service.protocol.codec.LoginAckMessageEncoder;
-import org.apache.directory.mitosis.service.protocol.message.LoginAckMessage;
-
-
-public class LoginAckMessageCodecTest extends AbstractMessageCodecTest
-{
-
-    public LoginAckMessageCodecTest()
-    {
-        super( new LoginAckMessage( 1234, 5678, new ReplicaId( "ReplicaABCD" ) ), new LoginAckMessageEncoder(),
-            new LoginAckMessageDecoder() );
-    }
-}
+/*
+ *  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. 
+ *  
+ */
+package org.apache.directory.mitosis.service.protocol.codec;
+
+
+import org.apache.directory.mitosis.common.ReplicaId;
+import org.apache.directory.mitosis.service.protocol.codec.LoginAckMessageDecoder;
+import org.apache.directory.mitosis.service.protocol.codec.LoginAckMessageEncoder;
+import org.apache.directory.mitosis.service.protocol.message.LoginAckMessage;
+
+
+public class LoginAckMessageCodecTest extends AbstractMessageCodecTest
+{
+
+    public LoginAckMessageCodecTest()
+    {
+        super( new LoginAckMessage( 1234, 5678, new ReplicaId( "ReplicaABCD" ) ), new LoginAckMessageEncoder(),
+            new LoginAckMessageDecoder() );
+    }
+}

Modified: directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/LoginMessageCodecTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/LoginMessageCodecTest.java?rev=576193&r1=576192&r2=576193&view=diff
==============================================================================
--- directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/LoginMessageCodecTest.java (original)
+++ directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/LoginMessageCodecTest.java Sun Sep 16 15:12:06 2007
@@ -1,37 +1,37 @@
-/*
- *  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. 
- *  
- */
-package org.apache.directory.mitosis.service.protocol.codec;
-
-
-import org.apache.directory.mitosis.common.ReplicaId;
-import org.apache.directory.mitosis.service.protocol.codec.LoginMessageDecoder;
-import org.apache.directory.mitosis.service.protocol.codec.LoginMessageEncoder;
-import org.apache.directory.mitosis.service.protocol.message.LoginMessage;
-
-
-public class LoginMessageCodecTest extends AbstractMessageCodecTest
-{
-
-    public LoginMessageCodecTest()
-    {
-        super( new LoginMessage( 1234, new ReplicaId( "myReplica0" ) ), new LoginMessageEncoder(),
-            new LoginMessageDecoder() );
-    }
-}
+/*
+ *  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. 
+ *  
+ */
+package org.apache.directory.mitosis.service.protocol.codec;
+
+
+import org.apache.directory.mitosis.common.ReplicaId;
+import org.apache.directory.mitosis.service.protocol.codec.LoginMessageDecoder;
+import org.apache.directory.mitosis.service.protocol.codec.LoginMessageEncoder;
+import org.apache.directory.mitosis.service.protocol.message.LoginMessage;
+
+
+public class LoginMessageCodecTest extends AbstractMessageCodecTest
+{
+
+    public LoginMessageCodecTest()
+    {
+        super( new LoginMessage( 1234, new ReplicaId( "myReplica0" ) ), new LoginMessageEncoder(),
+            new LoginMessageDecoder() );
+    }
+}

Modified: directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/store/derby/DerbyReplicationStoreTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/store/derby/DerbyReplicationStoreTest.java?rev=576193&r1=576192&r2=576193&view=diff
==============================================================================
--- directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/store/derby/DerbyReplicationStoreTest.java (original)
+++ directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/store/derby/DerbyReplicationStoreTest.java Sun Sep 16 15:12:06 2007
@@ -1,446 +1,446 @@
-/*
- *  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. 
- *  
- */
-package org.apache.directory.mitosis.store.derby;
- 
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import javax.naming.Name;
-import javax.naming.ldap.LdapName;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.directory.server.core.DirectoryService;
-import org.apache.directory.server.core.DirectoryServiceConfiguration;
-import org.apache.directory.server.core.DirectoryServiceListener;
-import org.apache.directory.server.core.configuration.MutableStartupConfiguration;
-import org.apache.directory.server.core.configuration.StartupConfiguration;
-import org.apache.directory.server.core.interceptor.InterceptorChain;
-import org.apache.directory.server.core.partition.PartitionNexus;
-import org.apache.directory.server.core.schema.SchemaManager;
-import org.apache.directory.server.schema.registries.Registries;
-import org.apache.directory.shared.ldap.message.AttributeImpl;
-import org.apache.directory.shared.ldap.message.AttributesImpl;
-import org.apache.directory.shared.ldap.name.LdapDN;
-import org.apache.directory.mitosis.common.CSN;
-import org.apache.directory.mitosis.common.CSNFactory;
-import org.apache.directory.mitosis.common.CSNVector;
-import org.apache.directory.mitosis.common.ReplicaId;
-import org.apache.directory.mitosis.common.DefaultCSN;
-import org.apache.directory.mitosis.common.DefaultCSNFactory;
-import org.apache.directory.mitosis.common.DefaultUUIDFactory;
-import org.apache.directory.mitosis.common.UUID;
-import org.apache.directory.mitosis.common.UUIDFactory;
-import org.apache.directory.mitosis.configuration.ReplicationConfiguration;
-import org.apache.directory.mitosis.operation.AddAttributeOperation;
-import org.apache.directory.mitosis.operation.AddEntryOperation;
-import org.apache.directory.mitosis.operation.CompositeOperation;
-import org.apache.directory.mitosis.operation.DeleteAttributeOperation;
-import org.apache.directory.mitosis.operation.Operation;
-import org.apache.directory.mitosis.operation.ReplaceAttributeOperation;
-import org.apache.directory.mitosis.store.ReplicationLogIterator;
-import org.apache.directory.mitosis.store.ReplicationStoreException;
-import org.apache.directory.mitosis.store.derby.DerbyReplicationStore;
-
-
-public class DerbyReplicationStoreTest extends TestCase
-{
-    private static final ReplicaId REPLICA_ID = new ReplicaId( "TEST_REPLICA" );
-    private static final ReplicaId OTHER_REPLICA_ID = new ReplicaId( "OTHER_REPLICA" );
-    private static final ReplicaId OTHER_REPLICA_ID_2 = new ReplicaId( "OTHER_REPLICA_2" );
-    private static final File DB_PATH = new File( "target/testDB" );
-
-    private final UUIDFactory uuidFactory = new DefaultUUIDFactory();
-    private final CSNFactory csnFactory = new DefaultCSNFactory();
-    private DerbyReplicationStore store;
-    private int testCount;
-    private long startTime;
-
-
-    public void setUp() throws Exception
-    {
-        dropDatabase();
-        startupDatabase( REPLICA_ID );
-        initStopWatch();
-    }
-
-
-    private void startupDatabase( ReplicaId replicaId ) throws Exception
-    {
-        // Prepare configuration
-        ReplicationConfiguration cfg = new ReplicationConfiguration();
-        cfg.setReplicaId( replicaId );
-
-        // Open store
-        store = new DerbyReplicationStore();
-        store.setTablePrefix( "TEST_" );
-        store.open( new DirectoryServiceConfigurationImpl(), cfg );
-    }
-
-
-    public void tearDown() throws Exception
-    {
-        store.close();
-        dropDatabase();
-    }
-
-
-    private void dropDatabase() throws IOException
-    {
-        FileUtils.deleteDirectory( DB_PATH );
-        File logFile = new File( "derby.log" );
-        if ( !logFile.delete() )
-        {
-            logFile.deleteOnExit();
-        }
-    }
-
-
-    public void testOperations() throws Exception
-    {
-        subTestReopen();
-        printElapsedTime( "Reopen" );
-        subTestUUID();
-        printElapsedTime( "UUID" );
-        subTestEmptyLog();
-        printElapsedTime( "EmptyLog" );
-        subTestWriteLog();
-        printElapsedTime( "WriteLog" );
-        subTestRemoveLogs();
-        printElapsedTime( "RemoveLogs" );
-        subTestVectors();
-        printElapsedTime( "Vectors" );
-    }
-
-
-    private void subTestReopen() throws Exception
-    {
-        store.close();
-        try
-        {
-            startupDatabase( OTHER_REPLICA_ID );
-            Assert.fail( "Store cannot start up with wrong replica ID." );
-        }
-        catch ( ReplicationStoreException e )
-        {
-        }
-        startupDatabase( REPLICA_ID );
-    }
-
-
-    private void subTestUUID() throws Exception
-    {
-        UUID uuid = uuidFactory.newInstance();
-        Name name = new LdapName( "ou=a, ou=b" );
-        Assert.assertTrue( store.putUUID( uuid, name ) );
-        Assert.assertEquals( name, store.getDN( uuid ) );
-        Assert.assertTrue( store.removeUUID( uuid ) );
-        Assert.assertFalse( store.removeUUID( uuid ) );
-        Assert.assertNull( store.getDN( uuid ) );
-    }
-
-
-    private void subTestEmptyLog() throws Exception
-    {
-        ReplicationLogIterator it;
-
-        it = store.getLogs( csnFactory.newInstance( REPLICA_ID ), true );
-        Assert.assertFalse( it.next() );
-        it.close();
-        it = store.getLogs( csnFactory.newInstance( REPLICA_ID ), false );
-        Assert.assertFalse( it.next() );
-        it.close();
-        it = store.getLogs( csnFactory.newInstance( OTHER_REPLICA_ID ), true );
-        Assert.assertFalse( it.next() );
-        it.close();
-        it = store.getLogs( csnFactory.newInstance( OTHER_REPLICA_ID ), false );
-        Assert.assertFalse( it.next() );
-        it.close();
-
-        Assert.assertEquals( 0, store.getLogSize() );
-    }
-
-
-    private void subTestWriteLog() throws Exception
-    {
-        CSN csn = csnFactory.newInstance( REPLICA_ID );
-        CompositeOperation op1 = new CompositeOperation( csn );
-        op1.add( new AddEntryOperation( csn, new LdapDN( "ou=a" ), new AttributesImpl( true ) ) );
-        op1.add( new AddAttributeOperation( csn, new LdapDN( "ou=a" ), new AttributeImpl( "id", "valie" ) ) );
-        op1.add( new ReplaceAttributeOperation( csn, new LdapDN( "ou=a" ), new AttributeImpl( "id", "valie" ) ) );
-        op1.add( new DeleteAttributeOperation( csn, new LdapDN( "ou=a" ), new AttributeImpl( "id", "valie" ) ) );
-
-        store.putLog( op1 );
-        testGetLogs( csn, op1 );
-
-        csn = csnFactory.newInstance( OTHER_REPLICA_ID );
-        CompositeOperation op2 = new CompositeOperation( csn );
-        op2.add( new AddEntryOperation( csn, new LdapDN( "ou=a" ), new AttributesImpl( true ) ) );
-        op2.add( new AddAttributeOperation( csn, new LdapDN( "ou=a" ), new AttributeImpl( "id", "valie" ) ) );
-        op2.add( new ReplaceAttributeOperation( csn, new LdapDN( "ou=a" ), new AttributeImpl( "id", "valie" ) ) );
-        op2.add( new DeleteAttributeOperation( csn, new LdapDN( "ou=a" ), new AttributeImpl( "id", "valie" ) ) );
-
-        store.putLog( op2 );
-        testGetLogs( csn, op2 );
-
-        Assert.assertEquals( 2, store.getLogSize() );
-        Assert.assertEquals( 1, store.getLogSize( REPLICA_ID ) );
-        Assert.assertEquals( 1, store.getLogSize( OTHER_REPLICA_ID ) );
-
-        // Test getLogs(CSNVector, true)
-        List<Operation> expected = new ArrayList<Operation>();
-        expected.add( op1 );
-        expected.add( op2 );
-        CSNVector updateVector = new CSNVector();
-        testGetLogs( updateVector, true, expected );
-        updateVector = new CSNVector();
-        updateVector.setCSN( op1.getCSN() );
-        testGetLogs( updateVector, true, expected );
-        updateVector = new CSNVector();
-        updateVector.setCSN( op2.getCSN() );
-        testGetLogs( updateVector, true, expected );
-        updateVector = new CSNVector();
-        updateVector.setCSN( op1.getCSN() );
-        updateVector.setCSN( op2.getCSN() );
-        testGetLogs( updateVector, true, expected );
-
-        // Test getLogs(CSNVector, false)
-        expected = new ArrayList<Operation>();
-        expected.add( op1 );
-        expected.add( op2 );
-        updateVector = new CSNVector();
-        testGetLogs( updateVector, false, expected );
-        expected = new ArrayList<Operation>();
-        expected.add( op2 );
-        updateVector = new CSNVector();
-        updateVector.setCSN( op1.getCSN() );
-        testGetLogs( updateVector, false, expected );
-        expected = new ArrayList<Operation>();
-        expected.add( op1 );
-        updateVector = new CSNVector();
-        updateVector.setCSN( op2.getCSN() );
-        testGetLogs( updateVector, false, expected );
-        expected = new ArrayList<Operation>();
-        updateVector = new CSNVector();
-        updateVector.setCSN( op1.getCSN() );
-        updateVector.setCSN( op2.getCSN() );
-        testGetLogs( updateVector, false, expected );
-    }
-
-
-    private void subTestRemoveLogs()
-    {
-        CSN csn;
-        ReplicationLogIterator it;
-
-        it = store.getLogs( new DefaultCSN( 0, REPLICA_ID, 0 ), false );
-        it.next();
-        csn = it.getOperation().getCSN();
-        it.close();
-
-        Assert.assertEquals( 0, store.removeLogs( csn, false ) );
-        Assert.assertEquals( 1, store.removeLogs( csn, true ) );
-        Assert.assertEquals( 0, store.getLogSize( REPLICA_ID ) );
-
-        it = store.getLogs( new DefaultCSN( 0, OTHER_REPLICA_ID, 0 ), false );
-        Assert.assertTrue( it.next() );
-        csn = it.getOperation().getCSN();
-        it.close();
-
-        Assert.assertEquals( 0, store.removeLogs( csn, false ) );
-        Assert.assertEquals( 1, store.removeLogs( csn, true ) );
-        Assert.assertEquals( 0, store.getLogSize( OTHER_REPLICA_ID ) );
-
-        Assert.assertEquals( 0, store.getLogSize() );
-    }
-
-
-    private void subTestVectors() throws Exception
-    {
-        CSN csnA = new DefaultCSN( 0, REPLICA_ID, 0 );
-        CSN csnB = new DefaultCSN( 1, REPLICA_ID, 0 );
-        CSN csnC = new DefaultCSN( 0, OTHER_REPLICA_ID_2, 0 );
-        CSN csnD = new DefaultCSN( 0, OTHER_REPLICA_ID_2, 1 );
-        store.putLog( new Operation( csnA ) );
-        store.putLog( new Operation( csnB ) );
-        store.putLog( new Operation( csnC ) );
-        store.putLog( new Operation( csnD ) );
-
-        Set<ReplicaId> expectedKnownReplicaIds = new HashSet<ReplicaId>();
-        expectedKnownReplicaIds.add( REPLICA_ID );
-        expectedKnownReplicaIds.add( OTHER_REPLICA_ID );
-        expectedKnownReplicaIds.add( OTHER_REPLICA_ID_2 );
-
-        Assert.assertEquals( expectedKnownReplicaIds, store.getKnownReplicaIds() );
-
-        CSNVector expectedUpdateVector = new CSNVector();
-        expectedUpdateVector.setCSN( csnB );
-        expectedUpdateVector.setCSN( csnD );
-
-        Assert.assertEquals( expectedUpdateVector, store.getUpdateVector() );
-
-        CSNVector expectedPurgeVector = new CSNVector();
-        expectedPurgeVector.setCSN( csnA );
-        expectedPurgeVector.setCSN( csnC );
-
-        Assert.assertEquals( expectedPurgeVector, store.getPurgeVector() );
-    }
-
-
-    private void testGetLogs( CSN csn, Operation operation )
-    {
-        List<Operation> operations = new ArrayList<Operation>();
-        operations.add( operation );
-        testGetLogs( csn, operations );
-    }
-
-
-    private void testGetLogs( CSN csn, List operations )
-    {
-        Iterator it = operations.iterator();
-        ReplicationLogIterator rit;
-
-        rit = store.getLogs( csn, true );
-        testGetLogs( it, rit );
-
-        rit = store.getLogs( csn, false );
-        Assert.assertFalse( rit.next() );
-        rit.close();
-    }
-
-
-    private void testGetLogs( CSNVector updateVector, boolean inclusive, List operations )
-    {
-        Iterator it = operations.iterator();
-        ReplicationLogIterator rit;
-
-        rit = store.getLogs( updateVector, inclusive );
-        testGetLogs( it, rit );
-    }
-
-
-    private void testGetLogs( Iterator expectedIt, ReplicationLogIterator actualIt )
-    {
-        while ( expectedIt.hasNext() )
-        {
-            Operation expected = ( Operation ) expectedIt.next();
-            Assert.assertTrue( actualIt.next() );
-
-            Operation actual = actualIt.getOperation();
-            Assert.assertEquals( expected.getCSN(), actual.getCSN() );
-            assertEquals( expected, actual );
-        }
-        Assert.assertFalse( actualIt.next() );
-        actualIt.close();
-    }
-
-
-    private void initStopWatch()
-    {
-        startTime = System.currentTimeMillis();
-    }
-
-
-    private void printElapsedTime( String testName )
-    {
-        long endTime = System.currentTimeMillis();
-        System.out.println( "Subtest #" + ( ++testCount ) + " [" + testName + "]: " + ( endTime - startTime ) + " ms" );
-        startTime = System.currentTimeMillis();
-    }
-
-
-    private static void assertEquals( Operation expected, Operation actual )
-    {
-        Assert.assertEquals( expected.toString(), actual.toString() );
-    }
-
-    private static class DirectoryServiceConfigurationImpl implements DirectoryServiceConfiguration
-    {
-        public DirectoryService getService()
-        {
-            return null;
-        }
-
-
-        public String getInstanceId()
-        {
-            return null;
-        }
-
-
-        public Hashtable getEnvironment()
-        {
-            return null;
-        }
-
-
-        public StartupConfiguration getStartupConfiguration()
-        {
-            MutableStartupConfiguration cfg = new MutableStartupConfiguration();
-            cfg.setWorkingDirectory( DB_PATH );
-            return cfg;
-        }
-
-
-        public Registries getRegistries()
-        {
-            return null;
-        }
-
-
-        public PartitionNexus getPartitionNexus()
-        {
-            return null;
-        }
-
-
-        public InterceptorChain getInterceptorChain()
-        {
-            return null;
-        }
-
-
-        public boolean isFirstStart()
-        {
-            return false;
-        }
-
-
-        public DirectoryServiceListener getServiceListener()
-        {
-            return null;
-        }
-
-
-        public SchemaManager getSchemaManager()
-        {
-            return null;
-        }
-    }
-}
+/*
+ *  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. 
+ *  
+ */
+package org.apache.directory.mitosis.store.derby;
+ 
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import javax.naming.Name;
+import javax.naming.ldap.LdapName;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.directory.server.core.DirectoryService;
+import org.apache.directory.server.core.DirectoryServiceConfiguration;
+import org.apache.directory.server.core.DirectoryServiceListener;
+import org.apache.directory.server.core.configuration.MutableStartupConfiguration;
+import org.apache.directory.server.core.configuration.StartupConfiguration;
+import org.apache.directory.server.core.interceptor.InterceptorChain;
+import org.apache.directory.server.core.partition.PartitionNexus;
+import org.apache.directory.server.core.schema.SchemaManager;
+import org.apache.directory.server.schema.registries.Registries;
+import org.apache.directory.shared.ldap.message.AttributeImpl;
+import org.apache.directory.shared.ldap.message.AttributesImpl;
+import org.apache.directory.shared.ldap.name.LdapDN;
+import org.apache.directory.mitosis.common.CSN;
+import org.apache.directory.mitosis.common.CSNFactory;
+import org.apache.directory.mitosis.common.CSNVector;
+import org.apache.directory.mitosis.common.ReplicaId;
+import org.apache.directory.mitosis.common.DefaultCSN;
+import org.apache.directory.mitosis.common.DefaultCSNFactory;
+import org.apache.directory.mitosis.common.DefaultUUIDFactory;
+import org.apache.directory.mitosis.common.UUID;
+import org.apache.directory.mitosis.common.UUIDFactory;
+import org.apache.directory.mitosis.configuration.ReplicationConfiguration;
+import org.apache.directory.mitosis.operation.AddAttributeOperation;
+import org.apache.directory.mitosis.operation.AddEntryOperation;
+import org.apache.directory.mitosis.operation.CompositeOperation;
+import org.apache.directory.mitosis.operation.DeleteAttributeOperation;
+import org.apache.directory.mitosis.operation.Operation;
+import org.apache.directory.mitosis.operation.ReplaceAttributeOperation;
+import org.apache.directory.mitosis.store.ReplicationLogIterator;
+import org.apache.directory.mitosis.store.ReplicationStoreException;
+import org.apache.directory.mitosis.store.derby.DerbyReplicationStore;
+
+
+public class DerbyReplicationStoreTest extends TestCase
+{
+    private static final ReplicaId REPLICA_ID = new ReplicaId( "TEST_REPLICA" );
+    private static final ReplicaId OTHER_REPLICA_ID = new ReplicaId( "OTHER_REPLICA" );
+    private static final ReplicaId OTHER_REPLICA_ID_2 = new ReplicaId( "OTHER_REPLICA_2" );
+    private static final File DB_PATH = new File( "target/testDB" );
+
+    private final UUIDFactory uuidFactory = new DefaultUUIDFactory();
+    private final CSNFactory csnFactory = new DefaultCSNFactory();
+    private DerbyReplicationStore store;
+    private int testCount;
+    private long startTime;
+
+
+    public void setUp() throws Exception
+    {
+        dropDatabase();
+        startupDatabase( REPLICA_ID );
+        initStopWatch();
+    }
+
+
+    private void startupDatabase( ReplicaId replicaId ) throws Exception
+    {
+        // Prepare configuration
+        ReplicationConfiguration cfg = new ReplicationConfiguration();
+        cfg.setReplicaId( replicaId );
+
+        // Open store
+        store = new DerbyReplicationStore();
+        store.setTablePrefix( "TEST_" );
+        store.open( new DirectoryServiceConfigurationImpl(), cfg );
+    }
+
+
+    public void tearDown() throws Exception
+    {
+        store.close();
+        dropDatabase();
+    }
+
+
+    private void dropDatabase() throws IOException
+    {
+        FileUtils.deleteDirectory( DB_PATH );
+        File logFile = new File( "derby.log" );
+        if ( !logFile.delete() )
+        {
+            logFile.deleteOnExit();
+        }
+    }
+
+
+    public void testOperations() throws Exception
+    {
+        subTestReopen();
+        printElapsedTime( "Reopen" );
+        subTestUUID();
+        printElapsedTime( "UUID" );
+        subTestEmptyLog();
+        printElapsedTime( "EmptyLog" );
+        subTestWriteLog();
+        printElapsedTime( "WriteLog" );
+        subTestRemoveLogs();
+        printElapsedTime( "RemoveLogs" );
+        subTestVectors();
+        printElapsedTime( "Vectors" );
+    }
+
+
+    private void subTestReopen() throws Exception
+    {
+        store.close();
+        try
+        {
+            startupDatabase( OTHER_REPLICA_ID );
+            Assert.fail( "Store cannot start up with wrong replica ID." );
+        }
+        catch ( ReplicationStoreException e )
+        {
+        }
+        startupDatabase( REPLICA_ID );
+    }
+
+
+    private void subTestUUID() throws Exception
+    {
+        UUID uuid = uuidFactory.newInstance();
+        Name name = new LdapName( "ou=a, ou=b" );
+        Assert.assertTrue( store.putUUID( uuid, name ) );
+        Assert.assertEquals( name, store.getDN( uuid ) );
+        Assert.assertTrue( store.removeUUID( uuid ) );
+        Assert.assertFalse( store.removeUUID( uuid ) );
+        Assert.assertNull( store.getDN( uuid ) );
+    }
+
+
+    private void subTestEmptyLog() throws Exception
+    {
+        ReplicationLogIterator it;
+
+        it = store.getLogs( csnFactory.newInstance( REPLICA_ID ), true );
+        Assert.assertFalse( it.next() );
+        it.close();
+        it = store.getLogs( csnFactory.newInstance( REPLICA_ID ), false );
+        Assert.assertFalse( it.next() );
+        it.close();
+        it = store.getLogs( csnFactory.newInstance( OTHER_REPLICA_ID ), true );
+        Assert.assertFalse( it.next() );
+        it.close();
+        it = store.getLogs( csnFactory.newInstance( OTHER_REPLICA_ID ), false );
+        Assert.assertFalse( it.next() );
+        it.close();
+
+        Assert.assertEquals( 0, store.getLogSize() );
+    }
+
+
+    private void subTestWriteLog() throws Exception
+    {
+        CSN csn = csnFactory.newInstance( REPLICA_ID );
+        CompositeOperation op1 = new CompositeOperation( csn );
+        op1.add( new AddEntryOperation( csn, new LdapDN( "ou=a" ), new AttributesImpl( true ) ) );
+        op1.add( new AddAttributeOperation( csn, new LdapDN( "ou=a" ), new AttributeImpl( "id", "valie" ) ) );
+        op1.add( new ReplaceAttributeOperation( csn, new LdapDN( "ou=a" ), new AttributeImpl( "id", "valie" ) ) );
+        op1.add( new DeleteAttributeOperation( csn, new LdapDN( "ou=a" ), new AttributeImpl( "id", "valie" ) ) );
+
+        store.putLog( op1 );
+        testGetLogs( csn, op1 );
+
+        csn = csnFactory.newInstance( OTHER_REPLICA_ID );
+        CompositeOperation op2 = new CompositeOperation( csn );
+        op2.add( new AddEntryOperation( csn, new LdapDN( "ou=a" ), new AttributesImpl( true ) ) );
+        op2.add( new AddAttributeOperation( csn, new LdapDN( "ou=a" ), new AttributeImpl( "id", "valie" ) ) );
+        op2.add( new ReplaceAttributeOperation( csn, new LdapDN( "ou=a" ), new AttributeImpl( "id", "valie" ) ) );
+        op2.add( new DeleteAttributeOperation( csn, new LdapDN( "ou=a" ), new AttributeImpl( "id", "valie" ) ) );
+
+        store.putLog( op2 );
+        testGetLogs( csn, op2 );
+
+        Assert.assertEquals( 2, store.getLogSize() );
+        Assert.assertEquals( 1, store.getLogSize( REPLICA_ID ) );
+        Assert.assertEquals( 1, store.getLogSize( OTHER_REPLICA_ID ) );
+
+        // Test getLogs(CSNVector, true)
+        List<Operation> expected = new ArrayList<Operation>();
+        expected.add( op1 );
+        expected.add( op2 );
+        CSNVector updateVector = new CSNVector();
+        testGetLogs( updateVector, true, expected );
+        updateVector = new CSNVector();
+        updateVector.setCSN( op1.getCSN() );
+        testGetLogs( updateVector, true, expected );
+        updateVector = new CSNVector();
+        updateVector.setCSN( op2.getCSN() );
+        testGetLogs( updateVector, true, expected );
+        updateVector = new CSNVector();
+        updateVector.setCSN( op1.getCSN() );
+        updateVector.setCSN( op2.getCSN() );
+        testGetLogs( updateVector, true, expected );
+
+        // Test getLogs(CSNVector, false)
+        expected = new ArrayList<Operation>();
+        expected.add( op1 );
+        expected.add( op2 );
+        updateVector = new CSNVector();
+        testGetLogs( updateVector, false, expected );
+        expected = new ArrayList<Operation>();
+        expected.add( op2 );
+        updateVector = new CSNVector();
+        updateVector.setCSN( op1.getCSN() );
+        testGetLogs( updateVector, false, expected );
+        expected = new ArrayList<Operation>();
+        expected.add( op1 );
+        updateVector = new CSNVector();
+        updateVector.setCSN( op2.getCSN() );
+        testGetLogs( updateVector, false, expected );
+        expected = new ArrayList<Operation>();
+        updateVector = new CSNVector();
+        updateVector.setCSN( op1.getCSN() );
+        updateVector.setCSN( op2.getCSN() );
+        testGetLogs( updateVector, false, expected );
+    }
+
+
+    private void subTestRemoveLogs()
+    {
+        CSN csn;
+        ReplicationLogIterator it;
+
+        it = store.getLogs( new DefaultCSN( 0, REPLICA_ID, 0 ), false );
+        it.next();
+        csn = it.getOperation().getCSN();
+        it.close();
+
+        Assert.assertEquals( 0, store.removeLogs( csn, false ) );
+        Assert.assertEquals( 1, store.removeLogs( csn, true ) );
+        Assert.assertEquals( 0, store.getLogSize( REPLICA_ID ) );
+
+        it = store.getLogs( new DefaultCSN( 0, OTHER_REPLICA_ID, 0 ), false );
+        Assert.assertTrue( it.next() );
+        csn = it.getOperation().getCSN();
+        it.close();
+
+        Assert.assertEquals( 0, store.removeLogs( csn, false ) );
+        Assert.assertEquals( 1, store.removeLogs( csn, true ) );
+        Assert.assertEquals( 0, store.getLogSize( OTHER_REPLICA_ID ) );
+
+        Assert.assertEquals( 0, store.getLogSize() );
+    }
+
+
+    private void subTestVectors() throws Exception
+    {
+        CSN csnA = new DefaultCSN( 0, REPLICA_ID, 0 );
+        CSN csnB = new DefaultCSN( 1, REPLICA_ID, 0 );
+        CSN csnC = new DefaultCSN( 0, OTHER_REPLICA_ID_2, 0 );
+        CSN csnD = new DefaultCSN( 0, OTHER_REPLICA_ID_2, 1 );
+        store.putLog( new Operation( csnA ) );
+        store.putLog( new Operation( csnB ) );
+        store.putLog( new Operation( csnC ) );
+        store.putLog( new Operation( csnD ) );
+
+        Set<ReplicaId> expectedKnownReplicaIds = new HashSet<ReplicaId>();
+        expectedKnownReplicaIds.add( REPLICA_ID );
+        expectedKnownReplicaIds.add( OTHER_REPLICA_ID );
+        expectedKnownReplicaIds.add( OTHER_REPLICA_ID_2 );
+
+        Assert.assertEquals( expectedKnownReplicaIds, store.getKnownReplicaIds() );
+
+        CSNVector expectedUpdateVector = new CSNVector();
+        expectedUpdateVector.setCSN( csnB );
+        expectedUpdateVector.setCSN( csnD );
+
+        Assert.assertEquals( expectedUpdateVector, store.getUpdateVector() );
+
+        CSNVector expectedPurgeVector = new CSNVector();
+        expectedPurgeVector.setCSN( csnA );
+        expectedPurgeVector.setCSN( csnC );
+
+        Assert.assertEquals( expectedPurgeVector, store.getPurgeVector() );
+    }
+
+
+    private void testGetLogs( CSN csn, Operation operation )
+    {
+        List<Operation> operations = new ArrayList<Operation>();
+        operations.add( operation );
+        testGetLogs( csn, operations );
+    }
+
+
+    private void testGetLogs( CSN csn, List operations )
+    {
+        Iterator it = operations.iterator();
+        ReplicationLogIterator rit;
+
+        rit = store.getLogs( csn, true );
+        testGetLogs( it, rit );
+
+        rit = store.getLogs( csn, false );
+        Assert.assertFalse( rit.next() );
+        rit.close();
+    }
+
+
+    private void testGetLogs( CSNVector updateVector, boolean inclusive, List operations )
+    {
+        Iterator it = operations.iterator();
+        ReplicationLogIterator rit;
+
+        rit = store.getLogs( updateVector, inclusive );
+        testGetLogs( it, rit );
+    }
+
+
+    private void testGetLogs( Iterator expectedIt, ReplicationLogIterator actualIt )
+    {
+        while ( expectedIt.hasNext() )
+        {
+            Operation expected = ( Operation ) expectedIt.next();
+            Assert.assertTrue( actualIt.next() );
+
+            Operation actual = actualIt.getOperation();
+            Assert.assertEquals( expected.getCSN(), actual.getCSN() );
+            assertEquals( expected, actual );
+        }
+        Assert.assertFalse( actualIt.next() );
+        actualIt.close();
+    }
+
+
+    private void initStopWatch()
+    {
+        startTime = System.currentTimeMillis();
+    }
+
+
+    private void printElapsedTime( String testName )
+    {
+        long endTime = System.currentTimeMillis();
+        System.out.println( "Subtest #" + ( ++testCount ) + " [" + testName + "]: " + ( endTime - startTime ) + " ms" );
+        startTime = System.currentTimeMillis();
+    }
+
+
+    private static void assertEquals( Operation expected, Operation actual )
+    {
+        Assert.assertEquals( expected.toString(), actual.toString() );
+    }
+
+    private static class DirectoryServiceConfigurationImpl implements DirectoryServiceConfiguration
+    {
+        public DirectoryService getService()
+        {
+            return null;
+        }
+
+
+        public String getInstanceId()
+        {
+            return null;
+        }
+
+
+        public Hashtable getEnvironment()
+        {
+            return null;
+        }
+
+
+        public StartupConfiguration getStartupConfiguration()
+        {
+            MutableStartupConfiguration cfg = new MutableStartupConfiguration();
+            cfg.setWorkingDirectory( DB_PATH );
+            return cfg;
+        }
+
+
+        public Registries getRegistries()
+        {
+            return null;
+        }
+
+
+        public PartitionNexus getPartitionNexus()
+        {
+            return null;
+        }
+
+
+        public InterceptorChain getInterceptorChain()
+        {
+            return null;
+        }
+
+
+        public boolean isFirstStart()
+        {
+            return false;
+        }
+
+
+        public DirectoryServiceListener getServiceListener()
+        {
+            return null;
+        }
+
+
+        public SchemaManager getSchemaManager()
+        {
+            return null;
+        }
+    }
+}



Mime
View raw message