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

Rob Godfrey commented on QPID-5615:
-----------------------------------

Alex,

Thanks for all your review comments, I will commit changes addressing most of 
your comments presently... however the following I am not currently planning on 
addressing as part of this JIRA / am addressing in a different way:

{quote}
* If validation fails in any of configured object, it looks like in Management 
mode we will not be able to start the broker anymore....
{quote}

This is true, and I think it relates to the general issue of what to do with 
objects that fail validation... and how we deal with things in an "errored" 
state.  I think this problem needs an overall cohesive solution rather than a 
patch to just restore the previous functionality for management mode.

{quote}
* Port implementations perhaps need to have a code restricting protocol changes 
to only supported protocols. For instance, changing of port protocols to AMQP 
protocols on HTTP port should not be allowed. It seems like it is allowed now 
via REST api. I am not sure if it is an existing issue.
{quote}

Yes - I think the overall model of ports needs work... I think that AMQP, HTTP, 
JMX and RMI ports are (currently) fundamentally different things, and modelling 
them using the same object makes little sense.  If we could run HTTP and AMQP 
on the same port then it would make sense to have both these things be "ports" 
but I'm not sure we'd ever be running JMX on the same port as this.  I think it 
would make more sense to move the JMX port assignments to be attributes on the 
JMX Management plugin.

{quote}
* org.apache.qpid.server.model.BrokerModel.getInstance() IMHO, we can stop 
using singleton pattern for this. In broker code it called only once on the 
broker start-up in org.apache.qpid.server.Broker.startupImpl(BrokerOptions)
{quote}

Actually i think this is a rare case where a singleton is a sensible pattern to 
use.  If we allowed for multiple instances then every instance would be the 
same, and immutable.  The important thing is to not rely on the Model being 
passed actually being a "BrokerModel" in any of the rest of the code

{quote}
Dead Code:

* 
org.apache.qpid.server.model.adapter.FileSystemPreferencesProviderImpl.openNewStore()

{quote}

Not dead - used by the setter after the _path is set.  I've added a comment 
above the method to this effect.

{quote}

*  
org.apache.qpid.server.model.AbstractConfiguredObject.AbstractConfiguredObject(Map<Class<?
 extends ConfiguredObject>, ConfiguredObject<?>>, Map<String, Object>)
{quote}

I've moved everything apart from VirtualHostNodes and SystemContext move to use 
this constructor (i.e. to inherit the task executor of their parent).  At these 
two points in the tree we probably want to have a new task executor created 
(although we don't currently do this at the VHN).

{quote}
* 
org.apache.qpid.server.management.plugin.servlet.rest.action.ListAccessControlProviderAttributes.perform(Map<String,
 Object>, Broker) contains the commented code with TODO RG - fix.
{quote}

Yes - this will need fixing at a later date.  I think the right approach for 
this is not for the broker code to be supplying attribute names/descriptions 
through a servlet, but for each type to have its own html / js files.  The Web 
UI is a plugin and the broker shouldn't really have code in it specifically to 
support the nature of the plugin.

{quote}
Not essential issues in a temporary code:
{quote}

As these are in code we know we want to kill, I've not addressed these



> [Java Broker] Broker and VirtualHost should use the same API for 
> configuration stores
> -------------------------------------------------------------------------------------
>
>                 Key: QPID-5615
>                 URL: https://issues.apache.org/jira/browse/QPID-5615
>             Project: Qpid
>          Issue Type: Sub-task
>          Components: Java Broker
>            Reporter: Rob Godfrey
>            Assignee: Rob Godfrey
>
> Currently there are two different interfaces for the persisting of configured 
> object, one which is used by objects that live directly under the broker, and 
> one which is used by objects underneath the virtual host.
> The two APIs should be unified, the recovery process should me made generic, 
> and a standardised way of differentiating between objects which inherit their 
> parents store and those which manage their own should be made (Broker and 
> VirtualHost should not be special-cased in any store logic).



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to