activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rajdav...@apache.org
Subject svn commit: r800274 - in /activemq/trunk/activemq-core/src/main/java/org/apache/activemq/plugin: ForcePersistencyModeBroker.java ForcePersistencyModeBrokerPlugin.java
Date Mon, 03 Aug 2009 09:54:48 GMT
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



Mime
View raw message