Author: rajdavies
Date: Mon Aug  3 09:54:48 2009
New Revision: 800274

URL: http://svn.apache.org/viewvc?rev=800274&view=rev
Log:
Applied patch for https://issues.apache.org/activemq/browse/AMQ-2339

Added:
    
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/plugin/ForcePersistencyModeBroker.java
   (with props)
    
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/plugin/ForcePersistencyModeBrokerPlugin.java
   (with props)

Added: 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/plugin/ForcePersistencyModeBroker.java
URL: 
http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/plugin/ForcePersistencyModeBroker.java?rev=800274&view=auto
==============================================================================
--- 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/plugin/ForcePersistencyModeBroker.java
 (added)
+++ 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/plugin/ForcePersistencyModeBroker.java
 Mon Aug  3 09:54:48 2009
@@ -0,0 +1,70 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq.plugin;
+
+
+import org.apache.activemq.broker.Broker;
+import org.apache.activemq.broker.BrokerFilter;
+import org.apache.activemq.broker.ProducerBrokerExchange;
+import org.apache.activemq.command.Message;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+
+/**
+ * A Plugin which allows to force every incoming message to be PERSISTENT or 
NON-PERSISTENT. 
+ * 
+ * Useful, if you have set the broker usage policy to process ONLY persistent 
or ONLY non-persistent
+ * messages. 
+ */
+public class ForcePersistencyModeBroker extends BrokerFilter{
+  public static Log log = LogFactory.getLog(ForcePersistencyModeBroker.class);
+  private boolean persistence = false;
+  
+  /**
+   * @return the persistenceFlag
+   */
+  public boolean isPersistent() {
+    return persistence;
+  }
+
+  /**
+   * @param persistenceFlag the persistenceFlag to set
+   */
+  public void setPersistenceFlag(boolean mode) {
+    this.persistence = mode;
+  }
+
+  /**
+   * Constructor
+   * @param next
+   */
+  public ForcePersistencyModeBroker(Broker next) {
+    super(next);
+    System.out.println(this.getBrokerSequenceId());
+  }
+  
+  /** Sets the persistence mode
+   * @see 
org.apache.activemq.broker.BrokerFilter#send(org.apache.activemq.broker.ProducerBrokerExchange,
 org.apache.activemq.command.Message)
+   */
+  public void send(ProducerBrokerExchange producerExchange, Message 
messageSend) throws Exception {
+    messageSend.getMessage().setPersistent(isPersistent());
+    next.send(producerExchange, messageSend);
+  }
+  
+}
+

Propchange: 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/plugin/ForcePersistencyModeBroker.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/plugin/ForcePersistencyModeBroker.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/plugin/ForcePersistencyModeBrokerPlugin.java
URL: 
http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/plugin/ForcePersistencyModeBrokerPlugin.java?rev=800274&view=auto
==============================================================================
--- 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/plugin/ForcePersistencyModeBrokerPlugin.java
 (added)
+++ 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/plugin/ForcePersistencyModeBrokerPlugin.java
 Mon Aug  3 09:54:48 2009
@@ -0,0 +1,69 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq.plugin;
+
+
+import org.apache.activemq.broker.Broker;
+import org.apache.activemq.broker.BrokerPlugin;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+
+/**
+ * A Plugin which allows to force every incoming message to be PERSISTENT or 
NON-PERSISTENT. 
+ * 
+ * Useful, if you have set the broker usage policy to process ONLY persistent 
or ONLY non-persistent
+ * messages. 
+ */
+public class ForcePersistencyModeBrokerPlugin implements BrokerPlugin {
+  public static Log log = 
LogFactory.getLog(ForcePersistencyModeBrokerPlugin.class);
+  private boolean persistenceFlag = false;
+  
+  public ForcePersistencyModeBrokerPlugin() {
+  }
+
+  /** 
+ * @param broker
+ * @return the Broker
+ * @throws Exception
+ * @see 
org.apache.activemq.broker.BrokerPlugin#installPlugin(org.apache.activemq.broker.Broker)
+ */
+
+  public Broker installPlugin(Broker broker) throws Exception{
+    ForcePersistencyModeBroker pB = new ForcePersistencyModeBroker(broker);
+    pB.setPersistenceFlag(isPersistenceForced());
+    log.info("Installing ForcePersistencyModeBroker plugin: persistency 
enforced=" + pB.isPersistent());
+    return pB;
+  }
+
+  /** Sets the persistency mode.
+   *  
+   * @param persistenceFlag
+   */
+  public void setPersistenceFlag(final boolean persistenceFlag) {
+    this.persistenceFlag = persistenceFlag;
+  }
+
+  /**
+   * @return the mode the (activated) plugin will set the message delivery 
mode 
+   */
+  public final boolean isPersistenceForced() {
+    return persistenceFlag;
+  }
+  
+}
+

Propchange: 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/plugin/ForcePersistencyModeBrokerPlugin.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/plugin/ForcePersistencyModeBrokerPlugin.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain


Reply via email to