public void done() { BaseRecordOwner transport = (BaseRecordOwner)this.get("transport"); BaseMessage message = (BaseMessage)this.get("message"); ((MessageSender)transport).sendMessage(message); transport.free(); } };
/** * Log this transaction. * @param strLogData Data to log */ public synchronized void logTrx(Object objLogData) { BaseMessage message = this.getMessageObject(); message.putNative(MESSAGE_PARAM, objLogData); this.getMessageManager().sendMessage(message); } /**
MessageReceiver messageReceiver = messageManager.getMessageQueue(messageFilter.getQueueName(), messageFilter.getQueueType()).getMessageReceiver(); messageReceiver.addMessageFilter(messageFilter); // I do this just in case the link code wants to add a filter to the tree (ie., RecordFilters). BaseMessageFilter messageFilterNew = messageFilter.linkRemoteSession(this); // Link the filter and give filter a chance to change the remote version. if (messageFilterNew != messageFilter) messageReceiver.removeMessageFilter(messageFilter, true); if (messageFilterNew.getMessageReceiver() == null) messageReceiver = messageManager.getMessageQueue(messageFilterNew.getQueueName(), messageFilterNew.getQueueType()).getMessageReceiver(); messageReceiver.addMessageFilter(messageFilterNew);
/** * Add all the screen listeners. */ public void addListeners() { super.addListeners(); MessageManager messageManager = ((Application)this.getTask().getApplication()).getMessageManager(); if (messageManager != null) { Object source = this; BaseMessageFilter filter = new BaseMessageFilter(MessageConstants.TRX_RETURN_QUEUE, MessageConstants.INTERNET_QUEUE, source, null); filter.addMessageListener(this); messageManager.addMessageFilter(filter); m_intRegistryID = filter.getRegistryID(); } } /**
BaseMessageReceiver messageReceiver = (BaseMessageReceiver)messageManager.getMessageQueue(MessageConstants.RECORD_QUEUE_NAME, MessageConstants.INTRANET_QUEUE).getMessageReceiver(); MessageReceiverFilterList messageFilters = messageReceiver.getMessageFilterList(); BaseMessageHeader messageHeaderFilter = new BaseMessageHeader(MessageConstants.RECORD_QUEUE_NAME, MessageConstants.INTRANET_QUEUE, null, null);
/** * Create the remote receive queue. * @param strQueueName The queue name to service. * @param strQueueType The queue type. * @return The RemoteSendQueue. */ public RemoteReceiveQueue createRemoteReceiveQueue(String strQueueName, String strQueueType) throws RemoteException { BaseMessageManager messageManager = this.getEnvironment().getMessageManager(this.getApplication(), true); BaseMessageReceiver receiver = (BaseMessageReceiver)messageManager.getMessageQueue(strQueueName, strQueueType).getMessageReceiver(); ReceiveQueueSession remoteQueue = new ReceiveQueueSession(this, receiver); return remoteQueue; } /**
/** * Create the remote send queue. * @param strQueueName The queue name to service. * @param strQueueType The queue type. * @return The RemoteSendQueue. */ public RemoteSendQueue createRemoteSendQueue(String strQueueName, String strQueueType) throws RemoteException { BaseMessageManager messageManager = this.getEnvironment().getMessageManager(this.getApplication(), true); BaseMessageSender sender = (BaseMessageSender)messageManager.getMessageQueue(strQueueName, strQueueType).getMessageSender(); SendQueueSession remoteQueue = new SendQueueSession(this, sender); return remoteQueue; } /**
/** * Add behaviors to this session. */ public void addListeners() { super.addListeners(); // BaseMessageFilter remoteFilter = new ServerSessionMessageFilter(messageFilter.getQueueName(), messageFilter.getQueueType(), null, this); //System.out.println("Remote filter " + remoteFilter); BaseMessageFilter filterForSession = new BaseMessageFilter(MessageConstants.TRX_RETURN_QUEUE, MessageConstants.INTERNET_QUEUE, null, null); MessageManager messageManager = ((Application)this.getTask().getApplication()).getMessageManager(); messageManager.addMessageFilter(filterForSession); filterForSession.addMessageListener(this); m_intRegistryID = filterForSession.getRegistryID(); } /**
BaseMessageReceiver handler = (BaseMessageReceiver)messageManager.getMessageQueue(MessageConstants.RECORD_QUEUE_NAME, MessageConstants.INTRANET_QUEUE).getMessageReceiver();
/** * Remove this listener (called from remote). * @param messageFilter The message filter. */ public boolean removeRemoteMessageFilter(BaseMessageFilter messageFilter, boolean bFreeFilter) throws RemoteException { Utility.getLogger().info("EJB removeMessageFilter filter: " + messageFilter); BaseMessageManager messageManager = ((Application)this.getTask().getApplication()).getMessageManager(); BaseMessageReceiver messageReceiver = (BaseMessageReceiver)messageManager.getMessageQueue(messageFilter.getRemoteFilterQueueName(), messageFilter.getRemoteFilterQueueType()).getMessageReceiver(); boolean bRemoved = false; if (messageReceiver != null) bRemoved = messageReceiver.removeMessageFilter(messageFilter.getRemoteFilterID(), bFreeFilter); return bRemoved; } /**
/** * StartProcess Method. */ public void startProcess(String strProcessName, int iCount) { Map<String,Object> properties = new HashMap<String,Object>(); properties.put(DBParams.PROCESS, strProcessName); properties.put(DBParams.TABLE, this.getProperty(DBParams.TABLE)); properties.put("count", iCount); Application app = (Application)this.getTask().getApplication(); String strQueueName = MessageConstants.TRX_SEND_QUEUE; String strQueueType = MessageConstants.INTRANET_QUEUE; BaseMessage message = new MapMessage(new TrxMessageHeader(strQueueName, strQueueType, properties), properties); app.getMessageManager().sendMessage(message); }
/** * AddAvailabilityMessageListeners Method. */ public void addAvailabilityMessageListeners(Product recProduct, ProductScreenRecord screenRecord) { // Override this to add the listeners and message queues (remember to call super) // Create a private messageReceiver and listen for changes MessageManager messageManager = ((Application)this.getTask().getApplication()).getMessageManager(); Integer intRegistryID = null; if (messageManager != null) { Object source = this; BaseMessageFilter messageFilter = new BaseMessageFilter(MessageConstants.TRX_RETURN_QUEUE, MessageConstants.INTERNET_QUEUE, source, null); messageManager.addMessageFilter(messageFilter); this.addProductAvailabilityMessageFilter(recProduct, messageFilter); recProduct.addListener(new FreeOnFreeHandler(messageFilter)); intRegistryID = messageFilter.getRegistryID(); recProduct.addListener(this.getProductAvailabilityHandler(screenRecord, intRegistryID)); } } /**
if (strQueueType == null) BaseMessageReceiver receiver = (BaseMessageReceiver)messageManager.getMessageQueue(strQueueName, strQueueType).getMessageReceiver(); new BaseMessageListener(receiver) // Listener added to filter.
/** * RunUpdater Method. */ public boolean runUpdater() { Map<String,Object> properties = new HashMap<String,Object>(); String strTableName = this.getMainRecord().getTableNames(false); properties.put(DBParams.PROCESS, HotelAvailProcess.class.getName()); properties.put(DBParams.TABLE, strTableName); Application app = (Application)this.getTask().getApplication(); String strQueueName = MessageConstants.TRX_SEND_QUEUE; String strQueueType = MessageConstants.INTRANET_QUEUE; BaseMessage message = new MapMessage(new TrxMessageHeader(strQueueName, strQueueType, properties), properties); app.getMessageManager().sendMessage(message); return true; }
/** * AddAvailabilityMessageListeners Method. */ public void addAvailabilityMessageListeners(Product recProduct, ProductScreenRecord screenRecord) { // Override this to add the listeners and message queues (remember to call super) // Create a private messageReceiver and listen for changes MessageManager messageManager = ((Application)this.getTask().getApplication()).getMessageManager(); Integer intRegistryID = null; if (messageManager != null) { Object source = this; BaseMessageFilter messageFilter = new BaseMessageFilter(MessageConstants.TRX_RETURN_QUEUE, MessageConstants.INTERNET_QUEUE, source, null); messageManager.addMessageFilter(messageFilter); this.addProductAvailabilityMessageFilter(recProduct, messageFilter); recProduct.addListener(new FreeOnFreeHandler(messageFilter)); intRegistryID = messageFilter.getRegistryID(); recProduct.addListener(this.getProductAvailabilityHandler(screenRecord, intRegistryID)); } } /**
/** * Update this filter with this new information. * @param messageFilter The message filter I am updating. * @param properties New filter information (ie, bookmark=345). */ public void updateRemoteFilterProperties(BaseMessageFilter messageFilter, Object[][] mxProperties, Map<String,Object> propFilter) throws RemoteException { Utility.getLogger().info("EJB updateRemoteFilter properties: " + mxProperties); // Give the filter the remote environment BaseMessageManager messageManager = ((Application)this.getTask().getApplication()).getMessageManager(); messageFilter = ((BaseMessageReceiver)messageManager.getMessageQueue(messageFilter.getQueueName(), messageFilter.getQueueType()).getMessageReceiver()).getMessageFilter(messageFilter.getRemoteFilterID()); // Must look it up if (messageFilter != null) // Always { if (mxProperties != null) messageFilter.setFilterTree(mxProperties); if (propFilter != null) { propFilter = messageFilter.handleUpdateFilterMap(propFilter); // Update this object's local filter. messageFilter.setFilterMap(propFilter); // Update any remote copy of this. } } } /**
/** * Set the field that owns this listener. * @owner The field that this listener is being added to (if null, this listener is being removed). */ public void setOwner(ListenerOwner owner) { if (owner == null) { if (m_messageListener != null) { m_messageListener.free(); m_messageListener = null; } } super.setOwner(owner); if (owner != null) { Record record = this.getOwner().getRecord(); MessageManager messageManager = ((Application)record.getTask().getApplication()).getMessageManager(); if (messageManager != null) { BaseMessageFilter messageFilter = new BaseMessageFilter(MessageConstants.TRX_RETURN_QUEUE, MessageConstants.INTERNET_QUEUE, this, null); messageManager.addMessageFilter(messageFilter); m_messageListener = new WaitForFieldChangeMessageListener(messageFilter, this); record.setupRecordListener(m_messageListener, false, false); // I need to listen for record changes } } } /**
filter = new GridRecordMessageFilter(this, source, bReceiveAllAdds); filter.addMessageListener(listener); messageManager.addMessageFilter(filter);
/** * Add the listeners and message queues for rate lookups. * (todo - Don't set this up until they are required). */ public void addRateMessageListeners(Product recProduct, ProductScreenRecord screenRecord) { // Override this to add the listeners and message queues (remember to call super) this.getMainRecord().getField(Product.PRODUCT_COST).setSelected(true); // Now you can calc the USD amount (since you have this local amount) this.getMainRecord().getField(Product.PRODUCT_COST).addListener(new CalcProductAmountHome(this.getMainRecord().getField(Product.PRODUCT_COST_LOCAL))); this.getMainRecord().getField(Product.PP_COST).addListener(new CalcProductAmountHome(this.getMainRecord().getField(Product.PP_COST_LOCAL))); // Create a private messageReceiver and listen for changes MessageManager messageManager = ((Application)this.getTask().getApplication()).getMessageManager(); Integer intRegistryID = null; if (messageManager != null) { Object source = this; BaseMessageFilter messageFilter = new BaseMessageFilter(MessageConstants.TRX_RETURN_QUEUE, MessageConstants.INTERNET_QUEUE, source, null); messageManager.addMessageFilter(messageFilter); this.addProductRateMessageFilter(recProduct, messageFilter); recProduct.addListener(new FreeOnFreeHandler(messageFilter)); intRegistryID = messageFilter.getRegistryID(); recProduct.addListener(this.getProductCostHandler(screenRecord, intRegistryID)); } } /**
/** * Add the listeners and message queues for rate lookups. */ public void addRateMessageListeners(Product recProduct, ProductScreenRecord screenRecord) { // Override this to add the listeners and message queues (remember to call super) this.getMainRecord().getField(Product.PRODUCT_COST).setSelected(true); // Now you can calc the USD amount (since you have this local amount) this.getMainRecord().getField(Product.PRODUCT_COST).addListener(new CalcProductAmountHome(this.getMainRecord().getField(Product.PRODUCT_COST_LOCAL))); this.getMainRecord().getField(Product.PP_COST).setSelected(true); // Now you can calc the USD amount (since you have this local amount) this.getMainRecord().getField(Product.PP_COST).addListener(new CalcProductAmountHome(this.getMainRecord().getField(Product.PP_COST_LOCAL))); // Create a private messageReceiver and listen for changes MessageManager messageManager = ((Application)this.getTask().getApplication()).getMessageManager(); Integer intRegistryID = null; if (messageManager != null) { Object source = this; BaseMessageFilter messageFilter = new BaseMessageFilter(MessageConstants.TRX_RETURN_QUEUE, MessageConstants.INTERNET_QUEUE, source, null); messageManager.addMessageFilter(messageFilter); this.addProductRateMessageFilter(recProduct, messageFilter); recProduct.addListener(new FreeOnFreeHandler(messageFilter)); intRegistryID = messageFilter.getRegistryID(); recProduct.addListener(this.getProductCostHandler(screenRecord, intRegistryID)); } } /**