mirror of https://github.com/apache/activemq.git
git-svn-id: https://svn.apache.org/repos/asf/incubator/activemq/trunk@491753 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
3070d33275
commit
4cd0a27f91
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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"),
|
||||
|
@ -80,6 +82,7 @@ public class ActiveMQDestinationTest extends DataStructureTestSupport {
|
|||
assertEquals("Sorted order", expected, actual);
|
||||
}
|
||||
|
||||
|
||||
public static Test suite() {
|
||||
return suite(ActiveMQDestinationTest.class);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue