You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ji...@apache.org on 2006/05/05 14:52:54 UTC
svn commit: r400067 [3/7] - in /directory/trunks:
apacheds/protocol-ldap/src/main/java/org/apache/directory/server/ldap/support/extended/
clients/ldap/ mina/core/src/main/java/org/apache/mina/filter/
mina/core/src/main/java/org/apache/mina/handler/mult...
Modified: directory/trunks/mina/filter-compression/src/test/java/org/apache/mina/filter/CompressionFilterTest.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/filter-compression/src/test/java/org/apache/mina/filter/CompressionFilterTest.java?rev=400067&r1=400066&r2=400067&view=diff
==============================================================================
--- directory/trunks/mina/filter-compression/src/test/java/org/apache/mina/filter/CompressionFilterTest.java (original)
+++ directory/trunks/mina/filter-compression/src/test/java/org/apache/mina/filter/CompressionFilterTest.java Fri May 5 05:52:49 2006
@@ -1,210 +1,210 @@
-/*
- * @(#) $Id$
- *
- * Copyright 2004 The Apache Software Foundation
- *
- * Licensed 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.mina.filter;
-
-import org.apache.mina.common.ByteBuffer;
-import org.apache.mina.common.IoFilterChain;
-import org.apache.mina.common.IoSession;
-import org.apache.mina.common.IoFilter.NextFilter;
-import org.apache.mina.filter.support.Zlib;
-import org.apache.mina.common.IoFilter.WriteRequest;
-import org.easymock.MockControl;
-import org.easymock.AbstractMatcher;
-
-import junit.framework.TestCase;
-
-/**
- * @author The Apache Directory Project (mina-dev@directory.apache.org)
- * @version $Rev$, $Date$
- */
-public class CompressionFilterTest extends TestCase
-{
- private MockControl mockSession;
- private MockControl mockNextFilter;
- private MockControl mockIoFilterChain;
- private IoSession session;
- private NextFilter nextFilter;
- private IoFilterChain ioFilterChain;
- private CompressionFilter filter;
- private Zlib deflater;
- private Zlib inflater;
- private Zlib actualDeflater;
- private Zlib actualInflater;
-
- // the sample data to be used for testing
- String strCompress =
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. " +
- "The quick brown fox jumps over the lazy dog. ";
-
- protected void setUp()
- {
- // create the necessary mock controls.
- mockSession = MockControl.createControl( IoSession.class );
- mockNextFilter = MockControl.createControl( NextFilter.class );
- mockIoFilterChain = MockControl.createControl( IoFilterChain.class );
-
- // set the default matcher
- mockNextFilter.setDefaultMatcher( new DataMatcher() );
-
- session = ( IoSession ) mockSession.getMock();
- nextFilter = ( NextFilter ) mockNextFilter.getMock();
- ioFilterChain = ( IoFilterChain ) mockIoFilterChain.getMock();
-
- // create an instance of the filter
- filter = new CompressionFilter( CompressionFilter.COMPRESSION_MAX );
-
- // deflater and inflater that will be used by the filter
- deflater = new Zlib( Zlib.COMPRESSION_MAX, Zlib.MODE_DEFLATER );
- inflater = new Zlib( Zlib.COMPRESSION_MAX, Zlib.MODE_INFLATER );
-
- // create instances of the deflater and inflater to help test the output
- actualDeflater = new Zlib( Zlib.COMPRESSION_MAX, Zlib.MODE_DEFLATER );
- actualInflater = new Zlib( Zlib.COMPRESSION_MAX, Zlib.MODE_INFLATER );
- }
-
- public void testCompression() throws Exception
- {
- // prepare the input data
- ByteBuffer buf = ByteBuffer.wrap( strCompress.getBytes( "UTF8" ) );
- ByteBuffer actualOutput = actualDeflater.deflate( buf );
- WriteRequest writeRequest = new WriteRequest( buf );
-
- // record all the mock calls
- ioFilterChain.contains( CompressionFilter.class );
- mockIoFilterChain.setReturnValue( false );
-
- ioFilterChain.getSession();
- mockIoFilterChain.setReturnValue( session );
-
- session.setAttribute( CompressionFilter.class.getName() + ".Deflater", deflater );
- mockSession.setDefaultMatcher( new DataMatcher() );
- mockSession.setReturnValue( null, MockControl.ONE );
-
- session.setAttribute( CompressionFilter.class.getName() + ".Inflater", inflater );
- mockSession.setReturnValue( null, MockControl.ONE );
-
- session.containsAttribute( CompressionFilter.DISABLE_COMPRESSION_ONCE );
- mockSession.setReturnValue( false );
-
- session.getAttribute( CompressionFilter.class.getName() + ".Deflater" );
- mockSession.setReturnValue( deflater );
-
- nextFilter.filterWrite( session, new WriteRequest( actualOutput ) );
-
- // switch to playback mode
- mockSession.replay();
- mockIoFilterChain.replay();
- mockNextFilter.replay();
-
- // make the actual calls on the filter
- filter.onPreAdd( ioFilterChain, "CompressionFilter", nextFilter );
- filter.filterWrite( nextFilter, session, writeRequest );
-
- // verify that all the calls happened as recorded
- mockNextFilter.verify();
-
- assertTrue( true );
- }
-
- public void testDecompression() throws Exception
- {
- // prepare the input data
- ByteBuffer buf = ByteBuffer.wrap( strCompress.getBytes( "UTF8" ) );
- ByteBuffer byteInput = actualDeflater.deflate( buf );
- ByteBuffer actualOutput = actualInflater.inflate( byteInput );
-
- // record all the mock calls
- ioFilterChain.contains( CompressionFilter.class );
- mockIoFilterChain.setReturnValue( false );
-
- ioFilterChain.getSession();
- mockIoFilterChain.setReturnValue( session );
-
- session.setAttribute( CompressionFilter.class.getName() + ".Deflater", deflater );
- mockSession.setDefaultMatcher( new DataMatcher() );
- mockSession.setReturnValue( null, MockControl.ONE );
-
- session.setAttribute( CompressionFilter.class.getName() + ".Inflater", inflater );
- mockSession.setReturnValue( null, MockControl.ONE );
-
- session.getAttribute( CompressionFilter.class.getName() + ".Inflater" );
- mockSession.setReturnValue( inflater );
-
- nextFilter.messageReceived( session, actualOutput );
-
- // switch to playback mode
- mockSession.replay();
- mockIoFilterChain.replay();
- mockNextFilter.replay();
-
- // make the actual calls on the filter
- filter.onPreAdd( ioFilterChain, "CompressionFilter", nextFilter );
- filter.messageReceived( nextFilter, session, byteInput );
-
- // verify that all the calls happened as recorded
- mockNextFilter.verify();
-
- assertTrue( true );
- }
-
- /**
- * A matcher used to check if the actual and expected outputs matched
- *
- * @author The Apache Directory MINA subproject (mina-dev@directory.apache.org)
- */
- class DataMatcher extends AbstractMatcher
- {
- protected boolean argumentMatches( Object arg0, Object arg1 )
- {
- // we need to only verify the ByteBuffer output
- if( arg0 instanceof WriteRequest )
- {
- WriteRequest expected = (WriteRequest) arg0;
- WriteRequest actual = (WriteRequest) arg1;
- ByteBuffer bExpected = (ByteBuffer) expected.getMessage();
- ByteBuffer bActual = (ByteBuffer) actual.getMessage();
- return bExpected.equals( bActual );
- }
- return true;
- }
- }
-}
+/*
+ * @(#) $Id$
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.mina.filter;
+
+import org.apache.mina.common.ByteBuffer;
+import org.apache.mina.common.IoFilterChain;
+import org.apache.mina.common.IoSession;
+import org.apache.mina.common.IoFilter.NextFilter;
+import org.apache.mina.filter.support.Zlib;
+import org.apache.mina.common.IoFilter.WriteRequest;
+import org.easymock.MockControl;
+import org.easymock.AbstractMatcher;
+
+import junit.framework.TestCase;
+
+/**
+ * @author The Apache Directory Project (mina-dev@directory.apache.org)
+ * @version $Rev$, $Date$
+ */
+public class CompressionFilterTest extends TestCase
+{
+ private MockControl mockSession;
+ private MockControl mockNextFilter;
+ private MockControl mockIoFilterChain;
+ private IoSession session;
+ private NextFilter nextFilter;
+ private IoFilterChain ioFilterChain;
+ private CompressionFilter filter;
+ private Zlib deflater;
+ private Zlib inflater;
+ private Zlib actualDeflater;
+ private Zlib actualInflater;
+
+ // the sample data to be used for testing
+ String strCompress =
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. " +
+ "The quick brown fox jumps over the lazy dog. ";
+
+ protected void setUp()
+ {
+ // create the necessary mock controls.
+ mockSession = MockControl.createControl( IoSession.class );
+ mockNextFilter = MockControl.createControl( NextFilter.class );
+ mockIoFilterChain = MockControl.createControl( IoFilterChain.class );
+
+ // set the default matcher
+ mockNextFilter.setDefaultMatcher( new DataMatcher() );
+
+ session = ( IoSession ) mockSession.getMock();
+ nextFilter = ( NextFilter ) mockNextFilter.getMock();
+ ioFilterChain = ( IoFilterChain ) mockIoFilterChain.getMock();
+
+ // create an instance of the filter
+ filter = new CompressionFilter( CompressionFilter.COMPRESSION_MAX );
+
+ // deflater and inflater that will be used by the filter
+ deflater = new Zlib( Zlib.COMPRESSION_MAX, Zlib.MODE_DEFLATER );
+ inflater = new Zlib( Zlib.COMPRESSION_MAX, Zlib.MODE_INFLATER );
+
+ // create instances of the deflater and inflater to help test the output
+ actualDeflater = new Zlib( Zlib.COMPRESSION_MAX, Zlib.MODE_DEFLATER );
+ actualInflater = new Zlib( Zlib.COMPRESSION_MAX, Zlib.MODE_INFLATER );
+ }
+
+ public void testCompression() throws Exception
+ {
+ // prepare the input data
+ ByteBuffer buf = ByteBuffer.wrap( strCompress.getBytes( "UTF8" ) );
+ ByteBuffer actualOutput = actualDeflater.deflate( buf );
+ WriteRequest writeRequest = new WriteRequest( buf );
+
+ // record all the mock calls
+ ioFilterChain.contains( CompressionFilter.class );
+ mockIoFilterChain.setReturnValue( false );
+
+ ioFilterChain.getSession();
+ mockIoFilterChain.setReturnValue( session );
+
+ session.setAttribute( CompressionFilter.class.getName() + ".Deflater", deflater );
+ mockSession.setDefaultMatcher( new DataMatcher() );
+ mockSession.setReturnValue( null, MockControl.ONE );
+
+ session.setAttribute( CompressionFilter.class.getName() + ".Inflater", inflater );
+ mockSession.setReturnValue( null, MockControl.ONE );
+
+ session.containsAttribute( CompressionFilter.DISABLE_COMPRESSION_ONCE );
+ mockSession.setReturnValue( false );
+
+ session.getAttribute( CompressionFilter.class.getName() + ".Deflater" );
+ mockSession.setReturnValue( deflater );
+
+ nextFilter.filterWrite( session, new WriteRequest( actualOutput ) );
+
+ // switch to playback mode
+ mockSession.replay();
+ mockIoFilterChain.replay();
+ mockNextFilter.replay();
+
+ // make the actual calls on the filter
+ filter.onPreAdd( ioFilterChain, "CompressionFilter", nextFilter );
+ filter.filterWrite( nextFilter, session, writeRequest );
+
+ // verify that all the calls happened as recorded
+ mockNextFilter.verify();
+
+ assertTrue( true );
+ }
+
+ public void testDecompression() throws Exception
+ {
+ // prepare the input data
+ ByteBuffer buf = ByteBuffer.wrap( strCompress.getBytes( "UTF8" ) );
+ ByteBuffer byteInput = actualDeflater.deflate( buf );
+ ByteBuffer actualOutput = actualInflater.inflate( byteInput );
+
+ // record all the mock calls
+ ioFilterChain.contains( CompressionFilter.class );
+ mockIoFilterChain.setReturnValue( false );
+
+ ioFilterChain.getSession();
+ mockIoFilterChain.setReturnValue( session );
+
+ session.setAttribute( CompressionFilter.class.getName() + ".Deflater", deflater );
+ mockSession.setDefaultMatcher( new DataMatcher() );
+ mockSession.setReturnValue( null, MockControl.ONE );
+
+ session.setAttribute( CompressionFilter.class.getName() + ".Inflater", inflater );
+ mockSession.setReturnValue( null, MockControl.ONE );
+
+ session.getAttribute( CompressionFilter.class.getName() + ".Inflater" );
+ mockSession.setReturnValue( inflater );
+
+ nextFilter.messageReceived( session, actualOutput );
+
+ // switch to playback mode
+ mockSession.replay();
+ mockIoFilterChain.replay();
+ mockNextFilter.replay();
+
+ // make the actual calls on the filter
+ filter.onPreAdd( ioFilterChain, "CompressionFilter", nextFilter );
+ filter.messageReceived( nextFilter, session, byteInput );
+
+ // verify that all the calls happened as recorded
+ mockNextFilter.verify();
+
+ assertTrue( true );
+ }
+
+ /**
+ * A matcher used to check if the actual and expected outputs matched
+ *
+ * @author The Apache Directory MINA subproject (mina-dev@directory.apache.org)
+ */
+ class DataMatcher extends AbstractMatcher
+ {
+ protected boolean argumentMatches( Object arg0, Object arg1 )
+ {
+ // we need to only verify the ByteBuffer output
+ if( arg0 instanceof WriteRequest )
+ {
+ WriteRequest expected = (WriteRequest) arg0;
+ WriteRequest actual = (WriteRequest) arg1;
+ ByteBuffer bExpected = (ByteBuffer) expected.getMessage();
+ ByteBuffer bActual = (ByteBuffer) actual.getMessage();
+ return bExpected.equals( bActual );
+ }
+ return true;
+ }
+ }
+}
Modified: directory/trunks/mina/filter-compression/src/test/java/org/apache/mina/filter/support/ZlibTest.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/filter-compression/src/test/java/org/apache/mina/filter/support/ZlibTest.java?rev=400067&r1=400066&r2=400067&view=diff
==============================================================================
--- directory/trunks/mina/filter-compression/src/test/java/org/apache/mina/filter/support/ZlibTest.java (original)
+++ directory/trunks/mina/filter-compression/src/test/java/org/apache/mina/filter/support/ZlibTest.java Fri May 5 05:52:49 2006
@@ -1,134 +1,134 @@
-/*
- * @(#) $Id$
- *
- * Copyright 2004 The Apache Software Foundation
- *
- * Licensed 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.mina.filter.support;
-
-import java.io.IOException;
-import java.nio.charset.Charset;
-
-import org.apache.mina.common.ByteBuffer;
-
-import junit.framework.TestCase;
-
-/**
- * @author The Apache Directory Project (mina-dev@directory.apache.org)
- * @version $Rev$, $Date$
- */
-public class ZlibTest extends TestCase
-{
- private Zlib deflater = null;
- private Zlib inflater = null;
-
- protected void setUp() throws Exception
- {
- deflater = new Zlib( Zlib.COMPRESSION_MAX, Zlib.MODE_DEFLATER );
- inflater = new Zlib( Zlib.COMPRESSION_MAX, Zlib.MODE_INFLATER );
- }
-
- public void testCompression() throws Exception
- {
- String strInput = "";
-
- // increase the count to as many as required to generate a long
- // string for input
- for( int i = 0; i < 10; i++ )
- {
- strInput += "The quick brown fox jumps over the lazy dog. ";
- }
- ByteBuffer byteInput = ByteBuffer.wrap( strInput.getBytes( "UTF8" ) );
-
- // increase the count to have the compression and decompression
- // done using the same instance of Zlib
- for( int i = 0; i < 5; i++ )
- {
- ByteBuffer byteCompressed = deflater.deflate( byteInput );
- ByteBuffer byteUncompressed = inflater.inflate( byteCompressed );
- String strOutput = byteUncompressed.getString( Charset.forName( "UTF8" )
- .newDecoder() );
- assertTrue( strOutput.equals( strInput ) );
- }
- }
-
- public void testCorruptedData() throws Exception
- {
- String strInput = "Hello World";
- ByteBuffer byteInput = ByteBuffer.wrap( strInput.getBytes( "UTF8" ) );
-
- ByteBuffer byteCompressed = deflater.deflate( byteInput );
- // change the contents to something else. Since this doesn't check
- // for integrity, it wont throw an exception
- byteCompressed.put( 5, (byte) 0xa );
- ByteBuffer byteUncompressed = inflater.inflate( byteCompressed );
- String strOutput = byteUncompressed.getString( Charset.forName( "UTF8" )
- .newDecoder() );
- assertFalse( strOutput.equals( strInput ) );
- }
-
- public void testCorruptedHeader() throws Exception
- {
- String strInput = "Hello World";
- ByteBuffer byteInput = ByteBuffer.wrap( strInput.getBytes( "UTF8" ) );
-
- ByteBuffer byteCompressed = deflater.deflate( byteInput );
- // write a bad value into the zlib header. Make sure that
- // the decompression fails
- byteCompressed.put( 0, (byte) 0xca );
- try
- {
- inflater.inflate( byteCompressed );
- }
- catch( IOException e )
- {
- assertTrue( true );
- return;
- }
- assertTrue( false );
- }
-
- public void testFragments() throws Exception
- {
- String strInput = "";
- for( int i = 0; i < 10; i++ )
- {
- strInput += "The quick brown fox jumps over the lazy dog. ";
- }
- ByteBuffer byteInput = ByteBuffer.wrap( strInput.getBytes( "UTF8" ) );
- ByteBuffer byteCompressed = null;
-
- for( int i = 0; i < 5; i++ )
- {
- byteCompressed = deflater.deflate( byteInput );
- if( i == 0 )
- {
- // decompress the first compressed output since it contains
- // the zlib header, which will not be generated for further
- // compressions done with the same instance
- ByteBuffer byteUncompressed = inflater.inflate( byteCompressed );
- String strOutput = byteUncompressed.getString( Charset.forName( "UTF8" )
- .newDecoder() );
- assertTrue( strOutput.equals( strInput ) );
- }
- }
- // check if the last compressed data block can be decompressed
- // successfully.
- ByteBuffer byteUncompressed = inflater.inflate( byteCompressed );
- String strOutput = byteUncompressed.getString( Charset.forName( "UTF8" )
- .newDecoder() );
- assertTrue( strOutput.equals( strInput ) );
- }
-}
+/*
+ * @(#) $Id$
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.mina.filter.support;
+
+import java.io.IOException;
+import java.nio.charset.Charset;
+
+import org.apache.mina.common.ByteBuffer;
+
+import junit.framework.TestCase;
+
+/**
+ * @author The Apache Directory Project (mina-dev@directory.apache.org)
+ * @version $Rev$, $Date$
+ */
+public class ZlibTest extends TestCase
+{
+ private Zlib deflater = null;
+ private Zlib inflater = null;
+
+ protected void setUp() throws Exception
+ {
+ deflater = new Zlib( Zlib.COMPRESSION_MAX, Zlib.MODE_DEFLATER );
+ inflater = new Zlib( Zlib.COMPRESSION_MAX, Zlib.MODE_INFLATER );
+ }
+
+ public void testCompression() throws Exception
+ {
+ String strInput = "";
+
+ // increase the count to as many as required to generate a long
+ // string for input
+ for( int i = 0; i < 10; i++ )
+ {
+ strInput += "The quick brown fox jumps over the lazy dog. ";
+ }
+ ByteBuffer byteInput = ByteBuffer.wrap( strInput.getBytes( "UTF8" ) );
+
+ // increase the count to have the compression and decompression
+ // done using the same instance of Zlib
+ for( int i = 0; i < 5; i++ )
+ {
+ ByteBuffer byteCompressed = deflater.deflate( byteInput );
+ ByteBuffer byteUncompressed = inflater.inflate( byteCompressed );
+ String strOutput = byteUncompressed.getString( Charset.forName( "UTF8" )
+ .newDecoder() );
+ assertTrue( strOutput.equals( strInput ) );
+ }
+ }
+
+ public void testCorruptedData() throws Exception
+ {
+ String strInput = "Hello World";
+ ByteBuffer byteInput = ByteBuffer.wrap( strInput.getBytes( "UTF8" ) );
+
+ ByteBuffer byteCompressed = deflater.deflate( byteInput );
+ // change the contents to something else. Since this doesn't check
+ // for integrity, it wont throw an exception
+ byteCompressed.put( 5, (byte) 0xa );
+ ByteBuffer byteUncompressed = inflater.inflate( byteCompressed );
+ String strOutput = byteUncompressed.getString( Charset.forName( "UTF8" )
+ .newDecoder() );
+ assertFalse( strOutput.equals( strInput ) );
+ }
+
+ public void testCorruptedHeader() throws Exception
+ {
+ String strInput = "Hello World";
+ ByteBuffer byteInput = ByteBuffer.wrap( strInput.getBytes( "UTF8" ) );
+
+ ByteBuffer byteCompressed = deflater.deflate( byteInput );
+ // write a bad value into the zlib header. Make sure that
+ // the decompression fails
+ byteCompressed.put( 0, (byte) 0xca );
+ try
+ {
+ inflater.inflate( byteCompressed );
+ }
+ catch( IOException e )
+ {
+ assertTrue( true );
+ return;
+ }
+ assertTrue( false );
+ }
+
+ public void testFragments() throws Exception
+ {
+ String strInput = "";
+ for( int i = 0; i < 10; i++ )
+ {
+ strInput += "The quick brown fox jumps over the lazy dog. ";
+ }
+ ByteBuffer byteInput = ByteBuffer.wrap( strInput.getBytes( "UTF8" ) );
+ ByteBuffer byteCompressed = null;
+
+ for( int i = 0; i < 5; i++ )
+ {
+ byteCompressed = deflater.deflate( byteInput );
+ if( i == 0 )
+ {
+ // decompress the first compressed output since it contains
+ // the zlib header, which will not be generated for further
+ // compressions done with the same instance
+ ByteBuffer byteUncompressed = inflater.inflate( byteCompressed );
+ String strOutput = byteUncompressed.getString( Charset.forName( "UTF8" )
+ .newDecoder() );
+ assertTrue( strOutput.equals( strInput ) );
+ }
+ }
+ // check if the last compressed data block can be decompressed
+ // successfully.
+ ByteBuffer byteUncompressed = inflater.inflate( byteCompressed );
+ String strOutput = byteUncompressed.getString( Charset.forName( "UTF8" )
+ .newDecoder() );
+ assertTrue( strOutput.equals( strInput ) );
+ }
+}
Modified: directory/trunks/naming/naming-config/src/java/org/apache/naming/config/Config.java
URL: http://svn.apache.org/viewcvs/directory/trunks/naming/naming-config/src/java/org/apache/naming/config/Config.java?rev=400067&r1=400066&r2=400067&view=diff
==============================================================================
--- directory/trunks/naming/naming-config/src/java/org/apache/naming/config/Config.java (original)
+++ directory/trunks/naming/naming-config/src/java/org/apache/naming/config/Config.java Fri May 5 05:52:49 2006
@@ -12,65 +12,109 @@
* 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.naming.config;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-
-import javax.naming.CompositeName;
+ */
+
+
+
+package org.apache.naming.config;
+
+
+
+import java.util.Collection;
+
+import java.util.Collections;
+
+import java.util.HashMap;
+
+import java.util.Iterator;
+
+import java.util.LinkedList;
+
+import java.util.Map;
+
+import java.util.Set;
+
+import java.util.TreeSet;
+
+
+
+import javax.naming.CompositeName;
+
import javax.naming.InvalidNameException;
-import javax.naming.LinkRef;
-import javax.naming.StringRefAddr;
+import javax.naming.LinkRef;
+
+import javax.naming.StringRefAddr;
+
+
+import org.apache.commons.collections.map.UnmodifiableMap;
+
+import org.apache.commons.lang.builder.ToStringBuilder;
-import org.apache.commons.collections.map.UnmodifiableMap;
-import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
-
-import org.apache.naming.ResourceRef;
-
-/**
- * Configuration classes.
- *
- * @author <a href="brett@apache.org">Brett Porter</a>
- * @version $Id: Config.java,v 1.2 2003/12/01 02:02:45 brett Exp $
- */
-public final class Config
-{
+
+
+import org.apache.naming.ResourceRef;
+
+
+
+/**
+
+ * Configuration classes.
+
+ *
+
+ * @author <a href="brett@apache.org">Brett Porter</a>
+
+ * @version $Id: Config.java,v 1.2 2003/12/01 02:02:45 brett Exp $
+
+ */
+
+public final class Config
+
+{
+
/**
* Naming context configuration.
*/
- public static final class Naming
- {
+ public static final class Naming
+
+ {
+
/** list of context configurations */
- private final Collection contextList = new LinkedList();
-
+ private final Collection contextList = new LinkedList();
+
+
+
/**
* Adds a new Context configuration to the context list.
*
* @param context Context configuration to add.
*/
- public void addContext(Context context)
- {
- contextList.add(context);
- }
+ public void addContext(Context context)
+
+ {
+
+ contextList.add(context);
+
+ }
+
/**
* Returns the context list.
- *
- * @return context list.
- */
- public Collection getContextList()
- {
- return Collections.unmodifiableCollection(contextList);
- }
+ *
+
+ * @return context list.
+
+ */
+
+ public Collection getContextList()
+
+ {
+
+ return Collections.unmodifiableCollection(contextList);
+
+ }
+
/**
* Generates and returns a map, keyed on context name, of sorted sets
@@ -78,103 +122,166 @@
*
* @return map of sets of configured names, keyed on context name.
* @throws InvalidNameException if an invalid name is encountered
- */
- public Map generateSortedSubcontextNameSet() throws InvalidNameException
- {
- Map sortedSubcontextNameMap = new HashMap();
- for (Iterator i = contextList.iterator(); i.hasNext();)
+ */
+
+ public Map generateSortedSubcontextNameSet() throws InvalidNameException
+
+ {
+
+ Map sortedSubcontextNameMap = new HashMap();
+
+ for (Iterator i = contextList.iterator(); i.hasNext();)
+
{
- Set sortedSubcontextNameSet = new TreeSet();
- Context context = (Context) i.next();
+ Set sortedSubcontextNameSet = new TreeSet();
+
+ Context context = (Context) i.next();
+
context.addSubContextNames(sortedSubcontextNameSet);
- sortedSubcontextNameMap.put(context.getName(), sortedSubcontextNameSet);
- }
- return UnmodifiableMap.decorate(sortedSubcontextNameMap);
- }
+ sortedSubcontextNameMap.put(context.getName(), sortedSubcontextNameSet);
+
+ }
+
+ return UnmodifiableMap.decorate(sortedSubcontextNameMap);
+
+ }
+
/**
* Returns a string representation of the context list.
*
* @return context list as a string.
- */
- public String toString()
- {
- return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
- .append("contextList", contextList)
- .toString();
- }
- }
+ */
+
+ public String toString()
+
+ {
+
+ return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+
+ .append("contextList", contextList)
+
+ .toString();
+
+ }
+
+ }
+
/**
* Configuration for a Context. Contexts contain lists of
* {@link org.apache.naming.config.Config$Environment} entries,
* {@link org.apache.naming.config.Config$Resource} references, and
* {@link org.apache.naming.config.Config$Link} links.
- */
- public static final class Context
+ */
+
+ public static final class Context
+
{
- /** External name of the context -- key in ContextBindings */
+ /** External name of the context -- key in ContextBindings */
+
private String name;
/** Base name relative to which property and resource bindings are set up */
private String base;
-
- private final Collection environmentList = new LinkedList();
+
+
+ private final Collection environmentList = new LinkedList();
+
private final Collection resourceList = new LinkedList();
- private final Collection linkList = new LinkedList();
-
+ private final Collection linkList = new LinkedList();
+
+
+
/**
* Adds an Environment configuration to the environment list.
*
* @param environment environment configuration to add.
*/
- public void addEnvironment(Environment environment)
- {
- environmentList.add(environment);
- }
-
+ public void addEnvironment(Environment environment)
+
+ {
+
+ environmentList.add(environment);
+
+ }
+
+
+
/**
* Adds the subcontext names in this Context to the input set.
- *
+ *
+
* @param sortedSubcontextNameSet set to be augmented with names from
* this context.
* @throws InvalidNameException if the configured string name of a
- * Resource or Environment in this context is not a valid JNDI name.
- */
- public void addSubContextNames(Set sortedSubcontextNameSet) throws InvalidNameException
- {
- if ((name != null) && !environmentList.iterator().hasNext() && !resourceList.iterator().hasNext())
- {
- sortedSubcontextNameSet.add(name);
- }
- for (Iterator i = environmentList.iterator(); i.hasNext();)
- {
- Environment e = (Environment) i.next();
- CompositeName name = new CompositeName(e.getName());
- addSubContextNames(name, sortedSubcontextNameSet);
- }
- for (Iterator i = resourceList.iterator(); i.hasNext();)
- {
- Resource r = (Resource) i.next();
- CompositeName name = new CompositeName(r.getName());
- addSubContextNames(name, sortedSubcontextNameSet);
- }
- }
-
- private void addSubContextNames(CompositeName name, Set sortedSubcontextNameSet) {
- for (int j = 1; j <= name.size() - 1; j++) {
- sortedSubcontextNameSet.add(name.getPrefix(j).toString());
- }
- }
+ * Resource or Environment in this context is not a valid JNDI name.
+
+ */
+
+ public void addSubContextNames(Set sortedSubcontextNameSet) throws InvalidNameException
+
+ {
+
+ if ((name != null) && !environmentList.iterator().hasNext() && !resourceList.iterator().hasNext())
+
+ {
+
+ sortedSubcontextNameSet.add(name);
+
+ }
+
+ for (Iterator i = environmentList.iterator(); i.hasNext();)
+
+ {
+
+ Environment e = (Environment) i.next();
+
+ CompositeName name = new CompositeName(e.getName());
+
+ addSubContextNames(name, sortedSubcontextNameSet);
+
+ }
+
+ for (Iterator i = resourceList.iterator(); i.hasNext();)
+
+ {
+
+ Resource r = (Resource) i.next();
+
+ CompositeName name = new CompositeName(r.getName());
+
+ addSubContextNames(name, sortedSubcontextNameSet);
+
+ }
+
+ }
+
+
+
+ private void addSubContextNames(CompositeName name, Set sortedSubcontextNameSet) {
+
+ for (int j = 1; j <= name.size() - 1; j++) {
+
+ sortedSubcontextNameSet.add(name.getPrefix(j).toString());
+
+ }
+
+ }
+
/**
* Adds a Resource configuration to the resource list.
*
* @param resource resource configuration to add.
- */
- public void addResource(Resource resource)
- {
- resourceList.add(resource);
+ */
+
+ public void addResource(Resource resource)
+
+ {
+
+ resourceList.add(resource);
+
}
/**
@@ -192,40 +299,59 @@
* Returns the environment list.
*
* @return list of Environment configurations in the Context
- */
- public Collection getEnvironmentList()
- {
- return Collections.unmodifiableCollection(environmentList);
- }
+ */
+
+ public Collection getEnvironmentList()
+
+ {
+
+ return Collections.unmodifiableCollection(environmentList);
+
+ }
+
/**
* Returns the name of this context.
*
* @return context name
- */
- public String getName()
- {
- return name;
- }
+ */
+
+ public String getName()
+
+ {
+
+ return name;
+
+ }
+
/**
* Sets the name of this context.
*
* @param name the name
- */
- public void setName(String name)
- {
- this.name = name;
- }
+ */
+
+ public void setName(String name)
+
+ {
+
+ this.name = name;
+
+ }
+
/**
* Returns the resource list.
*
* @return list of Resource configurations in the Context.
- */
- public Collection getResourceList()
- {
- return Collections.unmodifiableCollection(resourceList);
+ */
+
+ public Collection getResourceList()
+
+ {
+
+ return Collections.unmodifiableCollection(resourceList);
+
}
/**
@@ -236,22 +362,32 @@
public Collection getLinkList()
{
return Collections.unmodifiableCollection(linkList);
- }
+ }
+
/**
* Returns a string representation of the name, environment list and
* resource list of this context.
*
* @return string representation of this context.
- */
- public String toString()
- {
- return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
- .append("name", name)
- .append("environmentList", environmentList)
- .append("resourceList", resourceList)
- .toString();
- }
+ */
+
+ public String toString()
+
+ {
+
+ return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+
+ .append("name", name)
+
+ .append("environmentList", environmentList)
+
+ .append("resourceList", resourceList)
+
+ .toString();
+
+ }
+
/**
* @return Returns the base.
*/
@@ -266,96 +402,143 @@
this.base = base;
}
- }
+ }
+
/**
* Configuration for an Environment entry. Environment entries represent
* JNDI environment properties that take values that are primitive java
* types. The Environment configuration includes the type, the value and
* the JNDI name as a string, relative to the initial context.
- */
- public static final class Environment
- {
- private String name;
- private String value;
- private String type;
+ */
+
+ public static final class Environment
+
+ {
+
+ private String name;
+
+ private String value;
+
+ private String type;
+
/**
* Gets the name of this environment.
*
* @return name the name
*/
- public String getName()
- {
- return name;
- }
+ public String getName()
+
+ {
+
+ return name;
+
+ }
+
/**
* Sets the name of this environment.
*
* @param name the name
- */
- public void setName(String name)
- {
- this.name = name;
- }
+ */
+
+ public void setName(String name)
+
+ {
+
+ this.name = name;
+
+ }
+
/**
* Returns the class name of this environment entry.
*
* @return Environment entry class name
- */
- public String getType()
- {
- return type;
- }
+ */
+
+ public String getType()
+
+ {
+
+ return type;
+
+ }
+
/**
* Sets the class name of this environment entry.
*
* @param type class name
- */
- public void setType(String type)
- {
- this.type = type;
- }
+ */
+
+ public void setType(String type)
+
+ {
+
+ this.type = type;
+
+ }
+
/**
* Returns the value of this environment entry as a String.
*
* @return String representation of the value
- */
- public String getValue()
- {
- return value;
- }
+ */
+
+ public String getValue()
+
+ {
+
+ return value;
+
+ }
+
/**
* Sets the (String) value of this environment entry.
*
* @param value
- */
- public void setValue(String value)
- {
- this.value = value;
- }
+ */
+
+ public void setValue(String value)
+
+ {
+
+ this.value = value;
+
+ }
+
/**
* Returns the JNDI name, type and value of this environment entry as
* as String.
*
* @return String representation of this environment entry.
- */
- public String toString()
- {
- return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
- .append("name", name)
- .append("type", type)
- .append("value", value)
- .toString();
- }
-
- /**
+ */
+
+ public String toString()
+
+ {
+
+ return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+
+ .append("name", name)
+
+ .append("type", type)
+
+ .append("value", value)
+
+ .toString();
+
+ }
+
+
+
+ /**
+
* Tries to create an instance of type <code>this.type</code> using
* <code>this.value</code>.
* <p>
@@ -363,157 +546,257 @@
* <code>valueOf</code> methods are used and runtime exceptions
* are not handled. If <code>this.type</code> is not a primitive type,
* <code>null</code> is returned.
- *
- * @return object instance
- */
+ *
+
+ * @return object instance
+
+ */
+
public Object createValue()
- //TODO: handle / rethrow exceptions, support more types?
- {
- if (type.equals(String.class.getName()))
- {
- return value;
- }
- else if (type.equals(Boolean.class.getName()))
- {
- return Boolean.valueOf(value);
- }
- else if (type.equals(Integer.class.getName()))
- {
- return Integer.valueOf(value);
- }
- else if (type.equals(Short.class.getName()))
- {
- return Short.valueOf(value);
- }
- else if (type.equals(Character.class.getName()))
- {
- return new Character(value.charAt(0));
- }
- else if (type.equals(Double.class.getName()))
- {
- return Double.valueOf(value);
- }
- else if (type.equals(Float.class.getName()))
- {
- return Float.valueOf(value);
- }
- else if (type.equals(Byte.class.getName()))
- {
- return Byte.valueOf(value);
- }
- else if (type.equals(Long.class.getName()))
- {
- return Long.valueOf(value);
- }
- return null;
- }
- }
+ //TODO: handle / rethrow exceptions, support more types?
+
+ {
+
+ if (type.equals(String.class.getName()))
+
+ {
+
+ return value;
+
+ }
+
+ else if (type.equals(Boolean.class.getName()))
+
+ {
+
+ return Boolean.valueOf(value);
+
+ }
+
+ else if (type.equals(Integer.class.getName()))
+
+ {
+
+ return Integer.valueOf(value);
+
+ }
+
+ else if (type.equals(Short.class.getName()))
+
+ {
+
+ return Short.valueOf(value);
+
+ }
+
+ else if (type.equals(Character.class.getName()))
+
+ {
+
+ return new Character(value.charAt(0));
+
+ }
+
+ else if (type.equals(Double.class.getName()))
+
+ {
+
+ return Double.valueOf(value);
+
+ }
+
+ else if (type.equals(Float.class.getName()))
+
+ {
+
+ return Float.valueOf(value);
+
+ }
+
+ else if (type.equals(Byte.class.getName()))
+
+ {
+
+ return Byte.valueOf(value);
+
+ }
+
+ else if (type.equals(Long.class.getName()))
+
+ {
+
+ return Long.valueOf(value);
+
+ }
+
+ return null;
+
+ }
+
+ }
+
/**
* Configuration for a JNDI resource reference. Resource references
* include the type of the resource, the parameters to be used in creating
* the resource instance and the JNDI name of the resource as a string,
* relative to the initial context.
- */
- public static final class Resource
- {
- private String name;
- private String type;
- private final Map parameters = new HashMap();
+ */
+
+ public static final class Resource
+
+ {
+
+ private String name;
+
+ private String type;
+
+ private final Map parameters = new HashMap();
+
/**
* Adds a name-value pair to the parameters associated with this resource.
*
* @param name parameter name
* @param value parameter value
- */
- public void addParameter(String name, String value)
- {
- parameters.put(name, value);
+ */
+
+ public void addParameter(String name, String value)
+
+ {
+
+ parameters.put(name, value);
+
}
/**
* Returns the name of this resource.
*
* @return name
- */
- public String getName()
- {
- return name;
- }
+ */
+
+ public String getName()
+
+ {
+
+ return name;
+
+ }
+
/**
* Sets the name of this resource.
*
* @param name name.
- */
- public void setName(String name)
- {
- this.name = name;
- }
+ */
+
+ public void setName(String name)
+
+ {
+
+ this.name = name;
+
+ }
+
/**
* Returns the parameters associated with this resource as a Map.
* The keys of the map are the parameter names.
*
* @return parameters
- */
- public Map getParameters()
- {
- return parameters;
- }
+ */
+
+ public Map getParameters()
+
+ {
+
+ return parameters;
+
+ }
+
/**
* Returns the type of this resource.
*
* @return class name
- */
- public String getType()
- {
- return type;
- }
+ */
+
+ public String getType()
+
+ {
+
+ return type;
+
+ }
+
/**
* Sets the type of this resource.
*
* @param type class name.
- */
- public void setType(String type)
- {
- this.type = type;
- }
-
+ */
+
+ public void setType(String type)
+
+ {
+
+ this.type = type;
+
+ }
+
+
+
/**
* Creates a {@link ResourceRef} based on the configuration
* properties of this resource.
*
* @return ResourceRef instance.
- */
+ */
+
public Object createValue()
- //TODO: exceptions?
- {
- ResourceRef ref = new ResourceRef(type, null, null, null);
- for (Iterator i = parameters.keySet().iterator(); i.hasNext();)
- {
- String name = (String) i.next();
- String value = (String) parameters.get(name);
- ref.add(new StringRefAddr(name, value));
- }
- return ref;
- }
+ //TODO: exceptions?
+
+ {
+
+ ResourceRef ref = new ResourceRef(type, null, null, null);
+
+ for (Iterator i = parameters.keySet().iterator(); i.hasNext();)
+
+ {
+
+ String name = (String) i.next();
+
+ String value = (String) parameters.get(name);
+
+ ref.add(new StringRefAddr(name, value));
+
+ }
+
+ return ref;
+
+ }
+
/**
* Returns the name, type and parameter list as a String.
*
* @return String representation of this resource reference configuration.
- */
- public String toString()
- {
- return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
- .append("name", name)
- .append("type", type)
- .append("parameters", parameters)
- .toString();
+ */
+
+ public String toString()
+
+ {
+
+ return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+
+ .append("name", name)
+
+ .append("type", type)
+
+ .append("parameters", parameters)
+
+ .toString();
+
}
}
@@ -586,6 +869,9 @@
this.context = context;
}
- }
-}
-
+ }
+
+}
+
+
+
Modified: directory/trunks/naming/naming-config/src/test/org/apache/naming/config/XmlConfiguratorTest.java
URL: http://svn.apache.org/viewcvs/directory/trunks/naming/naming-config/src/test/org/apache/naming/config/XmlConfiguratorTest.java?rev=400067&r1=400066&r2=400067&view=diff
==============================================================================
--- directory/trunks/naming/naming-config/src/test/org/apache/naming/config/XmlConfiguratorTest.java (original)
+++ directory/trunks/naming/naming-config/src/test/org/apache/naming/config/XmlConfiguratorTest.java Fri May 5 05:52:49 2006
@@ -12,18 +12,28 @@
* 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.naming.config;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
+ */
+
+
+
+
+
+package org.apache.naming.config;
+
+
+
+import java.sql.Connection;
+
+import java.sql.ResultSet;
+
import java.sql.Statement;
-import java.util.Hashtable;
-
-import javax.naming.Context;
+import java.util.Hashtable;
+
+
+
+import javax.naming.Context;
+
import javax.naming.InitialContext;
import javax.naming.directory.Attributes;
@@ -36,40 +46,71 @@
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimePartDataSource;
-
-import javax.sql.DataSource;
-
+
+
+import javax.sql.DataSource;
+
+
+
import junit.framework.TestCase;
import org.apache.naming.ContextBindings;
-import org.apache.naming.NamingContextFactory;
-
-/**
- * Test case for the XML configuration methods, testing environment entries
- * and database connection resource factories.
- *
- * @author <a href="brett@apache.org">Brett Porter</a>
- * @version $Id: XmlConfiguratorTest.java,v 1.2 2003/12/01 02:02:45 brett Exp $
- */
-public class XmlConfiguratorTest extends TestCase
-{
- public XmlConfiguratorTest(String name) {
- super(name);
- }
-
- /*
- * @see TestCase#setUp()
- */
- protected void setUp() throws Exception {
- super.setUp();
- }
-
- /*
- * @see TestCase#tearDown()
- */
- protected void tearDown() throws Exception {
- super.tearDown();
- XmlConfigurator.destroyInitialContext();
+import org.apache.naming.NamingContextFactory;
+
+
+
+/**
+
+ * Test case for the XML configuration methods, testing environment entries
+
+ * and database connection resource factories.
+
+ *
+
+ * @author <a href="brett@apache.org">Brett Porter</a>
+
+ * @version $Id: XmlConfiguratorTest.java,v 1.2 2003/12/01 02:02:45 brett Exp $
+
+ */
+
+public class XmlConfiguratorTest extends TestCase
+
+{
+
+ public XmlConfiguratorTest(String name) {
+
+ super(name);
+
+ }
+
+
+
+ /*
+
+ * @see TestCase#setUp()
+
+ */
+
+ protected void setUp() throws Exception {
+
+ super.setUp();
+
+ }
+
+
+
+ /*
+
+ * @see TestCase#tearDown()
+
+ */
+
+ protected void tearDown() throws Exception {
+
+ super.tearDown();
+
+ XmlConfigurator.destroyInitialContext();
+
}
/**
@@ -83,8 +124,10 @@
* Alternate root context name specified in test-jndi2.xml. Must match
* name attribute of top-level context element in test-jndi2.xml
*/
- protected static String ALT_ROOT="alt/root/context";
-
+ protected static String ALT_ROOT="alt/root/context";
+
+
+
/**
* Test for correctly configured environment entries.
*
@@ -386,6 +429,9 @@
msg.setSubject("authenticated mail session test");
msg.setContent("this is a test", "text/plain");
Transport.send(msg);
- }
-}
-
+ }
+
+}
+
+
+
Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/NotImplementedException.java
URL: http://svn.apache.org/viewcvs/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/NotImplementedException.java?rev=400067&r1=400066&r2=400067&view=diff
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/NotImplementedException.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/NotImplementedException.java Fri May 5 05:52:49 2006
@@ -1,64 +1,64 @@
-/*
- * Copyright 2004 The Apache Software Foundation
- *
- * Licensed 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.
- *
- */
-
-/*
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.
+ *
+ */
+
+/*
$Id$
-
- -- (c) LDAPd Group --
- -- Please refer to the LICENSE.txt file in the root directory of --
+
+ -- (c) LDAPd Group --
+ -- Please refer to the LICENSE.txt file in the root directory of --
-- any LDAPd project for copyright and distribution information. --
-
- */
-
-package org.apache.directory.shared.ldap;
-
-
-/**
- * This exception is thrown when a Backend operation is either temporarily
- * unsupported or perminantly unsupported as part of its implementation. Write
- * operations on a backend set to readonly throw a type of unsupported exception
- * called ReadOnlyException.
- *
- * @author <a href="mailto:aok123@bellsouth.net">Alex Karasulu</a>
- * @author $Author: akarasulu $
- * @version $Revision$
- */
-public class NotImplementedException extends RuntimeException
-{
- static final long serialVersionUID = -5899307402675964298L;
-
-
- /**
- * Constructs an Exception with a detailed message.
- */
- public NotImplementedException()
- {
- super( "N O T I M P L E M E N T E D Y E T !" );
- }
-
-
- /**
- * Constructs an Exception with a detailed message.
- *
- * @param a_msg
- * The message associated with the exception.
- */
- public NotImplementedException(String a_msg)
- {
- super( "N O T I M P L E M E N T E D Y E T !\n" + a_msg );
- }
-}
+
+ */
+
+package org.apache.directory.shared.ldap;
+
+
+/**
+ * This exception is thrown when a Backend operation is either temporarily
+ * unsupported or perminantly unsupported as part of its implementation. Write
+ * operations on a backend set to readonly throw a type of unsupported exception
+ * called ReadOnlyException.
+ *
+ * @author <a href="mailto:aok123@bellsouth.net">Alex Karasulu</a>
+ * @author $Author: akarasulu $
+ * @version $Revision$
+ */
+public class NotImplementedException extends RuntimeException
+{
+ static final long serialVersionUID = -5899307402675964298L;
+
+
+ /**
+ * Constructs an Exception with a detailed message.
+ */
+ public NotImplementedException()
+ {
+ super( "N O T I M P L E M E N T E D Y E T !" );
+ }
+
+
+ /**
+ * Constructs an Exception with a detailed message.
+ *
+ * @param a_msg
+ * The message associated with the exception.
+ */
+ public NotImplementedException(String a_msg)
+ {
+ super( "N O T I M P L E M E N T E D Y E T !\n" + a_msg );
+ }
+}
Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/StoredProcedure.java
URL: http://svn.apache.org/viewcvs/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/StoredProcedure.java?rev=400067&r1=400066&r2=400067&view=diff
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/StoredProcedure.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/StoredProcedure.java Fri May 5 05:52:49 2006
@@ -1,328 +1,328 @@
-/*
- * Copyright 2006 The Apache Software Foundation
- *
- * Licensed 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.shared.ldap.codec.extended.operations;
-
-
-import java.nio.BufferOverflowException;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.apache.directory.shared.asn1.Asn1Object;
-import org.apache.directory.shared.asn1.ber.tlv.Length;
-import org.apache.directory.shared.asn1.ber.tlv.UniversalTag;
-import org.apache.directory.shared.asn1.ber.tlv.Value;
-import org.apache.directory.shared.asn1.codec.EncoderException;
-import org.apache.directory.shared.ldap.util.StringTools;
-
-
-/**
- * Stored Procedure Extended Operation bean
- *
- * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
- */
-public class StoredProcedure extends Asn1Object
-{
- private String language;
-
- private byte[] procedure;
-
- private ArrayList parameters;
-
- private transient StoredProcedureParameter currentParameter;
-
- /** The stored procedure length */
- private transient int storedProcedureLength;
-
- /** The parameters length */
- private transient int parametersLength;
-
- /** The list of all parameter lengths */
- private transient List parameterLength;
-
- /** The list of all parameter type lengths */
- private transient List paramTypeLength;
-
- /** The list of all parameter value lengths */
- private transient List paramValueLength;
-
- public String getLanguage()
- {
- return language;
- }
-
-
- public void setLanguage( String language )
- {
- this.language = language;
- }
-
-
- public byte[] getProcedure()
- {
- return procedure;
- }
-
-
- public void setProcedure( byte[] procedure )
- {
- this.procedure = procedure;
- }
-
-
- public List getParameters()
- {
- return parameters;
- }
-
-
- public void addParameter( StoredProcedureParameter parameter )
- {
- if ( parameters == null )
- {
- parameters = new ArrayList();
- }
-
- parameters.add( parameter );
- }
-
-
- public StoredProcedureParameter getCurrentParameter()
- {
- return currentParameter;
- }
-
-
- public void setCurrentParameter( StoredProcedureParameter currentParameter )
- {
- this.currentParameter = currentParameter;
- }
-
-
- /**
- * Bean for representing a Stored Procedure Parameter
- */
- public static class StoredProcedureParameter
- {
- private byte[] type;
-
- private byte[] value;
-
-
- public byte[] getType()
- {
- return type;
- }
-
-
- public void setType( byte[] type )
- {
- this.type = type;
- }
-
-
- public byte[] getValue()
- {
- return value;
- }
-
-
- public void setValue( byte[] value )
- {
- this.value = value;
- }
- }
-
- /**
- * Compute the StoredProcedure length
- *
- * 0x30 L1
- * |
- * +--> 0x04 L2 language
- * +--> 0x04 L3 procedure
- * [+--> 0x30 L4 (parameters)
- * |
- * +--> 0x30 L5-1 (parameter)
- * | |
- * | +--> 0x04 L6-1 type
- * | +--> 0x04 L7-1 value
- * |
- * +--> 0x30 L5-2 (parameter)
- * | |
- * | +--> 0x04 L6-2 type
- * | +--> 0x04 L7-2 value
- * |
- * +--> ...
- * |
- * +--> 0x30 L5-m (parameter)
- * |
- * +--> 0x04 L6-m type
- * +--> 0x04 L7-m value
- */
- public int computeLength()
- {
- // The language
- byte[] languageBytes = StringTools.getBytesUtf8( language );
-
- int languageLength = 1 + Length.getNbBytes( languageBytes.length )
- + languageBytes.length;
-
- // The procedure
- int procedureLength = 1 + Length.getNbBytes( procedure.length )
- + procedure.length;
-
- //int localParametersLength = 0;
-
- // Compute parameters length value
- if ( parameters != null )
- {
- parameterLength = new LinkedList();
- paramTypeLength = new LinkedList();
- paramValueLength = new LinkedList();
-
- Iterator params = parameters.iterator();
-
- while ( params.hasNext() )
- {
- int localParameterLength = 0;
- int localParamTypeLength = 0;
- int localParamValueLength = 0;
-
- StoredProcedureParameter spParam = (StoredProcedureParameter)params.next();
-
- localParamTypeLength = 1 + Length.getNbBytes( spParam.type.length ) + spParam.type.length;
- localParamValueLength = 1 + Length.getNbBytes( spParam.value.length ) + spParam.value.length;
-
- localParameterLength = localParamTypeLength + localParamValueLength;
-
- parametersLength += 1 + Length.getNbBytes( localParameterLength ) + localParameterLength;
-
- parameterLength.add( new Integer( localParameterLength ) );
- paramTypeLength.add( new Integer( localParamTypeLength ) );
- paramValueLength.add( new Integer( localParamValueLength ) );
- }
- }
-
- int localParametersLength = 1 + Length.getNbBytes( parametersLength ) + parametersLength;
- storedProcedureLength = languageLength + procedureLength + localParametersLength;
-
- return 1 + Length.getNbBytes( storedProcedureLength ) + storedProcedureLength;
- }
-
- /**
- * Encode the StoredProcedure message to a PDU.
- *
- * @param buffer The buffer where to put the PDU
- * @return The PDU.
- */
- public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
- {
- // Allocate the bytes buffer.
- ByteBuffer bb = ByteBuffer.allocate( computeLength() );
-
- try
- {
- // The StoredProcedure Tag
- bb.put( UniversalTag.SEQUENCE_TAG );
- bb.put( Length.getBytes( storedProcedureLength ) );
-
- // The language
- Value.encode( bb, language );
-
- // The procedure
- Value.encode( bb, procedure );
-
- // The parameters sequence
- bb.put( UniversalTag.SEQUENCE_TAG );
- bb.put( Length.getBytes( parametersLength ) );
-
- // The parameters list
- if ( ( parameters != null ) && ( parameters.size() != 0 ) )
- {
- int parameterNumber = 0;
- Iterator params = parameters.iterator();
-
- while ( params.hasNext() )
- {
- StoredProcedureParameter spParam = (StoredProcedureParameter)params.next();
-
- // The parameter sequence
- bb.put( UniversalTag.SEQUENCE_TAG );
- int localParameterLength = ( ( Integer ) parameterLength.get( parameterNumber ) ).intValue();
- bb.put( Length.getBytes( localParameterLength ) );
-
- // The parameter type
- Value.encode( bb, spParam.type );
-
- // The parameter value
- Value.encode( bb, spParam.value );
-
- // Go to the next parameter;
- parameterNumber++;
- }
- }
- }
- catch ( BufferOverflowException boe )
- {
- throw new EncoderException( "The PDU buffer size is too small !" );
- }
-
- return bb;
- }
-
-
- /**
- * Returns the StoredProcedure string
- *
- * @return The StoredProcedure string
- */
- public String toString()
- {
-
- StringBuffer sb = new StringBuffer();
-
- sb.append( " StoredProcedure\n" );
- sb.append( " Language : '" ).append( language ).append( "'\n" );
- sb.append( " Procedure\n" ).append( StringTools.utf8ToString( procedure ) ).append( "'\n" );
-
- if ( ( parameters == null ) || ( parameters.size() == 0 ) )
- {
- sb.append( " No parameters\n" );
- }
- else
- {
- sb.append( " Parameters\n" );
-
- Iterator params = parameters.iterator();
- int i = 1;
-
- while ( params.hasNext() )
- {
- StoredProcedureParameter spParam = (StoredProcedureParameter)params.next();
-
- sb.append( " type[" ).append( i ) .append( "] : '" ).append( spParam.type ).append( "'\n" );
- sb.append( " value[" ).append( i ) .append( "] : '" ).
- append( StringTools.dumpBytes( spParam.value ) ).append( "'\n" );
- }
- }
-
- return sb.toString();
- }
-}
+/*
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed 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.shared.ldap.codec.extended.operations;
+
+
+import java.nio.BufferOverflowException;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.apache.directory.shared.asn1.Asn1Object;
+import org.apache.directory.shared.asn1.ber.tlv.Length;
+import org.apache.directory.shared.asn1.ber.tlv.UniversalTag;
+import org.apache.directory.shared.asn1.ber.tlv.Value;
+import org.apache.directory.shared.asn1.codec.EncoderException;
+import org.apache.directory.shared.ldap.util.StringTools;
+
+
+/**
+ * Stored Procedure Extended Operation bean
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class StoredProcedure extends Asn1Object
+{
+ private String language;
+
+ private byte[] procedure;
+
+ private ArrayList parameters;
+
+ private transient StoredProcedureParameter currentParameter;
+
+ /** The stored procedure length */
+ private transient int storedProcedureLength;
+
+ /** The parameters length */
+ private transient int parametersLength;
+
+ /** The list of all parameter lengths */
+ private transient List parameterLength;
+
+ /** The list of all parameter type lengths */
+ private transient List paramTypeLength;
+
+ /** The list of all parameter value lengths */
+ private transient List paramValueLength;
+
+ public String getLanguage()
+ {
+ return language;
+ }
+
+
+ public void setLanguage( String language )
+ {
+ this.language = language;
+ }
+
+
+ public byte[] getProcedure()
+ {
+ return procedure;
+ }
+
+
+ public void setProcedure( byte[] procedure )
+ {
+ this.procedure = procedure;
+ }
+
+
+ public List getParameters()
+ {
+ return parameters;
+ }
+
+
+ public void addParameter( StoredProcedureParameter parameter )
+ {
+ if ( parameters == null )
+ {
+ parameters = new ArrayList();
+ }
+
+ parameters.add( parameter );
+ }
+
+
+ public StoredProcedureParameter getCurrentParameter()
+ {
+ return currentParameter;
+ }
+
+
+ public void setCurrentParameter( StoredProcedureParameter currentParameter )
+ {
+ this.currentParameter = currentParameter;
+ }
+
+
+ /**
+ * Bean for representing a Stored Procedure Parameter
+ */
+ public static class StoredProcedureParameter
+ {
+ private byte[] type;
+
+ private byte[] value;
+
+
+ public byte[] getType()
+ {
+ return type;
+ }
+
+
+ public void setType( byte[] type )
+ {
+ this.type = type;
+ }
+
+
+ public byte[] getValue()
+ {
+ return value;
+ }
+
+
+ public void setValue( byte[] value )
+ {
+ this.value = value;
+ }
+ }
+
+ /**
+ * Compute the StoredProcedure length
+ *
+ * 0x30 L1
+ * |
+ * +--> 0x04 L2 language
+ * +--> 0x04 L3 procedure
+ * [+--> 0x30 L4 (parameters)
+ * |
+ * +--> 0x30 L5-1 (parameter)
+ * | |
+ * | +--> 0x04 L6-1 type
+ * | +--> 0x04 L7-1 value
+ * |
+ * +--> 0x30 L5-2 (parameter)
+ * | |
+ * | +--> 0x04 L6-2 type
+ * | +--> 0x04 L7-2 value
+ * |
+ * +--> ...
+ * |
+ * +--> 0x30 L5-m (parameter)
+ * |
+ * +--> 0x04 L6-m type
+ * +--> 0x04 L7-m value
+ */
+ public int computeLength()
+ {
+ // The language
+ byte[] languageBytes = StringTools.getBytesUtf8( language );
+
+ int languageLength = 1 + Length.getNbBytes( languageBytes.length )
+ + languageBytes.length;
+
+ // The procedure
+ int procedureLength = 1 + Length.getNbBytes( procedure.length )
+ + procedure.length;
+
+ //int localParametersLength = 0;
+
+ // Compute parameters length value
+ if ( parameters != null )
+ {
+ parameterLength = new LinkedList();
+ paramTypeLength = new LinkedList();
+ paramValueLength = new LinkedList();
+
+ Iterator params = parameters.iterator();
+
+ while ( params.hasNext() )
+ {
+ int localParameterLength = 0;
+ int localParamTypeLength = 0;
+ int localParamValueLength = 0;
+
+ StoredProcedureParameter spParam = (StoredProcedureParameter)params.next();
+
+ localParamTypeLength = 1 + Length.getNbBytes( spParam.type.length ) + spParam.type.length;
+ localParamValueLength = 1 + Length.getNbBytes( spParam.value.length ) + spParam.value.length;
+
+ localParameterLength = localParamTypeLength + localParamValueLength;
+
+ parametersLength += 1 + Length.getNbBytes( localParameterLength ) + localParameterLength;
+
+ parameterLength.add( new Integer( localParameterLength ) );
+ paramTypeLength.add( new Integer( localParamTypeLength ) );
+ paramValueLength.add( new Integer( localParamValueLength ) );
+ }
+ }
+
+ int localParametersLength = 1 + Length.getNbBytes( parametersLength ) + parametersLength;
+ storedProcedureLength = languageLength + procedureLength + localParametersLength;
+
+ return 1 + Length.getNbBytes( storedProcedureLength ) + storedProcedureLength;
+ }
+
+ /**
+ * Encode the StoredProcedure message to a PDU.
+ *
+ * @param buffer The buffer where to put the PDU
+ * @return The PDU.
+ */
+ public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
+ {
+ // Allocate the bytes buffer.
+ ByteBuffer bb = ByteBuffer.allocate( computeLength() );
+
+ try
+ {
+ // The StoredProcedure Tag
+ bb.put( UniversalTag.SEQUENCE_TAG );
+ bb.put( Length.getBytes( storedProcedureLength ) );
+
+ // The language
+ Value.encode( bb, language );
+
+ // The procedure
+ Value.encode( bb, procedure );
+
+ // The parameters sequence
+ bb.put( UniversalTag.SEQUENCE_TAG );
+ bb.put( Length.getBytes( parametersLength ) );
+
+ // The parameters list
+ if ( ( parameters != null ) && ( parameters.size() != 0 ) )
+ {
+ int parameterNumber = 0;
+ Iterator params = parameters.iterator();
+
+ while ( params.hasNext() )
+ {
+ StoredProcedureParameter spParam = (StoredProcedureParameter)params.next();
+
+ // The parameter sequence
+ bb.put( UniversalTag.SEQUENCE_TAG );
+ int localParameterLength = ( ( Integer ) parameterLength.get( parameterNumber ) ).intValue();
+ bb.put( Length.getBytes( localParameterLength ) );
+
+ // The parameter type
+ Value.encode( bb, spParam.type );
+
+ // The parameter value
+ Value.encode( bb, spParam.value );
+
+ // Go to the next parameter;
+ parameterNumber++;
+ }
+ }
+ }
+ catch ( BufferOverflowException boe )
+ {
+ throw new EncoderException( "The PDU buffer size is too small !" );
+ }
+
+ return bb;
+ }
+
+
+ /**
+ * Returns the StoredProcedure string
+ *
+ * @return The StoredProcedure string
+ */
+ public String toString()
+ {
+
+ StringBuffer sb = new StringBuffer();
+
+ sb.append( " StoredProcedure\n" );
+ sb.append( " Language : '" ).append( language ).append( "'\n" );
+ sb.append( " Procedure\n" ).append( StringTools.utf8ToString( procedure ) ).append( "'\n" );
+
+ if ( ( parameters == null ) || ( parameters.size() == 0 ) )
+ {
+ sb.append( " No parameters\n" );
+ }
+ else
+ {
+ sb.append( " Parameters\n" );
+
+ Iterator params = parameters.iterator();
+ int i = 1;
+
+ while ( params.hasNext() )
+ {
+ StoredProcedureParameter spParam = (StoredProcedureParameter)params.next();
+
+ sb.append( " type[" ).append( i ) .append( "] : '" ).append( spParam.type ).append( "'\n" );
+ sb.append( " value[" ).append( i ) .append( "] : '" ).
+ append( StringTools.dumpBytes( spParam.value ) ).append( "'\n" );
+ }
+ }
+
+ return sb.toString();
+ }
+}
Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/StoredProcedureContainer.java
URL: http://svn.apache.org/viewcvs/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/StoredProcedureContainer.java?rev=400067&r1=400066&r2=400067&view=diff
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/StoredProcedureContainer.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/extended/operations/StoredProcedureContainer.java Fri May 5 05:52:49 2006
@@ -1,90 +1,90 @@
-/*
- * Copyright 2006 The Apache Software Foundation
- *
- * Licensed 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.shared.ldap.codec.extended.operations;
-
-
-import org.apache.directory.shared.asn1.ber.AbstractContainer;
-import org.apache.directory.shared.asn1.ber.IAsn1Container;
-import org.apache.directory.shared.asn1.ber.grammar.IGrammar;
-
-
-/**
- * A container for the StoredProcedure codec
- *
- * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
- */
-public class StoredProcedureContainer extends AbstractContainer implements IAsn1Container
-{
- // ~ Instance fields
- // ----------------------------------------------------------------------------
-
- /** StoredProcedure */
- private StoredProcedure storedProcedure;
-
-
- // ~ Constructors
- // -------------------------------------------------------------------------------
-
- public StoredProcedureContainer()
- {
- super();
- currentGrammar = 0;
- grammars = new IGrammar[1];
- grammarStack = new IGrammar[1];
- stateStack = new int[1];
- nbGrammars = 0;
-
- grammars[StoredProcedureStatesEnum.STORED_PROCEDURE_GRAMMAR] = StoredProcedureGrammar.getInstance();
-
- grammarStack[currentGrammar] = grammars[StoredProcedureStatesEnum.STORED_PROCEDURE_GRAMMAR];
-
- states = StoredProcedureStatesEnum.getInstance();
- }
-
-
- // ~ Methods
- // ------------------------------------------------------------------------------------
- /**
- * @return Returns the ldapMessage.
- */
- public StoredProcedure getStoredProcedure()
- {
- return storedProcedure;
- }
-
-
- /**
- * Set a StoredProcedure object into the container. It will be completed by the
- * ldapDecoder.
- *
- * @param ldapMessage
- * The ldapMessage to set.
- */
- public void setStoredProcedure( StoredProcedure storedProcedure )
- {
- this.storedProcedure = storedProcedure;
- }
-
-
- public void clean()
- {
- super.clean();
-
- storedProcedure = null;
- }
-}
+/*
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed 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.shared.ldap.codec.extended.operations;
+
+
+import org.apache.directory.shared.asn1.ber.AbstractContainer;
+import org.apache.directory.shared.asn1.ber.IAsn1Container;
+import org.apache.directory.shared.asn1.ber.grammar.IGrammar;
+
+
+/**
+ * A container for the StoredProcedure codec
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class StoredProcedureContainer extends AbstractContainer implements IAsn1Container
+{
+ // ~ Instance fields
+ // ----------------------------------------------------------------------------
+
+ /** StoredProcedure */
+ private StoredProcedure storedProcedure;
+
+
+ // ~ Constructors
+ // -------------------------------------------------------------------------------
+
+ public StoredProcedureContainer()
+ {
+ super();
+ currentGrammar = 0;
+ grammars = new IGrammar[1];
+ grammarStack = new IGrammar[1];
+ stateStack = new int[1];
+ nbGrammars = 0;
+
+ grammars[StoredProcedureStatesEnum.STORED_PROCEDURE_GRAMMAR] = StoredProcedureGrammar.getInstance();
+
+ grammarStack[currentGrammar] = grammars[StoredProcedureStatesEnum.STORED_PROCEDURE_GRAMMAR];
+
+ states = StoredProcedureStatesEnum.getInstance();
+ }
+
+
+ // ~ Methods
+ // ------------------------------------------------------------------------------------
+ /**
+ * @return Returns the ldapMessage.
+ */
+ public StoredProcedure getStoredProcedure()
+ {
+ return storedProcedure;
+ }
+
+
+ /**
+ * Set a StoredProcedure object into the container. It will be completed by the
+ * ldapDecoder.
+ *
+ * @param ldapMessage
+ * The ldapMessage to set.
+ */
+ public void setStoredProcedure( StoredProcedure storedProcedure )
+ {
+ this.storedProcedure = storedProcedure;
+ }
+
+
+ public void clean()
+ {
+ super.clean();
+
+ storedProcedure = null;
+ }
+}