Actually, using a cast makes things very difficult to use in OSGi, as
when using spring-dm in OSGi, it creates proxies for the commands, so
the cast does not work and we end up with exceptions everywhere, as
the location is a mandatory part of the command.

On Thu, Oct 16, 2008 at 9:33 AM, Guillaume Nodet <[EMAIL PROTECTED]> wrote:
> Yeah, I was supposing so.
> However, it seems more natural, as the only place where the location
> is set is when registering the command in the registry.
> Maybe another way would be to say that the location has to be set on
> the command in some way before registering it: the registry would
> retrieve the location from the command instead of receiving it as an
> argument to the registerCommand method and then setting the location.
> As the same command object can not be registered at two different
> locations (else one location would be somehow lost on the command), it
> may make sense.  The location could be set directly when the
> PluginParser creates the bean definition.  Wdyt ?
>
> On Thu, Oct 16, 2008 at 9:24 AM, Jason Dillon <[EMAIL PROTECTED]> wrote:
>> I didn't really want to expose setLocation in Command, hence the reason why
>> it was coded like that.
>>
>> --jason
>>
>>
>> On Oct 16, 2008, at 1:04 AM, [EMAIL PROTECTED] wrote:
>>
>>> Author: gnodet
>>> Date: Wed Oct 15 11:04:24 2008
>>> New Revision: 704975
>>>
>>> URL: http://svn.apache.org/viewvc?rev=704975&view=rev
>>> Log:
>>> Remove an ugly cast by adding the setLocation method to the Command
>>> interface
>>>
>>> Modified:
>>>
>>> geronimo/gshell/trunk/gshell-api/src/main/java/org/apache/geronimo/gshell/command/Command.java
>>>
>>> geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/registry/CommandRegistryImpl.java
>>>
>>> Modified:
>>> geronimo/gshell/trunk/gshell-api/src/main/java/org/apache/geronimo/gshell/command/Command.java
>>> URL:
>>> http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-api/src/main/java/org/apache/geronimo/gshell/command/Command.java?rev=704975&r1=704974&r2=704975&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> geronimo/gshell/trunk/gshell-api/src/main/java/org/apache/geronimo/gshell/command/Command.java
>>> (original)
>>> +++
>>> geronimo/gshell/trunk/gshell-api/src/main/java/org/apache/geronimo/gshell/command/Command.java
>>> Wed Oct 15 11:04:24 2008
>>> @@ -31,6 +31,8 @@
>>> {
>>>    CommandLocation getLocation();
>>>
>>> +    void setLocation(CommandLocation location);
>>> +
>>>    /**
>>>     * Returns the action of the command.
>>>     *
>>>
>>> Modified:
>>> geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/registry/CommandRegistryImpl.java
>>> URL:
>>> http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/registry/CommandRegistryImpl.java?rev=704975&r1=704974&r2=704975&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/registry/CommandRegistryImpl.java
>>> (original)
>>> +++
>>> geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/registry/CommandRegistryImpl.java
>>> Wed Oct 15 11:04:24 2008
>>> @@ -60,9 +60,7 @@
>>>            throw new DuplicateCommandException(name);
>>>        }
>>>
>>> -        if (command instanceof CommandSupport) {
>>> -            ((CommandSupport)command).setLocation(new
>>> CommandLocationImpl(name));
>>> -        }
>>> +        command.setLocation(new CommandLocationImpl(name));
>>>
>>>        commands.put(name, command);
>>>
>>>
>>>
>>
>>
>
>
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> ------------------------
> Open Source SOA
> http://fusesource.com
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Reply via email to