[jira] Updated: (AMQ-877) Patch: refactoring to allow alternative (using different storage interface) Destinations implementations.

2006-08-30 Thread Maxim Fateev (JIRA)
 [ https://issues.apache.org/activemq/browse/AMQ-877?page=all ]

Maxim Fateev updated AMQ-877:
-

Attachment: destinationFactoryActiveMQ_438704.patch

The updated patch is attached.

 Patch: refactoring to allow alternative (using different storage interface) 
 Destinations implementations.
 -

 Key: AMQ-877
 URL: https://issues.apache.org/activemq/browse/AMQ-877
 Project: ActiveMQ
  Issue Type: Improvement
  Components: Broker
Affects Versions: 4.x
Reporter: Maxim Fateev
 Assigned To: Rob Davies
 Fix For: 4.1

 Attachments: destinationFactoryActiveMQ_438704.patch, 
 destinationFactoryActiveMQPatch.txt


 We were looking at alternate message persistence mechanisms that can co-exist 
 in current ActiveMQ code base and we are thinking of a mechanism that is 
 somewhat incompatible with the current MessageStore and PersistenceAdapter 
 APIs. Unfortunately, the current ActiveMQ broker doesn't allow for such a 
 change as the PersistenceAdapter and MessageStore interfaces are referenced 
 directly by the RegionBroker and by both the Queue and Topic region 
 implementations. Therefore, we are proposing a relatively small backwards 
 compatible refactoring of the broker code that would eliminate all 
 dependencies on the PersistenceAdapter and MessageStore interfaces from those 
 classes that do not use them directly. This refactoring would also allow 
 creation of a custom Destination implementation that may use an alternative 
 persistence mechanism on a destination by destination basis (which is exactly 
 what we need to do).
   The main idea behind the refactoring is to replace many references to 
 PersistenceAdapter with a new interface: DestinationFactory:
   public abstract class DestinationFactory { 
   abstract public Destination createDestination(ConnectionContext 
 context, ActiveMQDestination destination, DestinationStatistics 
 destinationStatistics) throws Exception;
   abstract public Set getDestinations(); 
   abstract public SubscriptionInfo[] 
 getAllDurableSubscriptions(ActiveMQTopic topic) throws IOException; 
   abstract public long getLastMessageBrokerSequenceId() throws 
 IOException; 
   abstract public void setRegionBroker(RegionBroker regionBroker); 
   } 
   Note that DestinationFactory doesn't mandate any specific persistence 
 mechanism. The classes that would reference it instead of PersistenceAdapter 
 are: RegionBroker, AbstractRegion, QueueRegion, and TopicRegion. Also, the 
 AbstractRegion.createDestination method would be changed from abstract to an 
 implementation that uses DestinationFactory to create a destination.
   BrokerService could be changed to use DestinationFactory if one is 
 provided. If none is provided, it will create a DestinationFactory 
 implementation that instantiates Queue and Topic using PersistenceAdapter as 
 it does currently. Hence, full backwards compatibility will be maintained.
 Patch is attached.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Updated: (AMQ-877) Patch: refactoring to allow alternative (using different storage interface) Destinations implementations.

2006-08-17 Thread Rob Davies (JIRA)
 [ https://issues.apache.org/activemq/browse/AMQ-877?page=all ]

Rob Davies updated AMQ-877:
---

Fix Version/s: 4.1

 Patch: refactoring to allow alternative (using different storage interface) 
 Destinations implementations.
 -

 Key: AMQ-877
 URL: https://issues.apache.org/activemq/browse/AMQ-877
 Project: ActiveMQ
  Issue Type: Improvement
  Components: Broker
Affects Versions: 4.x
Reporter: Maxim Fateev
 Assigned To: Rob Davies
 Fix For: 4.1

 Attachments: destinationFactoryActiveMQPatch.txt


 We were looking at alternate message persistence mechanisms that can co-exist 
 in current ActiveMQ code base and we are thinking of a mechanism that is 
 somewhat incompatible with the current MessageStore and PersistenceAdapter 
 APIs. Unfortunately, the current ActiveMQ broker doesn't allow for such a 
 change as the PersistenceAdapter and MessageStore interfaces are referenced 
 directly by the RegionBroker and by both the Queue and Topic region 
 implementations. Therefore, we are proposing a relatively small backwards 
 compatible refactoring of the broker code that would eliminate all 
 dependencies on the PersistenceAdapter and MessageStore interfaces from those 
 classes that do not use them directly. This refactoring would also allow 
 creation of a custom Destination implementation that may use an alternative 
 persistence mechanism on a destination by destination basis (which is exactly 
 what we need to do).
   The main idea behind the refactoring is to replace many references to 
 PersistenceAdapter with a new interface: DestinationFactory:
   public abstract class DestinationFactory { 
   abstract public Destination createDestination(ConnectionContext 
 context, ActiveMQDestination destination, DestinationStatistics 
 destinationStatistics) throws Exception;
   abstract public Set getDestinations(); 
   abstract public SubscriptionInfo[] 
 getAllDurableSubscriptions(ActiveMQTopic topic) throws IOException; 
   abstract public long getLastMessageBrokerSequenceId() throws 
 IOException; 
   abstract public void setRegionBroker(RegionBroker regionBroker); 
   } 
   Note that DestinationFactory doesn't mandate any specific persistence 
 mechanism. The classes that would reference it instead of PersistenceAdapter 
 are: RegionBroker, AbstractRegion, QueueRegion, and TopicRegion. Also, the 
 AbstractRegion.createDestination method would be changed from abstract to an 
 implementation that uses DestinationFactory to create a destination.
   BrokerService could be changed to use DestinationFactory if one is 
 provided. If none is provided, it will create a DestinationFactory 
 implementation that instantiates Queue and Topic using PersistenceAdapter as 
 it does currently. Hence, full backwards compatibility will be maintained.
 Patch is attached.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira