You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2004/09/03 12:28:13 UTC
svn commit: rev 37468 - in incubator/directory/eve/branches/multi-listener: . api/src/java/org/apache/eve/decoder api/src/java/org/apache/eve/processor api/src/java/org/apache/eve/protocol impl/src/java/org/apache/eve/processor
Author: akarasulu
Date: Fri Sep 3 03:28:12 2004
New Revision: 37468
Added:
incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/processor/HandlerTypeEnum.java
- copied unchanged from rev 37462, incubator/directory/eve/branches/multi-listener/impl/src/java/org/apache/eve/processor/HandlerTypeEnum.java
incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/processor/ManyReplyHandler.java
- copied unchanged from rev 37462, incubator/directory/eve/branches/multi-listener/impl/src/java/org/apache/eve/processor/ManyReplyHandler.java
incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/processor/NoReplyHandler.java
- copied unchanged from rev 37462, incubator/directory/eve/branches/multi-listener/impl/src/java/org/apache/eve/processor/NoReplyHandler.java
incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/processor/SingleReplyHandler.java
- copied unchanged from rev 37462, incubator/directory/eve/branches/multi-listener/impl/src/java/org/apache/eve/processor/SingleReplyHandler.java
incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/protocol/InetServiceEntry.java (contents, props changed)
incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/protocol/InetServicesDatabase.java (contents, props changed)
Removed:
incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/protocol/ProtocolRegistry.java
incubator/directory/eve/branches/multi-listener/impl/src/java/org/apache/eve/processor/HandlerTypeEnum.java
incubator/directory/eve/branches/multi-listener/impl/src/java/org/apache/eve/processor/ManyReplyHandler.java
incubator/directory/eve/branches/multi-listener/impl/src/java/org/apache/eve/processor/NoReplyHandler.java
incubator/directory/eve/branches/multi-listener/impl/src/java/org/apache/eve/processor/SingleReplyHandler.java
incubator/directory/eve/branches/multi-listener/maven.xml
Modified:
incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/decoder/ClientDecoder.java
incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/protocol/ProtocolProvider.java
incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/protocol/RequestHandler.java
Log:
Commit changes ...
o added services database interface
o added service entry class
o blew away bogus ProtocolRegistry object which was to be the serv db
o moved stuff in impl that should really go into the api
Modified: incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/decoder/ClientDecoder.java
==============================================================================
--- incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/decoder/ClientDecoder.java (original)
+++ incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/decoder/ClientDecoder.java Fri Sep 3 03:28:12 2004
@@ -14,15 +14,15 @@
* limitations under the License.
*
*/
-package org.apache.eve.decoder ;
+package org.apache.eve.decoder;
-import org.apache.commons.codec.DecoderException ;
-import org.apache.commons.codec.stateful.DecoderMonitor ;
-import org.apache.commons.codec.stateful.StatefulDecoder ;
-import org.apache.commons.codec.stateful.DecoderCallback ;
+import org.apache.commons.codec.DecoderException;
+import org.apache.commons.codec.stateful.DecoderMonitor;
+import org.apache.commons.codec.stateful.StatefulDecoder;
+import org.apache.commons.codec.stateful.DecoderCallback;
-import org.apache.eve.listener.ClientKey ;
+import org.apache.eve.listener.ClientKey;
/**
@@ -35,11 +35,11 @@
public class ClientDecoder implements StatefulDecoder, DecoderCallback
{
/** the key of the client this decoder is associated with */
- private final ClientKey key ;
+ private final ClientKey key;
/** the actual decoder doing the work for us */
- private final StatefulDecoder decoder ;
+ private final StatefulDecoder decoder;
/** the callback used by this decoder */
- private DecoderCallback cb ;
+ private DecoderCallback cb;
/**
@@ -50,9 +50,9 @@
*/
public ClientDecoder( ClientKey key, StatefulDecoder decoder )
{
- this.key = key ;
- this.decoder = decoder ;
- this.decoder.setCallback( this ) ;
+ this.key = key;
+ this.decoder = decoder;
+ this.decoder.setCallback( this );
}
@@ -62,7 +62,7 @@
*/
public void decode( Object encoded ) throws DecoderException
{
- decoder.decode( encoded ) ;
+ decoder.decode( encoded );
}
@@ -72,7 +72,7 @@
*/
public void setCallback( DecoderCallback cb )
{
- this.cb = cb ;
+ this.cb = cb;
}
@@ -82,7 +82,7 @@
*/
public void setDecoderMonitor( DecoderMonitor monitor )
{
- decoder.setDecoderMonitor( monitor ) ;
+ decoder.setDecoderMonitor( monitor );
}
@@ -93,7 +93,7 @@
*/
public ClientKey getClientKey()
{
- return key ;
+ return key;
}
@@ -103,6 +103,6 @@
*/
public void decodeOccurred( StatefulDecoder decoder, Object decoded )
{
- cb.decodeOccurred( this, decoded ) ;
+ cb.decodeOccurred( this, decoded );
}
}
Added: incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/protocol/InetServiceEntry.java
==============================================================================
--- (empty file)
+++ incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/protocol/InetServiceEntry.java Fri Sep 3 03:28:12 2004
@@ -0,0 +1,152 @@
+/*
+ * 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.eve.protocol;
+
+/**
+ * An internet service entry from the services database.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class InetServiceEntry
+{
+ /** constant for tcp transport protocol */
+ public static final int TCP_TRANS = 0;
+ /** constant for udp transport protocol */
+ public static final int UDP_TRANS = 1;
+
+ /** an empty string array for no aliases */
+ private static final String[] EMPTY_ALIASES = new String[0];
+
+ /** the authoritative name of the service */
+ private final String name;
+ /** the port the service runs on */
+ private final int port;
+ /** alternative names for the service */
+ private final String[] aliases;
+ /** the transport protocol used by the service */
+ private final int proto;
+
+
+ /**
+ * Creates an internet service entry without any aliases using TCP as the
+ * transport protocol.
+ *
+ * @param name the authoritative name of the service
+ * @param port the port the service runs on
+ */
+ public InetServiceEntry( String name, int port )
+ {
+ this( name, port, TCP_TRANS, null );
+ }
+
+
+ /**
+ * Creates an internet service entry without any aliases.
+ *
+ * @param name the authoritative name of the service
+ * @param port the port the service runs on
+ * @param proto the transport protocol used by the service
+ */
+ public InetServiceEntry( String name, int port, int proto )
+ {
+ this( name, port, proto, null );
+ }
+
+
+ /**
+ * Creates an internet service entry.
+ *
+ * @param name the authoritative name of the service
+ * @param port the port the service runs on
+ * @param proto the transport protocol used by the service
+ * @param aliases alternative names for the service
+ */
+ public InetServiceEntry( String name, int port, int proto, String[] aliases )
+ {
+ if ( name == null )
+ {
+ throw new NullPointerException( "an entry name can't be null" );
+ }
+
+ this.name = name;
+ this.port = port;
+ this.proto = proto;
+
+ switch( proto )
+ {
+ case TCP_TRANS: break;
+ case UDP_TRANS: break;
+ default:
+ throw new IllegalArgumentException(
+ "Unrecognized transport protocol: " + proto );
+ }
+
+ if ( aliases == null )
+ {
+ this.aliases = EMPTY_ALIASES;
+ }
+ else
+ {
+ this.aliases = aliases;
+ }
+ }
+
+
+ /**
+ * Gets the authoritative name of the service.
+ *
+ * @return the authoritative name of the service
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+
+ /**
+ * Gets the port this entry's service runs on.
+ *
+ * @return the port this entry's service runs on
+ */
+ public int getPort()
+ {
+ return port;
+ }
+
+
+ /**
+ * Gets the alternative names for this entry's service.
+ *
+ * @return the alternative names for this entry's service
+ */
+ public String[] getAliases()
+ {
+ return aliases;
+ }
+
+
+ /**
+ * Gets the transport protocol used for this service.
+ *
+ * @return the transport protocol used for this service
+ */
+ public int getProtocol()
+ {
+ return proto;
+ }
+}
Added: incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/protocol/InetServicesDatabase.java
==============================================================================
--- (empty file)
+++ incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/protocol/InetServicesDatabase.java Fri Sep 3 03:28:12 2004
@@ -0,0 +1,69 @@
+/*
+ * 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.eve.protocol;
+
+
+import java.util.Iterator;
+
+
+/**
+ * Interface for the internet services database. The database is used by
+ * jinetd to associate services with ports and transport protocols.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public interface InetServicesDatabase
+{
+ /**
+ * Gets an iteration over all the entries for a service by the name of the
+ * service.
+ *
+ * @param name the authoritative name of the service
+ * @return an Iterator over InetServiceEntry objects
+ */
+ Iterator getByName( String name );
+
+ /**
+ * Gets an iteration over all the entries for a service by port number.
+ * This method returns an Iterator over the set of InetServiceEntry objects
+ * since more than one transport protocol can be used on the same port.
+ *
+ * @param port the port one which the service resides
+ * @return an Iterator over InetServiceEntry objects
+ */
+ Iterator getByPort( String port );
+
+ /**
+ * Gets the service entry by name using the authoritative service name and
+ * a transport protocol.
+ *
+ * @param name the authoritative name of the service
+ * @param proto the transport protocol used for the service
+ * @return the internet service entry
+ */
+ InetServiceEntry getByName( String name, String proto );
+
+ /**
+ * Gets the service entry by port using the port and a transport protocol.
+ *
+ * @param port the port on which the service resides
+ * @param proto the transport protocol used for the service
+ * @return the internet service entry
+ */
+ InetServiceEntry getByPort( String port, String proto );
+}
Modified: incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/protocol/ProtocolProvider.java
==============================================================================
--- incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/protocol/ProtocolProvider.java (original)
+++ incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/protocol/ProtocolProvider.java Fri Sep 3 03:28:12 2004
@@ -30,10 +30,7 @@
*/
public interface ProtocolProvider
{
- StatefulDecoder getDecoder();
- StatefulEncoder getEncoder();
- boolean isNoReply( Object request );
- boolean isSingleReply( Object request );
- boolean isMultiReply( Object request );
-
+ StatefulDecoder newDecoder();
+ StatefulEncoder newEncoder();
+ RequestHandler getHandler( Object obj );
}
Modified: incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/protocol/RequestHandler.java
==============================================================================
--- incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/protocol/RequestHandler.java (original)
+++ incubator/directory/eve/branches/multi-listener/api/src/java/org/apache/eve/protocol/RequestHandler.java Fri Sep 3 03:28:12 2004
@@ -1,30 +1,37 @@
-/*
- * 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.eve.protocol ;
-
-
-
-/**
- * Root of all request handler types.
- *
- * @author <a href="mailto:directory-dev@incubator.apache.org">
- * Apache Directory Project</a>
- * @version $Rev$
- */
-public interface RequestHandler
-{
-}
+/*
+ * 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.eve.protocol ;
+
+import org.apache.eve.processor.HandlerTypeEnum;
+
+
+/**
+ * Root of all request handler types.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">
+ * Apache Directory Project</a>
+ * @version $Rev$
+ */
+public interface RequestHandler
+{
+ /**
+ * Gets the handler type.
+ *
+ * @return a HandlerTypeEnum constant.
+ */
+ HandlerTypeEnum getHandlerType() ;
+}