[ 
https://issues.apache.org/jira/browse/DIRMINA-874?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13174981#comment-13174981
 ] 

Hudson commented on DIRMINA-874:
--------------------------------

Integrated in MINA-trunk-jdk1.6-ubuntu #335 (See 
[https://builds.apache.org/job/MINA-trunk-jdk1.6-ubuntu/335/])
    Applied Christian's patch for AttributeKey (cf DIRMINA-874)

elecharny : 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1222398
Files : 
* /mina/trunk/core/src/main/java/org/apache/mina/api/IoSession.java
* 
/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
* /mina/trunk/core/src/main/java/org/apache/mina/session/AbstractIoSession.java
* /mina/trunk/core/src/main/java/org/apache/mina/session/AttributeContainer.java
* /mina/trunk/core/src/main/java/org/apache/mina/session/AttributeKey.java
* 
/mina/trunk/core/src/main/java/org/apache/mina/session/DefaultAttributeContainer.java
* /mina/trunk/core/src/main/java/org/apache/mina/session/SslHelper.java
* 
/mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
* /mina/trunk/core/src/main/java/org/apache/mina/util/Assert.java
* /mina/trunk/core/src/test/java/org/apache/mina/AllTests.java
* 
/mina/trunk/core/src/test/java/org/apache/mina/session/AbstractIoSessionTest.java
* 
/mina/trunk/core/src/test/java/org/apache/mina/session/AttributeContainerTest.java
* /mina/trunk/core/src/test/java/org/apache/mina/session/AttributeKeyTest.java
* /mina/trunk/core/src/test/java/org/apache/mina/util/AssertTest.java
* /mina/trunk/http/src/main/java/org/apache/mina/http/HttpServerCodec.java
* /mina/trunk/http/src/main/java/org/apache/mina/http/HttpServerDecoder.java

                
> Typesafe AttributeKeys
> ----------------------
>
>                 Key: DIRMINA-874
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-874
>             Project: MINA
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 3.0.0-trunk, 3.0.0-M1
>            Reporter: Christian Schwarz
>             Fix For: 3.0.0-M1
>
>         Attachments: TypeSafeAttributes_v1_2011_12_16.patch, mina3.zip
>
>
> In Mina 2 we can add attributes to a session and get them as well. Because 
> IoSession#getAttribute(Object key)  returns Object we always have to remember 
> what attribute type is associated with the key and cast the result to the 
> expected type.
> Mina 2 example:
> final static Object KEY = new AttributeKey(SourceClass.class,"myKey");
> ...
> session.set(KEY,"myAttribute");
> String attributeValue= (String)session.get(KEY);
> Instead of using plain Object-keys, the key type should contain information 
> about its attributes. The aim is to get type-safe access to attributes.
> Assume we have the following new AttributeKey-Class:
> /**
> * @parmeter T Type of the referenced Attribute
> */
> class AttributeKey<T> {
>   public TypesafeAttributeKey(Class<T> attributeType, String attributeKey){
>    ...
>   }
> }
> The IoSession should have Attribute related accessors like these:
>  
>  void setAttribute(AttributeKey<T> key, T value);
>  T getAttribute(AttributeKey<T> key);
> So in Mina 3 the example could look like this:
> final static AttributeKey<String> KEY = new 
> AttributeKey<String>(String.class,"myKey");
> ...
> session.set(KEY,"myAttribute");
> String attributeValue=session.get(KEY);
> These 2 cases won't compile:
> session.set(KEY,new Date());
> Integer attributeValue=session.get(KEY);
> This pattern would simplify the use of Attributes, because the programmer 
> don't have to care about the types and can concentrate on more improtant 
> things. In my humble opinion the Objekt keys should be removed at all, i 
> don't see the purpose for such unspecific keys.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to