[jboss-cvs] JBoss Messaging SVN: r5223 - in trunk/src/main/org/jboss/messaging/core: server and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Oct 30 12:17:27 EDT 2008


Author: timfox
Date: 2008-10-30 12:17:27 -0400 (Thu, 30 Oct 2008)
New Revision: 5223

Added:
   trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReplicateCreateSessionMessage.java
   trunk/src/main/org/jboss/messaging/core/server/SendLock.java
   trunk/src/main/org/jboss/messaging/core/server/impl/SendLockImpl.java
Log:
Missing files


Added: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReplicateCreateSessionMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReplicateCreateSessionMessage.java	                        (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/ReplicateCreateSessionMessage.java	2008-10-30 16:17:27 UTC (rev 5223)
@@ -0,0 +1,191 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.messaging.core.remoting.impl.wireformat;
+
+import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
+
+/**
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
+ * 
+ * @version <tt>$Revision$</tt>
+ */
+public class ReplicateCreateSessionMessage extends PacketImpl
+{
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   private String name;
+
+   private long sessionChannelID;
+
+   private int version;
+
+   private String username;
+
+   private String password;
+
+   private boolean xa;
+
+   private boolean autoCommitSends;
+
+   private boolean autoCommitAcks;
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   public ReplicateCreateSessionMessage(final String name,
+                                        final long sessionChannelID,
+                                        final int version,
+                                        final String username,
+                                        final String password,
+                                        final boolean xa,
+                                        final boolean autoCommitSends,
+                                        final boolean autoCommitAcks)
+   {
+      super(REPLICATE_CREATESESSION);
+
+      this.name = name;
+
+      this.sessionChannelID = sessionChannelID;
+
+      this.version = version;
+
+      this.username = username;
+
+      this.password = password;
+
+      this.xa = xa;
+
+      this.autoCommitSends = autoCommitSends;
+
+      this.autoCommitAcks = autoCommitAcks;
+   }
+
+   public ReplicateCreateSessionMessage()
+   {
+      super(REPLICATE_CREATESESSION);
+   }
+
+   // Public --------------------------------------------------------
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public long getSessionChannelID()
+   {
+      return sessionChannelID;
+   }
+
+   public int getVersion()
+   {
+      return version;
+   }
+
+   public String getUsername()
+   {
+      return username;
+   }
+
+   public String getPassword()
+   {
+      return password;
+   }
+
+   public boolean isXA()
+   {
+      return xa;
+   }
+
+   public boolean isAutoCommitSends()
+   {
+      return this.autoCommitSends;
+   }
+
+   public boolean isAutoCommitAcks()
+   {
+      return this.autoCommitAcks;
+   }
+
+   public void encodeBody(final MessagingBuffer buffer)
+   {
+      buffer.putString(name);
+      buffer.putLong(sessionChannelID);
+      buffer.putInt(version);
+      buffer.putNullableString(username);
+      buffer.putNullableString(password);
+      buffer.putBoolean(xa);
+      buffer.putBoolean(autoCommitSends);
+      buffer.putBoolean(autoCommitAcks);
+   }
+
+   public void decodeBody(final MessagingBuffer buffer)
+   {
+      name = buffer.getString();
+      sessionChannelID = buffer.getLong();
+      version = buffer.getInt();
+      username = buffer.getNullableString();
+      password = buffer.getNullableString();
+      xa = buffer.getBoolean();
+      autoCommitSends = buffer.getBoolean();
+      autoCommitAcks = buffer.getBoolean();
+   }
+
+   public boolean equals(Object other)
+   {
+      if (other instanceof ReplicateCreateSessionMessage == false)
+      {
+         return false;
+      }
+
+      ReplicateCreateSessionMessage r = (ReplicateCreateSessionMessage)other;
+
+      boolean matches = super.equals(other) && this.name.equals(r.name) &&
+                        this.sessionChannelID == r.sessionChannelID &&
+                        this.version == r.version &&
+                        this.xa == r.xa &&
+                        this.autoCommitSends == r.autoCommitSends &&
+                        this.autoCommitAcks == r.autoCommitAcks &&
+                        (this.username == null ? r.username == null : this.username.equals(r.username)) &&
+                        (this.password == null ? r.password == null : this.password.equals(r.password));
+
+      return matches;
+   }
+
+   public final boolean isRequiresConfirmations()
+   {
+      return false;
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+}

Added: trunk/src/main/org/jboss/messaging/core/server/SendLock.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/SendLock.java	                        (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/server/SendLock.java	2008-10-30 16:17:27 UTC (rev 5223)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+
+package org.jboss.messaging.core.server;
+
+/**
+ * A SendLock
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * 
+ * Created 30 Oct 2008 15:48:27
+ *
+ *
+ */
+public interface SendLock
+{
+   void lock();
+   
+   void unlock();
+     
+   void beforeSend();
+   
+   void afterSend();
+}

Added: trunk/src/main/org/jboss/messaging/core/server/impl/SendLockImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/SendLockImpl.java	                        (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/SendLockImpl.java	2008-10-30 16:17:27 UTC (rev 5223)
@@ -0,0 +1,98 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+
+package org.jboss.messaging.core.server.impl;
+
+import org.jboss.messaging.core.server.SendLock;
+
+
+/**
+ * A SendLockImpl
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * 
+ * Created 27 Oct 2008 12:42:37
+ *
+ *
+ */
+public class SendLockImpl implements SendLock
+{
+   private boolean locked;
+   
+   private int count;
+      
+   public synchronized void lock()
+   {
+      while (count > 0 || locked)
+      {
+         try
+         {
+            wait();
+         }
+         catch (InterruptedException e)
+         {            
+         }
+      }  
+      
+      locked = true;      
+   }
+   
+   public synchronized void unlock()
+   {
+      locked = false;
+      
+      notifyAll();
+   }
+     
+   public synchronized void beforeSend()   
+   {
+      while (locked)
+      {
+         try
+         {
+            wait();
+         }
+         catch (InterruptedException e)
+         {            
+         }
+      }    
+      
+      count++;      
+   }
+   
+   public synchronized void afterSend()
+   {
+      count--;
+      
+      if (count < 0)
+      {
+         throw new IllegalStateException("called afterSend() too many times");
+      }
+      
+      if (count == 0)
+      {         
+         notifyAll();
+      }
+   }
+
+}




More information about the jboss-cvs-commits mailing list