git-svn-id: https://svn.apache.org/repos/asf/incubator/activemq/trunk@491753 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Robert Davies 2007-01-02 07:06:39 +00:00
parent 3070d33275
commit 4cd0a27f91
2 changed files with 53 additions and 40 deletions

View File

@ -1,83 +1,93 @@
/**
*
* 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
*
*
* 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.
*
* 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.command;
import javax.jms.JMSException;
import org.apache.activemq.ActiveMQConnection;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* @openwire:marshaller
* @version $Revision: 1.5 $
*/
abstract public class ActiveMQTempDestination extends ActiveMQDestination {
abstract public class ActiveMQTempDestination extends ActiveMQDestination{
private static final Log log=LogFactory.getLog(ActiveMQTempDestination.class);
protected transient ActiveMQConnection connection;
protected transient String connectionId;
protected transient int sequenceId;
public ActiveMQTempDestination() {
public ActiveMQTempDestination(){
}
public ActiveMQTempDestination(String name) {
public ActiveMQTempDestination(String name){
super(name);
}
public ActiveMQTempDestination(String connectionId, long sequenceId) {
public ActiveMQTempDestination(String connectionId,long sequenceId){
super(connectionId+":"+sequenceId);
}
public boolean isTemporary() {
public boolean isTemporary(){
return true;
}
public void delete() throws JMSException {
public void delete() throws JMSException{
connection.deleteTempDestination(this);
}
public ActiveMQConnection getConnection() {
public ActiveMQConnection getConnection(){
return connection;
}
public void setConnection(ActiveMQConnection connection) {
this.connection = connection;
public void setConnection(ActiveMQConnection connection){
this.connection=connection;
}
public void setPhysicalName(String physicalName) {
public void setPhysicalName(String physicalName){
super.setPhysicalName(physicalName);
if( !isComposite() ) {
if(!isComposite()){
// Parse off the sequenceId off the end.
int p = this.physicalName.lastIndexOf(":");
sequenceId = Integer.parseInt(this.physicalName.substring(p+1).trim());
// The rest should be the connection id.
connectionId = this.physicalName.substring(0,p);
//this can fail if the temp destination is
//generated by another JMS system via the JMS<->JMS Bridge
int p=this.physicalName.lastIndexOf(":");
if(p>=0){
String seqStr=this.physicalName.substring(p+1).trim();
if(seqStr!=null&&seqStr.length()>0){
try{
sequenceId=Integer.parseInt(seqStr);
}catch(NumberFormatException e){
log.debug("Did not parse sequence Id from "+physicalName);
}
// The rest should be the connection id.
connectionId=this.physicalName.substring(0,p);
}
}
}
}
public String getConnectionId() {
public String getConnectionId(){
return connectionId;
}
public void setConnectionId(String connectionId) {
this.connectionId = connectionId;
public void setConnectionId(String connectionId){
this.connectionId=connectionId;
}
public int getSequenceId() {
public int getSequenceId(){
return sequenceId;
}
}

View File

@ -44,6 +44,8 @@ public class ActiveMQDestinationTest extends DataStructureTestSupport {
new ActiveMQTopic("TEST"),
new ActiveMQTempQueue("TEST:1"),
new ActiveMQTempTopic("TEST:1"),
new ActiveMQTempQueue("TEST"),
new ActiveMQTempTopic("TEST"),
new ActiveMQQueue("TEST?option=value"),
new ActiveMQTopic("TEST?option=value"),
new ActiveMQTempQueue("TEST:1?option=value"),
@ -79,7 +81,8 @@ public class ActiveMQDestinationTest extends DataStructureTestSupport {
List actual = new ArrayList(set);
assertEquals("Sorted order", expected, actual);
}
public static Test suite() {
return suite(ActiveMQDestinationTest.class);
}