[
https://issues.apache.org/jira/browse/DIRMINA-495?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mike Heath closed DIRMINA-495.
------------------------------
Resolution: Fixed
Added IoFuture to argument list on IoSessionInitializer.initializeSession.
> IoConnector needs a way to store information into the IoSession before the
> IoHandler gets ahold of it
> -----------------------------------------------------------------------------------------------------
>
> Key: DIRMINA-495
> URL: https://issues.apache.org/jira/browse/DIRMINA-495
> Project: MINA
> Issue Type: New Feature
> Components: Core
> Reporter: David M. Lloyd
> Assignee: Mike Heath
> Fix For: 2.0.0-M1
>
> Attachments: DIRMINA-495-3.patch, DIRMINA-495-mikeheath.patch,
> IoConnector.patch
>
>
> It is often necessary to pass information into the IoHandler associated with
> an IoConnector. Sometimes this information is needed even as early as
> IoSession creation time. A mechanism is needed to pass information in to the
> IoSession at the time you call IoConnector.connect(). Discussing this with
> Mike Heath, we determined that a logical approach could be to have variants
> of the connect() methods that accept information that can be attached to the
> IoSession when it is created.
> One option is to simply pass a Map in to the connect method. The contents of
> the Map would be copied into the IoSession's attribute map after it is
> constructed but before the IoHandler.sessionCreated method is created. In
> addition, it seems likely that in many cases only one entry would need to be
> added - in this case the user could simply do this:
> ioConnector.connect(addr, Collections.singletonMap(MY_KEY, theValue));
> Another option would be to use variable argument lists to accept any number
> of key-value pairs. The pairs could be represented by a class -
> AttributePair for example. It could look like this:
> public final class AttributePair<K, V> {
> private final K key;
> private final V value;
> private AttributePair(K key, V value) { this.key = key; this.value =
> value; }
> public static <K, V> AttributePair<K,V> pair(K key, V value) { return
> new AttributePair<K, V>(key, value); }
> }
> Then the user can use static imports to pull in the "pair" method. The
> connect() method on IoConnector could accept a variable list of AttributePair
> objects, so the user could write code like this:
> ioConnector.connect(addr, pair(MY_KEY1, myValue), pair(MY_KEY2,
> myValue2));
> Though this approach is somewhat more complicated than just using a Map.
> Other approaches may also be discussed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.