You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by ja...@apache.org on 2004/08/16 14:15:57 UTC
cvs commit: ws-fx/sandesha/src/org/apache/sandesha/server/dao ServerQueueDAO.java
jaliya 2004/08/16 05:15:57
Added: sandesha/src/org/apache/sandesha/server/dao
ServerQueueDAO.java
Log:
An Implementation of IServerDAO to access a queue
Revision Changes Path
1.1 ws-fx/sandesha/src/org/apache/sandesha/server/dao/ServerQueueDAO.java
Index: ServerQueueDAO.java
===================================================================
/*
* Copyright 1999-2004 The Apache Software Foundation.
*
* Licensed 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.sandesha.server.dao;
import java.util.Iterator;
import java.util.Random;
import java.util.Set;
import java.util.Vector;
import org.apache.axis.components.logger.LogFactory;
import org.apache.commons.logging.Log;
import org.apache.sandesha.RMMessageContext;
import org.apache.sandesha.server.queue.QueueException;
import org.apache.sandesha.server.queue.ServerQueue;
/**
* @author Chamikara Jayalath
* @author Jaliya Ekanayaka
*/
public class ServerQueueDAO implements IServerDAO {
protected static Log log =
LogFactory.getLog(ServerQueueDAO.class.getName());
public boolean addSequence(String sequenceId) {
boolean result = false;
try{
ServerQueue sq = ServerQueue.getInstance();
sq.createNewSequence(sequenceId);
result=true;
}catch(QueueException e){
log.error(e);
}
return result;
}
public boolean addOutQueueMessage(RMMessageContext msg) {
boolean result = false;
try{
ServerQueue sq = ServerQueue.getInstance();
sq.addMessageToOutQueue(msg);
}catch(QueueException e){
log.error(e);
}
return result;
}
public RMMessageContext getNextMessageToSend() {
RMMessageContext msg = null;
try{
ServerQueue sq = ServerQueue.getInstance();
msg = sq.nextOutQueueMessage();
}catch(QueueException e){
log.error(e);
e.printStackTrace();
}
return msg;
}
/* (non-Javadoc)
* @see org.apache.sandesha.server.dao.IServerDAO#addMessageToSequence(java.lang.String, java.lang.Long, org.apache.sandesha.RMMessageContext)
*/
public boolean addMessageToSequence(
String sequenceId,
Long msgNo,
RMMessageContext rmMessageContext) {
boolean result = false;
try{
ServerQueue sq = ServerQueue.getInstance();
sq.addMessageToSequence(sequenceId,msgNo,rmMessageContext);
result = true;
}catch(QueueException e){
log.error(e);
e.printStackTrace();
}
return result;
}
/* (non-Javadoc)
* @see org.apache.sandesha.server.dao.IServerDAO#isSequenceExists(java.lang.String)
*/
public boolean isSequenceExists(String sequenceId) {
ServerQueue sq = ServerQueue.getInstance();
boolean exists = sq.isSequenceExists(sequenceId);
return exists;
}
/* (non-Javadoc)
* @see org.apache.sandesha.server.dao.IServerDAO#getNextMsgContextToProcess(java.lang.String)
*/
public RMMessageContext getNextMsgContextToProcess(String sequenceId) {
ServerQueue sq = ServerQueue.getInstance();
RMMessageContext msg = null;
try{
msg = sq.nextMessageToProcess(sequenceId);
}catch(Exception e){
log.error(e);
e.printStackTrace();
}
return msg;
}
/* (non-Javadoc)
* @see org.apache.sandesha.server.dao.IServerDAO#hasNewMessages()
*/
public boolean hasNewMessages() {
// TODO Auto-generated method stub
return false;
}
/* (non-Javadoc)
* @see org.apache.sandesha.server.dao.IServerDAO#getRandomSeqIdToProcess()
*/
public String getRandomSeqIdToProcess() {
// TODO Auto-generated method stub
ServerQueue sq = ServerQueue.getInstance();
Vector ids = sq.nextAllSeqIdsToProcess();
int size = ids.size();
if(size<=0)
return null;
Random r = new Random();
int number = r.nextInt(size);
String id = (String) ids.get(number);
sq.setSequenceLock(id,true); //Locks the sequence temporarily to tell that it is locked.
return id;
}
/* (non-Javadoc)
* @see org.apache.sandesha.server.dao.IServerDAO#getAllReceivedMsgNumsOfSeq(java.lang.String)
*/
public Set getAllReceivedMsgNumsOfSeq(String sequenceId) {
ServerQueue sq = ServerQueue.getInstance();
return sq.getAllReceivedMsgNumsOfSeq(sequenceId);
}
/* (non-Javadoc)
* @see org.apache.sandesha.server.dao.IServerDAO#isMessageExists(java.lang.String, java.lang.String)
*/
public boolean isMessageExists(String sequenceId, Long msgNo) {
ServerQueue sq = ServerQueue.getInstance();
return sq.isMessageExists(sequenceId,msgNo);
}
}