[jboss-svn-commits] JBL Code SVN: r7196 - in labs/jbossesb/workspace/b_georges: . product product/build product/build/classes product/build/classes/listeners product/build/classes/listeners/org product/build/classes/listeners/org/jboss product/build/classes/listeners/org/jboss/soa product/build/classes/listeners/org/jboss/soa/esb product/build/classes/listeners/org/jboss/soa/esb/actions product/build/classes/listeners/org/jboss/soa/esb/actions/converters product/build/classes/listeners/org/jboss/soa/esb/actions/routing product/build/classes/listeners/org/jboss/soa/esb/actions/templates product/build/classes/listeners/org/jboss/soa/esb/listeners product/build/classes/listeners/org/jboss/soa/esb/nagios product/build/classes/listeners/org/jboss/soa/esb/nagios/monitor product/build/classes/listeners/org/jboss/soa/esb/nagios/transport product/build/classes/listeners/org/jboss/soa/esb/nagios/util product/build/classes/rosetta product/build/classes/rosetta/org product/build/classes/rosetta/o! rg/jboss product/build/classes/rosetta/org/jboss/internal product/build/classes/rosetta/org/jboss/internal/soa product/build/classes/rosetta/org/jboss/internal/soa/esb product/build/classes/rosetta/org/jboss/internal/soa/esb/addressing product/build/classes/rosetta/org/jboss/internal/soa/esb/command product/build/classes/rosetta/org/jboss/internal/soa/esb/message product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/marshal product/build/classes/rosetta/org/jboss/internal/soa/esb/notification product/build/classes/rosetta/org/jboss/internal/soa/esb/parameters product/build/classes/rosetta/org/jboss/internal/soa/esb/persistence product/build/classes/rosetta/org/jboss/internal/soa/esb/persistence/format product/build/classes/ro! setta/org/jboss/internal/soa/esb/persistence/format/db product/build/classes/rosetta/org/jboss/internal/soa/esb/thirdparty product/build/classes/rosetta/org/jboss/internal/soa/esb/util product/build/classes/rosetta/org/jboss/soa product/build/classes/rosetta/org/jboss/soa/esb product/build/classes/rosetta/org/jboss/soa/esb/a
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Oct 29 12:13:15 EST 2006
Author: b_georges
Date: 2006-10-29 11:56:56 -0500 (Sun, 29 Oct 2006)
New Revision: 7196
Added:
labs/jbossesb/workspace/b_georges/product/
labs/jbossesb/workspace/b_georges/product/Build.txt
labs/jbossesb/workspace/b_georges/product/Copyright.txt
labs/jbossesb/workspace/b_georges/product/Developer.txt
labs/jbossesb/workspace/b_georges/product/build.xml
labs/jbossesb/workspace/b_georges/product/build/
labs/jbossesb/workspace/b_georges/product/build/classes/
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/AbstractFileAction.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/AbstractSqlRowAction.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/ActionDefinition.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/ActionDefinitionFactory.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/ActionProcessingException.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/ActionProcessor.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/ActionUtils.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/FtpDownloader.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/FtpUploader.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/converters/
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/converters/ByteArrayToString.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/converters/FileToByteArray.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/converters/ObjectToCSVString.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/converters/ObjectToXStream.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/converters/SmooksTransformer.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/routing/
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/routing/FileCopier.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/routing/JMSRouter$1.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/routing/JMSRouter$JMSSendQueueSetup.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/routing/JMSRouter.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/routing/ObjectToFileWriter.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/templates/
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/templates/MockAction.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/templates/MockFileAction.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/templates/MockSqlRowAction.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/AbstractListener$1.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/AbstractListener$ActionProcessingPipeline.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/AbstractListener.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/AbstractPoller.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/DirectoryPoller$FileEndsWith.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/DirectoryPoller$WorkingFile.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/DirectoryPoller.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/GpListener$State.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/GpListener.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/JmsQueueListener.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/RemoteDirectoryPoller$1.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/RemoteDirectoryPoller$WorkingFile.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/RemoteDirectoryPoller.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller$1.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller$OPTIONAL_ATT.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller$ROW_STATE.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller$SQLPollResult.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller$TABLE_ATT.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/Constants.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/MonitorManager$BackgroundTask.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/MonitorManager.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/NagiosAgent.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/NagiosAgentMBean.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/Runner.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/ServiceResponse.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/monitor/
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/monitor/HeartbeatMonitor.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/monitor/MemoryMonitor.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/monitor/ServiceMonitor.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/transport/
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/transport/NagiosNSCAPacket.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/transport/NagiosNSCATransport.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/util/
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/util/ByteOps.class
labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/util/CRC32.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/addressing/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/addressing/CallHelper.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/addressing/PortReferenceHelper$ArjunaName.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/addressing/PortReferenceHelper.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/command/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/command/CommandQueue.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/command/CommandQueueException.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/command/InMemoryCommandQueue.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/command/JmsCommandQueue.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/MessageFactoryImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/FaultImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/MessageImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/SerializedMessagePlugin.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/FaultImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/MessageImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/XMLMessagePlugin.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/XMLUtil.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/marshal/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalManager.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalPlugin.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/marshal/SerializedMarshalUnmarshalPlugin.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/notification/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/notification/MacroExpander.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/parameters/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/parameters/ParamFileRepository$FileParamName.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/parameters/ParamFileRepository.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/persistence/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/persistence/format/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/persistence/format/MessageStoreFactoryImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/persistence/format/db/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/persistence/format/db/DBConnectionManager.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/persistence/format/db/DBMessageStorePlugin.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/persistence/format/db/MessageStoreImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/thirdparty/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/thirdparty/Base64$InputStream.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/thirdparty/Base64$OutputStream.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/thirdparty/Base64.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/util/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/util/StreamUtils.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/BaseException.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/ConfigurationException.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/MarshalException.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/ProtocolNotSupportedException.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/SendFailedException.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/UnmarshalException.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/Call.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/EPR.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/PortReference$Extension.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/PortReference.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/XMLUtil.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/helpers/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/helpers/EmailEpr.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/helpers/FTPEpr.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/helpers/HTTPEpr.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/helpers/JDBCEpr.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/helpers/JMSEpr.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/Configuration.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/Environment.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/ModulePropertyManager.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Address$ATTRIB.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Address$CHLD_LIST.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Address.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/BankAcct$ATTRIB.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/BankAcct.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/BatchProcess$ATTRIB.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/BatchProcess$CHLD_LIST.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/BatchProcess.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/OneValue.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Person$ATTRIB.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Person$CHLD_LIST.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Person.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Telephone$ATTRIB.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Telephone.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/AbandonedConnectionTimerTask.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/ConnectionFactory.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/ConnectionPool.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/ConnectionPoolFactory.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/ConnectionProperties.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/ConnectionWrapper.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/DefaultConnectionPoolImpl.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/DriverConnectionFactory.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/FreeConnectionPoolResources.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/PasswordDecoder.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/PoolDataSource.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/exception/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/exception/ConnectionException.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/AppServerContext$1.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/AppServerContext$SERVER_TYPE.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/AppServerContext.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/DomElement.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/Email$1.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/Email$MyAuth.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/Email.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/KeyValuePair.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/persist/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/persist/JdbcCleanConn.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/persist/SimpleDataSource.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/persist/SqlDbTable.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/persist/SqlField.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Attachment.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Body.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Context.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Fault.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Header.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Message.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Properties.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/format/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/format/MessageFactory.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/format/MessagePlugin.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/format/MessageType.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotificationList.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotificationTarget.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyEmail.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyFiles$1.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyFiles$NotificationFile.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyFiles.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyJMS.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyQueues.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifySqlTable.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyTopics.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyUtil.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/parameters/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/parameters/ParamRepository.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/parameters/ParamRepositoryException.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/parameters/ParamRepositoryFactory.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/persistence/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/persistence/MessageStore.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/persistence/MessageStoreFactory.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/persistence/format/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/persistence/format/MessageStorePlugin.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/persistence/format/MessageStoreType.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/BatchManager.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/DefaultEncryptionFactory$1.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/DefaultEncryptionFactory$DummyEncrypter.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/DefaultEncryptionFactory.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/Encryption.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/NotificationManager.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/PersistManager.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/transform/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/transform/TransformationException.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/transform/TransformationService.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/BaseBusinessObject$ATTRIB.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/BaseBusinessObject$HIDDEN.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/BaseBusinessObject.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/BobjStdDTO.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/FtpClientUtil$XFER_TYPE.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/FtpClientUtil.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/NagiosStandaloneHeartbeat.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/ObjLocator.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/ObjLocatorSorter$RowCmp.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/ObjLocatorSorter.class
labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/Util.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/BobjStore.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/DaoBatchTable.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/DaoIndexTable.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/DaoSnapTable.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/DaoUidTable.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/RowBatch.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/Storable.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/BatchHandlerBsDelegateLocal.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/BatchHandlerBsDelegateRemote.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/BatchHandlerFactory.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/NotifHandlerBsDelegateLocal.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/NotifHandlerBsDelegateRemote.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/NotificationHandlerFactory.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/PersistHandlerBsDelegateLocal.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/PersistHandlerBsDelegateRemote.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/PersistHandlerFactory.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/BatchHandler.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/BatchHandlerBean.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/NotificationHandler.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/NotificationHandlerBean.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/PersistHandler.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/PersistHandlerBean.class
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/registry/
labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/registry/Registry.class
labs/jbossesb/workspace/b_georges/product/build/dist/
labs/jbossesb/workspace/b_georges/product/build/dist/lib/
labs/jbossesb/workspace/b_georges/product/build/dist/lib/jbossesb-appl.ear
labs/jbossesb/workspace/b_georges/product/build/dist/lib/jbossesb-listeners.jar
labs/jbossesb/workspace/b_georges/product/build/dist/lib/jbossesb-rosetta.jar
labs/jbossesb/workspace/b_georges/product/build/dist/lib/jbossesb-services.jar
labs/jbossesb/workspace/b_georges/product/build/dist/xml/
labs/jbossesb/workspace/b_georges/product/build/dist/xml/README.txt
labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/
labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/common.xsd
labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/contract.xsd
labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/dispatcher.xsd
labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/email.xsd
labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/ftp.xsd
labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/jdbc.xsd
labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/jms.xsd
labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/plugin.xsd
labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/routing.xsd
labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/ws-addr.xsd
labs/jbossesb/workspace/b_georges/product/build/dist/xml/email-epr.xsd
labs/jbossesb/workspace/b_georges/product/build/dist/xml/ftp-epr.xsd
labs/jbossesb/workspace/b_georges/product/build/dist/xml/jdbc-epr.xsd
labs/jbossesb/workspace/b_georges/product/build/dist/xml/jms-epr.xsd
labs/jbossesb/workspace/b_georges/product/build/dist/xml/message.xsd
labs/jbossesb/workspace/b_georges/product/build/tests/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/coverage.emma
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/addressing/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/addressing/CallHelper.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/addressing/PortReferenceHelper$ArjunaName.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/addressing/PortReferenceHelper.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/command/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/command/CommandQueueException.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/command/InMemoryCommandQueue.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/command/JmsCommandQueue.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/MessageFactoryImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/FaultImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/MessageImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/SerializedMessagePlugin.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/FaultImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/MessageImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/XMLMessagePlugin.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/XMLUtil.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/marshal/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalManager.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/marshal/SerializedMarshalUnmarshalPlugin.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/notification/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/notification/MacroExpander.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/parameters/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/parameters/ParamFileRepository$FileParamName.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/parameters/ParamFileRepository.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/persistence/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/persistence/format/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/persistence/format/MessageStoreFactoryImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/persistence/format/db/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/persistence/format/db/DBConnectionManager.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/persistence/format/db/DBMessageStorePlugin.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/persistence/format/db/MessageStoreImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/thirdparty/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/thirdparty/Base64$InputStream.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/thirdparty/Base64$OutputStream.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/thirdparty/Base64.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/util/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/util/StreamUtils.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/BaseException.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/ConfigurationException.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/MarshalException.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/ProtocolNotSupportedException.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/SendFailedException.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/UnmarshalException.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/AbstractFileAction.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/AbstractSqlRowAction.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/ActionDefinition.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/ActionDefinitionFactory.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/ActionProcessingException.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/ActionUtils.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/FtpDownloader.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/FtpUploader.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/converters/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/converters/ByteArrayToString.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/converters/FileToByteArray.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/converters/ObjectToCSVString.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/converters/ObjectToXStream.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/converters/SmooksTransformer.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/routing/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/routing/FileCopier.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/routing/JMSRouter$1.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/routing/JMSRouter$JMSSendQueueSetup.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/routing/JMSRouter.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/routing/ObjectToFileWriter.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/templates/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/templates/MockAction.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/templates/MockFileAction.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/templates/MockSqlRowAction.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/Call.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/EPR.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/PortReference$Extension.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/PortReference.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/XMLUtil.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/helpers/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/helpers/EmailEpr.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/helpers/FTPEpr.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/helpers/HTTPEpr.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/helpers/JDBCEpr.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/helpers/JMSEpr.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/Configuration.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/Environment.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/ModulePropertyManager.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Address$ATTRIB.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Address$CHLD_LIST.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Address.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/BankAcct$ATTRIB.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/BankAcct.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/BatchProcess$ATTRIB.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/BatchProcess$CHLD_LIST.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/BatchProcess.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/OneValue.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Person$ATTRIB.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Person$CHLD_LIST.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Person.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Telephone$ATTRIB.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Telephone.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/AbandonedConnectionTimerTask.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/ConnectionPoolFactory.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/ConnectionProperties.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/ConnectionWrapper.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/DefaultConnectionPoolImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/DriverConnectionFactory.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/FreeConnectionPoolResources.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/PoolDataSource.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/exception/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/exception/ConnectionException.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/AppServerContext$1.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/AppServerContext$SERVER_TYPE.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/AppServerContext.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/DomElement.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/Email$1.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/Email$MyAuth.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/Email.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/KeyValuePair.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/persist/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/persist/JdbcCleanConn.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/persist/SimpleDataSource.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/persist/SqlDbTable.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/persist/SqlField.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/BobjStore.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/DaoBatchTable.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/DaoIndexTable.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/DaoSnapTable.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/DaoUidTable.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/RowBatch.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/AbstractListener$1.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/AbstractListener$ActionProcessingPipeline.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/AbstractListener.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/AbstractPoller.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/DirectoryPoller$FileEndsWith.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/DirectoryPoller$WorkingFile.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/DirectoryPoller.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/GpListener$State.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/GpListener.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/JmsQueueListener.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/RemoteDirectoryPoller$1.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/RemoteDirectoryPoller$WorkingFile.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/RemoteDirectoryPoller.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller$1.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller$OPTIONAL_ATT.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller$ROW_STATE.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller$SQLPollResult.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller$TABLE_ATT.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/message/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/message/format/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/message/format/MessageFactory.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/message/format/MessageType.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/Constants.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/MonitorManager$BackgroundTask.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/MonitorManager.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/NagiosAgent.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/Runner.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/ServiceResponse.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/monitor/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/monitor/HeartbeatMonitor.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/monitor/MemoryMonitor.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/transport/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/transport/NagiosNSCAPacket.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/transport/NagiosNSCATransport.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/util/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/util/ByteOps.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/util/CRC32.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotificationList.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotificationTarget.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyEmail.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyFiles$1.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyFiles$NotificationFile.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyFiles.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyJMS.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyQueues.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifySqlTable.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyTopics.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyUtil.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/parameters/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/parameters/ParamRepositoryException.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/parameters/ParamRepositoryFactory.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/persistence/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/persistence/MessageStoreFactory.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/persistence/format/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/persistence/format/MessageStoreType.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/BatchHandlerBsDelegateLocal.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/BatchHandlerBsDelegateRemote.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/BatchHandlerFactory.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/DefaultEncryptionFactory$1.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/DefaultEncryptionFactory$DummyEncrypter.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/DefaultEncryptionFactory.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/NotifHandlerBsDelegateLocal.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/NotifHandlerBsDelegateRemote.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/NotificationHandlerFactory.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/PersistHandlerBsDelegateLocal.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/PersistHandlerBsDelegateRemote.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/PersistHandlerFactory.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/beans/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/beans/BatchHandlerBean.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/beans/NotificationHandlerBean.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/beans/PersistHandlerBean.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/registry/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/registry/Registry.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/transform/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/transform/TransformationException.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/BaseBusinessObject$ATTRIB.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/BaseBusinessObject$HIDDEN.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/BaseBusinessObject.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/BobjStdDTO.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/FtpClientUtil$XFER_TYPE.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/FtpClientUtil.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/NagiosStandaloneHeartbeat.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/ObjLocator.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/ObjLocatorSorter$RowCmp.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/ObjLocatorSorter.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/Util.class
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/jbossesb-appl.ear
labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/jbossesb-instr-all.jar
labs/jbossesb/workspace/b_georges/product/build/tests/junit/
labs/jbossesb/workspace/b_georges/product/build/tests/org/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/StreamUtils.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/StringUtils.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/W3CDomUtils.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/ActionDefinitionFactoryUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/BaseTestActionProcessor.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/SmooksTransformerUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/TestActionProcessor1.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/TestActionProcessor2.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/TestActionProcessor3.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/TestBean.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/ToNowhereRouter.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/ByteArrayToStringUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/FileToByteArrayUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/LongToDateConverter.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/ObjectToCSVStringUnitTest$TestBean.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/ObjectToCSVStringUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/ObjectToFileWriterUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/ObjectToXStreamUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/StringToLongConverter.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/helpers/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/helpers/tests/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/helpers/tests/EmailUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/helpers/tests/FTPUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/helpers/tests/HTTPUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/helpers/tests/JDBCUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/helpers/tests/JMSUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/tests/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/tests/CallUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/tests/EPRUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/command/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/command/InMemoryCommandQueueUnitTest$1.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/command/InMemoryCommandQueueUnitTest$CommandConsumerThread.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/command/InMemoryCommandQueueUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/bizclasses/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/bizclasses/BatchProcessUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/BaseTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/EJBContainerSetup.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/HsqldbUtil$1.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/HsqldbUtil.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/MockDataSource.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/TestUtil.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/bizclasses/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/bizclasses/AddressUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/bizclasses/PersonUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/propertymanager/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/propertymanager/PropertyManagerUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/utils/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/utils/DrainQueuesAndTopics.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/connection/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/connection/AbandonedConnectionFuncTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/connection/ConnectionPoolFuncTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/connection/PasswordDecoderFuncTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/connection/PasswordDecoderTestImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/esb/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/esb/persistence/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/esb/persistence/tests/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/esb/persistence/tests/MessageStoreUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/helpers/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/helpers/AppServerContextUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/helpers/DomElementUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/helpers/EmailUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/helpers/KeyValuePairUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/internal/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/internal/core/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/internal/core/objectstore/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/internal/core/objectstore/BobjStoreUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/internal/core/objectstore/DaoUidTableUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/AbstractListenerUnitTest$1.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/AbstractListenerUnitTest$MockGpListener.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/AbstractListenerUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/DirectoryPollerUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/GpListenerUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/SqlTablePollerUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/format/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/format/tests/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/format/tests/ExampleMessageImpl.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/format/tests/ExampleMessagePlugin.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/format/tests/MessageFactoryUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/AttachmentUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/ExampleObject.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/FaultUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/MessageUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/PropertiesUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/MacroExpanderUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotificationListUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyEmailUnitTest$TestNotifyEmail.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyEmailUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyFilesUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyQueuesUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifySqlTableUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyTopicsUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyUtilUnitTest$1.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyUtilUnitTest$TestNotificationHandler.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyUtilUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/TestNotificationTarget1.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/TestNotificationTarget2.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/parameters/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/parameters/ParamRepositoryFactoryUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/parameters/ParamsFileRepositoryUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/parameters/TestParamRepo.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/DummyUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/beans/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/beans/NotificationUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/beans/PersistHandlerUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/registry/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/registry/RegistryUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/tests/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/tests/objectstore/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/tests/objectstore/ObjectStoreFuncTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/util/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/util/FileUtil.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/AbstractMockListner$MessageInError.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/AbstractMockListner.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/BaseBusinessObjectUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/BobjStdDTOUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/ListenersManagerExecThread.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/MockNonblockingListener.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/MockNotificationTarget.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/MockPoller$MessageInError.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/MockPoller.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/StreamUtilsUnitTest.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/TestBob.class
labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/UtilUnitTest.class
labs/jbossesb/workspace/b_georges/product/core/
labs/jbossesb/workspace/b_georges/product/core/ant.bat
labs/jbossesb/workspace/b_georges/product/core/build.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/
labs/jbossesb/workspace/b_georges/product/core/listeners/build.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/src/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/log4j.properties
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/internal/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/internal/soa/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/internal/soa/esb/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/internal/soa/esb/couriers/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractFileAction.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractSqlRowAction.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionDefinition.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionDefinitionFactory.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionProcessingException.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionProcessor.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionUtils.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/FtpDownloader.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/FtpUploader.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ByteArrayToString.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/FileToByteArray.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToCSVString.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToXStream.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/SmooksTransformer.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/routing/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/routing/FileCopier.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/routing/JMSRouter.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/routing/ObjectToFileWriter.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockAction.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockComposer.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockFileAction.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockMessageAction.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockSqlRowAction.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/couriers/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/couriers/Courier.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/couriers/CourierException.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/couriers/CourierFactory.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/ListenerTagNames.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/GatewayListenerController.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/gatewayExample.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/EsbListenerController.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/JmsQueueListener.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/easier2ReadExample.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/example.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/AbstractListener.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/AbstractPoller.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/DirectoryPoller.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/GpListener.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/JmsQueueListener.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/RemoteDirectoryPoller.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/SqlTablePoller.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/Constants.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/MonitorManager.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/NagiosAgent.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/NagiosAgentMBean.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/Runner.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/ServiceResponse.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/monitor/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/monitor/HeartbeatMonitor.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/monitor/MemoryMonitor.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/monitor/ServiceMonitor.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/transport/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/transport/NagiosNSCAPacket.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/transport/NagiosNSCATransport.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/util/
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/util/ByteOps.java
labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/util/CRC32.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/build.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/resources/
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/resources/conf/
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/resources/conf/log4j.properties
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/device-profile.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-01.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-02.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-03.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-04.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-05.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-06.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-07.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-08.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-09.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-10.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-11.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinitionFactoryUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/BaseTestActionProcessor.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformerUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor1.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor2.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor3.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestBean.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ToNowhereRouter.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ByteArrayToStringUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/FileToByteArrayUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/LongToDateConverter.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToCSVStringUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToFileWriterUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToXStreamUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/StringToLongConverter.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/smooks-test.cdrl
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/AbstractListenerUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/AbstractListener_ActionConfig.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/DirectoryPollerUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/GpListener-Config-01.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/GpListenerUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/SqlTablePollerUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/SqlTablePollerUnitTest.xml
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/AbstractMockListner.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/ListenersManagerExecThread.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/MockNonblockingListener.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/MockNotificationTarget.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/MockPoller.java
labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/smooks-cdr.lst
labs/jbossesb/workspace/b_georges/product/core/log4j.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/
labs/jbossesb/workspace/b_georges/product/core/rosetta/ant.bat
labs/jbossesb/workspace/b_georges/product/core/rosetta/build.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/addressing/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/addressing/CallHelper.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/addressing/EPRHelper.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/addressing/PortReferenceHelper.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/command/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/command/CommandQueue.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/command/CommandQueueException.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/command/InMemoryCommandQueue.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/command/JmsCommandQueue.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/MessageFactoryImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/FaultImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/MessageImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/SerializedMessagePlugin.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/FaultImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/MessageImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/XMLMessagePlugin.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/XMLUtil.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/marshal/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalManager.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalPlugin.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/marshal/SerializedMarshalUnmarshalPlugin.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/notification/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/notification/MacroExpander.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/parameters/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/parameters/ParamFileRepository.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/persistence/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/persistence/format/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/thirdparty/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/thirdparty/Base64.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/util/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/util/StreamUtils.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/BaseException.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/ConfigurationException.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/MarshalException.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/ProtocolNotSupportedException.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/SendFailedException.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/UnmarshalException.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/Call.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/EPR.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/PortReference.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/XMLUtil.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/EmailEpr.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/FTPEpr.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/HTTPEpr.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/JDBCEpr.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/JMSEpr.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/util/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/util/EPRManager.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/Configuration.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/Environment.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/ModulePropertyManager.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/Address.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/BankAcct.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/BatchProcess.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/OneValue.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/Person.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/Telephone.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/AbandonedConnectionTimerTask.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionFactory.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionPool.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionPoolFactory.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionProperties.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionWrapper.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/DefaultConnectionPoolImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/DriverConnectionFactory.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/FreeConnectionPoolResources.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/PasswordDecoder.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/PoolDataSource.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/exception/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/exception/ConnectionException.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/AppServerContext.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/ConfigTree.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/Email.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/KeyValuePair.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/JdbcCleanConn.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SimpleDataSource.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SqlDbTable.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SqlField.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Attachment.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Body.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Context.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Fault.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Header.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Message.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Properties.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/format/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/format/MessageFactory.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/format/MessagePlugin.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/format/MessageType.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotificationList.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotificationTarget.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyEmail.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyFiles.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyJMS.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyQueues.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifySqlTable.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyTopics.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyUtil.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/parameters/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/parameters/ParamRepository.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/parameters/ParamRepositoryException.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/parameters/ParamRepositoryFactory.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/BatchManager.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/DefaultEncryptionFactory.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/Encryption.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/NotificationManager.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/PersistManager.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStore.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStoreFactory.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/transform/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/transform/TransformationException.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/transform/TransformationService.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/BaseBusinessObject.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/BobjStdDTO.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/FtpClientUtil.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/NagiosStandaloneHeartbeat.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/ObjLocator.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/ObjLocatorSorter.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/Util.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/build.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/default.persistence.properties
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/ejb3-deployment.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/ejb3-interceptors-aop.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/embedded-jboss-beans.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/jboss-jms-beans.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/jndi.properties
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/log4j.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/login-config.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/security-beans.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/device-profile.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/etc/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/etc/jbossesb-test-properties.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/StreamUtils.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/StringUtils.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/W3CDomUtils.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/EmailUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/FTPUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/HTTPUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/JDBCUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/JMSUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/tests/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/tests/CallUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/tests/EPRUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/util/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/util/tests/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/util/tests/EPRManagerUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/command/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/command/InMemoryCommandQueueUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/bizclasses/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/bizclasses/BatchProcessUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/BaseTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/EJBContainerSetup.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/HsqldbUtil.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/MockDataSource.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/TestUtil.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/bizclasses/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/bizclasses/AddressUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/bizclasses/PersonUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/propertymanager/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/propertymanager/PropertyManagerUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/utils/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/utils/DrainQueuesAndTopics.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/connection/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/connection/AbandonedConnectionFuncTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/connection/ConnectionPoolFuncTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/connection/PasswordDecoderFuncTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/connection/PasswordDecoderTestImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/esb/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/esb/persistence/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/AppServerContextUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/ConfigTreeUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/EmailUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/KeyValuePairUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/expected_01.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/expected_02.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/expected_03.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/testfile1.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/testfile2.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/testfile3.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/testfile4.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/format/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/format/tests/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/format/tests/ExampleMessageImpl.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/format/tests/ExampleMessagePlugin.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/format/tests/MessageFactoryUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/AttachmentUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/ExampleObject.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/FaultUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/MessageUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/PropertiesUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/MacroExpanderUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/MacroExpanderUnitTest_expected1.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotificationListUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotificationListUnitTest_testfile1.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyEmailUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyFilesUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyQueuesUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifySqlTableUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifySqlTable_testfile1.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyTopicsUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyUtilUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/TestNotificationTarget1.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/TestNotificationTarget2.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/parameters/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/parameters/ParamRepositoryFactoryUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/parameters/ParamsFileRepositoryUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/parameters/TestParamRepo.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/BaseBusinessObjectUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/BaseBusinessObjectUnitTest_testfile1.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/BobjStdDTOUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/BobjStdDTOUnitTest_testfile1.xml
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/StreamUtilsUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/TestBob.java
labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/UtilUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/services/
labs/jbossesb/workspace/b_georges/product/core/services/ant.bat
labs/jbossesb/workspace/b_georges/product/core/services/build.xml
labs/jbossesb/workspace/b_georges/product/core/services/src/
labs/jbossesb/workspace/b_georges/product/core/services/src/META-INF/
labs/jbossesb/workspace/b_georges/product/core/services/src/META-INF/application.xml
labs/jbossesb/workspace/b_georges/product/core/services/src/META-INF/manifest.server
labs/jbossesb/workspace/b_georges/product/core/services/src/org/
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/internal/
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/internal/soa/
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/internal/soa/esb/
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/internal/soa/esb/persistence/
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/BobjStore.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoBatchTable.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoIndexTable.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoSnapTable.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoUidTable.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/RowBatch.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/Storable.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/BatchHandlerBsDelegateLocal.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/BatchHandlerBsDelegateRemote.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/BatchHandlerFactory.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/NotifHandlerBsDelegateLocal.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/NotifHandlerBsDelegateRemote.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/NotificationHandlerFactory.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/PersistHandlerBsDelegateLocal.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/PersistHandlerBsDelegateRemote.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/PersistHandlerFactory.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/BatchHandler.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/BatchHandlerBean.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/NotificationHandler.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/NotificationHandlerBean.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/PersistHandler.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/PersistHandlerBean.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/MessageStoreFactoryImpl.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/MessageStorePlugin.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/MessageStoreType.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/db/
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/db/DBConnectionManager.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/db/DBConnectionManagerDBCP.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/db/DBMessageStorePlugin.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/db/MessageStoreImpl.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/registry/
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/registry/JAXRRegistryImpl.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/registry/Registry.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/registry/RegistryException.java
labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/registry/RegistryFactory.java
labs/jbossesb/workspace/b_georges/product/core/services/tests/
labs/jbossesb/workspace/b_georges/product/core/services/tests/application.xml
labs/jbossesb/workspace/b_georges/product/core/services/tests/build.xml
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/esb/
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/esb/persistence/
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/esb/persistence/tests/
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/esb/persistence/tests/MessageStoreUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/internal/
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/internal/core/
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/internal/core/objectstore/
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/internal/core/objectstore/BobjStoreUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/internal/core/objectstore/BobjStoreUnitTest_config1.xml
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/internal/core/objectstore/DaoUidTableUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/DummyUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/beans/
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/beans/NotificationUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/beans/PersistHandlerUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/registry/
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/registry/JAXRRegistryUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/registry/RegistryUnitTest.java
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/registry/juddi-unittest.properties
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/tests/
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/tests/objectstore/
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/tests/objectstore/ObjectStoreFuncTest.java
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/util/
labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/util/FileUtil.java
labs/jbossesb/workspace/b_georges/product/docs/
labs/jbossesb/workspace/b_georges/product/docs/ConfiguringHypersonicDatabase.pdf
labs/jbossesb/workspace/b_georges/product/docs/ConfiguringHypersonicDatabase.sxw
labs/jbossesb/workspace/b_georges/product/docs/GettingStarted.pdf
labs/jbossesb/workspace/b_georges/product/docs/GettingStarted.sxw
labs/jbossesb/workspace/b_georges/product/docs/GpListenerXmlConfiguration.pdf
labs/jbossesb/workspace/b_georges/product/docs/GpListenerXmlConfiguration.sxc
labs/jbossesb/workspace/b_georges/product/docs/MessageTransformation.pdf
labs/jbossesb/workspace/b_georges/product/docs/MessageTransformation.sxw
labs/jbossesb/workspace/b_georges/product/docs/NotificationXmlConfiguration.pdf
labs/jbossesb/workspace/b_georges/product/docs/NotificationXmlConfiguration.sxc
labs/jbossesb/workspace/b_georges/product/docs/ProgrammersGuide.pdf
labs/jbossesb/workspace/b_georges/product/docs/ProgrammersGuide.sxw
labs/jbossesb/workspace/b_georges/product/etc/
labs/jbossesb/workspace/b_georges/product/etc/schemas/
labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/
labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/build.xml
labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/log4j.xml
labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/resources/
labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/resources/basic-email-epr-example.xml
labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/resources/basic-ftp-epr-example.xml
labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/resources/basic-jdbc-epr-example.xml
labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/resources/basic-jms-epr-example.xml
labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/src/
labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/src/org/
labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/src/org/jboss/
labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/src/org/jboss/soa/
labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/src/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/src/org/jboss/soa/esb/services/
labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/src/org/jboss/soa/esb/services/xml/
labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/src/org/jboss/soa/esb/services/xml/XmlValidation.java
labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/src/org/jboss/soa/esb/services/xml/XmlValidationTest.java
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/README.txt
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/common.xsd
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/contract.xsd
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/dispatcher.xsd
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/email.xsd
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/ftp.xsd
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/jdbc.xsd
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/jms.xsd
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/plugin.xsd
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/routing.xsd
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/ws-addr.xsd
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/email-epr.xsd
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/ftp-epr.xsd
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/jdbc-epr.xsd
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/jms-epr.xsd
labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/message.xsd
labs/jbossesb/workspace/b_georges/product/etc/test/
labs/jbossesb/workspace/b_georges/product/etc/test/resources/
labs/jbossesb/workspace/b_georges/product/etc/test/resources/jbossesb-unittest-properties.xml
labs/jbossesb/workspace/b_georges/product/etc/test/resources/log4j.xml
labs/jbossesb/workspace/b_georges/product/install/
labs/jbossesb/workspace/b_georges/product/install/Deployment.txt
labs/jbossesb/workspace/b_georges/product/install/README.TXT
labs/jbossesb/workspace/b_georges/product/install/build.xml
labs/jbossesb/workspace/b_georges/product/install/conf/
labs/jbossesb/workspace/b_georges/product/install/conf/jbossesb-properties.xml
labs/jbossesb/workspace/b_georges/product/install/database/
labs/jbossesb/workspace/b_georges/product/install/database/JBossESB-DB-HSQL.sql
labs/jbossesb/workspace/b_georges/product/install/database/JBossESB-DB-MySQL.sql
labs/jbossesb/workspace/b_georges/product/install/database/JBossESB-DB-postgres.sql
labs/jbossesb/workspace/b_georges/product/install/database/README_HSQLDB.TXT
labs/jbossesb/workspace/b_georges/product/install/database/README_POSTGRES.TXT
labs/jbossesb/workspace/b_georges/product/install/database/hsqldb.rc
labs/jbossesb/workspace/b_georges/product/install/deploy/
labs/jbossesb/workspace/b_georges/product/install/deploy/JBossESB-ds.xml
labs/jbossesb/workspace/b_georges/product/install/deploy/JBossESB-hsqldb-ds.xml
labs/jbossesb/workspace/b_georges/product/install/deployment.properties
labs/jbossesb/workspace/b_georges/product/install/deployment.properties-example
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/License.txt
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/README.txt
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/juddi.properties
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/juddi.war
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/daffodildb/
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/daffodildb/create_database.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/daffodildb/insert_publishers.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/db2/
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/db2/create_database.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/db2/insert_publishers.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/derby/
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/derby/create_database.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/derby/insert_publishers.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/firebird/
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/firebird/create_database.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/firebird/insert_publishers.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/hsqldb/
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/hsqldb/create_database.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/hsqldb/drop_database.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/hsqldb/insert_publishers.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/informix/
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/informix/create_database.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/informix/insert_publishers.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/jdatastore/
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/jdatastore/create_database.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/jdatastore/insert_publishers.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/mysql/
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/mysql/README
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/mysql/create_database.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/mysql/insert_publishers.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/oracle/
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/oracle/create_database.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/oracle/insert_publishers.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/postgresql/
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/postgresql/create_database.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/postgresql/insert_publishers.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/sybase/
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/sybase/create_database.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/sybase/insert_publishers.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/totalxml/
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/totalxml/create_database.sql
labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/totalxml/insert_publishers.sql
labs/jbossesb/workspace/b_georges/product/install/jbossas/
labs/jbossesb/workspace/b_georges/product/install/jbossas/properties-plugin.jar
labs/jbossesb/workspace/b_georges/product/install/jbossas/properties-service.xml
labs/jbossesb/workspace/b_georges/product/install/message-store/
labs/jbossesb/workspace/b_georges/product/install/message-store/sql/
labs/jbossesb/workspace/b_georges/product/install/message-store/sql/hsqldb/
labs/jbossesb/workspace/b_georges/product/install/message-store/sql/hsqldb/create_database.sql
labs/jbossesb/workspace/b_georges/product/install/message-store/sql/hsqldb/drop_database.sql
labs/jbossesb/workspace/b_georges/product/install/message-store/sql/postgresql/
labs/jbossesb/workspace/b_georges/product/install/message-store/sql/postgresql/create_database.sql
labs/jbossesb/workspace/b_georges/product/jbi/
labs/jbossesb/workspace/b_georges/product/jbi/classes/
labs/jbossesb/workspace/b_georges/product/jbi/classes/org/
labs/jbossesb/workspace/b_georges/product/jbi/classes/org/jboss/
labs/jbossesb/workspace/b_georges/product/jbi/classes/org/jboss/soa/
labs/jbossesb/workspace/b_georges/product/lib/
labs/jbossesb/workspace/b_georges/product/lib/ext/
labs/jbossesb/workspace/b_georges/product/lib/ext/Base64.html
labs/jbossesb/workspace/b_georges/product/lib/ext/Licenses.txt
labs/jbossesb/workspace/b_georges/product/lib/ext/README.txt
labs/jbossesb/workspace/b_georges/product/lib/ext/activation.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/c3p0-0.9.1-pre9.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/cglib-full-2.0-RC2.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/commons-collections-2.0.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/commons-collections-3.2.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/commons-dbcp-1.2.1.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/commons-lang-2.1.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/commons-logging.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/commons-pool-1.3.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/edtftpj-pro.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/edtftpj.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3/
labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3/License.txt
labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3/jboss-annotations-ejb3.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3/jboss-ejb3x.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3/jbossall-client.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/
labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/License.txt
labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/hibernate-all.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/jboss-ejb3-all.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/jcainflow.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/jcainflow.rar
labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/jms-ra.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/jms-ra.rar
labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/thirdparty-all.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/emma.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/emma_ant.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/hsqldb.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/jakarta-oro-2.0.8.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/jaxr-api-1.0.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/jboss-jmx.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/jbossts-common.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/juddi-client.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/juddi-embedded.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/junit-4.1.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/license.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/log4j.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/mail.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/milyn-commons-0.7.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/milyn-smooks-core-0.8-SNAPSHOT.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/milyn-smooks-misc-0.2.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/milyn-tinak-0.7.1.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/mockejb.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/postgresql-8.1-407.jdbc2ee.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/properties-plugin.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/scout-0.7rc2-embedded.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/xalan-2.7.0.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/xbean-1.0.4.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/xercesImpl-2.7.1.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/xml-apis-1.3.02.jar
labs/jbossesb/workspace/b_georges/product/lib/ext/xstream-1.1.3.jar
labs/jbossesb/workspace/b_georges/product/product.properties
labs/jbossesb/workspace/b_georges/product/product.properties.mine
labs/jbossesb/workspace/b_georges/product/product.properties.r6553
labs/jbossesb/workspace/b_georges/product/product.properties.r6611
labs/jbossesb/workspace/b_georges/product/samples/
labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/
labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/conf/
labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/conf/ObjStoreExample.xml
labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/errorDir/
labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/inputDir/
labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/inputDoneDir/
labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/log4j.properties
labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/notifyDir/
labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/notifyDir/FileMoverConfigExample.OK
labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/outputOkDir/
labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/paramsDir/
labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/paramsDir/FileMoverConfigExample.xml
labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/testJBossESB.bat
labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/testJBossESB.sh
labs/jbossesb/workspace/b_georges/product/samples/docs/
labs/jbossesb/workspace/b_georges/product/samples/docs/LoanBrokerArchitecture.odg
labs/jbossesb/workspace/b_georges/product/samples/docs/LoanBrokerArchitecture.pdf
labs/jbossesb/workspace/b_georges/product/samples/docs/Trailblazer.pdf
labs/jbossesb/workspace/b_georges/product/samples/docs/Trailblazer.sxw
labs/jbossesb/workspace/b_georges/product/samples/docs/patterns.odg
labs/jbossesb/workspace/b_georges/product/samples/javadocs/
labs/jbossesb/workspace/b_georges/product/samples/javadocs/allclasses-frame.html
labs/jbossesb/workspace/b_georges/product/samples/javadocs/allclasses-noframe.html
labs/jbossesb/workspace/b_georges/product/samples/javadocs/constant-values.html
labs/jbossesb/workspace/b_georges/product/samples/javadocs/deprecated-list.html
labs/jbossesb/workspace/b_georges/product/samples/javadocs/help-doc.html
labs/jbossesb/workspace/b_georges/product/samples/javadocs/index-all.html
labs/jbossesb/workspace/b_georges/product/samples/javadocs/index.html
labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/
labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/
labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/
labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/
labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/
labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html
labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html
labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html
labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html
labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html
labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/package-frame.html
labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html
labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/package-tree.html
labs/jbossesb/workspace/b_georges/product/samples/javadocs/overview-tree.html
labs/jbossesb/workspace/b_georges/product/samples/javadocs/package-list
labs/jbossesb/workspace/b_georges/product/samples/javadocs/resources/
labs/jbossesb/workspace/b_georges/product/samples/javadocs/resources/inherit.gif
labs/jbossesb/workspace/b_georges/product/samples/javadocs/stylesheet.css
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/IDE/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/IDE/JBossIDE/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/IDE/JBossIDE/.classpath
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/IDE/JBossIDE/.project
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/README.txt
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/ant/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/ant/src/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/ant/src/org/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/ant/src/org/jboss/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/ant/src/org/jboss/antx/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/ant/src/org/jboss/antx/StringReplace.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/ant/src/org/jboss/antx/ToURI.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/JBoss ESB Loan Broker Banks Guide.doc
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/JBoss ESB Loan Broker Banks Guide.html
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/bank.properties.template
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/build.xml
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/Licenses.txt
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/jbossall-client.jar
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/junit-4.1.jar
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/org.sadun.util.jar
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/pollmgt.jar
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/xstream-1.1.3.jar
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/log4j.xml
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/Bank.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReply.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequest.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/FileUtil.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/ManagerFlatFile.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/ManagerJMS.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/BankTest.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/build.xml
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/conf/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/conf/LoanBrokerConfig.xml.template
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/conf/ObjStore.xml
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/resources/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/resources/LoanBrokerWS-wsdl.xml
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/resources/web.xml
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/jboss/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/jboss/loanbroker/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/jboss/loanbroker/util/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/jboss/loanbroker/util/FileUtil.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/loanbroker/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/loanbroker/LoanBrokerException.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/BankQuote.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/QuoteRequest.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessBanksResponse.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditRequest.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditResponse.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessEmail.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ToBankQuoteResponse.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/adapters/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/adapters/CustomerAdapter.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/banks/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteResponse.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditAgency.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditCheckRequest.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditCheckResponseNotification.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/CreditRating.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/Customer.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/LoanBrokerConstants.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/LoanOffer.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/Launcher.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/LoanBrokerWS.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/WebCustomer.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/LoanBrokerWS.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/LoanBrokerWSBindingStub.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/LoanBrokerWSService.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/LoanBrokerWSServiceLocator.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/WebCustomer.java
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/jsp/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/jsp/index.jsp
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/Licenses.txt
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/antlr.jar
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/axis.jar
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/commons-discovery.jar
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/jbossts-common.jar
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/junit.jar
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/log4j.jar
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/milyn-smooks-core-0.8-SNAPSHOT.jar
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/milyn-smooks-csv-0.1.jar
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/milyn-smooks-templating-0.2.jar
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/opencsv-1.6.jar
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/stringtemplate.jar
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/loanbroker.properties.template
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/log4j.xml
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/notification_output_files/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/template/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/template/quotes.html
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/template/quotes.st
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/transform/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/transform/smooks/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/transform/smooks/from__loanbroker.cdrl
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/transform/smooks/smooks-cdr.lst
labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/transform/smooks/to____jmsbank.cdrl
labs/jbossesb/workspace/b_georges/product/samples/trailblazer2/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer2/docs/
labs/jbossesb/workspace/b_georges/product/samples/trailblazer2/docs/sequence-diagram-overview.JPG
labs/jbossesb/workspace/b_georges/qa/
labs/jbossesb/workspace/b_georges/qa/Copyright.txt
labs/jbossesb/workspace/b_georges/qa/README.TXT
labs/jbossesb/workspace/b_georges/qa/build.xml
labs/jbossesb/workspace/b_georges/qa/build/
labs/jbossesb/workspace/b_georges/qa/build/junit/
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/listeners/
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/listeners/DirectoryPollerTest.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/listeners/JmsQueueListenerTest.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/listeners/ListenerManagerTest.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/listeners/MessageBox.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/listeners/SQLTablePollerTest.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/objpersist/
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/objpersist/DrainQueuesAndTopics.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/objpersist/ObjStoreTest.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/objpersist/TestPersonAddrPhone.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/rosetta/
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/rosetta/MessageAttachmentSerializeTest.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/rosetta/MessagePropertiesSerializeTest.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/rosetta/Util.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/ClassUtils.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/DbUtils$1.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/DbUtils$DbResources.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/DbUtils$ResultSetInvocationHandler.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/DbUtils.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/FileUtils$1.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/FileUtils.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/JMSClientUtil$1.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/JMSClientUtil$JMSSendQueueSetup.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/JMSClientUtil$QUEUE.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/JMSClientUtil.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/ListenerUtils$1.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/ListenerUtils$ListenersManagerExecThread.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/ListenerUtils.class
labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/TestCaseUtils.class
labs/jbossesb/workspace/b_georges/qa/build/junit/report/
labs/jbossesb/workspace/b_georges/qa/build/junit/report/TEST-org.jboss.soa.esb.listeners.DirectoryPollerTest.xml
labs/jbossesb/workspace/b_georges/qa/build/junit/report/TEST-org.jboss.soa.esb.listeners.JmsQueueListenerTest.xml
labs/jbossesb/workspace/b_georges/qa/esb/
labs/jbossesb/workspace/b_georges/qa/jbi/
labs/jbossesb/workspace/b_georges/qa/jbossesb-unittest-properties.xml
labs/jbossesb/workspace/b_georges/qa/junit/
labs/jbossesb/workspace/b_georges/qa/junit/build.xml
labs/jbossesb/workspace/b_georges/qa/junit/src/
labs/jbossesb/workspace/b_georges/qa/junit/src/org/
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/DirectoryPollerConfig1.xml.conftmp
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/JmsQueueListenerConfig.xml.conftmp
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig1.xml
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig2.xml
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig3.xml
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig4.xml
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig5.xml
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig6.xml
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfigX.xml
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/DirectoryPollerConfig1.xml
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/DirectoryPollerTest.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/JmsQueueListenerConfig.xml
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/JmsQueueListenerTest.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/ListenerManagerTest.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/MessageBox.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/MultiPollerConfig1.xml
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/SQLTablePollerConfig1.xml
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/SQLTablePollerTest.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/HsqldbUtil.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStoreClient.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStoreTest.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStore_brokentest.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/TestUtil.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/objpersist/
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/objpersist/DrainQueuesAndTopics.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/objpersist/ObjStore_brokentest.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/objpersist/TestPersonAddrPhone.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/rosetta/
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/rosetta/MessageAttachmentSerializeTest.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/rosetta/MessagePropertiesSerializeTest.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/rosetta/Util.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/ClassUtils.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/DbUtils.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/FileUtils.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/JMSClientUtil.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/ListenerUtils.java
labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/TestCaseUtils.java
labs/jbossesb/workspace/b_georges/qa/lib/
labs/jbossesb/workspace/b_georges/qa/lib/ext/
labs/jbossesb/workspace/b_georges/qa/lib/ext/Licenses.txt
labs/jbossesb/workspace/b_georges/qa/lib/ext/README.txt
labs/jbossesb/workspace/b_georges/qa/lib/ext/edtftpj-pro.jar
labs/jbossesb/workspace/b_georges/qa/lib/ext/jboss-aop-jdk50-client.jar
labs/jbossesb/workspace/b_georges/qa/lib/ext/jboss-aspect-library-jdk50.jar
labs/jbossesb/workspace/b_georges/qa/lib/ext/jboss-ejb3.jar
labs/jbossesb/workspace/b_georges/qa/lib/ext/junit-4.1.jar
labs/jbossesb/workspace/b_georges/qa/lib/ext/license.jar
labs/jbossesb/workspace/b_georges/qa/log4j.xml
labs/jbossesb/workspace/b_georges/qa/qatests.log
labs/jbossesb/workspace/b_georges/qa/test.properties
Log:
refresh
Added: labs/jbossesb/workspace/b_georges/product/Build.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/product/Build.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/Build.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,39 @@
+Use the root build.xml in conjuntion with product.properties, where various properties used
+in the build can be set for convenience. The lib/ext directory contains the most recently tested
+libs needed to build the system. You are free to use these, or your own versions of the jars
+from a JBossAS 4.0.3SP1 installation. If the latter, then set org.jboss.esb.frominstall to true
+and org.jboss.esb.jboss.home to the root of your JBossAS installation.
+
+Getting started for the impatient.
+
+1. Download jboss-4.0.4.GA-Patch1-installer.jar.
+
+2. During the install check the ejb3 radio button (important, or you
+will have no ejb3 support!)
+
+3. Get the JbossESB codebase from SVN. (If you're a JBossIDE fan like me
+and you want some help setting up the build path
+you can copy the IDE/JBossIDE/.classpath into the root of your project)
+
+4. In the product/config directory copy the deployment.property-example
+to deployment.properties.
+You can customize the deployment.properties file. If you have commit
+rights; please don't check
+this file back in as it contains *your* deployment settings not mine :).
+
+5. Now from this config directory run
+
+ant configure.jboss.
+
+This will do *all* the configuration work. Yes it's that easy!
+
+6. Now go back up one level and do
+
+ant deploy
+
+This compiles the code and produces 4 jars and an ear in
+product/build/dist/lib.
+The ear gets deployed to jboss. (AppServer specified in your
+deployment.properties).
+
+7. start jboss.
Added: labs/jbossesb/workspace/b_georges/product/Copyright.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/product/Copyright.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/Copyright.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,19 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ */
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/Developer.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/product/Developer.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/Developer.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,13 @@
+WARNING: this will be updated soon and refers to the old structure.
+
+The structure of the distribution is as follows:
+
+lib: contains the built jar
+lib/ext: contains any jars needed to build/run the distribution
+ESBCore: the core SOA infrastructure
+JBI: the JBI implementation which layers on ESBCore
+javadocs: created during the build
+build: created during the build
+
+Any classes which occur within an 'internal' package are not meant for users. Changes to these
+classes can occur without notice and deprecation markers.
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/AbstractFileAction.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/AbstractFileAction.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/AbstractSqlRowAction.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/AbstractSqlRowAction.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/ActionDefinition.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/ActionDefinition.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/ActionDefinitionFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/ActionDefinitionFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/ActionProcessingException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/ActionProcessingException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/ActionProcessor.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/ActionProcessor.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/ActionUtils.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/ActionUtils.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/FtpDownloader.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/FtpDownloader.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/FtpUploader.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/FtpUploader.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/converters/ByteArrayToString.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/converters/ByteArrayToString.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/converters/FileToByteArray.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/converters/FileToByteArray.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/converters/ObjectToCSVString.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/converters/ObjectToCSVString.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/converters/ObjectToXStream.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/converters/ObjectToXStream.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/converters/SmooksTransformer.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/converters/SmooksTransformer.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/routing/FileCopier.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/routing/FileCopier.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/routing/JMSRouter$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/routing/JMSRouter$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/routing/JMSRouter$JMSSendQueueSetup.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/routing/JMSRouter$JMSSendQueueSetup.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/routing/JMSRouter.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/routing/JMSRouter.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/routing/ObjectToFileWriter.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/routing/ObjectToFileWriter.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/templates/MockAction.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/templates/MockAction.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/templates/MockFileAction.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/templates/MockFileAction.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/templates/MockSqlRowAction.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/actions/templates/MockSqlRowAction.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/AbstractListener$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/AbstractListener$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/AbstractListener$ActionProcessingPipeline.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/AbstractListener$ActionProcessingPipeline.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/AbstractListener.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/AbstractListener.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/AbstractPoller.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/AbstractPoller.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/DirectoryPoller$FileEndsWith.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/DirectoryPoller$FileEndsWith.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/DirectoryPoller$WorkingFile.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/DirectoryPoller$WorkingFile.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/DirectoryPoller.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/DirectoryPoller.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/GpListener$State.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/GpListener$State.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/GpListener.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/GpListener.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/JmsQueueListener.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/JmsQueueListener.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/RemoteDirectoryPoller$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/RemoteDirectoryPoller$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/RemoteDirectoryPoller$WorkingFile.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/RemoteDirectoryPoller$WorkingFile.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/RemoteDirectoryPoller.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/RemoteDirectoryPoller.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller$OPTIONAL_ATT.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller$OPTIONAL_ATT.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller$ROW_STATE.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller$ROW_STATE.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller$SQLPollResult.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller$SQLPollResult.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller$TABLE_ATT.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller$TABLE_ATT.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/listeners/SqlTablePoller.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/Constants.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/Constants.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/MonitorManager$BackgroundTask.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/MonitorManager$BackgroundTask.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/MonitorManager.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/MonitorManager.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/NagiosAgent.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/NagiosAgent.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/NagiosAgentMBean.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/NagiosAgentMBean.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/Runner.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/Runner.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/ServiceResponse.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/ServiceResponse.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/monitor/HeartbeatMonitor.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/monitor/HeartbeatMonitor.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/monitor/MemoryMonitor.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/monitor/MemoryMonitor.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/monitor/ServiceMonitor.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/monitor/ServiceMonitor.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/transport/NagiosNSCAPacket.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/transport/NagiosNSCAPacket.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/transport/NagiosNSCATransport.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/transport/NagiosNSCATransport.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/util/ByteOps.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/util/ByteOps.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/util/CRC32.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/listeners/org/jboss/soa/esb/nagios/util/CRC32.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/addressing/CallHelper.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/addressing/CallHelper.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/addressing/PortReferenceHelper$ArjunaName.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/addressing/PortReferenceHelper$ArjunaName.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/addressing/PortReferenceHelper.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/addressing/PortReferenceHelper.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/command/CommandQueue.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/command/CommandQueue.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/command/CommandQueueException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/command/CommandQueueException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/command/InMemoryCommandQueue.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/command/InMemoryCommandQueue.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/command/JmsCommandQueue.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/command/JmsCommandQueue.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/MessageFactoryImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/MessageFactoryImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/FaultImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/FaultImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/MessageImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/MessageImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/SerializedMessagePlugin.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/serialized/SerializedMessagePlugin.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/FaultImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/FaultImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/MessageImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/MessageImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/XMLMessagePlugin.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/XMLMessagePlugin.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/XMLUtil.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/XMLUtil.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalManager.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalManager.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalPlugin.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalPlugin.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/marshal/SerializedMarshalUnmarshalPlugin.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/message/format/xml/marshal/SerializedMarshalUnmarshalPlugin.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/notification/MacroExpander.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/notification/MacroExpander.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/parameters/ParamFileRepository$FileParamName.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/parameters/ParamFileRepository$FileParamName.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/parameters/ParamFileRepository.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/parameters/ParamFileRepository.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/persistence/format/MessageStoreFactoryImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/persistence/format/MessageStoreFactoryImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/persistence/format/db/DBConnectionManager.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/persistence/format/db/DBConnectionManager.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/persistence/format/db/DBMessageStorePlugin.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/persistence/format/db/DBMessageStorePlugin.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/persistence/format/db/MessageStoreImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/persistence/format/db/MessageStoreImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/thirdparty/Base64$InputStream.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/thirdparty/Base64$InputStream.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/thirdparty/Base64$OutputStream.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/thirdparty/Base64$OutputStream.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/thirdparty/Base64.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/thirdparty/Base64.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/util/StreamUtils.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/internal/soa/esb/util/StreamUtils.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/BaseException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/BaseException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/ConfigurationException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/ConfigurationException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/MarshalException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/MarshalException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/ProtocolNotSupportedException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/ProtocolNotSupportedException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/SendFailedException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/SendFailedException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/UnmarshalException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/UnmarshalException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/Call.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/Call.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/EPR.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/EPR.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/PortReference$Extension.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/PortReference$Extension.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/PortReference.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/PortReference.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/XMLUtil.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/XMLUtil.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/helpers/EmailEpr.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/helpers/EmailEpr.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/helpers/FTPEpr.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/helpers/FTPEpr.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/helpers/HTTPEpr.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/helpers/HTTPEpr.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/helpers/JDBCEpr.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/helpers/JDBCEpr.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/helpers/JMSEpr.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/addressing/helpers/JMSEpr.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/Configuration.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/Configuration.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/Environment.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/Environment.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/ModulePropertyManager.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/ModulePropertyManager.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Address$ATTRIB.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Address$ATTRIB.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Address$CHLD_LIST.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Address$CHLD_LIST.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Address.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Address.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/BankAcct$ATTRIB.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/BankAcct$ATTRIB.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/BankAcct.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/BankAcct.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/BatchProcess$ATTRIB.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/BatchProcess$ATTRIB.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/BatchProcess$CHLD_LIST.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/BatchProcess$CHLD_LIST.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/BatchProcess.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/BatchProcess.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/OneValue.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/OneValue.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Person$ATTRIB.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Person$ATTRIB.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Person$CHLD_LIST.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Person$CHLD_LIST.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Person.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Person.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Telephone$ATTRIB.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Telephone$ATTRIB.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Telephone.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/common/bizclasses/Telephone.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/AbandonedConnectionTimerTask.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/AbandonedConnectionTimerTask.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/ConnectionFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/ConnectionFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/ConnectionPool.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/ConnectionPool.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/ConnectionPoolFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/ConnectionPoolFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/ConnectionProperties.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/ConnectionProperties.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/ConnectionWrapper.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/ConnectionWrapper.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/DefaultConnectionPoolImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/DefaultConnectionPoolImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/DriverConnectionFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/DriverConnectionFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/FreeConnectionPoolResources.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/FreeConnectionPoolResources.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/PasswordDecoder.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/PasswordDecoder.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/PoolDataSource.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/PoolDataSource.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/exception/ConnectionException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/connection/exception/ConnectionException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/AppServerContext$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/AppServerContext$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/AppServerContext$SERVER_TYPE.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/AppServerContext$SERVER_TYPE.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/AppServerContext.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/AppServerContext.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/DomElement.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/DomElement.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/Email$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/Email$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/Email$MyAuth.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/Email$MyAuth.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/Email.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/Email.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/KeyValuePair.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/KeyValuePair.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/persist/JdbcCleanConn.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/persist/JdbcCleanConn.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/persist/SimpleDataSource.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/persist/SimpleDataSource.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/persist/SqlDbTable.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/persist/SqlDbTable.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/persist/SqlField.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/helpers/persist/SqlField.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Attachment.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Attachment.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Body.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Body.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Context.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Context.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Fault.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Fault.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Header.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Header.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Message.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Message.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Properties.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/Properties.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/format/MessageFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/format/MessageFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/format/MessagePlugin.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/format/MessagePlugin.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/format/MessageType.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/message/format/MessageType.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotificationList.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotificationList.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotificationTarget.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotificationTarget.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyEmail.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyEmail.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyFiles$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyFiles$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyFiles$NotificationFile.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyFiles$NotificationFile.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyFiles.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyFiles.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyJMS.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyJMS.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyQueues.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyQueues.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifySqlTable.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifySqlTable.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyTopics.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyTopics.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyUtil.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/notification/NotifyUtil.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/parameters/ParamRepository.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/parameters/ParamRepository.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/parameters/ParamRepositoryException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/parameters/ParamRepositoryException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/parameters/ParamRepositoryFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/parameters/ParamRepositoryFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/persistence/MessageStore.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/persistence/MessageStore.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/persistence/MessageStoreFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/persistence/MessageStoreFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/persistence/format/MessageStorePlugin.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/persistence/format/MessageStorePlugin.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/persistence/format/MessageStoreType.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/persistence/format/MessageStoreType.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/BatchManager.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/BatchManager.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/DefaultEncryptionFactory$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/DefaultEncryptionFactory$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/DefaultEncryptionFactory$DummyEncrypter.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/DefaultEncryptionFactory$DummyEncrypter.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/DefaultEncryptionFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/DefaultEncryptionFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/Encryption.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/Encryption.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/NotificationManager.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/NotificationManager.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/PersistManager.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/PersistManager.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/transform/TransformationException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/transform/TransformationException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/transform/TransformationService.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/services/transform/TransformationService.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/BaseBusinessObject$ATTRIB.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/BaseBusinessObject$ATTRIB.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/BaseBusinessObject$HIDDEN.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/BaseBusinessObject$HIDDEN.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/BaseBusinessObject.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/BaseBusinessObject.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/BobjStdDTO.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/BobjStdDTO.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/FtpClientUtil$XFER_TYPE.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/FtpClientUtil$XFER_TYPE.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/FtpClientUtil.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/FtpClientUtil.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/NagiosStandaloneHeartbeat.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/NagiosStandaloneHeartbeat.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/ObjLocator.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/ObjLocator.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/ObjLocatorSorter$RowCmp.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/ObjLocatorSorter$RowCmp.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/ObjLocatorSorter.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/ObjLocatorSorter.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/Util.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/rosetta/org/jboss/soa/esb/util/Util.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/BobjStore.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/BobjStore.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/DaoBatchTable.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/DaoBatchTable.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/DaoIndexTable.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/DaoIndexTable.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/DaoSnapTable.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/DaoSnapTable.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/DaoUidTable.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/DaoUidTable.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/RowBatch.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/RowBatch.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/Storable.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/internal/core/objectstore/Storable.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/BatchHandlerBsDelegateLocal.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/BatchHandlerBsDelegateLocal.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/BatchHandlerBsDelegateRemote.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/BatchHandlerBsDelegateRemote.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/BatchHandlerFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/BatchHandlerFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/NotifHandlerBsDelegateLocal.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/NotifHandlerBsDelegateLocal.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/NotifHandlerBsDelegateRemote.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/NotifHandlerBsDelegateRemote.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/NotificationHandlerFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/NotificationHandlerFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/PersistHandlerBsDelegateLocal.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/PersistHandlerBsDelegateLocal.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/PersistHandlerBsDelegateRemote.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/PersistHandlerBsDelegateRemote.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/PersistHandlerFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/PersistHandlerFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/BatchHandler.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/BatchHandler.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/BatchHandlerBean.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/BatchHandlerBean.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/NotificationHandler.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/NotificationHandler.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/NotificationHandlerBean.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/NotificationHandlerBean.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/PersistHandler.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/PersistHandler.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/PersistHandlerBean.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/beans/PersistHandlerBean.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/registry/Registry.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/classes/services/org/jboss/soa/esb/services/registry/Registry.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/dist/lib/jbossesb-appl.ear
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/dist/lib/jbossesb-appl.ear
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/dist/lib/jbossesb-listeners.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/dist/lib/jbossesb-listeners.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/dist/lib/jbossesb-rosetta.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/dist/lib/jbossesb-rosetta.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/dist/lib/jbossesb-services.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/dist/lib/jbossesb-services.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/dist/xml/README.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/product/build/dist/xml/README.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/build/dist/xml/README.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,6 @@
+This directory contains the start of xml/schema/epr
+definitions. In most cases they are simply ideas
+comming together and therefore are subject to change.
+
+NOTE: These current set of XSD's are not valid yet.
+They are in the process of being built then validated.
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/common.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/common.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/common.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+This schema contains common definitions required by all
+eprs.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.jboss.org/soa/endpoint/common" elementFormDefault="unqualified" attributeFormDefault="unqualified">
+ <annotation>
+ <documentation>
+ JBoss Inc JMS SOA Schema Definition Copyright 2006
+ </documentation>
+ </annotation>
+ <simpleType name="service-name">
+ <restriction base="string"/>
+ </simpleType>
+ <simpleType name="service-type">
+ <restriction base="string">
+ <enumeration value="http"/>
+ <enumeration value="jms"/>
+ <enumeration value="file"/>
+ <enumeration value="jdbc"/>
+ <enumeration value="jxta"/>
+ <enumeration value="javaspace"/>
+ <enumeration value="ftp"/>
+ <enumeration value="email"/>
+ <enumeration value="xmpp"/>
+ </restriction>
+ </simpleType>
+ <simpleType name="gateway-type">
+ <restriction base="string">
+ <enumeration value="consumer"/>
+ <enumeration value="provider"/>
+ </restriction>
+ </simpleType>
+</schema>
Added: labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/contract.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/contract.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/contract.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/esb/contract" xmlns:tns="http://www.example.org/esb/contract" xmlns:wsa="http://www.w3.org/2005/08/addressing">
+ <xs:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"/>
+ <xs:complexType name="ContractDefinition">
+ <xs:sequence>
+ <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
+ <xs:element name="serviceType" type="xs:anyURI"/>
+ <xs:element minOccurs="0" name="serviceSubType" type="xs:anyURI"/>
+ <xs:element minOccurs="0" name="version" type="xs:anyURI"/>
+ <xs:element minOccurs="0" name="protocols" type="ProtocolData"/>
+ <!--
+ <xs:element minOccurs="0" name="policies" type="wsp:Policy"/>
+ -->
+ </xs:sequence>
+ <xs:attribute ref="wsu:Id" use="optional"/>
+ </xs:complexType>
+
+ <xs:complexType name="ProtocolData">
+ <xs:sequence>
+ <xs:element name="epr" type="wsa:EndpointReferenceType"/>
+ <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ </xs:complexType>
+</schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/dispatcher.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/dispatcher.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/dispatcher.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+<dispatchers>
+ <dispatcher-set>
+ <dispatcher></dispatcher>
+ <dispatcher></dispatcher>
+ </dispatcher-set>
+
+
+ <dispatcher>
+ <name></name>
+ <apply-rule-set></apply-rule-set>
+ </dispatcher>
+</dispatchers>
+-->
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/email.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/email.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/email.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:common="http://www.jboss.org/soa/endpoint/common"
+ xmlns:email="http://www.jboss.org/soa/endpoint/protocol/email"
+ targetNamespace="http://www.jboss.org/soa/endpoint/protocol/email" elementFormDefault="unqualified"
+ attributeFormDefault="unqualified">
+ <annotation>
+ <documentation>
+ JBoss Inc JMS SOA Schema Definition Copyright 2006
+ </documentation>
+ </annotation>
+
+ <!-- import common -->
+ <import namespace="http://www.jboss.org/soa/endpoint/common" schemaLocation="common.xsd"/>
+ <element name="email">
+ <complexType>
+ <sequence>
+ <!-- Core -->
+ <element name="service-name" type="common:service-name"/>
+ <element name="service-type" type="common:service-type"/>
+ <element name="gateway-type" type="common:gateway-type"/>
+ <!-- email related -->
+ <element name="protocol" type="email:protocol"/>
+ <element name="host" type="email:host"/>
+ <element name="port" type="email:port"/>
+ <element name="username" type="email:username"/>
+ <element name="password" type="email:password"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <!-- Email Specific Definitions -->
+ <simpleType name="protocol">
+ <restriction base="string">
+ <enumeration value="smtp"/>
+ <enumeration value="pop"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="host">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="port">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="5"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="username">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="password">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+
+</schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/ftp.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/ftp.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/ftp.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:common="http://www.jboss.org/soa/endpoint/common"
+ xmlns:ftp="http://www.jboss.org/soa/endpoint/protocol/ftp"
+ targetNamespace="http://www.jboss.org/soa/endpoint/protocol/ftp" elementFormDefault="unqualified"
+ attributeFormDefault="unqualified">
+ <annotation>
+ <documentation>
+ JBoss Inc JMS SOA Schema Definition Copyright 2006
+ </documentation>
+ </annotation>
+
+ <!-- import common -->
+ <import namespace="http://www.jboss.org/soa/endpoint/common" schemaLocation="common.xsd"/>
+ <element name="ftp">
+ <complexType>
+ <sequence>
+ <!-- Core -->
+ <element name="service-name" type="common:service-name"/>
+ <element name="service-type" type="common:service-type"/>
+ <element name="gateway-type" type="common:gateway-type"/>
+ <!-- ftp related -->
+ <element name="host" type="ftp:host"/>
+ <element name="port" type="ftp:port"/>
+ <element name="username" type="ftp:username"/>
+ <element name="password" type="ftp:password"/>
+ <element name="directory" type="ftp:directory"/>
+
+ </sequence>
+ </complexType>
+ </element>
+
+ <!-- FTP Specific Definitions -->
+ <simpleType name="host">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="port">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="5"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="username">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="password">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+ <simpleType name="directory">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+
+</schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/jdbc.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/jdbc.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/jdbc.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:common="http://www.jboss.org/soa/endpoint/common"
+ xmlns:jdbc="http://www.jboss.org/soa/endpoint/protocol/jdbc"
+ targetNamespace="http://www.jboss.org/soa/endpoint/protocol/jdbc" elementFormDefault="unqualified"
+ attributeFormDefault="unqualified">
+ <annotation>
+ <documentation>
+ JBoss Inc JMS SOA Schema Definition Copyright 2006
+ </documentation>
+ </annotation>
+
+ <!-- import common -->
+ <import namespace="http://www.jboss.org/soa/endpoint/common" schemaLocation="common.xsd"/>
+ <element name="jdbc">
+ <complexType>
+ <sequence>
+ <!-- Core -->
+ <element name="service-name" type="common:service-name"/>
+ <element name="service-type" type="common:service-type"/>
+ <element name="gateway-type" type="common:gateway-type"/>
+ <!-- jdbc related -->
+ <element name="url" type="jdbc:url"/>
+ <element name="driver" type="jdbc:driver"/>
+ <element name="username" type="jdbc:username"/>
+ <element name="password" type="jdbc:password"/>
+ <element name="sql" type="jdbc:sql"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <!-- JDBC Specific Definitions -->
+ <simpleType name="url">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="driver">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+ <simpleType name="username">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="password">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+ <simpleType name="sql">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="100"/>
+ </restriction>
+ </simpleType>
+
+</schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/jms.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/jms.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/jms.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+xmlns:common="http://www.jboss.org/soa/endpoint/common"
+xmlns:jms="http://www.jboss.org/soa/endpoint/protocol/jms"
+targetNamespace="http://www.jboss.org/soa/endpoint/protocol/jms" elementFormDefault="unqualified" attributeFormDefault="unqualified">
+ <annotation>
+ <documentation>
+ JBoss Inc JMS SOA Schema Definition Copyright 2006
+ </documentation>
+ </annotation>
+
+ <!-- import common -->
+ <import namespace="http://www.jboss.org/soa/endpoint/common" schemaLocation="common.xsd" />
+ <element name="jms">
+ <complexType>
+ <sequence>
+ <!-- Core -->
+ <element name="service-name" type="common:service-name"/>
+ <element name="service-type" type="common:service-type"/>
+ <element name="gateway-type" type="common:gateway-type" />
+ <!-- jms related -->
+ <element name="spec-version" type="jms:specification-version" />
+ <element name="destination-type" type="jms:destination-type" />
+ <element name="destination-name" type="string"/>
+ <element name="connection-factory" type="string"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <!-- JMS Specific Definitions -->
+ <simpleType name="specification-version">
+ <restriction base="string">
+ <enumeration value="1.1"/>
+ <enumeration value="1.0.2b"/>
+ </restriction>
+ </simpleType>
+
+ <simpleType name="destination-type">
+ <restriction base="string">
+ <enumeration value="queue"/>
+ <enumeration value="topic"/>
+ </restriction>
+ </simpleType>
+
+
+
+</schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/plugin.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/plugin.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/plugin.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+<plugins>
+ <plugin-set>
+ <set-name></set-name>
+ <plugin-name></plugin-name>
+ </plugin-set>
+
+ <plugin>
+ <name></name>
+ <class></class>
+ <parameters>
+ <name></name>
+ <value></value>
+ ...
+ ...
+ </parameters>
+ </plugin>
+</plugins>
+-->
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/routing.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/routing.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/routing.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+<routing>
+ <route>
+ <source></source>
+ <destination>
+ <type></type>
+ <name></name>
+ </destination>
+ </route>
+</routing>
+-->
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/ws-addr.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/ws-addr.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/build/dist/xml/common/ws-addr.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd">
+<!--
+ W3C XML Schema defined in the Web Services Addressing 1.0 specification
+ http://www.w3.org/TR/ws-addr-core
+
+ Copyright © 2005 World Wide Web Consortium,
+
+ (Massachusetts Institute of Technology, European Research Consortium for
+ Informatics and Mathematics, Keio University). All Rights Reserved. This
+ work is distributed under the W3C® Software License [1] 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.
+
+ [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.w3.org/2005/08/addressing" targetNamespace="http://www.w3.org/2005/08/addressing" elementFormDefault="qualified" attributeFormDefault="unqualified" blockDefault="#all">
+ <!-- Constructs from the WS-Addressing Core -->
+ <xs:element name="EndpointReference" type="tns:EndpointReferenceType"/>
+ <xs:complexType name="EndpointReferenceType" mixed="false">
+ <xs:sequence>
+ <xs:element name="Address" type="tns:AttributedURIType"/>
+ <xs:element ref="tns:ReferenceParameters" minOccurs="0"/>
+ <xs:element ref="tns:Metadata" minOccurs="0"/>
+ <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:complexType>
+ <xs:element name="ReferenceParameters" type="tns:ReferenceParametersType"/>
+ <xs:complexType name="ReferenceParametersType" mixed="false">
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:complexType>
+ <xs:element name="Metadata" type="tns:MetadataType"/>
+ <xs:complexType name="MetadataType" mixed="false">
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:complexType>
+ <xs:element name="MessageID" type="tns:AttributedURIType"/>
+ <xs:element name="RelatesTo" type="tns:RelatesToType"/>
+ <xs:complexType name="RelatesToType" mixed="false">
+ <xs:simpleContent>
+ <xs:extension base="xs:anyURI">
+ <xs:attribute name="RelationshipType" type="tns:RelationshipTypeOpenEnum" use="optional" default="http://www.w3.org/2005/08/addressing/reply"/>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:simpleType name="RelationshipTypeOpenEnum">
+ <xs:union memberTypes="tns:RelationshipType xs:anyURI"/>
+ </xs:simpleType>
+ <xs:simpleType name="RelationshipType">
+ <xs:restriction base="xs:anyURI">
+ <xs:enumeration value="http://www.w3.org/2005/08/addressing/reply"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="ReplyTo" type="tns:EndpointReferenceType"/>
+ <xs:element name="From" type="tns:EndpointReferenceType"/>
+ <xs:element name="FaultTo" type="tns:EndpointReferenceType"/>
+ <xs:element name="To" type="tns:AttributedURIType"/>
+ <xs:element name="Action" type="tns:AttributedURIType"/>
+ <xs:complexType name="AttributedURIType" mixed="false">
+ <xs:simpleContent>
+ <xs:extension base="xs:anyURI">
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <!-- Constructs from the WS-Addressing SOAP binding -->
+ <xs:attribute name="IsReferenceParameter" type="xs:boolean"/>
+ <xs:simpleType name="FaultCodesOpenEnumType">
+ <xs:union memberTypes="tns:FaultCodesType xs:QName"/>
+ </xs:simpleType>
+ <xs:simpleType name="FaultCodesType">
+ <xs:restriction base="xs:QName">
+ <xs:enumeration value="tns:InvalidAddressingHeader"/>
+ <xs:enumeration value="tns:InvalidAddress"/>
+ <xs:enumeration value="tns:InvalidEPR"/>
+ <xs:enumeration value="tns:InvalidCardinality"/>
+ <xs:enumeration value="tns:MissingAddressInEPR"/>
+ <xs:enumeration value="tns:DuplicateMessageID"/>
+ <xs:enumeration value="tns:ActionMismatch"/>
+ <xs:enumeration value="tns:MessageAddressingHeaderRequired"/>
+ <xs:enumeration value="tns:DestinationUnreachable"/>
+ <xs:enumeration value="tns:ActionNotSupported"/>
+ <xs:enumeration value="tns:EndpointUnavailable"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="RetryAfter" type="tns:AttributedUnsignedLongType"/>
+ <xs:complexType name="AttributedUnsignedLongType" mixed="false">
+ <xs:simpleContent>
+ <xs:extension base="xs:unsignedLong">
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:element name="ProblemHeaderQName" type="tns:AttributedQNameType"/>
+ <xs:complexType name="AttributedQNameType" mixed="false">
+ <xs:simpleContent>
+ <xs:extension base="xs:QName">
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:element name="ProblemIRI" type="tns:AttributedURIType"/>
+ <xs:element name="ProblemAction" type="tns:ProblemActionType"/>
+ <xs:complexType name="ProblemActionType" mixed="false">
+ <xs:sequence>
+ <xs:element ref="tns:Action" minOccurs="0"/>
+ <xs:element name="SoapAction" type="xs:anyURI" minOccurs="0"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:complexType>
+</xs:schema>
Added: labs/jbossesb/workspace/b_georges/product/build/dist/xml/email-epr.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/build/dist/xml/email-epr.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/build/dist/xml/email-epr.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:email="http://www.jboss.org/soa/endpoint/protocol/email" targetNamespace="http://www.jboss.org/soa/endpoint/email-epr" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="common/ws-addr.xsd"/>
+ <import namespace="http://www.jboss.org/soa/endpoint/protocol/email" schemaLocation="common/email.xsd"/>
+ <element name="email-epr">
+ <complexType>
+ <sequence>
+ <element ref="wsa:EndpointReference"/>
+ <element ref="email:email"/>
+ </sequence>
+ <attribute name="version" type="string" use="required"/>
+ </complexType>
+ </element>
+</schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/build/dist/xml/ftp-epr.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/build/dist/xml/ftp-epr.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/build/dist/xml/ftp-epr.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:ftp="http://www.jboss.org/soa/endpoint/protocol/ftp" targetNamespace="http://www.jboss.org/soa/endpoint/ftp-epr" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="common/ws-addr.xsd"/>
+ <import namespace="http://www.jboss.org/soa/endpoint/protocol/ftp" schemaLocation="common/ftp.xsd"/>
+ <element name="ftp-epr">
+ <complexType>
+ <sequence>
+ <element ref="wsa:EndpointReference"/>
+ <element ref="ftp:ftp"/>
+ </sequence>
+ <attribute name="version" type="string" use="required"/>
+ </complexType>
+ </element>
+</schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/build/dist/xml/jdbc-epr.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/build/dist/xml/jdbc-epr.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/build/dist/xml/jdbc-epr.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:jdbc="http://www.jboss.org/soa/endpoint/protocol/jdbc" targetNamespace="http://www.jboss.org/soa/endpoint/jdbc-epr" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="common/ws-addr.xsd"/>
+ <import namespace="http://www.jboss.org/soa/endpoint/protocol/jdbc" schemaLocation="common/jdbc.xsd"/>
+ <element name="jdbc-epr">
+ <complexType>
+ <sequence>
+ <element ref="wsa:EndpointReference"/>
+ <element ref="jdbc:jdbc"/>
+ </sequence>
+ <attribute name="version" type="string" use="required"/>
+ </complexType>
+ </element>
+</schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/build/dist/xml/jms-epr.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/build/dist/xml/jms-epr.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/build/dist/xml/jms-epr.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:jms="http://www.jboss.org/soa/endpoint/protocol/jms" targetNamespace="http://www.jboss.org/soa/endpoint/jms-epr" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="common/ws-addr.xsd"/>
+ <import namespace="http://www.jboss.org/soa/endpoint/protocol/jms" schemaLocation="common/jms.xsd"/>
+ <element name="jms-epr">
+ <complexType>
+ <sequence>
+ <element ref="wsa:EndpointReference"/>
+ <element ref="jms:jms"/>
+ </sequence>
+ <attribute name="version" type="string" use="required"/>
+ </complexType>
+ </element>
+</schema>
+
Added: labs/jbossesb/workspace/b_georges/product/build/dist/xml/message.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/build/dist/xml/message.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/build/dist/xml/message.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Work in progress. Treat it as such. -->
+<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:wsa="common/ws-addr.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:complexType name="Header">
+ <xs:sequence>
+ <xs:element ref="wsa:To" maxOccurs="1"/>
+ <xs:element ref="wsa:From" maxOccurs="1"/>
+ <xs:element ref="wsa:ReplyTo" maxOccurs="1"/>
+ <xs:element ref="wsa:Action" minOccurs="1" maxOccurs="1"/>
+ <xs:element ref="wsa:MessageID" maxOccurs="1"/>
+ <xs:element ref="wsa:RelatesTo" maxOccurs="1"/>
+ <xs:element ref="wsa:ReferenceParameters"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Context"/>
+
+ <xs:complexType name="Body">
+ <xs:sequence>
+ <xs:element name="Bytes" type="xs:base64Binary" maxOccurs="1"/>
+ <xs:element type="xs:base64binary"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Attachment">
+ <xs:sequence>
+ <xs:element name="Named" type="xs:base64Binary"/>
+ <xs:element name="UnNamed" type="xs:base64Binary"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Fault">
+ <xs:sequence>
+ <xs:element name="Code" type="xs:anyURI" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Reason" type="xs:string" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Properties">
+ <xs:sequence>
+ <xs:element type="xs:base64Binary"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Envelope">
+ <xs:attribute ref="Header" use="required"/>
+ <xs:attribute ref="Context" use="required"/>
+ <xs:attribute ref="Body" use="required"/>
+ <xs:attribute ref="Attachment" use="optional"/>
+ <xs:attribute ref="Properties" use="optional"/>
+ <xs:attribute ref="Fault" use="optional"/>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/coverage.emma
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/coverage.emma
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/addressing/CallHelper.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/addressing/CallHelper.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/addressing/PortReferenceHelper$ArjunaName.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/addressing/PortReferenceHelper$ArjunaName.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/addressing/PortReferenceHelper.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/addressing/PortReferenceHelper.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/command/CommandQueueException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/command/CommandQueueException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/command/InMemoryCommandQueue.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/command/InMemoryCommandQueue.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/command/JmsCommandQueue.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/command/JmsCommandQueue.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/MessageFactoryImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/MessageFactoryImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/FaultImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/FaultImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/MessageImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/MessageImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/SerializedMessagePlugin.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/serialized/SerializedMessagePlugin.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/FaultImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/FaultImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/MessageImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/MessageImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/XMLMessagePlugin.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/XMLMessagePlugin.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/XMLUtil.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/XMLUtil.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalManager.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalManager.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/marshal/SerializedMarshalUnmarshalPlugin.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/message/format/xml/marshal/SerializedMarshalUnmarshalPlugin.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/notification/MacroExpander.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/notification/MacroExpander.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/parameters/ParamFileRepository$FileParamName.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/parameters/ParamFileRepository$FileParamName.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/parameters/ParamFileRepository.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/parameters/ParamFileRepository.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/persistence/format/MessageStoreFactoryImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/persistence/format/MessageStoreFactoryImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/persistence/format/db/DBConnectionManager.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/persistence/format/db/DBConnectionManager.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/persistence/format/db/DBMessageStorePlugin.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/persistence/format/db/DBMessageStorePlugin.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/persistence/format/db/MessageStoreImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/persistence/format/db/MessageStoreImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/thirdparty/Base64$InputStream.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/thirdparty/Base64$InputStream.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/thirdparty/Base64$OutputStream.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/thirdparty/Base64$OutputStream.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/thirdparty/Base64.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/thirdparty/Base64.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/util/StreamUtils.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/internal/soa/esb/util/StreamUtils.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/BaseException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/BaseException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/ConfigurationException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/ConfigurationException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/MarshalException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/MarshalException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/ProtocolNotSupportedException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/ProtocolNotSupportedException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/SendFailedException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/SendFailedException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/UnmarshalException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/UnmarshalException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/AbstractFileAction.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/AbstractFileAction.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/AbstractSqlRowAction.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/AbstractSqlRowAction.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/ActionDefinition.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/ActionDefinition.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/ActionDefinitionFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/ActionDefinitionFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/ActionProcessingException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/ActionProcessingException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/ActionUtils.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/ActionUtils.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/FtpDownloader.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/FtpDownloader.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/FtpUploader.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/FtpUploader.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/converters/ByteArrayToString.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/converters/ByteArrayToString.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/converters/FileToByteArray.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/converters/FileToByteArray.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/converters/ObjectToCSVString.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/converters/ObjectToCSVString.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/converters/ObjectToXStream.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/converters/ObjectToXStream.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/converters/SmooksTransformer.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/converters/SmooksTransformer.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/routing/FileCopier.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/routing/FileCopier.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/routing/JMSRouter$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/routing/JMSRouter$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/routing/JMSRouter$JMSSendQueueSetup.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/routing/JMSRouter$JMSSendQueueSetup.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/routing/JMSRouter.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/routing/JMSRouter.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/routing/ObjectToFileWriter.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/routing/ObjectToFileWriter.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/templates/MockAction.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/templates/MockAction.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/templates/MockFileAction.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/templates/MockFileAction.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/templates/MockSqlRowAction.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/actions/templates/MockSqlRowAction.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/Call.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/Call.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/EPR.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/EPR.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/PortReference$Extension.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/PortReference$Extension.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/PortReference.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/PortReference.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/XMLUtil.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/XMLUtil.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/helpers/EmailEpr.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/helpers/EmailEpr.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/helpers/FTPEpr.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/helpers/FTPEpr.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/helpers/HTTPEpr.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/helpers/HTTPEpr.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/helpers/JDBCEpr.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/helpers/JDBCEpr.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/helpers/JMSEpr.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/addressing/helpers/JMSEpr.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/Configuration.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/Configuration.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/Environment.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/Environment.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/ModulePropertyManager.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/ModulePropertyManager.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Address$ATTRIB.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Address$ATTRIB.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Address$CHLD_LIST.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Address$CHLD_LIST.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Address.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Address.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/BankAcct$ATTRIB.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/BankAcct$ATTRIB.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/BankAcct.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/BankAcct.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/BatchProcess$ATTRIB.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/BatchProcess$ATTRIB.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/BatchProcess$CHLD_LIST.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/BatchProcess$CHLD_LIST.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/BatchProcess.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/BatchProcess.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/OneValue.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/OneValue.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Person$ATTRIB.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Person$ATTRIB.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Person$CHLD_LIST.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Person$CHLD_LIST.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Person.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Person.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Telephone$ATTRIB.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Telephone$ATTRIB.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Telephone.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/common/bizclasses/Telephone.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/AbandonedConnectionTimerTask.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/AbandonedConnectionTimerTask.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/ConnectionPoolFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/ConnectionPoolFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/ConnectionProperties.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/ConnectionProperties.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/ConnectionWrapper.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/ConnectionWrapper.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/DefaultConnectionPoolImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/DefaultConnectionPoolImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/DriverConnectionFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/DriverConnectionFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/FreeConnectionPoolResources.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/FreeConnectionPoolResources.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/PoolDataSource.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/PoolDataSource.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/exception/ConnectionException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/connection/exception/ConnectionException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/AppServerContext$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/AppServerContext$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/AppServerContext$SERVER_TYPE.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/AppServerContext$SERVER_TYPE.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/AppServerContext.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/AppServerContext.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/DomElement.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/DomElement.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/Email$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/Email$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/Email$MyAuth.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/Email$MyAuth.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/Email.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/Email.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/KeyValuePair.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/KeyValuePair.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/persist/JdbcCleanConn.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/persist/JdbcCleanConn.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/persist/SimpleDataSource.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/persist/SimpleDataSource.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/persist/SqlDbTable.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/persist/SqlDbTable.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/persist/SqlField.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/helpers/persist/SqlField.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/BobjStore.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/BobjStore.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/DaoBatchTable.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/DaoBatchTable.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/DaoIndexTable.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/DaoIndexTable.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/DaoSnapTable.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/DaoSnapTable.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/DaoUidTable.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/DaoUidTable.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/RowBatch.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/internal/core/objectstore/RowBatch.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/AbstractListener$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/AbstractListener$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/AbstractListener$ActionProcessingPipeline.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/AbstractListener$ActionProcessingPipeline.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/AbstractListener.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/AbstractListener.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/AbstractPoller.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/AbstractPoller.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/DirectoryPoller$FileEndsWith.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/DirectoryPoller$FileEndsWith.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/DirectoryPoller$WorkingFile.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/DirectoryPoller$WorkingFile.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/DirectoryPoller.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/DirectoryPoller.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/GpListener$State.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/GpListener$State.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/GpListener.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/GpListener.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/JmsQueueListener.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/JmsQueueListener.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/RemoteDirectoryPoller$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/RemoteDirectoryPoller$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/RemoteDirectoryPoller$WorkingFile.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/RemoteDirectoryPoller$WorkingFile.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/RemoteDirectoryPoller.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/RemoteDirectoryPoller.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller$OPTIONAL_ATT.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller$OPTIONAL_ATT.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller$ROW_STATE.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller$ROW_STATE.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller$SQLPollResult.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller$SQLPollResult.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller$TABLE_ATT.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller$TABLE_ATT.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/listeners/SqlTablePoller.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/message/format/MessageFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/message/format/MessageFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/message/format/MessageType.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/message/format/MessageType.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/Constants.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/Constants.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/MonitorManager$BackgroundTask.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/MonitorManager$BackgroundTask.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/MonitorManager.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/MonitorManager.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/NagiosAgent.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/NagiosAgent.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/Runner.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/Runner.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/ServiceResponse.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/ServiceResponse.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/monitor/HeartbeatMonitor.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/monitor/HeartbeatMonitor.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/monitor/MemoryMonitor.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/monitor/MemoryMonitor.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/transport/NagiosNSCAPacket.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/transport/NagiosNSCAPacket.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/transport/NagiosNSCATransport.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/transport/NagiosNSCATransport.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/util/ByteOps.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/util/ByteOps.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/util/CRC32.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/nagios/util/CRC32.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotificationList.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotificationList.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotificationTarget.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotificationTarget.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyEmail.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyEmail.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyFiles$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyFiles$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyFiles$NotificationFile.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyFiles$NotificationFile.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyFiles.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyFiles.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyJMS.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyJMS.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyQueues.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyQueues.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifySqlTable.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifySqlTable.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyTopics.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyTopics.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyUtil.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/notification/NotifyUtil.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/parameters/ParamRepositoryException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/parameters/ParamRepositoryException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/parameters/ParamRepositoryFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/parameters/ParamRepositoryFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/persistence/MessageStoreFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/persistence/MessageStoreFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/persistence/format/MessageStoreType.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/persistence/format/MessageStoreType.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/BatchHandlerBsDelegateLocal.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/BatchHandlerBsDelegateLocal.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/BatchHandlerBsDelegateRemote.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/BatchHandlerBsDelegateRemote.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/BatchHandlerFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/BatchHandlerFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/DefaultEncryptionFactory$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/DefaultEncryptionFactory$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/DefaultEncryptionFactory$DummyEncrypter.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/DefaultEncryptionFactory$DummyEncrypter.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/DefaultEncryptionFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/DefaultEncryptionFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/NotifHandlerBsDelegateLocal.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/NotifHandlerBsDelegateLocal.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/NotifHandlerBsDelegateRemote.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/NotifHandlerBsDelegateRemote.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/NotificationHandlerFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/NotificationHandlerFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/PersistHandlerBsDelegateLocal.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/PersistHandlerBsDelegateLocal.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/PersistHandlerBsDelegateRemote.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/PersistHandlerBsDelegateRemote.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/PersistHandlerFactory.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/PersistHandlerFactory.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/beans/BatchHandlerBean.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/beans/BatchHandlerBean.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/beans/NotificationHandlerBean.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/beans/NotificationHandlerBean.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/beans/PersistHandlerBean.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/beans/PersistHandlerBean.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/registry/Registry.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/registry/Registry.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/transform/TransformationException.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/services/transform/TransformationException.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/BaseBusinessObject$ATTRIB.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/BaseBusinessObject$ATTRIB.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/BaseBusinessObject$HIDDEN.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/BaseBusinessObject$HIDDEN.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/BaseBusinessObject.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/BaseBusinessObject.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/BobjStdDTO.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/BobjStdDTO.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/FtpClientUtil$XFER_TYPE.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/FtpClientUtil$XFER_TYPE.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/FtpClientUtil.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/FtpClientUtil.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/NagiosStandaloneHeartbeat.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/NagiosStandaloneHeartbeat.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/ObjLocator.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/ObjLocator.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/ObjLocatorSorter$RowCmp.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/ObjLocatorSorter$RowCmp.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/ObjLocatorSorter.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/ObjLocatorSorter.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/Util.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/instr/org/jboss/soa/esb/util/Util.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/jbossesb-appl.ear
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/jbossesb-appl.ear
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/jbossesb-instr-all.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/coverage/all/jbossesb-instr-all.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/StreamUtils.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/StreamUtils.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/StringUtils.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/StringUtils.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/W3CDomUtils.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/W3CDomUtils.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/ActionDefinitionFactoryUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/ActionDefinitionFactoryUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/BaseTestActionProcessor.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/BaseTestActionProcessor.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/SmooksTransformerUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/SmooksTransformerUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/TestActionProcessor1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/TestActionProcessor1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/TestActionProcessor2.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/TestActionProcessor2.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/TestActionProcessor3.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/TestActionProcessor3.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/TestBean.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/TestBean.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/ToNowhereRouter.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/ToNowhereRouter.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/ByteArrayToStringUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/ByteArrayToStringUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/FileToByteArrayUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/FileToByteArrayUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/LongToDateConverter.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/LongToDateConverter.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/ObjectToCSVStringUnitTest$TestBean.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/ObjectToCSVStringUnitTest$TestBean.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/ObjectToCSVStringUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/ObjectToCSVStringUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/ObjectToFileWriterUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/ObjectToFileWriterUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/ObjectToXStreamUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/ObjectToXStreamUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/StringToLongConverter.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/actions/converters/StringToLongConverter.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/helpers/tests/EmailUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/helpers/tests/EmailUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/helpers/tests/FTPUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/helpers/tests/FTPUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/helpers/tests/HTTPUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/helpers/tests/HTTPUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/helpers/tests/JDBCUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/helpers/tests/JDBCUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/helpers/tests/JMSUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/helpers/tests/JMSUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/tests/CallUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/tests/CallUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/tests/EPRUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/addressing/tests/EPRUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/command/InMemoryCommandQueueUnitTest$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/command/InMemoryCommandQueueUnitTest$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/command/InMemoryCommandQueueUnitTest$CommandConsumerThread.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/command/InMemoryCommandQueueUnitTest$CommandConsumerThread.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/command/InMemoryCommandQueueUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/command/InMemoryCommandQueueUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/bizclasses/BatchProcessUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/bizclasses/BatchProcessUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/BaseTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/BaseTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/EJBContainerSetup.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/EJBContainerSetup.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/HsqldbUtil$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/HsqldbUtil$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/HsqldbUtil.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/HsqldbUtil.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/MockDataSource.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/MockDataSource.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/TestUtil.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/TestUtil.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/bizclasses/AddressUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/bizclasses/AddressUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/bizclasses/PersonUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/bizclasses/PersonUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/propertymanager/PropertyManagerUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/propertymanager/PropertyManagerUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/utils/DrainQueuesAndTopics.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/common/tests/utils/DrainQueuesAndTopics.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/connection/AbandonedConnectionFuncTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/connection/AbandonedConnectionFuncTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/connection/ConnectionPoolFuncTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/connection/ConnectionPoolFuncTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/connection/PasswordDecoderFuncTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/connection/PasswordDecoderFuncTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/connection/PasswordDecoderTestImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/connection/PasswordDecoderTestImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/esb/persistence/tests/MessageStoreUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/esb/persistence/tests/MessageStoreUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/helpers/AppServerContextUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/helpers/AppServerContextUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/helpers/DomElementUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/helpers/DomElementUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/helpers/EmailUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/helpers/EmailUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/helpers/KeyValuePairUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/helpers/KeyValuePairUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/internal/core/objectstore/BobjStoreUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/internal/core/objectstore/BobjStoreUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/internal/core/objectstore/DaoUidTableUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/internal/core/objectstore/DaoUidTableUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/AbstractListenerUnitTest$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/AbstractListenerUnitTest$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/AbstractListenerUnitTest$MockGpListener.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/AbstractListenerUnitTest$MockGpListener.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/AbstractListenerUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/AbstractListenerUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/DirectoryPollerUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/DirectoryPollerUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/GpListenerUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/GpListenerUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/SqlTablePollerUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/listeners/SqlTablePollerUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/format/tests/ExampleMessageImpl.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/format/tests/ExampleMessageImpl.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/format/tests/ExampleMessagePlugin.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/format/tests/ExampleMessagePlugin.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/format/tests/MessageFactoryUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/format/tests/MessageFactoryUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/AttachmentUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/AttachmentUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/ExampleObject.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/ExampleObject.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/FaultUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/FaultUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/MessageUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/MessageUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/PropertiesUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/PropertiesUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/MacroExpanderUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/MacroExpanderUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotificationListUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotificationListUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyEmailUnitTest$TestNotifyEmail.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyEmailUnitTest$TestNotifyEmail.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyEmailUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyEmailUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyFilesUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyFilesUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyQueuesUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyQueuesUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifySqlTableUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifySqlTableUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyTopicsUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyTopicsUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyUtilUnitTest$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyUtilUnitTest$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyUtilUnitTest$TestNotificationHandler.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyUtilUnitTest$TestNotificationHandler.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyUtilUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/NotifyUtilUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/TestNotificationTarget1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/TestNotificationTarget1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/TestNotificationTarget2.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/notification/TestNotificationTarget2.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/parameters/ParamRepositoryFactoryUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/parameters/ParamRepositoryFactoryUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/parameters/ParamsFileRepositoryUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/parameters/ParamsFileRepositoryUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/parameters/TestParamRepo.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/parameters/TestParamRepo.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/DummyUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/DummyUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/beans/NotificationUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/beans/NotificationUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/beans/PersistHandlerUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/beans/PersistHandlerUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/registry/RegistryUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/registry/RegistryUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/tests/objectstore/ObjectStoreFuncTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/tests/objectstore/ObjectStoreFuncTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/util/FileUtil.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/services/util/FileUtil.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/AbstractMockListner$MessageInError.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/AbstractMockListner$MessageInError.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/AbstractMockListner.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/AbstractMockListner.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/BaseBusinessObjectUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/BaseBusinessObjectUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/BobjStdDTOUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/BobjStdDTOUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/ListenersManagerExecThread.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/ListenersManagerExecThread.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/MockNonblockingListener.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/MockNonblockingListener.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/MockNotificationTarget.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/MockNotificationTarget.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/MockPoller$MessageInError.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/MockPoller$MessageInError.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/MockPoller.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/MockPoller.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/StreamUtilsUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/StreamUtilsUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/TestBob.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/TestBob.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/UtilUnitTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/build/tests/org/jboss/soa/esb/util/UtilUnitTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/build.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/build.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/build.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,302 @@
+<project name="JBESB" default="test" basedir=".">
+ <!-- class path behaviour -->
+ <property name="build.sysclasspath" value="last"/>
+
+ <!-- Set module name -->
+ <property name="org.jboss.esb.internal.modulename" value="jbesb"/>
+
+ <property name="org.jboss.esb.jboss.home" value="."/>
+
+ <!-- Product properties file -->
+ <property name="org.jboss.esb.product.properties" value="jbossesb-properties.xml"/>
+
+ <!-- Set default properties filename -->
+ <property name="org.jboss.esb.properties" value="product.properties"/>
+ <property name="org.jboss.esb.deployment.properties" value="deployment.properties"/>
+
+ <!-- Some default build locations -->
+ <property name="org.jboss.esb.internal.dest" value="${basedir}/build"/>
+ <property name="org.jboss.esb.internal.jar.dest" value="${basedir}/build/dist/lib"/>
+
+ <!-- Load Build Properties File -->
+ <property file="${org.jboss.esb.properties}"/>
+ <property file="install/${org.jboss.esb.deployment.properties}"/>
+
+ <!-- Set internal property defaults -->
+ <property name="org.jboss.esb.installationdirectory" value="${basedir}/build/dist"/>
+
+ <!-- Exclude from javadocs -->
+ <property name="org.jboss.esb.javadocs.exclude" value="org.jboss.soa.esb.internal.*, org.jboss.soa.esb.services.beans.*"/>
+
+ <!-- Compile with debugging? -->
+ <property name="org.jboss.esb.debug" value="yes"/>
+ <condition property="org.jboss.esb.debug" value="no">
+ <equals arg1="${org.jboss.esb.build.debug}" arg2="no"/>
+ </condition>
+
+ <!-- Compile with deprecation? -->
+ <property name="org.jboss.esb.deprecation" value="no"/>
+ <condition property="org.jboss.esb.deprecation" value="yes">
+ <equals arg1="${org.jboss.esb.build.deprecation}" arg2="yes"/>
+ </condition>
+
+ <!-- Compile with optimization? -->
+ <property name="org.jboss.esb.optimize" value="on"/>
+ <condition property="org.jboss.esb.optimize" value="off">
+ <equals arg1="${org.jboss.esb.build.optimize}" arg2="off"/>
+ </condition>
+
+ <!-- Build from local libs? -->
+ <property name="org.jboss.esb.frominstall" value="no"/>
+ <condition property="org.jboss.esb.frominstall" value="yes">
+ <equals arg1="${org.jboss.esb.build.frominstall}" arg2="yes"/>
+ </condition>
+
+ <!-- Build tests? -->
+ <property name="org.jboss.esb.buildtests" value="no"/>
+ <condition property="org.jboss.esb.buildtests" value="yes">
+ <equals arg1="${org.jboss.esb.build.tests}" arg2="yes"/>
+ </condition>
+
+ <!-- Path names -->
+ <property name="org.jboss.esb.internal.core" value="esb"/>
+ <property name="org.jboss.esb.internal.dest" value="${basedir}/build"/>
+ <property name="org.jboss.esb.internal.jar" value="${basedir}/lib"/>
+ <property name="org.jboss.esb.internal.javadocs.dest" value="${basedir}/javadocs"/>
+ <property name="org.jboss.esb.internal.samples.javadocs.dest" value="${basedir}/samples/javadocs"/>
+
+ <!-- Initialisation -->
+ <target name="org.jboss.esb.internal.init">
+ <!-- Define default build properties -->
+ <tstamp>
+ <format property="org.jboss.esb.date" pattern="yyyy/mm/dd hh:mm aa"/>
+ </tstamp>
+ <!-- Make the destination directory -->
+ <mkdir dir="${org.jboss.esb.internal.dest}"/>
+ </target>
+
+ <!-- Compilation targets -->
+
+ <target name="org.jboss.esb.compile"
+ depends="org.jboss.esb.internal.init, org.jboss.esb.core.compile"/>
+
+ <target name="org.jboss.esb.jar" depends="org.jboss.esb.internal.init, org.jboss.esb.core.jar"/>
+
+ <target name="org.jboss.esb.core.compile" depends="org.jboss.esb.internal.init">
+ <echo message="Compiling modules"/>
+ <ant dir="core"/>
+ </target>
+
+ <!-- Test targets -->
+ <target name="org.jboss.esb.test" depends="org.jboss.esb.compile">
+ <echo message="Testing modules"/>
+ <ant dir="core" target="org.jboss.esb.core.test"/>
+ </target>
+
+ <!-- javadocs paths -->
+ <path id="org.jboss.esb.javadocs.path">
+ <pathelement path="core/rosetta/src"/>
+ <pathelement path="core/listeners/src"/>
+ <pathelement path="core/services/src/"/>
+ </path>
+
+ <path id="org.jboss.esb.samples.javadocs.path">
+ <pathelement path="samples/trailblazer/bankloanbrokerdemo/banks/test"/>
+ </path>
+
+ <property name="org.jboss.esb.javadocs.list"
+ value="org.jboss.soa.*"/>
+
+ <property name="org.jboss.esb.samples.javadocs.list"
+ value="org.jboss.soa.esb.samples.*"/>
+
+ <!-- Jar targets -->
+ <target name="org.jboss.esb.core.jar" depends="org.jboss.esb.compile">
+ <echo message="Building jar file"/>
+ <ant dir="core" target="jar"/>
+ </target>
+
+ <!-- add ear file rule -->
+
+ <target name="org.jboss.esb.javadocs"
+ depends="org.jboss.esb.internal.init">
+ <echo message="Building javadocs"/>
+ <mkdir dir="${org.jboss.esb.internal.javadocs.dest}"/>
+ <path id="org.jboss.esb.internal.javadocs.path">
+ <path refid="org.jboss.esb.javadocs.path"/>
+ </path>
+
+ <javadoc
+ sourcepathref="org.jboss.esb.internal.javadocs.path"
+ destdir="${org.jboss.esb.internal.javadocs.dest}"
+ packagenames="${org.jboss.esb.javadocs.list}"
+ excludepackagenames="${org.jboss.esb.javadocs.exclude}"
+ >
+ <classpath>
+ <path path="${org.jboss.esb.internal.src}"/>
+ <fileset dir="lib/ext" includes="*.jar" />
+ <fileset dir="lib/ext/ejb3" includes="*.jar" />
+ </classpath>
+ </javadoc>
+ </target>
+
+ <target name="org.jboss.esb.samples.javadocs"
+ depends="org.jboss.esb.internal.init">
+ <echo message="Building samples javadocs"/>
+ <mkdir dir="${org.jboss.esb.internal.samples.javadocs.dest}"/>
+ <path id="org.jboss.esb.internal.samples.javadocs.path">
+ <path refid="org.jboss.esb.samples.javadocs.path"/>
+ </path>
+
+ <javadoc
+ sourcepathref="org.jboss.esb.internal.samples.javadocs.path"
+ destdir="${org.jboss.esb.internal.samples.javadocs.dest}"
+ packagenames="${org.jboss.esb.samples.javadocs.list}"
+ >
+ <classpath>
+ <path path="${org.jboss.esb.internal.src}"/>
+ <fileset dir="lib/ext" includes="*.jar" />
+ <fileset dir="samples/trailblazer/bankloanbrokerdemo/banks/lib/ext" includes="*.jar"/>
+ <fileset dir="lib/ext/ejb3" includes="*.jar" />
+ </classpath>
+ </javadoc>
+ </target>
+
+ <!-- produce a basic installation (minus docs and samples) -->
+
+ <target name="install" depends="org.jboss.esb.jar">
+
+ <echo message="Installation directory : ${org.jboss.esb.installationdirectory}"/>
+
+ <echo message="Installing jar files"/>
+ <mkdir dir="${org.jboss.esb.installationdirectory}/lib"/>
+ <copy
+ todir="${org.jboss.esb.installationdirectory}/lib">
+ <fileset dir="lib">
+ <include name="*.jar"/>
+ </fileset>
+ </copy>
+
+ <echo message="Installing xml ${org.jboss.esb.installationdirectory}"/>
+ <mkdir dir="${org.jboss.esb.installationdirectory}/xml"/>
+ <copy
+ todir="${org.jboss.esb.installationdirectory}/xml"
+ >
+ <fileset dir="etc/schemas/xml"/>
+ </copy>
+ </target>
+
+ <!-- produce a product distribution -->
+
+ <target name="dist" depends="install, org.jboss.esb.javadocs, org.jboss.esb.samples.javadocs">
+
+ <echo message="Installation directory : ${org.jboss.esb.installationdirectory}"/>
+
+ <echo message="Installing jar files"/>
+ <mkdir dir="${org.jboss.esb.installationdirectory}/lib"/>
+ <copy
+ todir="${org.jboss.esb.installationdirectory}/lib">
+ <fileset dir="lib">
+ <include name="*.jar"/>
+ </fileset>
+ </copy>
+
+ <echo message="Installing install files"/>
+ <mkdir dir="${org.jboss.esb.installationdirectory}/install"/>
+ <copy
+ todir="${org.jboss.esb.installationdirectory}/install">
+ <fileset dir="install"/>
+ </copy>
+
+ <echo message="Installing xml ${org.jboss.esb.installationdirectory}"/>
+ <mkdir dir="${org.jboss.esb.installationdirectory}/xml"/>
+ <copy
+ todir="${org.jboss.esb.installationdirectory}/xml"
+ >
+ <fileset dir="etc/schemas/xml"/>
+ </copy>
+
+ <echo message="Installing javadocs"/>
+ <mkdir dir="${org.jboss.esb.installationdirectory}/javadocs"/>
+ <copy
+ todir="${org.jboss.esb.installationdirectory}/javadocs"
+ >
+ <fileset dir="javadocs"/>
+ </copy>
+
+ <echo message="Installing docs"/>
+ <mkdir dir="${org.jboss.esb.installationdirectory}/docs"/>
+ <copy
+ todir="${org.jboss.esb.installationdirectory}/docs"
+ >
+ <fileset dir="docs">
+ <include name="*.pdf"/>
+ </fileset>
+ </copy>
+
+ <echo message="Installing samples"/>
+ <mkdir dir="${org.jboss.esb.installationdirectory}/samples"/>
+ <copy
+ todir="${org.jboss.esb.installationdirectory}/samples"
+ >
+ <fileset dir="samples">
+ <exclude name="**/*.pdf"/>
+ <exclude name="**/*.doc"/>
+ <exclude name="**/*.odg"/>
+ </fileset>
+ </copy>
+ <mkdir dir="${org.jboss.esb.installationdirectory}/samples/docs"/>
+ <copy
+ todir="${org.jboss.esb.installationdirectory}/samples/docs"
+ >
+ <fileset dir="samples/docs">
+ <include name="*.pdf"/>
+ </fileset>
+ </copy>
+ </target>
+
+ <target name="earinstr" depends="purge,compile">
+ <ant dir="core" target="earinstr"/>
+ </target>
+
+ <!-- Clean targets -->
+ <target name="org.jboss.esb.clean">
+ <echo message="Cleaning modules"/>
+
+ <echo message="Cleaning core"/>
+ <ant dir="core" target="clean"/>
+ </target>
+
+ <target name="org.jboss.esb.purge">
+ <echo message="Purging modules"/>
+
+ <ant dir="core" target="purge"/>
+
+ <delete dir="${org.jboss.esb.internal.dest}"/>
+ <delete dir="${org.jboss.esb.internal.dest.root}"/>
+ <delete dir="${org.jboss.esb.internal.javadocs.dest}"/>
+ </target>
+
+ <!-- Short target names -->
+ <target name="compile" depends="org.jboss.esb.compile"/>
+ <target name="test" depends="org.jboss.esb.test"/>
+ <target name="jar" depends="org.jboss.esb.jar"/>
+ <target name="clean" depends="org.jboss.esb.clean"/>
+ <target name="purge" depends="org.jboss.esb.purge"/>
+ <target name="javadoc" depends="org.jboss.esb.javadocs"/>
+
+ <target name="deploy" depends="install">
+ <ant dir="install" target="configure"/>
+ <copy file="${org.jboss.esb.installationdirectory}/lib/jbossesb-appl.ear"
+ todir="${org.jboss.esb.appserver.home}/server/${org.jboss.esb.appserver.config}/deploy"/>
+ </target>
+
+ <target name="deploy-instr" depends="earinstr">
+ <copy file="${org.jboss.esb.internal.dest}/tests/coverage/all/jbossesb-appl.ear"
+ todir="${org.jboss.esb.appserver.home}/server/${org.jboss.esb.appserver.config}/deploy"/>
+ </target>
+ <target name="instr-report">
+ <ant dir="core" target="instr-report"/>
+ </target>
+
+</project>
Added: labs/jbossesb/workspace/b_georges/product/core/ant.bat
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/ant.bat 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/ant.bat 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,12 @@
+ at echo off
+set ANT_CMD_LINE_ARGS=%1
+if ""%1""=="""" goto doneStart
+shift
+:setupArgs
+if ""%1""=="""" goto doneStart
+set ANT_CMD_LINE_ARGS=%ANT_CMD_LINE_ARGS% %1
+shift
+goto setupArgs
+:doneStart
+%ANT_HOME%\bin\ant %ANT_CMD_LINE_ARGS%
+
Property changes on: labs/jbossesb/workspace/b_georges/product/core/ant.bat
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/build.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/build.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/build.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+ <!-- =================================================================== -->
+ <!-- build.xml - Builds all subprojects in child directories -->
+ <!-- =================================================================== -->
+
+<project name="JbossEsb" default="org.jboss.esb.core.compile" basedir=".">
+
+ <property name="org.jboss.esb.core.name.jar" value="name.jar-NOT_SET.jar"/>
+ <property environment="env"/>
+
+ <!-- =================================================================== -->
+ <!-- Initialize -->
+ <!-- =================================================================== -->
+ <target name="org.jboss.esb.core.init">
+ <tstamp>
+ <format property="TODAY" pattern="dd-MM-yy"/>
+ </tstamp>
+ </target>
+
+ <path id="emma.libs">
+ <fileset dir="../lib/ext" includes="emma*.jar"/>
+ </path>
+ <taskdef resource="emma_ant.properties" classpathref="emma.libs" />
+
+ <!-- =================================================================== -->
+ <!-- Prepares the directory structure -->
+ <!-- =================================================================== -->
+ <target name="org.jboss.esb.core.prepare" depends="org.jboss.esb.core.init">
+ <mkdir dir="${org.jboss.esb.internal.dest}/dist"/>
+ <mkdir dir="${org.jboss.esb.internal.dest}/dist/lib"/>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Compiles all the classes -->
+ <!-- =================================================================== -->
+ <target name="org.jboss.esb.core.compile" depends="org.jboss.esb.core.prepare" description="Compile subprojects">
+ <echo message="Compiling submodules"/>
+ <ant dir="rosetta"/>
+ <ant dir="services"/>
+ <ant dir="listeners"/>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Test all the classes -->
+ <!-- =================================================================== -->
+ <target name="org.jboss.esb.core.test" depends="org.jboss.esb.core.compile" description="Test subprojects">
+ <echo message="Testing submodules"/>
+ <ant dir="rosetta" target="org.jboss.esb.rosetta.test"/>
+ <ant dir="listeners" target="org.jboss.esb.listeners.test"/>
+ <ant dir="services" target="org.jboss.esb.services.test"/>
+ </target>
+
+
+ <!-- =================================================================== -->
+ <!-- Assemble jars -->
+ <!-- =================================================================== -->
+ <target name="jar" depends="org.jboss.esb.core.compile" description="Build jar files">
+ <echo message="Building jar"/>
+ <ant dir="rosetta" target="jar"/>
+ <ant dir="listeners" target="jar"/>
+ <ant dir="services" target="jar"/>
+ <antcall target="-ear"/>
+ </target>
+
+ <target name="-ear">
+ <ear destfile="${org.jboss.esb.internal.dest}/dist/lib/jbossesb-appl.ear"
+ appxml="services/src/META-INF/application.xml">
+ <fileset dir="${org.jboss.esb.internal.dest}/dist/lib"
+ includes="*.jar"
+ />
+ <fileset dir="../lib/ext/"
+ includes="jbossts-common.jar"
+ />
+ </ear>
+ </target>
+
+ <property name="classes.dir" value="${org.jboss.esb.internal.dest}/classes"/>
+ <property name="coverage.dir" value="${org.jboss.esb.internal.dest}/tests/coverage"/>
+ <target name="earinstr">
+ <echo message="Building Instrumented App"/>
+
+ <!-- Instrument everything... -->
+ <delete dir="${coverage.dir}/all" />
+ <mkdir dir="${coverage.dir}/all" />
+ <emma>
+ <instr instrpath="${classes.dir}/rosetta" destdir="${coverage.dir}/all/instr" metadatafile="${coverage.dir}/all/coverage.emma" />
+ </emma>
+ <emma>
+ <instr instrpath="${classes.dir}/listeners" destdir="${coverage.dir}/all/instr" metadatafile="${coverage.dir}/all/coverage.emma" />
+ </emma>
+ <emma>
+ <instr instrpath="${classes.dir}/services" destdir="${coverage.dir}/all/instr" metadatafile="${coverage.dir}/all/coverage.emma" />
+ </emma>
+
+ <!-- Jar everything, including what disn't get intrumented i.e. interfaces etc... -->
+ <jar destfile="${org.jboss.esb.internal.dest}/tests/coverage/all/jbossesb-instr-all.jar">
+ <fileset dir="${classes.dir}/rosetta"/><fileset dir="${classes.dir}/listeners"/><fileset dir="${classes.dir}/services"/>
+ <fileset dir="${coverage.dir}/all/instr" />
+ </jar>
+
+ <ear destfile="${coverage.dir}/all/jbossesb-appl.ear" appxml="services/tests/application.xml">
+ <fileset dir="${coverage.dir}/all/" includes="jbossesb-instr-all.jar"/>
+ <fileset dir="../lib/ext/" includes="jbossts-common.jar" />
+ </ear>
+
+ </target>
+
+ <target name="instr-report">
+ <emma>
+ <report sort="+block,+name,+method,+class" metrics="method:70,block:80,line:80,class:100">
+ <fileset dir="${coverage.dir}/all/" >
+ <include name="*.emma" />
+ </fileset>
+ <sourcepath><dirset dir="./" includes="rosetta/src,listeners/src,services/src" /></sourcepath>
+ <html outfile="${coverage.dir}/all/index.html" depth="method" columns="name,line,class,method,block"/>
+ </report>
+ </emma>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Clean all -->
+ <!-- =================================================================== -->
+ <target name="clean" description="Clean dist directory and cleans subprojects">
+ <delete dir="${org.jboss.esb.internal.dest}/classes"/>
+
+ <ant dir="rosetta" target="clean"/>
+ <ant dir="listeners" target="clean"/>
+ <ant dir="services" target="clean"/>
+ </target>
+
+ <target name="purge" depends="clean">
+
+ <delete dir="${org.jboss.esb.internal.dest}/dist"/>
+
+ <ant dir="rosetta" target="purge"/>
+ <ant dir="listeners" target="purge"/>
+ <ant dir="services" target="purge"/>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Rebuild everything from scratch -->
+ <!-- =================================================================== -->
+ <target name="all" depends="clean,jar" />
+ <target name="recompile" depends="clean,org.jboss.esb.core.compile" />
+
+</project>
Property changes on: labs/jbossesb/workspace/b_georges/product/core/build.xml
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/build.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/build.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/build.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,95 @@
+<?xml version="1.0"?>
+<project name="BuildJbossEsbListeners" default="org.jboss.esb.listeners.compile" basedir=".">
+
+ <property name="org.jboss.esb.listeners.jar.name" value="jbossesb-listeners"/>
+ <property name="org.jboss.esb.listeners.distrib.dir" value="${org.jboss.esb.internal.dest}/dist"/>
+ <property name="org.jboss.esb.listeners.classes.dir" value="${org.jboss.esb.internal.dest}/classes/listeners"/>
+ <property name="org.jboss.esb.listeners.src.dir" value="${basedir}/src"/>
+ <property name="org.jboss.esb.root.dir" value="../.."/>
+ <property environment="env"/>
+
+ <property name="org.jboss.esb.ext.lib.dir" value="${org.jboss.esb.root.dir}/lib/ext"/>
+ <property name="org.jboss.esb.ejb3.lib.dir" value="${org.jboss.esb.root.dir}/lib/ext/ejb3"/>
+ <condition property="org.jboss.esb.ext.lib.dir" value="{org.jboss.esb.jboss.home}/client">
+ <equals arg1="${org.jboss.esb.frominstall}" arg2="yes"/>
+ </condition>
+
+ <path id="org.jboss.esb.listeners.base.classpath">
+ <fileset dir="${org.jboss.esb.ext.lib.dir}" includes="*.jar"/>
+ </path>
+
+ <path id="org.jboss.esb.listeners.default.classpath">
+ <path refid="org.jboss.esb.listeners.base.classpath"/>
+ <pathelement location="${org.jboss.esb.classes.dir}"/>
+ <pathelement location="${org.jboss.esb.internal.dest}/classes/rosetta"/>
+ <pathelement location="${org.jboss.esb.internal.dest}/classes/services"/>
+ <fileset dir="${org.jboss.esb.ejb3.lib.dir}" includes="*.jar,*.zip"/>
+ </path>
+
+ <target name="org.jboss.esb.listeners.init">
+ <tstamp>
+ <format property="TODAY" pattern="d-MM-yy"/>
+ </tstamp>
+ </target>
+
+ <target name="org.jboss.esb.listeners.prepare" depends="org.jboss.esb.listeners.init">
+ <mkdir dir="${org.jboss.esb.listeners.classes.dir}"/>
+ <mkdir dir="${org.jboss.esb.listeners.distrib.dir}"/>
+ <mkdir dir="${org.jboss.esb.listeners.distrib.dir}/lib"/>
+ </target>
+
+ <target name="clean" description="Remove classes directory">
+ <delete dir="${org.jboss.esb.listeners.classes.dir}"/>
+ </target>
+
+ <target name="purge" depends="clean">
+ </target>
+
+
+
+ <target name="org.jboss.esb.listeners.compile">
+ <!-- Compile listeners -->
+ <antcall target="org.jboss.esb.listeners.internal.compile"/>
+ <!-- Compile listener tests -->
+ <ant inheritAll="true" dir="tests" target="org.jboss.esb.listeners.tests.compile"/>
+ </target>
+
+
+
+ <target name="org.jboss.esb.listeners.internal.compile" depends="org.jboss.esb.listeners.prepare"
+ description="Compile all classes">
+
+ <javac
+ destdir="${org.jboss.esb.listeners.classes.dir}"
+ classpathref="org.jboss.esb.listeners.default.classpath"
+ debug="${org.jboss.esb.debug}"
+ optimize="${org.jboss.esb.optimize}"
+ >
+ <src path="${org.jboss.esb.listeners.src.dir}"/>
+ </javac>
+
+ </target>
+
+ <target name="recompile" depends="clean,org.jboss.esb.listeners.compile"
+ description="Clean and compile"/>
+
+ <target name="jar" depends="org.jboss.esb.listeners.compile" description="Assemble jar files">
+ <delete file="${org.jboss.esb.listeners.distrib.dir}/lib/${org.jboss.esb.listeners.jar.name}.jar" />
+ <jar destfile="${org.jboss.esb.listeners.distrib.dir}/lib/${org.jboss.esb.listeners.jar.name}.jar"
+ basedir="${org.jboss.esb.listeners.classes.dir}"
+ includes="**/*.class"
+ excludes="test/**"
+ />
+ </target>
+
+
+
+ <target name="org.jboss.esb.listeners.test" description="Run tests for this module">
+ <!-- Compile listener tests -->
+ <ant dir="tests" target="org.jboss.esb.listeners.internal.test"/>
+ </target>
+
+
+ <target name="all" depends="recompile,jar" />
+
+</project>
Property changes on: labs/jbossesb/workspace/b_georges/product/core/listeners/build.xml
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/log4j.properties
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/log4j.properties 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/log4j.properties 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,7 @@
+### direct log messages to stdout ###
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.Target=System.out
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
+### set log levels - for more verbose logging change 'info' to 'debug' ###
+log4j.rootLogger=info, stdout
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,173 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.internal.soa.esb.couriers;
+
+import java.util.*;
+import javax.jms.*;
+import javax.naming.Context;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.helpers.JMSEpr;
+import org.jboss.soa.esb.couriers.Courier;
+import org.jboss.soa.esb.couriers.CourierException;
+import org.jboss.soa.esb.helpers.AppServerContext;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.util.Util;
+import org.jboss.soa.esb.helpers.*;
+
+public class JmsCourier implements Courier
+{
+ /**
+ * disable default constructor
+ */
+ private JmsCourier() { }
+ /**
+ * package protected constructor - Objects of Courier should only be instantiated by the Factory
+ * @param epr
+ */
+ public JmsCourier(EPR epr) throws CourierException
+ {
+ _sleepForRetries = 3000;
+
+ try
+ {
+ _messageProperties = Util.propertiesFromSelector(_epr.getMessageSelector());
+ createMessageProducer();
+ }
+ catch (Exception e) { throw new CourierException(e); }
+
+ } //________________________________
+
+ /**
+ * package the ESB message in a javax.jms.ObjectMessage, and send it
+ * @param message Message - the message to deliver
+ * @return boolean - the result of the delivery
+ * @throws CourierException - if problems were encountered
+ */
+ public boolean deliver(Message message) throws CourierException
+ {
+ if (null==message)
+ return false;
+ while (null!=_messageProducer)
+ {
+ try
+ {
+ // obtain Serializable version of arg0 and package it in a jms ObjectMessage
+ sendMessage(_jmsSession.createObjectMessage(Util.serialize(message)));
+ return true;
+ }
+ catch (JMSException e) { jmsRetry(e); }
+ catch (Exception e) { throw new CourierException(e);}
+ }
+ return false;
+ } //________________________________
+
+ /**
+ * send/publish a javax.jms.ObjectMessage (that will contain the serialized ESB Message)
+ * @param jmsMessage
+ */
+ protected void sendMessage(javax.jms.Message jmsMessage) throws JMSException
+ {
+ if (_messageProducer instanceof TopicPublisher)
+ ((TopicPublisher)_messageProducer).publish(jmsMessage);
+ else
+ _messageProducer.send(jmsMessage);
+ } //________________________________
+
+ private void jmsRetry(Exception exc)
+ {
+ _logger.error("JMS error. Attempting JMS reconnect.", exc);
+ _jmsConnection = null;
+ _jmsSession = null;
+ _messageProducer= null;
+
+ for (int i1 = 0; i1 < 5; i1++)
+ {
+ // try to reconnect to the queue
+ try { createMessageProducer(); }
+ catch (Exception e)
+ {
+ _logger.error("Reconnecting to JMS", e);
+ try { Thread.sleep(_sleepForRetries); }
+ catch (InterruptedException e1)
+ { // Just return after logging
+ _logger.error("Unexpected thread interupt exception.", e);
+ break;
+ }
+ }
+ }
+ }
+
+ protected void createMessageProducer() throws Exception
+ {
+
+ String sJndiType = _epr.getJndiType();
+ if (Util.isNullString(sJndiType))
+ sJndiType = "jboss";
+ String sJndiURL = _epr.getJndiURL();
+ if (Util.isNullString(sJndiURL))
+ sJndiURL = "localhost";
+ Context oJndiCtx = AppServerContext.getServerContext(sJndiType,sJndiURL);
+
+ String sFactoryClass = _epr.getConnectionFactory();
+ if (Util.isNullString(sFactoryClass))
+ sFactoryClass = "ConnectionFactory";
+
+ Object tmp = oJndiCtx.lookup(sFactoryClass);
+
+ String sType = _epr.getDestinationType();
+ if (JMSEpr.QUEUE_TYPE.equals(sType))
+ {
+ javax.jms.Queue queue = (javax.jms.Queue) oJndiCtx.lookup(_epr.getDestinationName());
+ QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
+ QueueConnection qConn = qcf.createQueueConnection();
+ QueueSession qSess = qConn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
+ _jmsConnection = qConn;
+ _jmsSession = qSess;
+ _messageProducer = qSess.createProducer(queue);
+ }
+ else if(JMSEpr.TOPIC_TYPE.equals(sType))
+ {
+ Topic topic = (Topic) oJndiCtx.lookup(_epr.getDestinationName());
+ TopicConnectionFactory tcf = (TopicConnectionFactory) tmp;
+ TopicConnection tConn = tcf.createTopicConnection();
+ TopicSession tSess = tConn.createTopicSession(false,TopicSession.AUTO_ACKNOWLEDGE);
+ _jmsConnection = tConn;
+ _jmsSession = tSess;
+ _messageProducer = tSess.createPublisher(topic);
+ }
+ else
+ throw new CourierException("Unknown destination type");
+
+ } //________________________________
+
+ protected JMSEpr _epr;
+ protected Logger _logger = Logger.getLogger(JmsCourier.class);
+ protected String _messageSelector;
+ protected Connection _jmsConnection;
+ protected Session _jmsSession;
+ protected MessageProducer _messageProducer;
+ protected long _sleepForRetries = 3000; // milliseconds
+ protected List<KeyValuePair> _messageProperties;
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractFileAction.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractFileAction.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractFileAction.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,77 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions;
+
+import java.io.File;
+
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * <p/>
+ * Extend this class if you need to implement an action class intended to process one file at a time.
+ * <p/>
+ * See {@link org.jboss.soa.esb.actions.routing.FileCopier} as an example.
+ * <p/>
+ * This class are stateful.
+ * @author Esteban.
+ */
+public abstract class AbstractFileAction implements ActionProcessor {
+
+ /**
+ * Files processed by action classes
+ * need to be renamed during processing to disable other listeners (or other
+ * threads launched by the same listener that started this thread) to pick
+ * up the same file <br/>Once processing ends a suffix will be added to the
+ * name of the original file that has been processed. The suffix will be
+ * different according to the result of processing (OK or Exception). Files
+ * could be moved to different directories as well <br/> Parameters for
+ * these options can be provided at run time in the ConfigTree (arg 0 in
+ * constructor)
+ * @param message The message payload to be processed.
+ * @return The processing result.
+ * @throws ActionProcessingException Exception during payload processing.
+ */
+ public final Message process(Message message) throws ActionProcessingException {
+
+ Object oCurr = ActionUtils.getTaskObject(message);
+ if(!(oCurr instanceof File)) {
+ throw new ActionProcessingException
+ ("Message current object for processing by " + getClass().getName()
+ + " should have been preprocessed to a " + File.class.getName()
+ + " instance.");
+ }
+
+ // Call the implementing class to process the file message...
+ ActionUtils.setTaskObject(message,process((File)oCurr));
+ return message;
+ }
+
+ /**
+ * Process the file message object.
+ * @param file The file to be processed.
+ * @return The processing result.
+ * @throws ActionProcessingException Exception while processing file.
+ */
+ protected abstract Object process(File file) throws ActionProcessingException;
+
+} // ____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractSqlRowAction.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractSqlRowAction.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractSqlRowAction.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,51 @@
+package org.jboss.soa.esb.actions;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * Abstract SQL Row action.
+ * <p/>
+ * Convienience class for processing messages from the {@link org.jboss.soa.esb.listeners.old.SqlTablePoller} listener.
+ * Implementing classes receive a single row resultset through their implementation of the {@link #process(Map)}
+ * method.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public abstract class AbstractSqlRowAction implements ActionProcessor {
+
+ protected Logger logger;
+
+ protected AbstractSqlRowAction(String actionName,
+ List<KeyValuePair> properties) throws Exception {
+
+ logger = Logger.getLogger(getClass());
+ }
+
+ public final Message process(Message message) throws ActionProcessingException {
+ Object oCurr = ActionUtils.getTaskObject(message);
+ if (!(oCurr instanceof Map)) {
+ throw new ActionProcessingException(
+ "Message object for processing by "
+ + getClass().getName()
+ + " should have been preprocessed and supplied as a "
+ + Map.class.getName() + " instance.");
+ }
+ ActionUtils.setTaskObject(message,process((Map)oCurr));
+ return message;
+ } // ________________________________
+
+ /**
+ * Process the SQL poll resultset.
+ *
+ * @param resultSet SQL Poller resultset.
+ * @return Processing result.
+ */
+ protected abstract Object process(Map resultSet) throws ActionProcessingException;
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionDefinition.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionDefinition.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionDefinition.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,106 @@
+package org.jboss.soa.esb.actions;
+
+import java.lang.reflect.Constructor;
+import java.util.List;
+
+import org.jboss.soa.esb.helpers.KeyValuePair;
+
+/**
+ * Action Definition.
+ * <p/>
+ * An Action is defined by "name", an action "processor" instance to perform the processing action, plus
+ * properties to the processing action to be supplued to the processor instance.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class ActionDefinition {
+
+ private String name;
+ private String processor;
+ private List<KeyValuePair> properties;
+ private boolean isSingleton = true;
+ private ActionProcessor singletonInstance = null;
+
+ /**
+ * Private constructor.
+ * @param name The action name.
+ * @param processor The action processor runtime class.
+ * @param properties Action properties list. An empty list for an action with no defined properties.
+ */
+ protected ActionDefinition(String name, String processor, List<KeyValuePair> properties) {
+ this.name = name;
+ this.processor = processor;
+ this.properties = properties;
+
+ String isSingletonProp = KeyValuePair.getValue("singleton", properties);
+ isSingleton = (isSingletonProp == null || !isSingletonProp.equals("false"));
+ }
+
+ /**
+ * Get the action name.
+ * @return The action name.
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Get the action processor instance.
+ * @return The Action Processor.
+ */
+ public ActionProcessor getProcessor() {
+ if(!isSingleton) {
+ return createActionProcessor();
+ } else {
+ if(singletonInstance == null) {
+ singletonInstance = createActionProcessor();
+ }
+ return singletonInstance;
+ }
+ }
+
+ /**
+ * Get the action properties to be supplied to the action processor.
+ * @return The configured action properties. An empty list for an action with no defined properties.
+ */
+ public List<KeyValuePair> getProperties() {
+ return properties;
+ }
+
+ /**
+ * Create the action processor instance.
+ * <p/>
+ * See the {@link ActionProcessor} regarding reflective construction rules.
+ * @return The action processor instance.
+ */
+ private ActionProcessor createActionProcessor() {
+ Class<? extends ActionProcessor> runtimeClass;
+ Class[] NONDEFAULT_SIG = new Class[] {String.class, List.class};
+ Constructor nonDefaultConstructor;
+
+ // Get the runtime class...
+ try {
+ runtimeClass = Class.forName(processor).asSubclass(ActionProcessor.class);
+ } catch (ClassNotFoundException e) {
+ throw new IllegalStateException("Action Processor class " + processor + " not found in classpath.", e);
+ } catch (ClassCastException e) {
+ throw new IllegalStateException("Action Processor class " + processor + " does not implement " + ActionProcessor.class.getName(), e);
+ }
+
+ // Construct it...
+ try {
+ nonDefaultConstructor = runtimeClass.getConstructor(NONDEFAULT_SIG);
+ return (ActionProcessor) nonDefaultConstructor.newInstance(new Object[] {name, properties});
+ } catch (NoSuchMethodException e1) {
+ try {
+ return runtimeClass.newInstance();
+ } catch (InstantiationException e) {
+ throw new IllegalStateException("No appropriate constructor found on processor class [" + processor + "]. See " + ActionProcessor.class.getName() + " Javadoc.", e);
+ } catch (Exception e) {
+ throw new IllegalStateException("Unexpected exception. Unable to construct processor class instance [" + processor + "] using default constructor.", e);
+ }
+ } catch (Exception e) {
+ throw new IllegalStateException("Unexpected exception. Unable to construct processor class instance [" + processor + "] using non-default constructor.", e);
+ }
+ }
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionDefinitionFactory.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionDefinitionFactory.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionDefinitionFactory.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,189 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions;
+
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+
+/**
+ * Action Definition Factory.
+ * <p/>
+ * Note, much of the logic in this class could easily be replaced through the use of an IoC container.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class ActionDefinitionFactory {
+
+ /**
+ * Class Logger.
+ */
+ private static Logger logger = Logger.getLogger(ActionDefinitionFactory.class);
+ /**
+ * Action Definition table.
+ */
+ private Hashtable<String, ActionDefinition> actionDefinitions = new Hashtable<String, ActionDefinition>();
+
+ /**
+ * Construct a factory instance.
+ * @param config ActionDefinition configuration.
+ * @throws ConfigurationException Invalid configuration.
+ */
+ public ActionDefinitionFactory(ConfigTree config) throws ConfigurationException {
+ if(config == null || !config.getName().equals("Actions")) {
+ throw new ConfigurationException("No 'Actions' configuration.");
+ }
+
+ // Read the processor alias and action def configurations from the XML configuration...
+ ConfigTree processorAliasConfig = config.getFirstChild("ProcessorAliases");
+ ConfigTree[] actions = config.getChildren("Action");
+ if(processorAliasConfig == null) {
+ throw new ConfigurationException("No 'Actions/ProcessorAliases' configuration.");
+ }
+ if(actions == null || actions.length == 0) {
+ throw new ConfigurationException("No 'Actions/Action' configurations.");
+ }
+
+ // Initialise the Action Definition table..
+ Hashtable<String, String> processorClasses = getProcessorClasses(processorAliasConfig);
+ initialiseActionDefinitions(actions, processorClasses);
+ logger.info("ActionDefinition Factory initialisation complete.");
+ }
+
+ /**
+ * Get the action definition for the specified action name.
+ * @param actionName The action name.
+ * @return The action definition.
+ */
+ public ActionDefinition getInstance(String actionName) {
+ if(actionName == null || actionName.trim().equals("")) {
+ throw new IllegalArgumentException("Null or empty 'actionName' arg in method call.");
+ }
+
+ return actionDefinitions.get(actionName);
+ }
+
+ /**
+ * Initialise the Action Definitions.
+ * @param actions Action Definition configurations.
+ * @param processorClasses Processor classes keyed by alias name.
+ * @throws ConfigurationException
+ */
+ private void initialiseActionDefinitions(ConfigTree[] actions, Hashtable<String, String> processorClasses) throws ConfigurationException {
+ if(processorClasses == null || processorClasses.isEmpty()) {
+ throw new ConfigurationException("No action processor classes defined.");
+ }
+
+ for(ConfigTree action : actions) {
+ String name = action.getAttribute("name");
+ String processorAlias = action.getAttribute("processor");
+ String processorClass;
+ List<KeyValuePair> properties;
+
+ // Check the required attributes...
+ if(name == null || name.trim().equals("")) {
+ throw new ConfigurationException("Actions/Action has no 'name' defined.");
+ }
+ if(processorAlias == null || processorAlias.trim().equals("")) {
+ throw new ConfigurationException("Actions/Action [" + name + "] has no 'processor' defined.");
+ }
+ processorClass = processorClasses.get(processorAlias);
+ if(processorClass == null) {
+ throw new ConfigurationException("No action processor class defined for processor alias [" + processorAlias + "] set on action [" + name + "].");
+ }
+
+ // Get any properties defined on the action...
+ properties = getProperties(action);
+
+ // Create the action definition and store it against it's name...
+ actionDefinitions.put(name, new ActionDefinition(name, processorClass, properties));
+ logger.info("Added ActionDefinition [" + name + "] for processor [" + processorAlias + ":" + processorClass + "]. Num properties: " + properties.size());
+ }
+ }
+
+ /**
+ * Get the processor runtime classes.
+ * @param processorAliasConfig Alias configs.
+ * @return Processor runtime classs
+ * @throws ConfigurationException Bad configuration.
+ */
+ private Hashtable<String, String> getProcessorClasses(ConfigTree processorAliasConfig) throws ConfigurationException {
+ ConfigTree[] aliases = processorAliasConfig.getChildren("Alias");
+ Hashtable<String, String> processorClasses = new Hashtable<String, String>();
+
+ if(aliases == null) {
+ throw new ConfigurationException("No 'Actions/ProcessorAliases/Alias' configurations.");
+ }
+
+ for(ConfigTree alias : aliases) {
+ String name = alias.getAttribute("name");
+ String className = alias.getAttribute("class");
+
+ // Check the required attributes...
+ if(name == null || name.trim().equals("")) {
+ throw new ConfigurationException("Actions/ProcessorAliases/Alias has no 'name' defined.");
+ }
+ if(className == null || className.trim().equals("")) {
+ throw new ConfigurationException("Actions/ProcessorAliases/Alias [" + name + "] has no 'class' defined.");
+ }
+ processorClasses.put(name, className);
+ logger.info("Added alias [" + name + "] for ActionProcessor class [" + className + "].");
+ }
+
+ return processorClasses;
+ }
+
+ /**
+ * Get the properties defined on the supplied 'Action' configuration.
+ * @param action The action configuration element.
+ * @return A list of property {@link KeyValuePair} instances. An empty list list is returned
+ * if no properties are defined on the action.
+ * @throws ConfigurationException A property name or value is empty or undefined.
+ */
+ private List<KeyValuePair> getProperties(ConfigTree action) throws ConfigurationException {
+ ConfigTree[] properties = action.getChildren("property");
+ List<KeyValuePair> propertyList = new ArrayList<KeyValuePair>();
+
+ for(ConfigTree property : properties) {
+ String name = property.getAttribute("name");
+ String value = property.getAttribute("value");
+
+ // Check the required attributes...
+ if(name == null || name.trim().equals("")) {
+ throw new ConfigurationException("Actions/Action/property has no 'name' defined. Action [" + action.getAttribute("name") + "].");
+ }
+ if(value == null || value.trim().equals("")) {
+ throw new ConfigurationException("Actions/Action/property has no 'value' defined. Action [" + action.getAttribute("name") + "], Property [" + name + "].");
+ }
+
+ propertyList.add(new KeyValuePair(name, value));
+ }
+
+ return propertyList;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionProcessingException.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionProcessingException.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionProcessingException.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions;
+
+import org.jboss.soa.esb.BaseException;
+
+/**
+ * Exception while processing message payload processing action.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class ActionProcessingException extends BaseException {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Public constructor.
+ * @param message Exception message.
+ */
+ public ActionProcessingException(String message) {
+ super(message);
+ }
+
+ /**
+ * Public constructor.
+ * @param message Exception message.
+ * @param cause Exception cause.
+ */
+ public ActionProcessingException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ /**
+ * Public constructor.
+ * @param cause Exception cause.
+ */
+ public ActionProcessingException(Throwable cause) {
+ super(cause);
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionProcessor.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionProcessor.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionProcessor.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,67 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions;
+
+import java.io.Serializable;
+
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * Action Processor Interface Definition.
+ * <p/>
+ * An "Action Processor" performs a processing action on a message payload and returns the processing
+ * result.
+ * <p/>
+ * Implementations are constructed based on the following public constructor order precedence:
+ * <ol>
+ * <li><b>(String actionName, List<{@link org.jboss.soa.esb.helpers.KeyValuePair}> properties)</b></li>
+ * <li><b>default constructor</b>.</li>
+ * </ol>
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public interface ActionProcessor {
+
+
+ /**
+ * Perform the processing action on the message
+ * @param message The message to be processed.
+ * @return Message - result of process
+ * @throws ActionProcessingException Exception during payload processing.
+ */
+ public Message process(Message message) throws ActionProcessingException;
+
+ /**
+ * Get the "OK" notification message for this processor.
+ * @param message The message Object.
+ * @return The OK message.
+ */
+ public abstract Serializable getOkNotification(Message message);
+
+ /**
+ * Get the "Error" notification message for this processor.
+ * @param message The message Object.
+ * @return The Error message.
+ */
+ public abstract Serializable getErrorNotification(Message message);
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionUtils.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionUtils.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/ActionUtils.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,125 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Body;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.notification.NotificationList;
+
+/**
+ * Contains utility methods for actions
+ * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
+ * @since Version 4.0
+ */
+public class ActionUtils
+{
+ public static final String BEFORE_ACTION="org.jboss.soa.esb.actions.current.before";
+ private static final String CURRENT_OBJECT="org.jboss.soa.esb.actions.current.after";
+ private static final String CONFIG_TREE ="org.jboss.soa.esb.helpers.ConfigTree";
+
+ /**
+ * Obtain the current object from standard spot within message
+ * @param message - from where to obtain the 'current object'
+ * @return Object stored in Body with key ActionProcessor.CURRENT_OBJECT
+ */
+ public static Object getTaskObject(Message message)
+ {
+ return (null==message)? null : message.getBody().get(CURRENT_OBJECT);
+ }
+ /**
+ * Obtain previous 'current object' from standard spot within message
+ * @param message - from where to obtain the value
+ * @return Object stored in Body with key ActionProcessor.BEFORE_ACTION
+ */
+ public static Object getTaskBeforeObject(Message message)
+ {
+ return (null==message)? null : message.getBody().get(BEFORE_ACTION);
+ }
+ /**
+ * Copy 'current object' to a temporary holder within message
+ * @param message
+ */
+ public static void copyCurrentToPrevious(Message message)
+ {
+ Body body = message.getBody();
+ body.remove(BEFORE_ACTION);
+ body.add(BEFORE_ACTION,body.get(CURRENT_OBJECT));
+ }
+ /**
+ * Put current object in standard spot within message
+ * <br/>NULL values are not stored
+ * @param message - to operate on
+ * @param obj - Object to store - Won't be stored if <null>
+ * @return Object previous 'current object'
+ */
+ public static Object setTaskObject(Message message, Object obj)
+ {
+ Object oRet = message.getBody().remove(CURRENT_OBJECT);
+ if (null!=obj)
+ message.getBody().add(CURRENT_OBJECT,obj);
+ return oRet;
+ }
+
+ /**
+ * Put a Config tree in predefined spot for it in 'this'
+ * <br/>NULL values are not stored
+ * @param message - to operate on
+ * @param tree - ConfigTree to store - Won't be stored if <null>
+ * @return ConfigTree previously stored
+ */
+ public static ConfigTree setConfigTree(Message message, ConfigTree tree)
+ {
+ ConfigTree oRet = (ConfigTree)message.getBody().remove(CONFIG_TREE);
+ if (null!=tree)
+ message.getBody().add(CONFIG_TREE,tree);
+ return oRet;
+ }
+ /**
+ * Put a Config tree in predefined spot for it in 'this'
+ * <br/>NULL values are not stored
+ * @param message - to operate on
+ * @param tree - ConfigTree to store - Won't be stored if <null>
+ * @return ConfigTree previously stored
+ */
+ public static ConfigTree getConfigTree(Message message)
+ {
+ ConfigTree oRet = (ConfigTree)message.getBody().get(CONFIG_TREE);
+ return (null==oRet)?new ConfigTree("mock"):oRet;
+ }
+
+ public static NotificationList getNotifyList(ConfigTree tree, String type)
+ {
+ ConfigTree[] array = tree.getChildren("NotificationList");
+ for (ConfigTree curr : array)
+ {
+ String sType = curr.getAttribute(NotificationList.TYPE);
+ if (null==sType)
+ continue;
+ if (type.toLowerCase().startsWith(sType.toLowerCase()))
+ return new NotificationList(curr);
+ }
+ return null;
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/FtpDownloader.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/FtpDownloader.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/FtpDownloader.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,123 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.actions;
+
+import java.io.File;
+import java.io.Serializable;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.listeners.old.GpListener;
+import org.jboss.soa.esb.listeners.old.RemoteDirectoryPoller;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.util.FtpClientUtil;
+
+public class FtpDownloader extends AbstractFileAction
+{
+ ConfigTree _parms;
+ FtpClientUtil _ftpClient;
+ String _localDir;
+ RemoteDirectoryPoller.WorkingFile _workFile;
+ Logger _logger = Logger.getLogger(this.getClass());
+
+ /**
+ * Public constructor.
+ * @param actionName Action name.
+ * @param properties Action Properties.
+ * @throws ConfigurationException Action not properly configured.
+ */
+ public FtpDownloader(String actionName, List<KeyValuePair> properties)
+ { _parms = new ConfigTree("fromProps");
+ for (KeyValuePair oCurr : properties)
+ _parms.setAttribute(oCurr.getKey(),oCurr.getValue());
+ } //________________________________
+
+ @Override
+ public Object process(File obj) throws ActionProcessingException
+ {
+ try { _workFile = (RemoteDirectoryPoller.WorkingFile)obj; }
+ catch(ClassCastException e)
+ {
+ throw new ActionProcessingException
+ ("Argument must be an instance of "+ _workFile.getClass().getName(),e);
+ }
+
+ try
+ {
+ // Kludge to obtain ftp arguments from message - not quite nice... (ES)
+ if (null!=_workFile.getFtpProps())
+ for (KeyValuePair kvp : _workFile.getFtpProps())
+ {
+ String sVal = kvp.getValue();
+ _parms.setAttribute(kvp.getKey(),(null==sVal)?"":sVal);
+ }
+ // end of kludge
+// System.out.println("Downloading "+_workFile);
+ _ftpClient = new FtpClientUtil(_parms,true);
+ _localDir = _parms.getAttribute(FtpClientUtil.PARMS_LOCAL_DIR);
+ String sFrom = FtpClientUtil.fileToFtpString(_workFile);
+ _ftpClient.downloadFile(sFrom,_workFile.getInputFile().getName());
+
+ if (_workFile.isPostDelete())
+ _ftpClient.remoteDelete(_workFile);
+ else
+ _workFile.remoteRenameToOutput(_ftpClient);
+
+ GpListener.notifyOK(_parms,getOkNotification(null));
+ return _workFile;
+ }
+ catch (Exception e)
+ {
+ GpListener.notifyError(_parms,e,getErrorNotification(null));
+ try { _workFile.remoteRenameToInput(_ftpClient); }
+ catch (Exception e2) { /* not much we can do if can't rename back to input */}
+ throw new ActionProcessingException(e);
+ }
+ finally
+ {
+ if (null!=_ftpClient)
+ _ftpClient.quit();
+ _ftpClient = null;
+ }
+ } //________________________________
+
+ public Serializable getOkNotification(Message message)
+ {
+ return new StringBuilder()
+ .append(_workFile.getInputFile().toString())
+ .append("successfully downloaded to ").append(_localDir)
+ .toString();
+ } //________________________________
+
+ public Serializable getErrorNotification(Message message)
+ {
+ return new StringBuilder()
+ .append("Failed to download ").append(_workFile.getInputFile().toString())
+ .append(" to ").append(_localDir)
+ .toString();
+ } //________________________________
+
+} //____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/FtpUploader.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/FtpUploader.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/FtpUploader.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,115 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.actions;
+
+import java.io.File;
+import java.io.Serializable;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.listeners.old.DirectoryPoller;
+import org.jboss.soa.esb.listeners.old.GpListener;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.util.FtpClientUtil;
+
+public class FtpUploader extends AbstractFileAction
+{
+ ConfigTree _parms;
+ FtpClientUtil _ftpClient;
+ String _remoteDir;
+ DirectoryPoller.WorkingFile _workFile;
+ Logger _logger = Logger.getLogger(this.getClass());
+
+ /**
+ * Public constructor.
+ * @param actionName String - Action name.
+ * @param properties List<KeyValuePair> - Action Properties.
+ * @throws ConfigurationException Action not properly configured.
+ */
+ public FtpUploader(String actionName, List<KeyValuePair> properties)
+ { _parms = new ConfigTree("fromProps");
+ for (KeyValuePair oCurr : properties)
+ _parms.setAttribute(oCurr.getKey(),oCurr.getValue());
+ } //________________________________
+
+ @Override
+ public Object process(File obj) throws ActionProcessingException
+ {
+ try { _workFile = (DirectoryPoller.WorkingFile)obj; }
+ catch(ClassCastException e)
+ {
+ throw new ActionProcessingException
+ ("Argument must be an instance of "+ _workFile.getClass().getName(),e);
+ }
+
+ try
+ {
+ System.out.println("FTP uploading "+obj);
+ _ftpClient = new FtpClientUtil(_parms,true);
+ _remoteDir = _parms.getAttribute(FtpClientUtil.PARMS_REMOTE_DIR);
+ _ftpClient.uploadFile(_workFile,_workFile.getInputFile().getName());
+
+ if (_workFile.isPostDelete())
+ _workFile.delete();
+ else
+ _workFile.renameToOutputFile();
+
+ GpListener.notifyOK(_parms,getOkNotification(null));
+ return _workFile;
+ }
+ catch (Exception e)
+ {
+ GpListener.notifyError(_parms,e,getErrorNotification(null));
+ _workFile.renameToError();
+ throw new ActionProcessingException(e);
+ }
+ finally
+ {
+ if (null!=_ftpClient)
+ _ftpClient.quit();
+ _ftpClient = null;
+ }
+ } //________________________________
+
+ public Serializable getOkNotification(Message message)
+ {
+ return new StringBuilder()
+ .append(_workFile.getInputFile().toString())
+ .append("successfully uploaded to ").append(_remoteDir)
+ .append(" on ").append(_parms.getAttribute(FtpClientUtil.PARMS_FTP_SERVER))
+ .toString();
+ } //________________________________
+
+ public Serializable getErrorNotification(Message message)
+ {
+ return new StringBuilder()
+ .append("Failed to upload ").append(_workFile.getInputFile().toString())
+ .append(" to ").append(_remoteDir)
+ .append(" on ").append(_parms.getAttribute(FtpClientUtil.PARMS_FTP_SERVER))
+ .toString();
+ } //________________________________
+
+} //____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ByteArrayToString.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ByteArrayToString.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ByteArrayToString.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,96 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.converters;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.List;
+
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * Byte Array to String processor.
+ * <p/>
+ * Sample Action Configuration:
+ * <pre>
+ * <Action name="Bytes-To-UTF-8-String" processor="ByteArrayToString">
+ * <property name="encoding" value="UTF-8" /> <!-- Default of "UTF-8". -->
+ * </Action>
+ * </pre>
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class ByteArrayToString implements ActionProcessor {
+
+ private String encoding;
+
+ /**
+ * Public constructor.
+ * @param actionName Processing action name.
+ * @param properties Action properties.
+ */
+ public ByteArrayToString(String actionName, List<KeyValuePair> properties) {
+ encoding = KeyValuePair.getValue("encoding", properties, "UTF-8");
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
+ */
+ public Message process(Message message) throws ActionProcessingException {
+ byte[] bytes;
+
+ try {
+ bytes = (byte[])ActionUtils.getTaskObject(message);
+ } catch(ClassCastException e) {
+ throw new ActionProcessingException("Message must be an array of bytes. Is " + message.getClass().getName());
+ }
+
+ try {
+ ActionUtils.setTaskObject(message,new String(bytes, encoding));
+ return message;
+ } catch (UnsupportedEncodingException e) {
+ throw new ActionProcessingException("Unable to decode byte[] to String. Unsupported character encoding configuration: " + encoding, e);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(Message)
+ */
+ public Serializable getOkNotification(Message message) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(Message)
+ */
+ public Serializable getErrorNotification(Message message) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/FileToByteArray.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/FileToByteArray.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/FileToByteArray.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,97 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.converters;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.Serializable;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.AbstractFileAction;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * File data to byte array reader {@link org.jboss.soa.esb.actions.ActionProcessor}.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class FileToByteArray extends AbstractFileAction {
+
+ /**
+ * Logger.
+ */
+ private static Logger logger = Logger.getLogger(FileToByteArray.class);
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.AbstractFileAction#process(java.io.File)
+ */
+ @Override
+ protected Object process(File file) throws ActionProcessingException {
+ ByteArrayOutputStream outputBuffer = new ByteArrayOutputStream();
+ FileInputStream fileInputStream = null;
+
+ try {
+ fileInputStream = new FileInputStream(file);
+ } catch (FileNotFoundException e) {
+ throw new ActionProcessingException("IOException reading file contents. File not found.", e);
+ }
+
+ try {
+ byte[] readBuffer = new byte[512];
+ int readCount = 0;
+
+ while((readCount = fileInputStream.read(readBuffer)) != -1) {
+ outputBuffer.write(readBuffer, 0, readCount);
+ }
+ } catch (IOException e) {
+ throw new ActionProcessingException("IOException reading file contents.", e);
+ } finally {
+ try {
+ fileInputStream.close();
+ } catch (IOException e) {
+ logger.warn("Error closing input file.", e);
+ }
+ }
+
+ return outputBuffer.toByteArray();
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
+ */
+ public Serializable getOkNotification(Message message) {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
+ */
+ public Serializable getErrorNotification(Message message) {
+ return null;
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToCSVString.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToCSVString.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToCSVString.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,158 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.converters;
+
+import java.io.Serializable;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * Object to CSV String processor.
+ * <p/>
+ * Returns a CSV string based on the supplied message object and a comma-separated "bean-properties"
+ * action property that specifies a list of bean property names.
+ * <p/>
+ * Sample Action Configuration:
+ * <pre>
+ * <Action name="Customer-To-CSV" processor="ObjectToCSVString">
+ * <property name="bean-properties" value="name,address1,address2,phone" />
+ * <property name="fail-on-missing-property" value="true" /> <!-- (Optional) Default of false. -->
+ * </Action>
+ * </pre>
+ * <p/>
+ * TODO: Add support for arrays ala producing the contents of a CSV file.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class ObjectToCSVString implements ActionProcessor {
+
+ public static final String BEAN_PROPERTIES_PROP = "bean-properties";
+ public static final String FAIL_ON_MISSING_PROPERTY = "fail-on-missing-property";
+ private static Logger logger = Logger.getLogger(ObjectToCSVString.class);
+ private List<String> propertyMethodNames = new ArrayList<String>();
+ private boolean failOnMissingProperty;
+
+ /**
+ * Public constructor.
+ * @param actionName Action name.
+ * @param properties Action Properties.
+ * @throws ConfigurationException Action not properly configured.
+ */
+ public ObjectToCSVString(String actionName, List<KeyValuePair> properties) throws ConfigurationException {
+ String objectProps = KeyValuePair.getValue(BEAN_PROPERTIES_PROP, properties);
+
+ if(objectProps == null || objectProps.trim().equals("")) {
+ throw new ConfigurationException("Action [" + actionName + "] must specify a comma seperated object bean property list via a '" + BEAN_PROPERTIES_PROP + "' property setting.");
+ }
+
+ // Construct a bean method name list from the configured property name list...
+ String[] propertyNames = objectProps.split(",");
+ StringBuffer methodNameConstructionBuffer = new StringBuffer();
+ for(String propertyName : propertyNames) {
+ propertyName = propertyName.trim();
+
+ if(propertyName.equals("")) {
+ continue;
+ }
+
+ methodNameConstructionBuffer.setLength(0);
+ methodNameConstructionBuffer.append("get");
+ methodNameConstructionBuffer.append(propertyName);
+
+ // Capitalise the 4th char to make it a proper bean method....
+ methodNameConstructionBuffer.setCharAt(3, Character.toUpperCase(methodNameConstructionBuffer.charAt(3)));
+
+ // Add to the set...
+ propertyMethodNames.add(methodNameConstructionBuffer.toString());
+ }
+
+ failOnMissingProperty = KeyValuePair.getBooleanValue(FAIL_ON_MISSING_PROPERTY, properties, false);
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
+ */
+ public Message process(Message message) throws ActionProcessingException {
+
+ Object oCurr = ActionUtils.getTaskObject(message);
+ Class oCurrClass = (null==oCurr) ? null : oCurr.getClass();
+ StringBuffer csv = new StringBuffer();
+ boolean hasAppendStarted = false; // Have we appended a value yet?
+
+ for(String methodName : propertyMethodNames) {
+ Method method;
+
+ if(hasAppendStarted) {
+ csv.append(",");
+ }
+ hasAppendStarted = true;
+
+ // Get the bean method....
+ try {
+ method = oCurrClass.getMethod(methodName, new Class[] {});
+ } catch (Exception e) {
+ String exceptionMessage = "Bean method: " + methodName + " not found/accessible on message object " + oCurr.getClass().getName();
+ logger.error(exceptionMessage, e);
+ if(failOnMissingProperty) {
+ throw new ActionProcessingException(exceptionMessage, e);
+ }
+ csv.append("<no-such-property>");
+ continue;
+ }
+
+ // Call the bean method and add the toString of the return to the CSV string....
+ try {
+ Object value = method.invoke(oCurr, new Object[] {});
+ // TODO: Some sort of encoding is required here to make a proper CSV string...
+ csv.append(value != null?value.toString():"");
+ } catch (Exception e) {
+ logger.error("Exception calling bean method: " + methodName, e);
+ }
+ }
+ ActionUtils.setTaskObject(message,csv.toString());
+ return message;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
+ */
+ public Serializable getOkNotification(Message message) {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
+ */
+ public Serializable getErrorNotification(Message message) {
+ return null;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToXStream.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToXStream.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToXStream.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,107 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.converters;
+
+import java.io.Serializable;
+import java.util.List;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+
+import com.thoughtworks.xstream.XStream;
+
+/**
+ * Object to XML processor.
+ * <p/>
+ * Uses the <a href="http://xstream.codehaus.org/">XStream</a> processor to generate an XML message String from the supplied object.
+ * <p/>
+ * Sample Action Configuration:
+ * <pre>
+ * <Action name="Customer-To-XML" processor="ObjectToXStream">
+ * <property name="class-alias" value="Customer" /> <!-- Class alias used in call to <a href="http://xstream.codehaus.org/javadoc/com/thoughtworks/xstream/XStream.html">XStream.alias(String, Class)</a> prior to serialisation. -->
+ * <property name="exclude-package" value="false" /> <!-- Default "true". Not applicable if a "class-alias" is specified. -->
+ * </Action>
+ * </pre>
+ * <p/>
+ * The XML root element is either set from the "class-alias" property or the classes full name. In the later case, the class package is
+ * excluded unless "exclude-package" is set to "false"/"no".
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class ObjectToXStream implements ActionProcessor {
+
+ private String classAlias;
+ private boolean excludePackage;
+
+ /**
+ * Public constructor.
+ * @param actionName Action name.
+ * @param properties Action Properties.
+ * @throws ConfigurationException Action not properly configured.
+ */
+ public ObjectToXStream(String actionName, List<KeyValuePair> properties) {
+ classAlias = KeyValuePair.getValue("class-alias", properties);
+ excludePackage = KeyValuePair.getBooleanValue("exclude-package", properties, true);
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
+ */
+ public Message process(Message message) throws ActionProcessingException {
+
+ Object object = ActionUtils.getTaskObject(message);
+ XStream xstream = new XStream();
+
+ if(classAlias == null) {
+ if(excludePackage) {
+ xstream.alias(object.getClass().getSimpleName(), object.getClass());
+ } else {
+ xstream.alias(object.getClass().getName(), object.getClass());
+ }
+ } else {
+ xstream.alias(classAlias, object.getClass());
+ }
+
+ ActionUtils.setTaskObject(message,xstream.toXML(object));
+ return message;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
+ */
+ public Serializable getOkNotification(Message message) {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
+ */
+ public Serializable getErrorNotification(Message message) {
+ return null;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/SmooksTransformer.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/SmooksTransformer.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/converters/SmooksTransformer.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,232 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.converters;
+
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.services.transform.TransformationException;
+import org.jboss.soa.esb.services.transform.TransformationService;
+import org.milyn.SmooksStandalone;
+
+/**
+ * Smooks Transformer.
+ * <p/>
+ * This processor hooks the <a href="http://milyn.codehaus.org/Smooks">Milyn Smooks</a>
+ * XML Transformation/Processing Engine into a message processing pipeline to support
+ * XML message transformations.
+ * <p/>
+ * Sample Action Configuration:
+ * <pre>
+ * <Action name="Order_Xml-FROM_Acme-TO_AcmePartner" processor="SmooksTransformer">
+ * <property name="message-type" value="Order" /> <!-- REQUIRED. -->
+ * <property name="message-from" value="Acme" /> <!-- REQUIRED. -->
+ * <property name="message-to" value="AcmePartner" /> <!-- REQUIRED. -->
+ * <property name="message-encoding" value="UTF-8" /> <!-- OPTIONAL. Default "UTF-8" -->
+ * </Action>
+ * </pre>
+ * Eventually, all the message properties defined on the action will come from the message metadata. This will
+ * happen once we have a proper "normalized" message format with message headers etc.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+
+public class SmooksTransformer implements TransformationService, ActionProcessor {
+
+ private static Logger logger = Logger.getLogger(SmooksTransformer.class);
+ private static final String SMOOKS_CDR_LST = "smooks-cdr.lst";
+ private static SmooksStandalone smooks;
+ private String messageType;
+ private String messageFrom;
+ private String messageTo;
+ private String messageEnc;
+ private String messageUseragent;
+ private String cpPrefix;
+
+ /**
+ * Public constructor.
+ * @param actionName Action name.
+ * @param properties Action Properties.
+ * @throws ConfigurationException
+ * @throws ConfigurationException Action not properly configured.
+ */
+ public SmooksTransformer(String name, List<KeyValuePair> properties) throws ConfigurationException {
+ messageType = KeyValuePair.getValue("message-type", properties);
+ if(messageType == null || messageType.equals("")) {
+ throw new ConfigurationException("Action configuration 'message-type' not specified.");
+ }
+ messageFrom = KeyValuePair.getValue("message-from", properties);
+ if(messageFrom == null || messageFrom.equals("")) {
+ throw new ConfigurationException("Action configuration 'message-from' not specified.");
+ }
+ messageTo = KeyValuePair.getValue("message-to", properties);
+ if(messageTo == null || messageTo.equals("")) {
+ throw new ConfigurationException("Action configuration 'message-to' not specified.");
+ }
+ messageEnc = KeyValuePair.getValue("message-encoding", properties, "UTF-8");
+ // Test the configured encoding
+ try {
+ "astring".getBytes(messageEnc);
+ } catch (UnsupportedEncodingException e) {
+ throw new ConfigurationException("Invalid character encoding [" + messageEnc + "] on action configuration [" + name + "].", e);
+ }
+
+ // The "cpPrefix" property is "private" and only here in order to make unit testing easier.
+ // It allows us to force a "bad" config location for the smooks-cdr.lst file....
+ cpPrefix = KeyValuePair.getValue("smooks-cdr.list-classpath-prefix", properties, "/");
+ if(!cpPrefix.startsWith("/")) {
+ cpPrefix = "/" + cpPrefix;
+ }
+
+ initSmooks();
+
+ // In the context of the ESB, the Smooks useragent will be defined by the message "type", where it's
+ // coming "from" and where it's going "to"...
+ messageUseragent = messageType + "-" + messageFrom + "-" + messageTo;
+ // Register the message metadata as "profiles" within the Smooks context. These profiles ("type",
+ // "from" and "to") should expand out inside Smooks based on subprofiles that are
+ // statically configured against these profiles in the device-profiles.xml file. This is a bit
+ // of a hack but is fine for now just to get the ball rolling...
+ smooks.registerUseragent(messageUseragent, new String[] {"type:" + messageType, "from:" + messageFrom, "to:" + messageTo});
+ // TODO: Recurcively expand out the profiles supplied here using smooks.getContext().getProfileStore(). Do this inside SmooksStandalone
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.services.transform.TransformationService#transform(org.jboss.soa.esb.message.Message)
+ */
+ public Message transform(Message message) throws TransformationException {
+ try {
+ return process(message);
+ } catch (ActionProcessingException e) {
+ throw new TransformationException(e);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
+ */
+ public Message process(Message message) throws ActionProcessingException {
+ Object oCurr = ActionUtils.getTaskObject(message);
+ try {
+ if(oCurr instanceof String) {
+ byte[] messageBytes = null;
+ String transformedMessage;
+
+ try {
+ messageBytes = ((String)oCurr).getBytes(messageEnc);
+ } catch (UnsupportedEncodingException e) {
+ // Can't happen - encoding was already tested in the constructor.
+ }
+
+ // TODO: Cater for more message input types e.g. InputStream, DOM Document...
+ // TODO: Cater for more message output types e.g. InputStream, DOM Document...
+
+ long start = System.currentTimeMillis();
+ transformedMessage = smooks.filterAndSerialize(messageUseragent, new ByteArrayInputStream(messageBytes));
+ if(logger.isDebugEnabled()) {
+ long timeTaken = System.currentTimeMillis() - start;
+ logger.debug("Transformed message for useragent [" + messageUseragent + "]. Time taken: "
+ + timeTaken + ". Message in:\n[" + oCurr.toString()+ "]. \nMessage out:\n[" + transformedMessage + "].");
+ }
+ ActionUtils.setTaskObject(message,transformedMessage);
+ } else {
+ String sClass = (null==oCurr) ? "<null>" : oCurr.getClass().getName();
+ logger.warn("String message types only supported. Input message was ["
+ + sClass + "]. Returning message untransformed.");
+ }
+ } catch(Throwable thrown) {
+ throw new ActionProcessingException("Message transformation failed.", thrown);
+ }
+ return message;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
+ */
+ public Serializable getOkNotification(Message message) {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
+ */
+ public Serializable getErrorNotification(Message message) {
+ return null;
+ }
+
+ /**
+ * Initialise the static SmooksStandalone instance.
+ * <p/>
+ * We may need to write a Smooks Container implementation specifically for JBossESB's needs. SmooksStandalone is
+ * fine for a start though.
+ * @throws ConfigurationException Failed to load Smooks configurations.
+ */
+ protected void initSmooks() throws ConfigurationException {
+ synchronized (SmooksTransformer.class) {
+ if(smooks == null) {
+ InputStream configListStream = getClass().getResourceAsStream(cpPrefix + SMOOKS_CDR_LST);
+
+ if(configListStream == null) {
+ throw new ConfigurationException("Failed to locate Smooks configuration list file [" + SMOOKS_CDR_LST + "]. The folder containing this file must be located at " + cpPrefix + " relative to the root of the classpath.");
+ }
+
+ // TODO: There's a potential issue here if two SmooksTransformer action configs specify and require
+ // different encodings. This is because they're all sharing the same static SmooksStandalone instance!!
+ // This should eventually be solveable by creating a proper Smooks container impl for the ESB.
+ smooks = new SmooksStandalone(messageEnc);
+
+ try {
+ BufferedReader configReader = new BufferedReader(new InputStreamReader(configListStream));
+ smooks.getContext().getStore().load(configReader);
+ } catch (Exception e) {
+ smooks = null;
+ throw new ConfigurationException("Smooks configuration load failed.", e);
+ }
+ }
+ }
+ }
+
+ /**
+ * Reset the transformer.
+ * <p/>
+ * Clears the internal static smooks instance.
+ */
+ public static void reset() {
+ synchronized (SmooksTransformer.class) {
+ smooks = null;
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/routing/FileCopier.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/routing/FileCopier.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/routing/FileCopier.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,150 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.routing;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.Serializable;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.AbstractFileAction;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.listeners.old.DirectoryPoller.WorkingFile;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * File copy action.
+ * <p/>
+ * Copy the file specified by the "fileParams" arg in {@link #process(File)} to the location specified by the
+ * action config properties.
+ * <p/>
+ * Sample Action Configuration:
+ * <pre>
+ * <Action name="Copy-To-XXX" processor="FileCopier">
+ * <property name="copyToDirURI" value="file:///..." />
+ * <property name="copyToSuffix" value=".fileCopierOutput" />
+ * </Action>
+ * </pre>
+ *
+ * @author Esteban
+ */
+public class FileCopier extends AbstractFileAction {
+
+ private static Logger logger = Logger.getLogger(FileCopier.class);
+
+ private static final String TMP_SUFFIX = ".notReady";
+
+ private static final String PARMS_OUTDIR = "copyToDirURI";
+
+ private static final String PARMS_OUTSFX = "copyToSuffix";
+
+ private File outputDir;
+ private String copyToSuffix;
+
+ /**
+ * Public constructor.
+ * @param actionName Action name.
+ * @param properties Action Properties.
+ * @throws ConfigurationException Action not properly configured.
+ */
+ public FileCopier(String actionName, List<KeyValuePair> properties) throws URISyntaxException {
+ String outputDirParam = KeyValuePair.getValue(PARMS_OUTDIR, properties);
+
+ try {
+ outputDir = new File(new URI(outputDirParam));
+ } catch(Exception e) {
+ outputDir = new File(outputDirParam);
+ }
+ copyToSuffix = KeyValuePair.getValue(PARMS_OUTSFX, properties, ".copy");
+ } // __________________________________
+
+ public Object process(File file) throws ActionProcessingException {
+ WorkingFile workingFile;
+
+ try {
+ workingFile = (WorkingFile)file;
+ } catch(ClassCastException e) {
+ throw new ActionProcessingException("File must be an instance of " + WorkingFile.class.getName());
+ }
+
+ File outputFile = new File(outputDir, workingFile.getInputFile().getName() + copyToSuffix);
+
+ try {
+ File tempFile = File.createTempFile(workingFile.getName(), TMP_SUFFIX, outputDir);
+ FileInputStream inputFileStream = new FileInputStream(workingFile);
+ FileOutputStream outputFileStream;
+
+ outputFileStream = new FileOutputStream(tempFile);
+
+ // Perform Copy
+ byte[] ba = new byte[1024];
+ while (true) {
+ int iQ = inputFileStream.read(ba);
+
+ if (iQ < 0) {
+ break;
+ }
+
+ outputFileStream.write(ba, 0, iQ);
+ }
+ // Close
+ inputFileStream.close();
+ outputFileStream.close();
+
+ // Rename
+ outputFile.delete();
+ tempFile.renameTo(outputFile);
+
+ if(logger.isDebugEnabled()) {
+ logger.debug("Successfully copied file " + workingFile.getAbsolutePath() + " to file " + outputFile.getAbsolutePath());
+ }
+ } catch(IOException e) {
+ throw new ActionProcessingException("IOException copying " + workingFile.getAbsolutePath() + " to " + outputFile.getAbsolutePath(), e);
+ }
+
+ return workingFile;
+ } // __________________________________
+
+ public Serializable getOkNotification(Message message) {
+ Object currentObject = ActionUtils.getTaskObject(message);
+
+ return "File " + ((WorkingFile)currentObject).getInputFile().getAbsolutePath()
+ + " successfully copied to all destination";
+ }
+
+ public Serializable getErrorNotification(Message message) {
+ Object currentObject = ActionUtils.getTaskObject(message);
+
+ return "File " + ((WorkingFile)currentObject).getInputFile().getAbsolutePath()
+ + " to configured destination";
+ }
+
+} // ____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/routing/JMSRouter.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/routing/JMSRouter.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/routing/JMSRouter.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,202 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.routing;
+
+import java.io.Serializable;
+import java.util.List;
+
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageProducer;
+import javax.jms.ObjectMessage;
+import javax.jms.Queue;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueSession;
+import javax.jms.TextMessage;
+import javax.naming.Context;
+import javax.naming.NamingException;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.helpers.AppServerContext;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+
+/**
+ * JSM Routing Action Processor.
+ * <p/>
+ * Sample Action Configuration:
+ * <pre>
+ * <Action name="Route-To-Invoicing" processor="JMSRouter">
+ * <property name="jndiName" value="queue/A" />
+ * <property name="message-prop:jms-selector" value="incoming-invoice" />
+ * </Action>
+ * </pre>
+ * Note how properties to be set on the message are prefixed with "message-prop:".
+ * <p/>
+ * TODO: Add support for JMS Topic destinations.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class JMSRouter implements ActionProcessor {
+ /**
+ * Logger.
+ */
+ private static Logger logger = Logger.getLogger(JMSRouter.class);
+ /**
+ * Routing properties.
+ */
+ private List<KeyValuePair> properties;
+ /**
+ * JMS Queue setup.
+ */
+ private JMSSendQueueSetup queueSetup;
+
+ /**
+ * Public constructor.
+ * @param actionName Action name.
+ * @param properties Action properties.
+ * @throws ConfigurationException Queue name not configured.
+ * @throws JMSException Unable to configure JMS destination.
+ * @throws NamingException Unable to configure JMS destination.
+ */
+ public JMSRouter(String actionName, List<KeyValuePair> properties) throws ConfigurationException, NamingException, JMSException {
+ this.properties = properties;
+
+ String queueName = KeyValuePair.getValue("jndiName", properties);
+ if(queueName == null) {
+ throw new ConfigurationException("JMSRouter must specify a 'jndiName' property.");
+ }
+ queueSetup = new JMSSendQueueSetup(queueName);
+ this.properties = properties;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
+ */
+ public org.jboss.soa.esb.message.Message
+ process(org.jboss.soa.esb.message.Message message) throws ActionProcessingException {
+
+ Object oCurr = ActionUtils.getTaskObject(message);
+ if(!(oCurr instanceof Serializable)) {
+ throw new ActionProcessingException("Cannot send Object [" + oCurr.getClass().getName() + "] to destination [" + queueSetup.queueName + "]. Object must be serializable.");
+ }
+
+ try {
+ // Send a Text or Object message to the queue...
+ if (oCurr instanceof String) {
+ TextMessage oMsg = queueSetup.jmsSession.createTextMessage();
+
+ if(logger.isDebugEnabled()) {
+ logger.debug("Sending Text message: [" + oCurr + "] to destination [" + queueSetup.queueName + "].");
+ }
+ oMsg.setText((String)oCurr);
+ setStringProperties(oMsg);
+ queueSetup.jmsProducer.send(oMsg);
+ } else {
+ ObjectMessage oMsg = queueSetup.jmsSession.createObjectMessage();
+
+ if(logger.isDebugEnabled()) {
+ logger.debug("Sending Object message: [" + oCurr + "] to destination [" + queueSetup.queueName + "].");
+ }
+ oMsg.setObject((Serializable) oCurr);
+ setStringProperties(oMsg);
+ queueSetup.jmsProducer.send(oMsg);
+ }
+ return message;
+ } catch(Exception e) {
+ String errorMessage = "Exception while sending message [" + oCurr + "] to destination [" + queueSetup.queueName + "].";
+ logger.error(errorMessage, e);
+ throw new ActionProcessingException(errorMessage, e);
+ }
+ }
+
+ private void setStringProperties(Message msg) throws JMSException {
+ String messagePropPrefix = "message-prop:";
+
+ for(KeyValuePair property : properties) {
+ String key = property.getKey();
+
+ if(key.startsWith(messagePropPrefix) && key.length() > messagePropPrefix.length()) {
+ msg.setStringProperty(key.substring(messagePropPrefix.length()), property.getValue());
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
+ */
+ public Serializable getOkNotification(org.jboss.soa.esb.message.Message message) {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
+ */
+ public Serializable getErrorNotification(org.jboss.soa.esb.message.Message message) {
+ return null;
+ }
+
+ @Override
+ protected void finalize() throws Throwable {
+ queueSetup.close();
+ super.finalize();
+ }
+
+ private static class JMSSendQueueSetup {
+ QueueSession jmsSession;
+ Queue jmsQueue;
+ MessageProducer jmsProducer;
+ String queueName;
+
+ // TODO: Modify to support topic destinations too
+
+ private JMSSendQueueSetup(String queueName) throws NamingException, JMSException {
+ Context m_oCtx = AppServerContext.getServerContext(
+ Configuration.getJndiServerType(),
+ Configuration.getJndiServerURL());
+ QueueConnectionFactory qcf = (QueueConnectionFactory) m_oCtx.lookup("ConnectionFactory");
+ QueueConnection oQconn = qcf.createQueueConnection();
+
+ this.queueName = queueName;
+
+ jmsSession = oQconn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
+ jmsQueue = (Queue) m_oCtx.lookup(queueName);
+ jmsProducer = jmsSession.createSender(jmsQueue);
+ }
+
+ private void close() {
+ try {
+ jmsProducer.close();
+ jmsSession.close();
+ } catch (Exception e) {
+ logger.error("Unable to close JMS Queue Setup.", e);
+ }
+ }
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/routing/ObjectToFileWriter.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/routing/ObjectToFileWriter.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/routing/ObjectToFileWriter.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,177 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.routing;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Serializable;
+import java.net.URI;
+import java.util.List;
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * Object to file writing processor.
+ * <p/>
+ * Writes an Object to a file based on the "file" property specified by the action configuration. This "file"
+ * property can specify a file or directory. If the file is a directory, the class generates a file name based
+ * on the return from a call to {@link java.util.UUID#randomUUID()} and the file extension value specified in
+ * the "ext" property (default of "obj").
+ * <p/>
+ * If the message is a byte array it's writen to the file as is, otherwise the toString method is called on the
+ * message object and the resulting String bytes are writen to the file based on the "encoding" specified in the action
+ * configuration (see below).
+ * <p/>
+ * Sample Action Configuration:
+ * <pre>
+ * <Action name="Write-To-X-File" processor="ObjectToFileWriter">
+ * <property name="file" value="file:///..." /> <!-- File/Directory name. Supports URI or non-URI based names. -->
+ * <property name="append" value="true/false" /> <!-- Only relevant if the file is not a directory. Default of "false". -->
+ * <property name="ext" value="dat" /> <!-- Only relevant if the file is a directory. Default of "obj". -->
+ * <property name="encoding" value="UTF-8" /> <!-- Default of "UTF-8". -->
+ * </Action>
+ * </pre>
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class ObjectToFileWriter implements ActionProcessor {
+
+ public static final String FILE_NAME = "file";
+ public static final String FILE_APPEND = "append";
+ public static final String FILE_EXT = "ext";
+ public static final String FILE_ENC = "encoding";
+ private static Logger logger = Logger.getLogger(ObjectToFileWriter.class);
+
+ private String actionName;
+ private File file;
+ private boolean append;
+ private String ext;
+ private String encoding;
+
+ /**
+ * Public constructor.
+ * @param actionName Action name.
+ * @param properties Action Properties.
+ * @throws ConfigurationException Action not properly configured.
+ */
+ public ObjectToFileWriter(String actionName, List<KeyValuePair> properties) throws ConfigurationException {
+ String fileName = KeyValuePair.getValue(FILE_NAME, properties);
+
+ this.actionName = actionName;
+
+ if(fileName == null || fileName.trim().equals("")) {
+ throw new ConfigurationException("Action [" + actionName + "] must specify a '" + FILE_NAME + "' property specifying the name of the output file.");
+ }
+ try {
+ // try it as a URI first...
+ file = new File(new URI(fileName));
+ } catch (Exception e) {
+ // ok, just interpret it as being relative to the cwd...
+ file = new File(fileName);
+ }
+ append = KeyValuePair.getBooleanValue(FILE_APPEND, properties, false);
+ ext = KeyValuePair.getValue(FILE_EXT, properties, "obj");
+ encoding = KeyValuePair.getValue(FILE_ENC, properties, "UTF-8");
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
+ */
+ public Message process(Message message) throws ActionProcessingException {
+ synchronized(file) {
+ File outputFile = getOutputFile();
+ FileOutputStream fileOutputStream = null;
+ FileWriter fileWriter = null;
+
+ try {
+ fileWriter = new FileWriter(outputFile, append);
+ fileOutputStream = new FileOutputStream(outputFile, append);
+ } catch (IOException e) {
+ throw new ActionProcessingException("Action " + actionName + " failed. Unable to open output file " + outputFile.getAbsolutePath());
+ }
+
+ Object oCurr = ActionUtils.getTaskObject(message);
+ try {
+ if(oCurr instanceof byte[]) {
+ fileOutputStream.write((byte[])oCurr);
+ } else {
+ fileOutputStream.write(oCurr.toString().getBytes(encoding));
+ }
+ fileOutputStream.flush();
+ } catch (IOException e) {
+ throw new ActionProcessingException("Action " + actionName + " failed. Unable to write to output file " + outputFile.getAbsolutePath(), e);
+ } finally {
+ try {
+ fileWriter.close();
+ } catch (IOException e) {
+ logger.warn("Exception on closing file " + file.getAbsolutePath(), e);
+ }
+ }
+ }
+ return message;
+ }
+
+ /**
+ * Get the output file.
+ * @return Output file.
+ */
+ private File getOutputFile() {
+ if(file.isDirectory()) {
+ UUID randomUUID = UUID.randomUUID();
+ File randomFile = new File(file, randomUUID.toString() + "." + ext);
+
+ if(randomFile.exists()) {
+ return getOutputFile();
+ }
+
+ return randomFile;
+ } else {
+ return file;
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
+ */
+ public Serializable getOkNotification(Message message) {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
+ */
+ public Serializable getErrorNotification(Message message) {
+ return null;
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockAction.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockAction.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockAction.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,75 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.templates;
+
+import java.io.Serializable;
+import java.text.SimpleDateFormat;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.message.Message;
+
+
+/**
+ * Use this class to tune your XML configurations <p/>Once your config works
+ * with this dummy class, you can switch to your own action class <p/>You will
+ * have to implement these three methods in your own action class
+ *
+ * @author Esteban
+ *
+ */
+public class MockAction implements ActionProcessor {
+ /**
+ * Class Logger.
+ */
+ private static Logger logger = Logger.getLogger(MockAction.class);
+
+ public Message process(Message message) {
+ Object oCurr = ActionUtils.getTaskObject(message);
+ if (null==oCurr)
+ oCurr = "null";
+ logger.info("process was called with <<" + oCurr.toString() + ">>");
+ return message;
+ } // ________________________________
+
+ private SimpleDateFormat s_oTS = new SimpleDateFormat(
+ "yyyy/MM/dd hh:mm:ss.SSS");
+
+ private String getStamp() {
+ return s_oTS.format(new java.util.Date(System.currentTimeMillis()));
+ }
+
+ public Serializable getOkNotification(Message message) {
+ Object oCurr = ActionUtils.getTaskObject(message);
+ return getStamp() + " Notif OK - <"
+ + ((null == oCurr) ? "null" : oCurr.toString()) + ">";
+ } // ________________________________
+
+ public Serializable getErrorNotification(Message message) {
+ Object oCurr = ActionUtils.getTaskObject(message);
+ return getStamp() + " Notif ERROR - <"
+ + ((null == oCurr) ? "null" : message.toString()) + ">";
+ } // ________________________________
+
+} // ____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockComposer.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockComposer.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockComposer.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,62 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.templates;
+
+import java.text.SimpleDateFormat;
+
+import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.message.format.serialized.MessageImpl;
+import org.jboss.soa.esb.message.Message;
+
+
+/**
+ * Use this class to tune your XML configurations <p/>Once your config works
+ * with this dummy class, you can switch to your own action class
+ *
+ * @author Esteban
+ *
+ */
+public class MockComposer
+{
+ private static Logger _logger = Logger.getLogger(MockComposer.class);
+
+ public Message composeEmptyMessage(Object obj)
+ {
+ _logger.info(getLogMessage("process was called with <<" + obj.toString() + ">>"));
+ MessageImpl message = new MessageImpl();
+ return message;
+ } // ________________________________
+
+ private SimpleDateFormat s_oTS = new SimpleDateFormat(
+ "yyyy/MM/dd hh:mm:ss.SSS");
+
+ private String getLogMessage(String text)
+ {
+ return new StringBuilder()
+ .append(s_oTS.format(new java.util.Date(System.currentTimeMillis())))
+ .append(" ").append(text)
+ .toString()
+ ;
+ }
+
+} // ____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockFileAction.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockFileAction.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockFileAction.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,74 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.templates;
+
+import java.io.File;
+import java.io.Serializable;
+import java.text.SimpleDateFormat;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.AbstractFileAction;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * Use this class to tune your XML configurations
+ * <p/>Once your config works with this dummy class, you can
+ * switch to your own action class
+ * <p/>You will have to implement these three methods
+ * in your own action class
+ *
+ * @author Esteban
+ *
+ */
+public class MockFileAction extends AbstractFileAction
+{
+ private static Logger logger = Logger.getLogger(MockFileAction.class);
+
+ @Override
+ public Object process(File file) throws ActionProcessingException
+ {
+ logger.info("processObject was called with <<" + file.getAbsolutePath() + ">>");
+ return file;
+ } //________________________________
+
+ private SimpleDateFormat s_oTS = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss.SSS");
+ private String getStamp()
+ { return s_oTS.format(new java.util.Date(System.currentTimeMillis())); }
+
+ public Serializable getOkNotification(Message message)
+ {
+ return getStamp()+" Notif OK - <"
+ +ActionUtils.getTaskObject(message)
+ +">";
+ } //________________________________
+
+ public Serializable getErrorNotification(Message message)
+ {
+ return getStamp()+" Notif ERROR - <"
+ +ActionUtils.getTaskObject(message)
+ +">";
+ } //________________________________
+
+} //____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockMessageAction.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockMessageAction.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockMessageAction.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,137 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.templates;
+
+import java.text.*;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.helpers.*;
+import org.jboss.soa.esb.notification.*;
+
+
+/**
+ * Use this class to tune your XML configurations <p/>Once your config works
+ * with this dummy class, you can switch to your own action class <p/>You will
+ * have to implement these three methods in your own action class
+ *
+ * @author Esteban
+ *
+ */
+public class MockMessageAction
+{
+ protected Message _message;
+ protected ConfigTree _config;
+
+ public MockMessageAction(ConfigTree config) { _config = config; }
+ public Message noOperation(Message message) { return message; }
+
+ public Message process(Message message)
+ {
+ _message = message;
+ Object oCurr = ActionUtils.getTaskObject(message);
+ if (null==oCurr)
+ oCurr = "null";
+ _logger.info(getStamp()+" process was called with <<" + oCurr.toString() + ">>");
+ return message;
+ } // ________________________________
+
+
+ public Message process222(Message message)
+ {
+ _message = message;
+ Object oCurr = ActionUtils.getTaskObject(message);
+ if (null==oCurr)
+ oCurr = "null";
+ _logger.info(getStamp()+" process222 was called with <<" + oCurr.toString() + ">>");
+ return message;
+ } // ________________________________
+
+ private static final SimpleDateFormat s_oTS
+ = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss.SSS");
+
+ private String getStamp()
+ { return s_oTS.format(new java.util.Date(System.currentTimeMillis())); }
+
+ private static Logger _logger = Logger.getLogger(MockMessageAction.class);
+
+ public void myOkMethod1()
+ {
+ String sMsg = new StringBuilder(getStamp())
+ .append(" MockAction.myOkMethod1 was called ")
+ .append(_message)
+ .toString();
+ _logger.info(sMsg);
+ @SuppressWarnings("unused")
+ NotificationList nl = ActionUtils.getNotifyList(_config,"ok");
+ // Here you can send notifications to everybody
+ }
+
+ public void myMethod2()
+ {
+ String sMsg = new StringBuilder(getStamp())
+ .append(" Method2 Method2 Method2 Method2 Method2 CALLED ")
+ .append(_message)
+ .toString();
+ _logger.info(sMsg);
+ @SuppressWarnings("unused")
+ NotificationList nl = ActionUtils.getNotifyList(_config,"ok");
+ // Here you can send notifications to everybody
+ }
+
+ public void endOfChainNotification()
+ {
+ String sMsg = new StringBuilder(getStamp())
+ .append(" End of action chain reached - Bye bye")
+ .toString();
+ _logger.info(sMsg);
+ @SuppressWarnings("unused")
+ NotificationList nl = ActionUtils.getNotifyList(_config,"ok");
+ // Here you can send notifications to everybody
+ }
+
+ public Message justThrow(Message message) throws Exception
+ {
+ throw new MockException("Mock exception thrown at "+getStamp());
+ } // ________________________________
+
+ @SuppressWarnings("serial")
+ private class MockException extends Exception
+ {
+ MockException(String str) { super(str); }
+ }
+
+ public void exceptionCallback1(Exception e)
+ {
+ String sMsg = new StringBuilder(getStamp())
+ .append(" MockExceptionTrower.exceptionCallback1 CALLED ")
+ .append(_message)
+ .toString();
+ _logger.fatal(sMsg,e);
+ @SuppressWarnings("unused")
+ NotificationList nl = ActionUtils.getNotifyList(_config,"err");
+ // Here you can send notifications to everybody
+ }
+
+} // ____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockSqlRowAction.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockSqlRowAction.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockSqlRowAction.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.templates;
+
+import java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
+import org.jboss.soa.esb.actions.AbstractSqlRowAction;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * Use this class to tune your XML configurations
+ * <p/>Once your config works with this dummy class, you can
+ * switch to your own action class
+ * <p/>You will have to implement these three methods
+ * in your own action class
+ *
+ * @author Esteban
+ *
+ */
+public class MockSqlRowAction extends AbstractSqlRowAction
+{
+
+ public static List<Map> params = new Vector<Map>();
+
+ public MockSqlRowAction(String actionName, List<KeyValuePair> properties) throws Exception {
+ super(actionName, properties);
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.AbstractSqlRowAction#processSQL()
+ */
+ @Override
+ protected Object process(Map resultSet) {
+ logger.info("processResultset was called with <<"
+ + resultSet.toString()+">>");
+ params.add(resultSet);
+
+ return resultSet;
+ }
+
+ private SimpleDateFormat s_oTS = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss.SSS");
+ private String getStamp()
+ { return s_oTS.format(new java.util.Date(System.currentTimeMillis())); }
+
+ public Serializable getOkNotification(Message message)
+ {
+ return getStamp()+" Notif OK - <"
+ +ActionUtils.getTaskObject(message)
+ +">";
+ } //________________________________
+
+ public Serializable getErrorNotification(Message message)
+ {
+ return getStamp()+" Notif ERROR - <"
+ +ActionUtils.getTaskObject(message)
+ +">";
+ } //________________________________
+} //____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/couriers/Courier.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/couriers/Courier.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/couriers/Courier.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.couriers;
+
+import org.jboss.soa.esb.message.Message;
+
+public interface Courier
+{
+/**
+ * try to deliver an ESB message
+ * @param message Message - the message to deliver
+ * @return boolean - the result of the delivery
+ * @throws CourierException - if problems were encountered
+ */
+ public abstract boolean deliver(Message message) throws CourierException;
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/couriers/CourierException.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/couriers/CourierException.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/couriers/CourierException.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.couriers;
+
+import org.jboss.soa.esb.BaseException;
+
+/**
+ * Dispatch Exception.
+ * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
+ * @since Version 4.0
+ */
+public class CourierException extends BaseException
+{
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Construct an exception instance.
+ * @param message Exception message.
+ */
+ public CourierException(String message) { super(message); }
+
+ /**
+ * Construct an exception instance.
+ * @param message Exception message.
+ * @param cause Exception cause.
+ */
+ public CourierException(String message, Throwable cause) { super(message, cause); }
+
+ /**
+ * Construct an exception instance.
+ * @param cause Exception cause.
+ */
+ public CourierException(Throwable cause) { super(cause); }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/couriers/CourierFactory.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/couriers/CourierFactory.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/couriers/CourierFactory.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,54 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.couriers;
+
+import java.net.URISyntaxException;
+
+import org.jboss.internal.soa.esb.couriers.JmsCourier;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.helpers.*;
+
+public class CourierFactory
+{
+ // private default constructor
+ private CourierFactory() {}
+
+ public static CourierFactory getInstance(Object obj)
+ {
+ return _instance;
+ }
+
+ public static Courier getCourier(EPR epr) throws CourierException
+ {
+ try
+ {
+ String address = epr.getAddr().getAddress();
+ if (address.startsWith(JMSEpr.JMS_PROTOCOL))
+ return new JmsCourier(epr);
+ }
+ catch (URISyntaxException e) { throw new CourierException(e); }
+ throw new CourierException("Unknown protocol");
+ }
+
+ private static final CourierFactory _instance = new CourierFactory();
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/ListenerTagNames.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/ListenerTagNames.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/ListenerTagNames.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,13 @@
+package org.jboss.soa.esb.listeners;
+
+public class ListenerTagNames
+{
+ public static final String SERVICE_NAME_TAG = "service-name";
+ public static final String TARGET_SERVICE_NAME_TAG = "target-service-name";
+
+ public static final String ACTION_ELEMENT_TAG = "action";
+ public static final String ACTION_CLASS_TAG = "class";
+ public static final String PROCESS_METHOD_TAG = "process";
+ public static final String NORMAL_COMPLETION_METHOD_TAG = "okMethod";
+ public static final String EXCEPTION_METHOD_TAG = "exceptionMethod";
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/GatewayListenerController.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/GatewayListenerController.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/GatewayListenerController.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,549 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.listeners.gateway;
+
+import java.io.IOException;
+import java.lang.reflect.Constructor;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.command.CommandQueue;
+import org.jboss.internal.soa.esb.command.CommandQueueException;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.ActionDefinitionFactory;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.util.EPRManager;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.common.ModulePropertyManager;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.parameters.ParamRepositoryException;
+import org.jboss.soa.esb.parameters.ParamRepositoryFactory;
+import org.jboss.soa.esb.util.Util;
+import org.xml.sax.SAXException;
+
+import com.arjuna.common.util.propertyservice.PropertyManager;
+
+public class GatewayListenerController implements Runnable
+{
+
+ public static void main(String[] args) throws Exception
+ {
+ GatewayListenerController oProc = new GatewayListenerController(args[0]);
+ oProc.run();
+ GatewayListenerController.State oS = oProc.getState();
+
+ if (null != oS.getException()) {
+ _logger.error("GatewayListener <" + args[0] + "> FAILED\n", oS
+ .getException());
+ }
+ System.exit(oS.getCompletionCode());
+ } // ________________________________
+
+ public static final String RELOAD_SECONDS_TAG = "parameterReloadSecs";
+ public static final String END_TIME_TAG = "endTime";
+
+ // Attribute name that denotes listener class to be instantiated in a child thread
+ // This attribute is not in the root node but in first level child ConfigTrees
+ public static final String GATEWAY_CLASS_TAG = "gatewayClass";
+
+ /**
+ * Obtain a shallow copy of needed atributes in this object's last loaded
+ * parameter tree <p/>The local bject is cloned so child threads can use it
+ * as they choose to without interfering with the environment
+ * <p />
+ * Listener processes controlled by this object should keep a reference to
+ * this object at construction time, and not call this method again unless
+ * they specifically need updated values. Parameter reload could have
+ * happened since last call
+ *
+ * @return Map - a shallow copy of the attributes Map
+ */
+ @SuppressWarnings("unchecked")
+ public Map<String, Object> getControllerAttributes()
+ {
+ return (Map<String, Object>) _attributes.clone();
+ }
+
+ public State getState() { return _status; }
+
+ public static enum State
+ {
+ Loading_parameters, Running, Shutting_down, Done_OK, Exception_thrown;
+ int m_iCompletionCode = 0;
+
+ Exception m_oException = null;
+
+ public int getCompletionCode() {
+ return m_iCompletionCode;
+ };
+
+ public Exception getException() {
+ return m_oException;
+ }
+ };
+
+ private ActionDefinitionFactory actionDefinitionFactory;
+
+ /**
+ * Package pivate default constructor.
+ */
+ protected GatewayListenerController() { }
+
+ /**
+ * Construct a Listener Manager from the named repository based
+ * configuration.
+ *
+ * @param p_sParameterName
+ * Name of the Repository entry containing the configuration.
+ * @throws Exception
+ * Unable to load/use the named configuration.
+ */
+ public GatewayListenerController(String p_sParameterName) throws Exception {
+ this(GatewayListenerController.getListenerConfig(p_sParameterName));
+ _sParametersName = p_sParameterName;
+ }
+
+ /**
+ * Construct a Listener Manager using the specified listener configuration.
+ *
+ * @param config
+ * The configuration.
+ * @throws Exception
+ * Unable to load/use the supplied configuration.
+ */
+ public GatewayListenerController(ConfigTree config) throws Exception {
+ _config = config;
+ _status = State.Loading_parameters;
+
+ try { checkParms(_config); }
+ catch (Exception e)
+ {
+ String configSource = config.getAttribute("configSource");
+ _status = State.Exception_thrown;
+ _status.m_oException = e;
+ _logger.fatal("Listener configuration and startup error. Config Source: "
+ + (configSource != null ? configSource
+ : "unknown"), e);
+ throw e;
+ }
+ }
+
+ /**
+ * Load the named listener configuration from the configured parameter
+ * repository.
+ *
+ * @param reposParam
+ * The name of the repository entry containing the Listener
+ * configuration.
+ * @return Listener Configuration as {@link ConfigTree}.
+ * @throws IOException
+ * Unable to access the repository.
+ * @throws ParamRepositoryException
+ * Unable to access the configuration in the repository.
+ * @throws SAXException
+ * Unable to parse the configuration.
+ */
+ private static ConfigTree getListenerConfig(String reposParam)
+ throws IOException, ParamRepositoryException, SAXException {
+ String sXml = ParamRepositoryFactory.getInstance().get(reposParam);
+ ConfigTree config = ConfigTree.fromXml(sXml);
+
+ config.setAttribute("configSource", "param-repository:" + reposParam);
+
+ return config;
+ }
+
+ /**
+ * Check to see if all needed parameters are there, and assign default
+ * values to some of them
+ *
+ * @param p_oP
+ * ConfigTree - Where to look for the mandatory/optional
+ * configuration attributes
+ * @throws Exception -
+ * If attributes are wrong or not enough for a proper runtime
+ * configuration
+ */
+ public void checkParms(ConfigTree p_oP) throws Exception {
+ // We've just loaded - set to false until next reload requested
+ _reloadRequested = false;
+ _commandQueue = createCommandQueue(p_oP);
+
+ // Open the command queue...
+ if (null!=_commandQueue)
+ _commandQueue.open(p_oP);
+
+ // if RELOAD_SECONDS_TAG not set, and no command queue
+ // then reload every 10 minutes
+ // If there is a command queue, run until command is received
+ String sRldSecs = p_oP.getAttribute(RELOAD_SECONDS_TAG);
+ _nextReload = (null != sRldSecs)
+ ? System.currentTimeMillis() + 1000 * Long.parseLong(sRldSecs)
+ : (null == _commandQueue)
+ ? Long.MAX_VALUE
+ : System.currentTimeMillis() + _defaultReloadMillis;
+
+ // if END_TIME_TAG not set try to run forever
+ // not a good practice if command queue is not set
+ // Expected date format is "yyyyMMdd hh:mm:ss"
+ String sEndT = p_oP.getAttribute(END_TIME_TAG);
+ _endTime = (null == sEndT) ? Long.MAX_VALUE : _dateFormat.parse(
+ sEndT).getTime();
+
+ // Read and initialise the action definitions...
+ ConfigTree actionConfig = p_oP.getFirstChild("Actions");
+ if(actionConfig == null) {
+ throw new ConfigurationException("No 'Actions' configuration.");
+ }
+ actionDefinitionFactory = new ActionDefinitionFactory(actionConfig);
+
+ } // ________________________________
+
+ /**
+ * Factory method for creating the command queue.
+ * @param config GatewayListener config.
+ * @return GatewayListener CommandQueue instance.
+ */
+ private CommandQueue createCommandQueue(ConfigTree config) {
+ String commandQueueClass = config.getAttribute("command-queue-class");
+
+ if(commandQueueClass != null) {
+ try {
+ return (CommandQueue) Class.forName(commandQueueClass).newInstance();
+ } catch (Exception e) {
+ _logger.error("Failed to instantiate CommandQueue ["+ commandQueueClass + "]. Defaulting to no Command Queue", e);
+ }
+ }
+
+ return _defaultCommandQueue;
+ }
+
+ /**
+ * Allows a default command queue to be set statically for all GatewayListener instances.
+ * @param defaultCommandQueue The defaultCommandQueue to set.
+ */
+ public static void setDefaultCommandQueue(CommandQueue defaultCommandQueue) {
+ GatewayListenerController._defaultCommandQueue = defaultCommandQueue;
+ }
+
+ /**
+ * Main execution loop <p/> Will continue to run until either <p/>a) run
+ * time is expired <p/>b) quiesce command is received in command queue
+ * <p/>For every child element that contains a PARM_LISTENER_CLASS
+ * attribute, this method will try to launch a child thread instantiating an
+ * object of that class, and will call it's run() method <p/>Once all child
+ * processes are trigered, the main thread will either <p/>1) wait for a
+ * message in the command queue (if one was configured) until next reload or
+ * end of run period expired <p/>or 2) Just sleep if there's no command
+ * queue to listen on
+ */
+ public void run()
+ {
+ while (endNotRequested())
+ {
+ _status = State.Running;
+ for (ConfigTree oCurr : _config.getAllChildren()) {
+ String sClass = oCurr.getAttribute(GATEWAY_CLASS_TAG);
+ if (Util.isNullString(sClass))
+ continue;
+ tryToLaunchGateway(oCurr, sClass);
+ }
+
+ waitForCmdOrSleep();
+
+ if (endRequested()) {
+ break;
+ }
+ if (_sParametersName != null && timeToReload())
+ {
+ try
+ {
+ _status = State.Loading_parameters;
+ _logger
+ .info("Reloading parameters _____________________________________________________");
+ ConfigTree oNew = GatewayListenerController.getListenerConfig(_sParametersName);
+ checkParms(oNew);
+ _config = oNew;
+ } catch (Exception e) {
+ _logger.error("Failed to reload parameters"
+ + " - Continuing with cached version", e);
+ }
+ }
+ }
+ // _status = State.Shutting_down;
+
+ _status = State.Done_OK;
+ _status.m_iCompletionCode = 0;
+ _logger
+ .info("Finishing_____________________________________________________");
+
+ // Close the command queue...
+ try {
+ _commandQueue.close();
+ } catch (CommandQueueException e) {
+ _logger.error("Error closing Command Queue.", e);
+ }
+ } // ________________________________
+
+ private void tryToLaunchGateway(ConfigTree p_oP, String p_sClassName)
+ {
+ try {
+ Class oListener = Class.forName(p_sClassName);
+ Constructor oConst = oListener.getConstructor(new Class[] {
+ this.getClass(), ConfigTree.class, ActionDefinitionFactory.class });
+ Runnable oRun = (Runnable) oConst.newInstance(new Object[] { this,
+ p_oP, actionDefinitionFactory });
+ new Thread(oRun).start();
+ } catch (Exception e) {
+ _logger.error("Cannot launch <" + p_sClassName + ">\n", e);
+ }
+ } // ________________________________
+
+ long millisToWait() {
+ return Math.min(_nextReload, _endTime) - System.currentTimeMillis();
+ } // ________________________________
+
+ private void waitForCmdOrSleep() {
+ long lToGo = millisToWait();
+
+ if (null == _commandQueue) {
+ _logger.debug("About to sleep " + lToGo);
+ // No command queue nor topic - Just sleep until time
+ // exhausted, or thread interrupted
+ try {
+ if (lToGo > 0)
+ Thread.sleep(lToGo);
+ } catch (InterruptedException e) {
+ _endTime = 0; // mark as end requested and return
+ }
+ return;
+ }
+
+ // Wait for commands until time exhausted or command received
+ // Note that received commands might change time variables (reload/end)
+ // that's why time to go is recalculated on each cycle
+ while ((lToGo = millisToWait()) > 0) {
+ try {
+ _logger.info("Waiting for command ... timeout=" + lToGo + " millis");
+
+ String oM = _commandQueue.receiveCommand(lToGo);
+ if (null == oM) {
+ return;
+ }
+ processCommand(oM);
+ if (endRequested() || timeToReload()) {
+ break;
+ }
+ } catch (CommandQueueException eJ) {
+ _logger.info("receive on command queue failed", eJ);
+ }
+ }
+ } // ________________________________
+
+ /**
+ * Processes the command that has been received in the command queue (or
+ * topic) <p/>_endRequested, _reloadRequested, and _endTime could be
+ * changed
+ *
+ * <p/> <p/><TABLE border="1"> <COLGROUP> <COL width="200"/> <COL
+ * width="400"/> </COLGROUP>
+ * <TR>
+ * <TD align="center">message text</TD>
+ * <TD align="center">effect</TD>
+ * </TR>
+ * <TR>
+ * <TD>shutdown*</TD>
+ * <TD>End time will be immediately set to 'now' - quiesce process will
+ * start - Child threads will be allowed to finish normally</TD>
+ * </TR>
+ * <TR>
+ * <TD>reload param*</TD>
+ * <TD>Parameters will be immediately reloaded, and listener reconfigured
+ * with new values</TD>
+ * </TR>
+ * <TR>
+ * <TD>endTime yyyyMMdd hh:mm:ss</TD>
+ * <TD>End time will be set to new value. If hh:mm:ss is not supplied =>
+ * end of day assumed (23:59:59)</TD>
+ * </TR>
+ * </TABLE> * startsWith() <p/>
+ *
+ * @param p_oMsg
+ * Message received from the command queue.
+ *
+ */
+ private void processCommand(String sTxt) {
+ if (null == sTxt)
+ return;
+
+ String sLow = sTxt.trim().toLowerCase();
+ if (sLow.startsWith("shutdown")) {
+ _endRequested = true;
+ _logger.info("Shutdown has been requested");
+ return;
+ }
+ if (sLow.startsWith("reload param")) {
+ _reloadRequested = true;
+ _logger
+ .info("Request for parameter reload has been received");
+ return;
+ }
+ String[] sa = sLow.split("\\s+");
+ if (sa.length > 1 && "endtime".equals(sa[0])) {
+ try {
+ String sDate = sa[1];
+ String sTime = (sa.length < 3 || null == sa[2]) ? "23:59:59"
+ : sa[2];
+ Date oEnd = _dateFormat.parse(sDate + " " + sTime);
+ _logger.info("New end date set to : " + oEnd);
+ _endTime = oEnd.getTime();
+ } catch (Exception eDat) {
+ _logger.info("Problems with endTime command", eDat);
+ }
+ }
+ } // ________________________________
+
+ /**
+ * Accessor to determine if execution time is expired or shutdown requested
+ *
+ * @return boolean if processing has to stop (all child threads will be
+ * allowed to finish)
+ */
+ public boolean endRequested() {
+ return _endRequested || System.currentTimeMillis() >= _endTime;
+ }
+
+ /**
+ * Accessor to determine if execution time is not expired, and no shutdown
+ * request received
+ *
+ * @return boolean - true if run time has not expired and quiesce has not
+ * been requested
+ */
+ public boolean endNotRequested() {
+ return !endRequested();
+ }
+
+ /**
+ * Provide a common accessor to determine if parameters have to be reloaded
+ * <p/> For child threads this means thread execution has to end
+ * </p>
+ * Child processes should only call this method when they are idle (as
+ * opposed to in the middle of executing a unit of work)
+ *
+ * @return boolean - true if it's time to reload parameters
+ */
+ public boolean timeToReload() {
+ return _reloadRequested
+ || System.currentTimeMillis() >= _nextReload;
+ }
+
+ /**
+ * Helper accessor for child processes that provides info to determine if
+ * they can continue with yet another execution cycle
+ *
+ * @return boolean - true if runtime is not expired and not time yet to
+ * reload parameters
+ */
+ public boolean continueLooping() {
+ return (endNotRequested() && !timeToReload());
+ } // ________________________________
+
+ /**
+ * Find an attribute in the tree (arg 0) or assign default value (arg 2)
+ *
+ * @param p_oP
+ * ConfigTree - look for attributes in this Element only
+ * @param p_sAtt
+ * String - Name of attribute to find
+ * @param p_sDefault
+ * String -default value if requested attribute is not there
+ * @return String - value of attribute, or default value (if null)
+ * @throws Exception -
+ * If requested attribute not found and no default value
+ * supplied by invoker
+ */
+ public String obtainAtt(ConfigTree p_oP, String p_sAtt, String p_sDefault)
+ throws ConfigurationException {
+ String sVal = p_oP.getAttribute(p_sAtt);
+ if ((null == sVal) && (null == p_sDefault))
+ throw new ConfigurationException("Missing or invalid <" + p_sAtt + "> attribute");
+
+ return (null != sVal) ? sVal : p_sDefault;
+ } // ________________________________
+
+ private static EPRManager getEprManager()
+ {
+ PropertyManager manager = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE);
+ String sDir = manager.getProperty(Environment.REGISTRY_FILE_HELPER_DIR,".");
+ return EPRManager.getInstance(sDir);
+ }
+
+ public EPR getEprByName (String serviceName) throws IOException
+ {
+ return getEprManager().loadEPR(serviceName);
+ } // ________________________________
+
+ public void register (String serviceName, EPR address)
+ {
+ try { getEprManager().saveEPR(serviceName,address); }
+ catch (IOException e)
+ {
+ _logger.fatal("Cannot register service",e);
+ }
+ } // ________________________________
+
+ public void unRegister (String serviceName, EPR address)
+ {
+ try { getEprManager().removeEPR(serviceName); }
+ catch (IOException e)
+ {
+ _logger.fatal("Cannot un-register service",e);
+ }
+ } // ________________________________
+
+
+ private CommandQueue _commandQueue;
+ private static CommandQueue _defaultCommandQueue = null;
+
+ private static Logger _logger = Logger.getLogger(GatewayListenerController.class);
+ private String _sParametersName;
+ private ConfigTree _config;
+ private boolean _reloadRequested;
+ private boolean _endRequested;
+ private long _nextReload = Long.MAX_VALUE;
+ private long _endTime = Long.MAX_VALUE;
+ protected int _defaultReloadMillis = 180000; // default interval between parameter reloads
+
+
+ public static final SimpleDateFormat _dateFormat
+ = new SimpleDateFormat("yyyyMMdd hh:mm:ss");
+
+ private State _status = null;
+
+
+ private HashMap<String, Object> _attributes;
+} // ____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,241 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.listeners.gateway;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import javax.enterprise.deploy.spi.exceptions.ConfigurationException;
+import javax.jms.JMSException;
+import javax.jms.MessageConsumer;
+import javax.jms.Queue;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueSession;
+import javax.naming.Context;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.helpers.JMSEpr;
+import org.jboss.soa.esb.couriers.Courier;
+import org.jboss.soa.esb.couriers.CourierException;
+import org.jboss.soa.esb.couriers.CourierFactory;
+import org.jboss.soa.esb.helpers.AppServerContext;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.message.Message;
+
+public class JmsGatewayListener implements Runnable
+{
+
+ public JmsGatewayListener(GatewayListenerController commandListener, ConfigTree listenerConfig)
+ throws Exception
+ {
+ _config = listenerConfig;
+ _controller = commandListener;
+ _sleepForRetries = 3000; // milliseconds
+ checkMyParms();
+ } // __________________________________
+
+ public void run()
+ {
+ if (null!=_serviceName)
+ _controller.register(_serviceName,_myEpr);
+
+ while (_controller.continueLooping())
+ {
+ javax.jms.Message msgIn = receiveOne();
+ if (null!=msgIn)
+ try
+ {
+ Object obj = _processMethod.invoke(_composer,new Object[] {msgIn} );
+ if (null==obj)
+ {
+ _logger.warn("Action class method <"+_processMethod.getName()+"> returned a null object");
+ continue;
+ }
+ // try to deliver the composed message, using the appropriate courier
+ // to the target service
+ try
+ {
+ _courier.deliver((org.jboss.soa.esb.message.Message)obj);
+ }
+ catch (ClassCastException e)
+ {
+ _logger.error("Action class method <"+_processMethod.getName()+"> returned a non Message object");
+ continue;
+ }
+ catch (CourierException e)
+ {
+ _logger.error("Courier <"+_courier.getClass().getName()+".deliver(Message) FAILED");
+ continue;
+ }
+ continue;
+ }
+ catch (InvocationTargetException e)
+ {
+ _logger.error("Problems invoking method <"+_processMethod.getName()+">",e);
+ }
+ catch (IllegalAccessException e)
+ {
+ _logger.error("Problems invoking method <"+_processMethod.getName()+">",e);
+ }
+ catch (Exception e)
+ {
+ _logger.error("Unexpected problem",e);
+ }
+ }
+
+ if (null!=_serviceName)
+ _controller.unRegister(_serviceName,_myEpr);
+
+ if (null != _queueSession)
+ try { _queueSession.close(); }
+ catch (Exception e1) {/* Tried my best - Just continue */ }
+ if (null != _queueConnection)
+ try { _queueConnection.close(); }
+ catch (Exception e2) {/* Tried my best - Just continue */ }
+ } // ________________________________
+
+ /**
+ * Check for mandatory and optional attributes in parameter tree
+ *
+ * @throws Exception -
+ * if mandatory atts are not right or actionClass not in
+ * classpath
+ */
+ protected void checkMyParms() throws Exception
+ {
+ // Third arg is null - Exception will be thrown if attribute is not found
+ _targetServiceName = _controller.obtainAtt(_config, ListenerTagNames.TARGET_SERVICE_NAME_TAG, null);
+ _targetEpr = _controller.getEprByName(_targetServiceName);
+ if (null==_targetEpr)
+ throw new ConfigurationException("EPR <"+_targetServiceName+"> not found in registry");
+
+ _queueName = _controller.obtainAtt(_config, JMSEpr.DESTINATION_NAME_TAG, null);
+
+ // Look for first "action" element - only first one will be used
+ String tagName = ListenerTagNames.ACTION_ELEMENT_TAG;
+ ConfigTree actionElement = _config.getFirstChild(tagName);
+ if (null==actionElement)
+ throw new ConfigurationException("Missing <"+tagName+"> element");
+ // class attribute
+ _composerName = _controller.obtainAtt(actionElement,ListenerTagNames.ACTION_CLASS_TAG,null);
+ _composerClass = Class.forName(_composerName);
+ Constructor oConst = _composerClass.getConstructor(new Class[] {ConfigTree.class});
+ _composer= oConst.newInstance(_config);
+
+ // From here onwards, all attributes have a default value
+ // process attribute
+ tagName = ListenerTagNames.PROCESS_METHOD_TAG;
+ String sProcessMethod = _controller.obtainAtt(_config,tagName,tagName);
+ _processMethod = _composerClass.getMethod(sProcessMethod,new Class[] {Message.class});
+
+ // No problem if selector is null - everything in queue will be returned
+ _messageSelector = _config.getAttribute(JMSEpr.MESSAGE_SELECTOR_TAG);
+
+ _courier = CourierFactory.getCourier(_targetEpr);
+
+ prepareMessageReceiver();
+ } // ________________________________
+
+ private void prepareMessageReceiver() throws Exception
+ {
+ _queueConnection = null;
+ _queueSession = null;
+ _queue = null;
+
+ String sJndiType = _controller.obtainAtt(_config, JMSEpr.JNDI_TYPE_TAG,"jboss");
+ String sJndiURL = _controller.obtainAtt(_config, JMSEpr.JNDI_URL_TAG,"localhost");
+ Context oJndiCtx = AppServerContext.getServerContext(sJndiType,sJndiURL);
+
+ String sFactClass = _controller.obtainAtt(_config,JMSEpr.CONNECTION_FACTORY_TAG, "ConnectionFactory");
+ _serviceName = _config.getAttribute(ListenerTagNames.SERVICE_NAME_TAG);
+ _myEpr = (null==_serviceName) ? null
+ : new JMSEpr(JMSEpr.QUEUE_TYPE,_queueName,sFactClass,sJndiType,sJndiURL,_messageSelector);
+
+ Object tmp = oJndiCtx.lookup(sFactClass);
+ QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
+
+ _queueConnection = qcf.createQueueConnection();
+ _queue = (Queue) oJndiCtx.lookup(_queueName);
+ _queueSession = _queueConnection.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
+ _queueConnection.start();
+
+ _messageReceiver = _queueSession.createReceiver(_queue, _messageSelector);
+
+ } // ________________________________
+
+ /**
+ * Receive one message and retry if connection
+ * @return javax.jms.Message - One input message, or null
+ */
+ protected javax.jms.Message receiveOne()
+ {
+ while (_controller.endRequested())
+ try
+ {
+ return _messageReceiver.receive(_controller.millisToWait());
+ }
+ catch (JMSException oJ)
+ {
+ _logger.error("JMS error on receive. Attempting JMS Destination reconnect.", oJ);
+ try { prepareMessageReceiver(); }
+ // try to reconnect to the queue
+ catch (Exception e)
+ {
+ _logger.error("Reconnecting to Queue", e);
+ try { Thread.sleep(_sleepForRetries); }
+ catch (InterruptedException e1)
+ { // Just return
+ _logger.error("Unexpected thread interupt exception.", e);
+ return null;
+ }
+ }
+ }
+ return null;
+ } //________________________________
+
+ protected final static Logger _logger = Logger.getLogger(JmsGatewayListener.class);
+
+ protected String _queueName;
+ protected QueueConnection _queueConnection;
+ protected QueueSession _queueSession;
+ protected Queue _queue;
+ protected MessageConsumer _messageReceiver;
+ protected String _messageSelector;
+ protected ConfigTree _config;
+ protected GatewayListenerController _controller;
+ protected final long _sleepForRetries; // milliseconds
+
+ protected String _serviceName,_targetServiceName;
+ protected EPR _myEpr ,_targetEpr;
+
+ protected String _composerName;
+ protected Class _composerClass;
+ protected Object _composer;
+ protected Method _processMethod;
+
+ protected Courier _courier;
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/gatewayExample.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/gatewayExample.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/gatewayExample.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,18 @@
+<GatewayListenerControllerExample
+ parameterReloadSecs="180"
+>
+ <JmsGatewayExample
+ target-service-name="your target service name"
+ service-name="JmsGatewayService"
+ listenerClass="org.jboss.soa.esb.listeners.gateway.JmsGatewayListener"
+ connection-factory="ConnectionFactory"
+ destination-type="queue"
+ destination-name="queue/A"
+ jndi-type="jboss"
+ jndi-URL="localhost"
+ message-selector="service='composeExampleService'"
+ >
+ <action class="org.jboss.soa.esb.message.listeners.MockComposer" process="composeEmptyMessage" />
+ </JmsGatewayExample>
+
+</GatewayListenerControllerExample>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,199 @@
+package org.jboss.soa.esb.listeners.message;
+
+import java.lang.reflect.*;
+
+import org.apache.log4j.Logger;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+
+/**
+ * Action Processing Pipeline.
+ * <p/>
+ * Runs a list of action classes on a message
+ *
+ * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
+ * @since Version 4.0
+ */
+class ActionProcessingPipeline implements Runnable
+{
+
+ /**
+ * public constructor
+ * @param message Message - The initial message to be run through the whole action
+ * class chain
+ */
+ public ActionProcessingPipeline(Message message)
+ throws ConfigurationException
+ {
+ if (null==_message)
+ throw new IllegalArgumentException("Message must be not null");
+ _message = message;
+ _config = ActionUtils.getConfigTree(_message);
+ if (null==_config)
+ throw new IllegalArgumentException("Configuration needed for action classes");
+ _actionList = _config.getChildren(ListenerTagNames.ACTION_ELEMENT_TAG);
+ if (null==_actionList || _actionList.length<1)
+ throw new ConfigurationException("No actions in list");
+ }
+
+ /**
+ *
+ * @return Message - current Message of this action chain processor
+ */
+ public Message getMessage() { return _message; }
+
+ /**
+ * Implement Runnable Interface
+ * <p/>Uses reflection to instantiate action classes that must have a public constructor
+ * that takes a single ConfigTree as argument
+ * <p/>Requires each action class to have a public method that takes a Message and returns a Message
+ * <br/>Default name for it is 'process' but can optionally be defined in the 'process' attribute
+ * of the corresponding <action> element of the ConfigTree
+ * <p/>Each <action> element can optionally define a method (taking a Message argument) to be
+ * called upon successful completion of the action class (that step of the chain)
+ * <br/>Default name for it is 'process' but can optionally be defined in the 'process' attribute
+ * <p/>See actionClassException and actionClassFinishedOk
+ * */
+ public void run()
+ {
+ try
+ {
+ // Run the message through each ActionProcessor...
+ _currentIndex = -1;
+ for(ConfigTree oCurr : _actionList)
+ {
+ _currentIndex++;
+ String attrName = ListenerTagNames.ACTION_CLASS_TAG;
+ _currentAction = oCurr.getAttribute(attrName);
+
+ attrName = ListenerTagNames.PROCESS_METHOD_TAG;
+ String sProcessMethod = obtainAttribute(oCurr,attrName,attrName);
+
+ _currentClass = Class.forName(_currentAction);
+ Constructor oConst = _currentClass.getConstructor(new Class[] {ConfigTree.class});
+ _currentProcessor = oConst.newInstance(_config);
+ Method method = _currentClass.getMethod(sProcessMethod,new Class[] {Message.class});
+
+ // The processing result of each action feeds into the processing of the next action...
+ try
+ {
+ // copy currentObject in Message body to 'previous' currentObject
+ ActionUtils.copyCurrentToPrevious(_message);
+ Message next = (Message)method.invoke(_currentProcessor,new Object[] {_message} );
+
+ actionClassFinishedOk(oCurr);
+ if(next==null)
+ {
+ _logger.error(prematureTermination("returned <null> - Cannot continue"));
+ return;
+ }
+ }
+ catch (ClassCastException eCast)
+ {
+ // If action class returns non Message, log and abort chain
+ _logger.error(prematureTermination("returned a non Message Object)"));
+ return;
+ }
+ catch (Exception e)
+ {
+ // If action class threw exception, log and abort chain
+ actionClassException(oCurr,e);
+ return;
+ }
+ }
+ // notification of action chain end can be done with a no-operation action class
+ // with a proper ListenerPropertyNames.ACTION_NORMAL_COMPLETION_CALLBACK method
+ // Same idea when some interaction needed with the 'esb unaware' world
+ }
+ catch(ClassNotFoundException e)
+ { _logger.error(prematureTermination("action class is not in path"),e); }
+ catch(NoSuchMethodException e)
+ { _logger.error(prematureTermination("method not found"),e); }
+ catch(InstantiationException e)
+ { _logger.error(prematureTermination("cannot instantiate action class"),e); }
+ catch(InvocationTargetException e)
+ { _logger.error(prematureTermination("method not found"),e); }
+ catch(IllegalAccessException e)
+ { _logger.error(prematureTermination("unable to access method"),e); }
+ catch (IllegalArgumentException e) {}
+ }
+
+ protected String prematureTermination(String s)
+ {
+ return new StringBuilder("Premature termination of action processing pipeline ")
+ .append(getActionNames())
+ .append("]. ActionProcessor [").append(_currentAction)
+ .append("] ").append(s)
+ .toString()
+ ;
+ }
+
+ /**
+ * If 'current' action step was configured with a 'exceptionMethod' attribute
+ * that method will be called with a single argument of type Exception
+ * @param tree ConfigTree - where to look for the exceptionMetod attribute
+ * @param thr Exception - to be used in invocation to method (if found)
+ */
+ protected void actionClassException(ConfigTree tree, Exception thr)
+ {
+ thr.printStackTrace();
+ String sMethod = obtainAttribute(tree,ListenerTagNames.EXCEPTION_METHOD_TAG,null);
+ if (null!=sMethod)
+ try
+ {
+ Method method = _currentClass.getMethod(sMethod,new Class[] {Exception.class});
+ method.invoke(_currentProcessor,new Object[] {thr} );
+ }
+ catch (NoSuchMethodException e) {_logger.error(e); }
+ catch (InvocationTargetException e) {_logger.error(e); }
+ catch (IllegalAccessException e) {_logger.error(e); }
+ }
+
+ /**
+ * If 'current' action step was configured with an 'okMethod' attribute
+ * that method will be called with no arguments
+ * @param tree ConfigTree - where to look for the okMetod attribute
+ */
+ protected void actionClassFinishedOk(ConfigTree tree)
+ {
+ String sMethod = obtainAttribute(tree,ListenerTagNames.NORMAL_COMPLETION_METHOD_TAG,null);
+ if (null!=sMethod)
+ try
+ {
+ Method method = _currentClass.getMethod(sMethod,new Class[] {});
+ method.invoke(_currentProcessor,new Object[] {} );
+ }
+ catch (NoSuchMethodException e) {_logger.error(e); }
+ catch (InvocationTargetException e) {_logger.error(e); }
+ catch (IllegalAccessException e) {_logger.error(e); }
+ }
+
+ protected String[] getActionNames()
+ {
+ String[] sa = new String[_actionList.length];
+ int i1=0;
+ for (ConfigTree oCurr : _actionList)
+ sa[i1++]=obtainAttribute(oCurr,ListenerTagNames.ACTION_CLASS_TAG,"NO_CLASSNAME");
+ return sa;
+ }
+
+ private static String obtainAttribute(ConfigTree tree,String p_sAtt, String p_sDefault)
+ {
+ String sVal = tree.getAttribute(p_sAtt);
+ return (null != sVal) ? sVal : p_sDefault;
+ } // ________________________________
+
+ protected ConfigTree[] _actionList;
+ protected int _currentIndex;
+ protected String _currentAction;
+ protected Class _currentClass;
+ protected Object _currentProcessor;
+ protected Message _message;
+ protected ConfigTree _config;
+ protected Logger _logger = Logger.getLogger(this.getClass());
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/EsbListenerController.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/EsbListenerController.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/EsbListenerController.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,540 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.listeners.message;
+
+import java.io.IOException;
+import java.lang.reflect.Constructor;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.command.CommandQueue;
+import org.jboss.internal.soa.esb.command.CommandQueueException;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.addressing.util.EPRManager;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.common.ModulePropertyManager;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.parameters.ParamRepositoryException;
+import org.jboss.soa.esb.parameters.ParamRepositoryFactory;
+import org.jboss.soa.esb.util.Util;
+import org.xml.sax.SAXException;
+
+import com.arjuna.common.util.propertyservice.PropertyManager;
+
+/**
+ * Controlling class that will launch 'message aware' listener child threads for supported
+ * transport listener classes, as indicated in the configuration XML tree used in the constructor
+ * If you use the 'main' method, configuration file is expected in arg[0]
+ *
+ * <p />
+ * Can be launched as uppermost controller (it has a main(args) method)
+ * <p />
+ * Also implements Runnable, and can thus be launched in a child thread from an
+ * upper controlling process
+ * <p />
+ * Listens on a JMS queue (with an optional message selector) for commands (e.g.
+ * Quiesce, Reload Parameters, Set End Time, etc.)
+ * <p />
+ * Parameter reloading can also be set using the PARM_RELOAD_SECS attribute
+ * <p />
+ * End time for this instance can also be set using the PARM_END_TIME attribute
+ * <p />
+ *
+ * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
+ * @since Version 4.0
+ */
+public class EsbListenerController implements Runnable {
+
+ private static Logger _logger = Logger.getLogger(EsbListenerController.class);
+
+ public static void main(String[] args) throws Exception {
+ EsbListenerController oProc = new EsbListenerController(args[0]);
+ oProc.run();
+ EsbListenerController.State oS = oProc.getState();
+
+ if (null != oS.getException()) {
+ _logger.error("EsbListenerController <" + args[0] + "> FAILED\n", oS
+ .getException());
+ }
+ System.exit(oS.getCompletionCode());
+ } // ________________________________
+
+ protected int m_iDfltReloadMillis = 180000 // default interval between
+ // parameter reloads
+ ;
+
+ public static final String PARM_RELOAD_SECS = "parameterReloadSecs";
+ public static final String PARM_END_TIME = "endTime";
+
+ // Attribute name that denotes listener class to be instantiated in a child
+ // thread
+ // This attribute is not in the root node but in first level child
+ // ConfigTrees
+ public static final String PARM_LISTENER_CLASS = "listenerClass";
+
+ private String m_sParmsName;
+ private ConfigTree m_oParms;
+
+ private HashMap<String, Object> m_oAtts;
+
+ /**
+ * Obtain a shallow copy of needed atributes in this object's last loaded
+ * parameter tree <p/>The local bject is cloned so child threads can use it
+ * as they choose to without interfering with the environment
+ * <p />
+ * Listener processes controlled by this object should keep a reference to
+ * this object at construction time, and not call this method again unless
+ * they specifically need updated values. Parameter reload could have
+ * happened since last call
+ *
+ * @return Map - a shallow copy of the attributes Map
+ */
+ @SuppressWarnings("unchecked")
+ public Map<String, Object> getControllerAttributes() {
+ return (Map<String, Object>) m_oAtts.clone();
+ }
+
+ private boolean m_bReloadRequested, m_bEndRequested;
+
+ private long m_lNextReload = Long.MAX_VALUE;
+
+ private long m_lEndTime = Long.MAX_VALUE;
+
+ public static final SimpleDateFormat s_oDateParse = new SimpleDateFormat(
+ "yyyyMMdd hh:mm:ss");
+
+ private State m_oState = null;
+
+ public State getState() {
+ return m_oState;
+ }
+
+ public static enum State {
+ Loading_parameters, Running, Shutting_down, Done_OK, Exception_thrown;
+ int m_iCompletionCode = 0;
+
+ Exception m_oException = null;
+
+ public int getCompletionCode() {
+ return m_iCompletionCode;
+ };
+
+ public Exception getException() {
+ return m_oException;
+ }
+ };
+
+ private CommandQueue commandQueue;
+ private static CommandQueue defaultCommandQueue = null;
+
+ /**
+ * No default constructor - only for child classes
+ */
+ protected EsbListenerController() { }
+
+ /**
+ * Construct a Listener Manager from the named repository based
+ * configuration.
+ *
+ * @param p_sParameterName
+ * Name of the Repository entry containing the configuration.
+ * @throws Exception
+ * Unable to load/use the named configuration.
+ */
+ public EsbListenerController(String p_sParameterName) throws Exception {
+ this(EsbListenerController.getListenerConfig(p_sParameterName));
+ m_sParmsName = p_sParameterName;
+ }
+
+ /**
+ * Construct a Listener Controller using the specified listener configuration.
+ *
+ * @param config
+ * The configuration.
+ * @throws Exception
+ * Unable to load/use the supplied configuration.
+ */
+ public EsbListenerController(ConfigTree config) throws Exception {
+ m_oParms = config;
+ m_oState = State.Loading_parameters;
+
+ try { checkParms(m_oParms); }
+ catch (Exception e)
+ {
+ String configSource = config.getAttribute("configSource");
+
+ m_oState = State.Exception_thrown;
+ m_oState.m_oException = e;
+ _logger.fatal("Listener configuration and startup error. Config Source: "
+ + (configSource != null ? configSource
+ : "unknown"), e);
+
+ throw e;
+ }
+ }
+
+ /**
+ * Load the named listener configuration from the configured parameter
+ * repository.
+ *
+ * @param reposParam
+ * The name of the repository entry containing the Listener
+ * configuration.
+ * @return Listener Configuration as {@link ConfigTree}.
+ * @throws IOException
+ * Unable to access the repository.
+ * @throws ParamRepositoryException
+ * Unable to access the configuration in the repository.
+ * @throws SAXException
+ * Unable to parse the configuration.
+ */
+ private static ConfigTree getListenerConfig(String reposParam)
+ throws IOException, ParamRepositoryException, SAXException {
+ String sXml = ParamRepositoryFactory.getInstance().get(reposParam);
+ ConfigTree config = ConfigTree.fromXml(sXml);
+
+ config.setAttribute("configSource", "param-repository:" + reposParam);
+
+ return config;
+ }
+
+ /**
+ * Check to see if all needed parameters are there, and assign default
+ * values to some of them
+ *
+ * @param p_oP
+ * ConfigTree - Where to look for the mandatory/optional
+ * configuration attributes
+ * @throws Exception -
+ * If attributes are wrong or not enough for a proper runtime
+ * configuration
+ */
+ public void checkParms(ConfigTree p_oP) throws Exception {
+ // We've just loaded - set to false until next reload requested
+ m_bReloadRequested = false;
+ commandQueue = createCommandQueue(p_oP);
+
+ // Open the command queue...
+ if (null!=commandQueue)
+ commandQueue.open(p_oP);
+
+ // if PARM_RELOAD_SECS not set, and no command queue
+ // then reload every 10 minutes
+ // If there is a command queue, run until command is received
+ String sRldSecs = p_oP.getAttribute(PARM_RELOAD_SECS);
+ m_lNextReload = (null != sRldSecs)
+ ? System.currentTimeMillis() + 1000 * Long.parseLong(sRldSecs)
+ : (null == commandQueue)
+ ? Long.MAX_VALUE
+ : System.currentTimeMillis() + m_iDfltReloadMillis;
+
+ // if PARM_END_TIME not set try to run forever
+ // not a good practice if command queue is not set
+ // Expected date format is "yyyyMMdd hh:mm:ss"
+ String sEndT = p_oP.getAttribute(PARM_END_TIME);
+ m_lEndTime = (null == sEndT) ? Long.MAX_VALUE : s_oDateParse.parse(
+ sEndT).getTime();
+
+ // Read and initialise the action definitions...
+ ConfigTree actionConfig = p_oP.getFirstChild("Actions");
+ if(actionConfig == null) {
+ throw new ConfigurationException("No 'Actions' configuration.");
+ }
+ } // ________________________________
+
+ /**
+ * Factory method for creating the command queue.
+ * @param config EsbListenerController config.
+ * @return EsbListenerController CommandQueue instance.
+ */
+ private CommandQueue createCommandQueue(ConfigTree config) {
+ String commandQueueClass = config.getAttribute("command-queue-class");
+
+ if(commandQueueClass != null) {
+ try {
+ return (CommandQueue) Class.forName(commandQueueClass).newInstance();
+ } catch (Exception e) {
+ _logger.error("Failed to instantiate CommandQueue ["+ commandQueueClass + "]. Defaulting to no Command Queue", e);
+ }
+ }
+
+ return defaultCommandQueue;
+ }
+
+ /**
+ * Allows a default command queue to be set statically for all EsbListenerController instances.
+ * @param defaultCommandQueue The defaultCommandQueue to set.
+ */
+ public static void setDefaultCommandQueue(CommandQueue defaultCommandQueue) {
+ EsbListenerController.defaultCommandQueue = defaultCommandQueue;
+ }
+
+ /**
+ * Main execution loop <p/> Will continue to run until either <p/>a) run
+ * time is expired <p/>b) quiesce command is received in command queue
+ * <p/>For every child element that contains a PARM_LISTENER_CLASS
+ * attribute, this method will try to launch a child thread instantiating an
+ * object of that class, and will call it's run() method <p/>Once all child
+ * processes are trigered, the main thread will either <p/>1) wait for a
+ * message in the command queue (if one was configured) until next reload or
+ * end of run period expired <p/>or 2) Just sleep if there's no command
+ * queue to listen on
+ */
+ public void run() {
+ while (endNotRequested()) {
+ m_oState = State.Running;
+ for (ConfigTree oCurr : m_oParms.getAllChildren()) {
+ String sClass = oCurr.getAttribute(PARM_LISTENER_CLASS);
+ if (Util.isNullString(sClass))
+ continue;
+ tryToLaunchChildListener(oCurr, sClass);
+ }
+
+ waitForCmdOrSleep();
+
+ if (endRequested()) {
+ break;
+ }
+ if (m_sParmsName != null && timeToReload()) {
+ try {
+ m_oState = State.Loading_parameters;
+ _logger
+ .info("Reloading parameters _____________________________________________________");
+ ConfigTree oNew = EsbListenerController.getListenerConfig(m_sParmsName);
+ checkParms(oNew);
+ m_oParms = oNew;
+ } catch (Exception e) {
+ _logger.error("Failed to reload parameters"
+ + " - Continuing with cached version", e);
+ }
+ }
+ }
+ // m_oState = State.Shutting_down;
+
+ m_oState = State.Done_OK;
+ m_oState.m_iCompletionCode = 0;
+ _logger
+ .info("Finishing_____________________________________________________");
+
+ // Close the command queue...
+ try {
+ commandQueue.close();
+ } catch (CommandQueueException e) {
+ _logger.error("Error closing Command Queue.", e);
+ }
+ } // ________________________________
+
+ private void tryToLaunchChildListener(ConfigTree p_oP, String p_sClassName) {
+ try
+ {
+ Class oListener = Class.forName(p_sClassName);
+ Constructor oConst = oListener.getConstructor(new Class[] {this.getClass(), ConfigTree.class});
+ Runnable oRun = (Runnable) oConst.newInstance(new Object[] { this,p_oP});
+ new Thread(oRun).start();
+ }
+ catch (Exception e)
+ {
+ _logger.error("Cannot launch <" + p_sClassName + ">\n", e);
+ }
+ } // ________________________________
+
+ long millisToWait() {
+ return Math.min(m_lNextReload, m_lEndTime) - System.currentTimeMillis();
+ } // ________________________________
+
+ private void waitForCmdOrSleep() {
+ long lToGo = millisToWait();
+
+ if (null == commandQueue) {
+ _logger.debug("About to sleep " + lToGo);
+ // No command queue nor topic - Just sleep until time
+ // exhausted, or thread interrupted
+ try {
+ if (lToGo > 0)
+ Thread.sleep(lToGo);
+ } catch (InterruptedException e) {
+ m_lEndTime = 0; // mark as end requested and return
+ }
+ return;
+ }
+
+ // Wait for commands until time exhausted or command received
+ // Note that received commands might change time variables (reload/end)
+ // that's why time to go is recalculated on each cycle
+ while ((lToGo = millisToWait()) > 0) {
+ try {
+ _logger.info("Waiting for command ... timeout=" + lToGo + " millis");
+
+ String oM = commandQueue.receiveCommand(lToGo);
+ if (null == oM) {
+ return;
+ }
+ processCommand(oM);
+ if (endRequested() || timeToReload()) {
+ break;
+ }
+ } catch (CommandQueueException eJ) {
+ _logger.info("receive on command queue failed", eJ);
+ }
+ }
+ } // ________________________________
+
+ /**
+ * Processes the command that has been received in the command queue (or
+ * topic) <p/>m_bEndRequested, m_bReloadRequested, and m_lEndTime could be
+ * changed
+ *
+ * <p/> <p/><TABLE border="1"> <COLGROUP> <COL width="200"/> <COL
+ * width="400"/> </COLGROUP>
+ * <TR>
+ * <TD align="center">message text</TD>
+ * <TD align="center">effect</TD>
+ * </TR>
+ * <TR>
+ * <TD>shutdown*</TD>
+ * <TD>End time will be immediately set to 'now' - quiesce process will
+ * start - Child threads will be allowed to finish normally</TD>
+ * </TR>
+ * <TR>
+ * <TD>reload param*</TD>
+ * <TD>Parameters will be immediately reloaded, and listener reconfigured
+ * with new values</TD>
+ * </TR>
+ * <TR>
+ * <TD>endTime yyyyMMdd hh:mm:ss</TD>
+ * <TD>End time will be set to new value. If hh:mm:ss is not supplied =>
+ * end of day assumed (23:59:59)</TD>
+ * </TR>
+ * </TABLE> * startsWith() <p/>
+ *
+ * @param p_oMsg
+ * Message received from the command queue.
+ *
+ */
+ private void processCommand(String sTxt) {
+ if (null == sTxt)
+ return;
+
+ String sLow = sTxt.trim().toLowerCase();
+ if (sLow.startsWith("shutdown")) {
+ m_bEndRequested = true;
+ _logger.info("Shutdown has been requested");
+ return;
+ }
+ if (sLow.startsWith("reload param")) {
+ m_bReloadRequested = true;
+ _logger
+ .info("Request for parameter reload has been received");
+ return;
+ }
+ String[] sa = sLow.split("\\s+");
+ if (sa.length > 1 && "endtime".equals(sa[0])) {
+ try {
+ String sDate = sa[1];
+ String sTime = (sa.length < 3 || null == sa[2]) ? "23:59:59"
+ : sa[2];
+ Date oEnd = s_oDateParse.parse(sDate + " " + sTime);
+ _logger.info("New end date set to : " + oEnd);
+ m_lEndTime = oEnd.getTime();
+ } catch (Exception eDat) {
+ _logger.info("Problems with endTime command", eDat);
+ }
+ }
+ } // ________________________________
+
+ /**
+ * Accessor to determine if execution time is expired or shutdown requested
+ *
+ * @return boolean if processing has to stop (all child threads will be
+ * allowed to finish)
+ */
+ public boolean endRequested() {
+ return m_bEndRequested || System.currentTimeMillis() >= m_lEndTime;
+ }
+
+ /**
+ * Accessor to determine if execution time is not expired, and no shutdown
+ * request received
+ *
+ * @return boolean - true if run time has not expired and quiesce has not
+ * been requested
+ */
+ public boolean endNotRequested() {
+ return !endRequested();
+ }
+
+ /**
+ * Provide a common accessor to determine if parameters have to be reloaded
+ * <p/> For child threads this means thread execution has to end
+ * </p>
+ * Child processes should only call this method when they are idle (as
+ * opposed to in the middle of executing a unit of work)
+ *
+ * @return boolean - true if it's time to reload parameters
+ */
+ public boolean timeToReload() {
+ return m_bReloadRequested
+ || System.currentTimeMillis() >= m_lNextReload;
+ }
+
+ /**
+ * Helper accessor for child processes that provides info to determine if
+ * they can continue with yet another execution cycle
+ *
+ * @return boolean - true if runtime is not expired and not time yet to
+ * reload parameters
+ */
+ public boolean continueLooping() {
+ return (endNotRequested() && !timeToReload());
+ } // ________________________________
+
+ private static EPRManager getEprManager()
+ {
+ PropertyManager manager = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE);
+ String sDir = manager.getProperty(Environment.REGISTRY_FILE_HELPER_DIR,".");
+ return EPRManager.getInstance(sDir);
+ }
+
+ public void register (String name, EPR address)
+ {
+ try { getEprManager().saveEPR(name,address); }
+ catch (IOException e)
+ {
+ _logger.fatal("Cannot register service",e);
+ }
+ } // ________________________________
+
+ public void unRegister (String name)
+ {
+ try { getEprManager().removeEPR(name); }
+ catch (IOException e)
+ {
+ _logger.fatal("Cannot un-register service",e);
+ }
+ } // ________________________________
+
+} // ____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/JmsQueueListener.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/JmsQueueListener.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/JmsQueueListener.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,233 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.listeners.message;
+
+import javax.jms.JMSException;
+import javax.jms.MessageConsumer;
+import javax.jms.ObjectMessage;
+import javax.jms.Queue;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueSession;
+import javax.jms.TopicSession;
+import javax.naming.Context;
+
+import org.apache.log4j.Logger;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.AppServerContext;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.addressing.helpers.JMSEpr;
+
+/**
+ * Esb Message aware JMS queue listener.
+ * <p/> Expects an Object message whose getObject() method returns an org.jboss.soa.esb.message.Message
+ * <br/>Clones the 'static' ConfigTree with which this listener was created, and stores the cloned tree
+ * inside the Message (to enable all actions in the chain to use the configuration)
+ * <br/>Instantiates and runs a new ActionProcessingPipeline on the received esb Message (augmented with
+ * ConfigTree) that will in turn instantiate and run all action classes in the chain
+ *
+ * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
+ * @since Version 4.0
+ */
+
+public class JmsQueueListener implements Runnable
+{
+ /**
+ * public constructor
+ * @param controller EsbListenerController - the controlling process
+ * @param config ConfigTree - Containing 'static' configuration for this instance
+ * @throws Exception
+ */
+ public JmsQueueListener(EsbListenerController controller, ConfigTree config)
+ throws ConfigurationException
+ {
+ _controller = controller;
+ _config = config;
+ _iSleepForRetry = 3;
+ checkMyParms();
+ } // _______________________________
+
+ /**
+ * Loops until controlling process determines
+ * <br/>Waits for JMS Object messages containing ESB messages
+ * <br/>When one is received, instantiates an action processing pipeline to process it
+ * <br/>Pipeline is started in new Thread
+ */
+ public void run()
+ {
+ _controller.register(_eprName,_epr);
+
+ while (_controller.continueLooping())
+ {
+ org.jboss.soa.esb.message.Message message = receiveEsbMessage(_controller.millisToWait());
+ if (null!=message)
+ {
+ ActionUtils.setConfigTree(message,_config);
+ ActionProcessingPipeline chain = null;
+
+ try { chain = new ActionProcessingPipeline(message); }
+ catch (IllegalArgumentException e)
+ { _logger.error(e); continue; }
+ catch (ConfigurationException e)
+ { _logger.error(e); continue; }
+
+ // TODO Take care of thread pooling and (eventually) maximum child threads
+ new Thread(chain).start();
+ }
+ }
+
+ _controller.unRegister(_eprName);
+ cleanup();
+ } // _______________________________
+
+ /**
+ * Check for mandatory and optional attributes in parameter tree
+ *
+ * @throws Exception -
+ * if mandatory atts are not right or actionClass not in
+ * classpath
+ */
+ protected void checkMyParms() throws ConfigurationException
+ {
+ // Default value of obtainAttribute is null - Exception will be thrown
+ String sQueue = obtainAttribute(JMSEpr.DESTINATION_NAME_TAG, null);
+
+ _eprName = obtainAttribute(ListenerTagNames.SERVICE_NAME_TAG,null);
+
+ // No problem if selector is null - everything in queue will be returned
+ _sSelector = _config.getAttribute(JMSEpr.MESSAGE_SELECTOR_TAG);
+
+ _oQconn = null;
+ _oQsess = null;
+ _oQueue = null;
+
+ String sJndiType = obtainAttribute (JMSEpr.JNDI_TYPE_TAG ,"jboss");
+ String sJndiURL = obtainAttribute (JMSEpr.JNDI_URL_TAG ,"localhost");
+ Context oJndiCtx = AppServerContext.getServerContext(sJndiType,sJndiURL);
+
+ String sFactClass = obtainAttribute(JMSEpr.CONNECTION_FACTORY_TAG, "ConnectionFactory");
+ _epr = new JMSEpr(JMSEpr.QUEUE_TYPE,sQueue,sFactClass
+ ,sJndiType,sJndiURL,_sSelector);
+
+ Exception thrown = null;
+ try
+ {
+ Object tmp = oJndiCtx.lookup(sFactClass);
+ QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
+
+ _oQconn = qcf.createQueueConnection();
+ _oQueue = (Queue) oJndiCtx.lookup(sQueue);
+ _oQsess = _oQconn.createQueueSession(false,TopicSession.AUTO_ACKNOWLEDGE);
+ _oQconn.start();
+ _receiver = _oQsess.createReceiver(_oQueue, _sSelector);
+ }
+ catch (javax.naming.NamingException e) { thrown = e; }
+ catch (JMSException e) { thrown = e; }
+ throw new ConfigurationException(thrown);
+
+ } // ________________________________
+
+ protected org.jboss.soa.esb.message.Message receiveEsbMessage(long millis)
+ {
+ javax.jms.Message jmsMessage = null;
+ try { jmsMessage = _receiver.receive(millis); }
+ catch (JMSException oJ)
+ {
+ _logger.error("JMS error on receive. Attempting JMS Destination reconnect.", oJ);
+ for (int i1 = 0; i1 < 3; i1++)
+ // try to reconnect to the queue
+ try { checkMyParms(); }
+ catch (Exception e)
+ {
+ _logger.error("Reconnecting to Queue", e);
+ try { Thread.sleep(_iSleepForRetry); }
+ catch (InterruptedException e1)
+ { // Just return after logging
+ _logger.error("Unexpected thread interupt exception.", e);
+ return null;
+ }
+ }
+ }
+ if (null == jmsMessage)
+ return null;
+
+ if (!(jmsMessage instanceof ObjectMessage))
+ {
+ _logger.error("Unsupported JMS message type: " + jmsMessage.getClass().getName());
+ return null;
+ }
+ try
+ {
+ return (org.jboss.soa.esb.message.Message)((ObjectMessage)jmsMessage).getObject();
+ }
+ catch (JMSException e1)
+ { _logger.error("Failed to read Serialized Object from JMS message.", e1);
+ return null;
+ }
+ catch (ClassCastException e2)
+ { _logger.error("Object in JMS message is not a org.jboss.soa.esb.message.Message", e2);
+ }
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#close()
+ */
+
+ protected void cleanup()
+ {
+ if (null != _oQsess)
+ try { _oQsess.close(); }
+ catch (Exception e1) {/* Tried my best - Just continue */ }
+ if (null != _oQconn)
+ try { _oQconn.close(); }
+ catch (Exception e2) {/* Tried my best - Just continue */ }
+ }
+
+ protected String obtainAttribute(String p_sAtt, String p_sDefault)
+ throws ConfigurationException
+ {
+ String sVal = _config.getAttribute(p_sAtt);
+ if ((null == sVal) && (null == p_sDefault))
+ throw new ConfigurationException("Missing or invalid <" + p_sAtt + "> attribute");
+
+ return (null != sVal) ? sVal : p_sDefault;
+ } // ________________________________
+
+ protected EsbListenerController _controller;
+ protected ConfigTree _config;
+ protected String _eprName;
+ protected JMSEpr _epr;
+ protected MessageConsumer _receiver;
+ protected boolean _bError = false;
+ protected QueueConnection _oQconn;
+ protected QueueSession _oQsess;
+ protected Queue _oQueue;
+ protected String _sSelector;
+ protected int _iSleepForRetry;
+
+ protected static transient Logger _logger = Logger.getLogger(JmsQueueListener.class);
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/easier2ReadExample.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/easier2ReadExample.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/easier2ReadExample.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,36 @@
+<EsbListenerControllerExample
+ parameterReloadSecs="180"
+>
+ <ListenJmsQueueExample
+ epr-name="myEprMnemonicName"
+ listenerClass="org.jboss.soa.esb.message.listeners.JmsQueueListener"
+ connection-factory="ConnectionFactory"
+ destination-type="queue"
+ destination-name="queue/A"
+ jndi-type="jboss"
+ jndi-URL="localhost"
+ message-selector="service='handOfGod'"
+ >
+ <action class="org.jboss.soa.esb.actions.templates.MockMessageAction" />
+ <action class="org.jboss.soa.esb.actions.templates.MockMessageAction" process="process222" />
+ <action class="org.jboss.soa.esb.actions.templates.MockMessageAction"
+ process="noOperation" okMethod="endOfChainNotification"/>
+
+ <NotificationList type="OK">
+ <target class="NotifyFiles">
+ <file URI="file:///E:/tmp/jbossEsb/notifyDir/GpListenerExample.notifOK"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+
+ <NotificationList type="err">
+ <target class="NotifyFiles">
+ <file URI="file:///E:/tmp/jbossEsb/notifyDir/GpListenerExample.notifErr"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+ </ListenJmsQueueExample>
+
+</EsbListenerControllerExample>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/example.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/example.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/message/example.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,44 @@
+<EsbListenerControllerExample
+ parameterReloadSecs="180"
+>
+ <ListenJmsQueueExample
+ service-name="myServiceName"
+ listenerClass="org.jboss.soa.esb.message.listeners.JmsQueueListener"
+ connection-factory="ConnectionFactory"
+ destination-type="queue"
+ destination-name="queue/A"
+ jndi-type="jboss"
+ jndi-URL="localhost"
+ message-selector="service='maradona'"
+ >
+ <!-- next line will call (default) process(Message) method with no notification for step -->
+ <action class="org.jboss.soa.esb.actions.templates.MockMessageAction" />
+ <!-- next line will call process222(Message) method with no notification for step -->
+ <action class="org.jboss.soa.esb.actions.templates.MockMessageAction" process="process222" />
+ <!-- next line will call (default) process(Message) - on success=>invoke myOkMethod1 -->
+ <action class="org.jboss.soa.esb.actions.templates.MockMessageAction" okMethod="myOkMethod1" />
+ <action class="org.jboss.soa.esb.actions.templates.MockMessageAction" process="process222"
+ okMethod="myMethod2" />
+ <!-- next line would be useful to notify end of action chain process=noOperation (see class)-->
+ <action class="org.jboss.soa.esb.actions.templates.MockMessageAction" process="noOperation" />
+ <!-- example of a method that will always throw an Exception -->
+ <action class="org.jboss.soa.esb.actions.templates.MockMessageAction" process="justThrow" exceptionMethod="exceptionCallback1"/>
+
+ <NotificationList type="OK">
+ <target class="NotifyFiles">
+ <file URI="file:///E:/tmp/jbossEsb/notifyDir/GpListenerExample.notifOK"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+
+ <NotificationList type="err">
+ <target class="NotifyFiles">
+ <file URI="file:///E:/tmp/jbossEsb/notifyDir/GpListenerExample.notifErr"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+ </ListenJmsQueueExample>
+
+</EsbListenerControllerExample>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/AbstractListener.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/AbstractListener.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/AbstractListener.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,293 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.listeners.old;
+
+import java.util.Arrays;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.ActionDefinition;
+import org.jboss.soa.esb.actions.ActionDefinitionFactory;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+
+/**
+ * Base abstract listener implementation.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public abstract class AbstractListener implements Runnable {
+
+ /**
+ * Name constant def for the Message attachemnt carrying the list of actions to be applied to the
+ * incomming message. This allows the configured processing pipeline to be overridden by the Message
+ * producer.
+ */
+ public static final String MESSAGE_PROCESSING_ACTIONS_LIST = "MESSAGE_PROCESSING_ACTIONS_LIST";
+
+ // You can override these values at constructor time of your
+ // derived class after calling super(GpListener,ConfigTree)
+ protected int m_iSleepForThreads = 3000; // default sleep if no threads available
+ protected int m_iUpperThreadLimit = 10; // just in case - override if you wish
+
+ protected int m_iQthr = 0, m_iMaxThr;
+
+ protected ThreadGroup m_oThrGrp = null;
+ protected Logger logger;
+ protected GpListener m_oDad;
+ protected ConfigTree listenerConfig;
+ protected String[] m_oActions;
+ protected ActionDefinitionFactory m_oActionDefinitionFactory;
+ protected MessageFactory m_oMsgFactory;
+
+ protected AbstractListener(GpListener p_oDad, ConfigTree p_oParms, ActionDefinitionFactory actionDefinitionFactory) throws Exception {
+
+ logger = Logger.getLogger(this.getClass());
+ m_oDad = p_oDad;
+ listenerConfig = p_oParms.cloneObj();
+ m_oActionDefinitionFactory = actionDefinitionFactory;
+ m_oMsgFactory = MessageFactory.getInstance();
+ m_oThrGrp = new ThreadGroup(listenerConfig.getName());
+
+ String sAtt = GpListener.obtainAtt(listenerConfig, GpListener.PARM_ACTIONS, "");
+ if(!sAtt.trim().equals("")) {
+ m_oActions = sAtt.split(",");
+ }
+
+ sAtt = GpListener.obtainAtt(listenerConfig, GpListener.PARM_MAX_THREADS, "1");
+ int iMax = Integer.parseInt(sAtt);
+ m_iMaxThr = Math.min(iMax, m_iUpperThreadLimit);
+ } // __________________________________
+
+ /**
+ * Implement run method for this Runnable <p/> Will continue to run until
+ * controlling class (ref in m_oDad) indicates no more looping allowed for
+ * all child classes <p/> This condition will not prevent child processes to
+ * finish normally
+ */
+ public void run() {
+ while (m_oDad.continueLooping()) {
+ Object[] processList = receive();
+ if (null==processList) {
+ try { Thread.sleep(500); }
+ catch(InterruptedException e) {/* ok do nothing */}
+ } else {
+ for (Object currentObj : processList) {
+ if (m_iQthr >= m_iMaxThr) {
+ logger.info("Waiting for available threads...(max=" + m_iMaxThr + ")");
+ try {
+ Thread.sleep(m_iSleepForThreads);
+ } catch (InterruptedException e) {
+ return;
+ }
+ break;
+ }
+
+ // Spawn a thread and push the message message through the pipeline...
+ ActionProcessingPipeline runner = new ActionProcessingPipeline(currentObj);
+ new Thread(runner).start();
+ incThreads();
+ }
+ }
+ }
+
+ // Wait for all the processing pipelines to complete before closing the listener and existing...
+ while(m_iQthr > 0) {
+ logger.info("Waiting for all processing pipelines to complete.");
+ try {
+ Thread.sleep(200);
+ } catch (InterruptedException e) {
+ logger.warn("Thread interrupted while waiting for all processing pipelines to complete.", e);
+ }
+ }
+
+ logger.info("All processing pipelines complete. Closing listener now.");
+
+ close();
+ }
+
+ /**
+ * Receive message from underlying channel implementation.
+ * <p/>
+ * Implementations must perform a blocking receive.
+ * @return An array of Objects received on the channel.
+ */
+ protected abstract Object[] receive();
+
+ /**
+ * Called on the listener implementation when pipeline processing error has occured.
+ * @param initialMsg The message that was initialy supplied to the pipeline.
+ * @param processor The processor that raised the error. Can be null where the error was raised before
+ * pipeline processing of the message.
+ * @param error The error. Can be null.
+ */
+ protected abstract void processingError(Object initialMsg, ActionProcessor processor, Throwable error);
+
+ /**
+ * Called on the listener implementation when pipeline processing of a message is complete.
+ * @param initialMsg The message that was initialy supplied to the pipeline.
+ */
+ protected abstract void processingComplete(Object initialMsg);
+
+ /**
+ * Close the listener implemenation.
+ * <p/>
+ * Allows the listener to perform relevant close/cleanup tasks.
+ */
+ protected abstract void close();
+
+ /**
+ * Increment the active thread count.
+ */
+ private void incThreads() {
+ m_iQthr++;
+ }
+
+ /**
+ * Decrement the active thread count.
+ */
+ private void decThreads() {
+ m_iQthr--;
+ }
+
+ /**
+ * Action Processing Pipeline.
+ * <p/>
+ * Runs the actions in a listeners "actions" config on a message payload message received
+ * by the listener implementation.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+ private class ActionProcessingPipeline implements Runnable {
+
+ private Object initialObject;
+
+ /**
+ * Private constructor.
+ * @param pMessage The inital processing target message.
+ */
+ private ActionProcessingPipeline(Object obj) {
+ initialObject = obj;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Runnable#run()
+ */
+ public void run() {
+ String currentAction = null;
+ ActionProcessor currentProcessor = null;
+
+ try {
+ Message message;
+ String[] actions;
+
+ if(initialObject instanceof Message) {
+ message = (Message)initialObject;
+ } else {
+ message = m_oMsgFactory.getMessage();
+ ActionUtils.setTaskObject(message,initialObject);
+ }
+
+ actions = getActions(message);
+
+ // Run the message through each ActionProcessor...
+ for(String action : actions) {
+ ActionDefinition actionDefinition;
+
+ currentAction = action.trim();
+ actionDefinition = m_oActionDefinitionFactory.getInstance(currentAction);
+ if(actionDefinition == null) {
+ throw new java.lang.IllegalStateException("Bad Listener Configuration. No 'Actions/Action' definition for action [" + currentAction + "].");
+ }
+
+ // The processing result of each action feeds into the processing of the next action...
+ currentProcessor = actionDefinition.getProcessor();
+ try {
+ ActionUtils.copyCurrentToPrevious(message);
+ message = currentProcessor.process(message);
+ } catch (Exception e) {
+ GpListener.notifyError(listenerConfig, e, currentProcessor.getErrorNotification(message));
+ throw e;
+ }
+
+ if(message == null && action != m_oActions[m_oActions.length - 1]) {
+ String exceptionMessage = "Premature termination of action processing pipeline [" + Arrays.asList(m_oActions) + "]. ActionProcessor [" + currentProcessor.getClass().getName() + "] returned a null message result on processing of action [" + currentAction + "].";
+ processingError(initialObject, currentProcessor, new ActionProcessingException(exceptionMessage));
+ logger.warn(exceptionMessage);
+ return;
+ }
+ // Notify on all processors. May want to do this differently in the future i.e. more selectively ...
+ GpListener.notifyOK(listenerConfig, currentProcessor.getOkNotification(message));
+
+ // Setup the message for processing by the next processor...
+ if(message != null) {
+ message.getBody().remove(ActionUtils.BEFORE_ACTION);
+ }
+ }
+
+ processingComplete(initialObject);
+ } catch(Throwable thrown) {
+ processingError(initialObject, currentProcessor, thrown);
+ logger.error("Premature termination of action processing pipeline [" + (m_oActions != null?Arrays.asList(m_oActions):"") + "]. Action [" + currentAction + "] threw an exception.", thrown);
+ } finally {
+ // Decrement the active thread count for the listener on completion...
+ decThreads();
+ }
+ }
+
+ /**
+ * Get the list of actions to be applied to the supplied message.
+ * @param message The message to be processed.
+ * @return The set of processing actions to be performed on the message.
+ * @throws ActionProcessingException Invalid actions list attachment setting.
+ */
+ private String[] getActions(Message message) throws ActionProcessingException {
+ // Check is there an attachment specifying an override pipeline config...
+ Object overrideActionsAttachment = message.getAttachment().get(MESSAGE_PROCESSING_ACTIONS_LIST);
+ if(overrideActionsAttachment != null) {
+ if(overrideActionsAttachment instanceof String) {
+ String overrideActions = (String)overrideActionsAttachment;
+
+ if(overrideActions.trim().equals("")) {
+ throw new ActionProcessingException("Message attachement [" + MESSAGE_PROCESSING_ACTIONS_LIST + "] was specified but with an empty value. Aborting message processing.");
+ }
+
+ return overrideActions.split(",");
+ } else {
+ throw new ActionProcessingException("Message attachement [" + MESSAGE_PROCESSING_ACTIONS_LIST + "] must be of type java.lang.String. Received [" + overrideActionsAttachment.getClass().getName() + "]. Aborting message processing.");
+ }
+ } else {
+ // Otherwise use the actions configured on the listener...
+ if(m_oActions == null || m_oActions.length == 0) {
+ throw new ActionProcessingException("No actions configuration specified either on the listener or as a Message attachement [" + MESSAGE_PROCESSING_ACTIONS_LIST + "]. Aborting message processing.");
+ }
+ return m_oActions;
+ }
+ }
+ }
+
+} // ____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/AbstractPoller.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/AbstractPoller.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/AbstractPoller.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,111 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.listeners.old;
+
+import java.util.List;
+
+import org.jboss.soa.esb.actions.ActionDefinitionFactory;
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+/**
+ * Abstract Polling Listener.
+ * <p/>
+ * Polling listeners are listener implementations that periodically poll for message objects
+ * that require processing. This type of listener implementation is required where the underlying
+ * message channel doesn't support a blocking receive operation.
+ *
+ * @author Esteban
+ */
+public abstract class AbstractPoller extends AbstractListener {
+
+ // You can override these values at constructor time of your
+ // derived class after calling super(GpListener,ConfigTree)
+ protected int m_iMinPollMillis = 3000 // minimum polling interval
+ , m_iDfltPollMillis = 20000 // default polling interval
+ ;
+
+ public static final String PARM_POLL_LTCY = "pollLatencySecs";
+
+ protected int m_iPollMillis;
+
+ /**
+ * Construct an abstract polling listener.
+ * @param commandListener The command listener.
+ * @param listenerConfig The configuration for this polling listener.
+ * @param actionDefinitionFactory The action definition factory for the bus.
+ * @throws Exception
+ */
+ protected AbstractPoller(GpListener commandListener, ConfigTree listenerConfig, ActionDefinitionFactory actionDefinitionFactory) throws Exception {
+ super(commandListener, listenerConfig, actionDefinitionFactory);
+
+ String sAtt = listenerConfig.getAttribute(PARM_POLL_LTCY);
+ m_iPollMillis = (null == sAtt) ? m_iDfltPollMillis : 1000 * Integer.parseInt(sAtt);
+ if (m_iPollMillis < m_iMinPollMillis) {
+ m_iPollMillis = m_iMinPollMillis;
+ }
+ }
+
+ /**
+ * Polling listener receive implementation.
+ * @return An array of objects polled from the concrete Poller implementation.
+ */
+ protected Object[] receive() {
+ while (m_oDad.continueLooping()) {
+ List<Object> olPending = pollForCandidates();
+
+ if (olPending == null || olPending.isEmpty()) {
+ try {
+ Thread.sleep(m_iPollMillis);
+ } catch (InterruptedException e) {
+ logger.error("Unexpected thread interupt exception. Not terminating blocking receive!!", e);
+ }
+ continue;
+ } else {
+ Object[] objForProcessing = new Object[olPending.size()];
+
+ // Preprocess all the message objects.
+ // TODO: I really think this is no longer required or a good idea!!
+ for(int i = 0; i < olPending.size(); i++) {
+ objForProcessing[i] = preProcess(olPending.get(i));
+ }
+ return objForProcessing;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Poll for message objects.
+ * @return A list of message objects, or an empty list if there are no message objects.
+ */
+ protected abstract List<Object> pollForCandidates();
+
+ /**
+ * Preprocess the message object before returning for pipeline processing.
+ * @param message Message object for preprocessing.
+ * @return The preprocessed message object, or the supplied message unmodified.
+ */
+ protected abstract Object preProcess(Object message);
+ // TODO: Is this "preprocessing" step needed now that we have processing pipelines on listeners???
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/DirectoryPoller.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/DirectoryPoller.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/DirectoryPoller.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,263 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.listeners.old;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.net.URI;
+import java.util.Arrays;
+import java.util.List;
+
+import org.jboss.soa.esb.actions.ActionDefinitionFactory;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.util.Util;
+
+public class DirectoryPoller extends AbstractPoller
+{
+ public static final String FILE_INPUT_DIR = "inputDirURI";
+ public static final String FILE_INPUT_SFX = "inputSuffix";
+ public static final String FILE_WORK_SFX = "workSuffix";
+ public static final String FILE_ERROR_DIR = "errorDirURI";
+ public static final String FILE_ERROR_SFX = "errorSuffix";
+ public static final String FILE_POST_DIR = "postDirURI";
+ public static final String FILE_POST_SFX = "postSuffix";
+ public static final String FILE_POST_DEL = "postDelete";
+
+ public DirectoryPoller(GpListener p_oDad, ConfigTree p_oParms, ActionDefinitionFactory actionDefinitionFactory) throws Exception
+ {
+ super(p_oDad, p_oParms, actionDefinitionFactory);
+ checkMyParms();
+ } //__________________________________
+
+
+ protected File m_oInpDir ,m_oErrorDir ,m_oPostDir;
+ protected FileFilter m_oFFilt;
+ protected String m_sInpSfx ,m_sWrkSfx ,m_sErrSfx ,m_sPostSfx;
+ protected boolean m_bPostDel;
+
+ /**
+ *
+ * @param inputObject Object - Must be a File representing the file that has to be processed
+ * @return Object - an array of 3 Files containing:
+ * <p/>[0] renamed file (workSuffix appended to input file name)
+ * <p/>[1] target file name in case actionClass is unable to complete successfuly
+ * <p/>[2] target file name in case actionClass finishes successfuly
+ */
+ @Override
+ public Object preProcess(Object inputObject)
+ {
+ if (!(inputObject instanceof File)) {
+ return null;
+ }
+
+ File inputFile = (File)inputObject;
+ WorkingFile workingFile = new WorkingFile(inputFile.getParentFile(), inputFile.getName() + m_sWrkSfx);
+
+ if (!inputFile.renameTo(workingFile)) {
+ return null;
+ }
+
+ workingFile.postDelete = m_bPostDel;
+ workingFile.inputFile = inputFile;
+ workingFile.errorFile = new File (m_oErrorDir ,inputFile.getName()+m_sErrSfx);
+ workingFile.outputFile = new File (m_oPostDir ,inputFile.getName()+m_sPostSfx);
+
+ return workingFile;
+ } //________________________________
+
+ @Override
+ protected List<Object> pollForCandidates()
+ {
+ File[] oaF = m_oInpDir.listFiles(m_oFFilt);
+ return Arrays.asList((Object[])oaF);
+ } //________________________________
+
+ private void checkMyParms() throws Exception
+ {
+ // INPUT directory and suffix (used for FileFilter)
+ String sInpDir = GpListener.obtainAtt(listenerConfig,FILE_INPUT_DIR,null);
+ m_oInpDir = getFile(sInpDir);
+ seeIfOkToWorkOnDir(m_oInpDir);
+
+ m_sInpSfx = GpListener.obtainAtt(listenerConfig,FILE_INPUT_SFX,null);
+ m_sInpSfx = m_sInpSfx.trim();
+ if (m_sInpSfx.length()<1)
+ throw new Exception ("Invalid "+FILE_INPUT_SFX+" attribute");
+ m_oFFilt = new FileEndsWith(m_sInpSfx);
+
+ // WORK suffix (will rename in input directory)
+ m_sWrkSfx = GpListener.obtainAtt(listenerConfig,FILE_WORK_SFX,".esbWork").trim();
+ if (m_sWrkSfx.length()<1)
+ throw new Exception ("Invalid "+FILE_WORK_SFX+" attribute");
+ if (m_sInpSfx.equals(m_sWrkSfx))
+ throw new Exception("Work suffix must differ from input suffix <"+m_sWrkSfx+">");
+
+ // ERROR directory and suffix (defaults to input dir and ".esbError" suffix)
+ String sErrDir = GpListener.obtainAtt(listenerConfig,FILE_ERROR_DIR,sInpDir);
+ m_oErrorDir = getFile(sErrDir);
+ seeIfOkToWorkOnDir(m_oErrorDir);
+
+ m_sErrSfx = GpListener.obtainAtt(listenerConfig,FILE_ERROR_SFX,".esbError").trim();
+ if (m_sErrSfx.length()<1)
+ throw new Exception ("Invalid "+FILE_ERROR_SFX+" attribute");
+ if (m_oErrorDir.equals(m_oInpDir) && m_sInpSfx.equals(m_sErrSfx))
+ throw new Exception("Error suffix must differ from input suffix <"+m_sErrSfx+">");
+
+
+ // Do users wish to delete files that were processed OK ?
+ String sPostDel = GpListener.obtainAtt(listenerConfig,FILE_POST_DEL,"false").trim();
+ m_bPostDel = Boolean.parseBoolean(sPostDel);
+ if (m_bPostDel)
+ return;
+
+ // POST (done) directory and suffix (defaults to input dir and ".esbDone" suffix)
+ String sPostDir = GpListener.obtainAtt(listenerConfig,FILE_POST_DIR,sInpDir);
+ m_oPostDir = getFile(sPostDir);
+ seeIfOkToWorkOnDir(m_oPostDir);
+ m_sPostSfx = GpListener.obtainAtt(listenerConfig,FILE_POST_SFX,".esbDone").trim();
+ if (m_oPostDir.equals(m_oInpDir))
+ { if (m_sPostSfx.length()<1)
+ throw new Exception ("Invalid "+FILE_POST_SFX+" attribute");
+ if (m_sPostSfx.equals(m_sInpSfx))
+ throw new Exception("Post process suffix must differ from input suffix <"+m_sPostSfx+">");
+ }
+
+ } //________________________________
+
+ private File getFile(String file) {
+ try {
+ return new File(new URI(file));
+ } catch(Exception e) {
+ return new File(file);
+ }
+ }
+
+ protected void seeIfOkToWorkOnDir (File p_oDir) throws Exception
+ {
+ if (! p_oDir.exists())
+ throw new Exception ("Directory "+p_oDir.toString()+" not found");
+ if (!p_oDir.isDirectory())
+ throw new Exception(p_oDir.toString()+" is not a directory");
+ if (!p_oDir.canRead())
+ throw new Exception("Can't read directory "+p_oDir.toString());
+ if (! p_oDir.canWrite())
+ throw new Exception ("Can't write/rename in directory "+p_oDir.toString());
+ } //________________________________
+
+
+ private class FileEndsWith implements FileFilter
+ {
+ String m_sSuffix;
+ FileEndsWith(String p_sEnd) throws Exception
+ {
+ m_sSuffix = p_sEnd;
+ if (Util.isNullString(m_sSuffix))
+ throw new Exception("Must specify file extension");
+ } //______________________________
+
+ public boolean accept(File p_f)
+ { return (p_f.isFile())
+ ? p_f.toString().endsWith(m_sSuffix)
+ : false;
+ } //______________________________
+ } //____________________________________________________
+
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#close()
+ */
+ @Override
+ protected void close() {
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#processingError(java.lang.Object, org.jboss.soa.esb.actions.ActionProcessor, java.lang.Throwable)
+ */
+ @Override
+ protected void processingError(Object currentObject, ActionProcessor processor, Throwable error) {
+
+ if (null!=currentObject)
+ { WorkingFile workingFile = (WorkingFile) currentObject;
+ workingFile.renameToError();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#processingComplete(java.lang.Object)
+ */
+ @Override
+ protected void processingComplete(Object currentObject) {
+ WorkingFile workingFile = (WorkingFile) currentObject;
+
+ // Delete or rename the file...
+ if (workingFile.postDelete) {
+ workingFile.delete();
+ } else {
+ workingFile.renameToOutputFile();
+ }
+ }
+
+ /**
+ * Working file.
+ * <p/>
+ * Once the directory poller picks up on an input file, it immediately renames it to a working file
+ * in order to avoid a situation where the file gets processed again.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+ public static class WorkingFile extends File {
+ private static final long serialVersionUID = 1L;
+
+ private boolean postDelete;
+ public boolean isPostDelete() { return postDelete; }
+
+ private File inputFile, errorFile, outputFile;
+
+ public WorkingFile(String filename) {
+ super(filename);
+ }
+
+ public WorkingFile(File parentFile, String filename) {
+ super(parentFile, filename);
+ }
+
+ public boolean renameToError() {
+ return renameTo(errorFile);
+ }
+
+ public boolean renameToOutputFile() {
+ return renameTo(outputFile);
+ }
+
+ /**
+ * Get the File instance representing the original input file.
+ * @return Original input file.
+ */
+ public File getInputFile() {
+ return inputFile;
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/GpListener.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/GpListener.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/GpListener.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,660 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.listeners.old;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.io.Serializable;
+import java.lang.reflect.Constructor;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.command.CommandQueue;
+import org.jboss.internal.soa.esb.command.CommandQueueException;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.ActionDefinitionFactory;
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.common.ModulePropertyManager;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.notification.NotificationList;
+import org.jboss.soa.esb.parameters.ParamRepositoryException;
+import org.jboss.soa.esb.parameters.ParamRepositoryFactory;
+import org.jboss.soa.esb.services.NotificationHandlerFactory;
+import org.jboss.soa.esb.services.NotificationManager;
+import org.jboss.soa.esb.util.Util;
+import org.xml.sax.SAXException;
+
+/**
+ * Controlling class that will launch listener child threads for supported
+ * transport listener classes, as indicated in the configuration XML tree
+ * pointed by arg[0]
+ *
+ * <p />
+ * Can be launched as uppermost controller (it has a main(args) method)
+ * <p />
+ * Also implements Runnable, and can thus be launched in a child thread from an
+ * upper controlling process
+ * <p />
+ * Listens on a JMS queue (with an optional message selector) for commands (e.g.
+ * Quiesce, Reload Parameters, Set End Time, etc.)
+ * <p />
+ * Parameter reloading can also be set using the PARM_RELOAD_SECS attribute
+ * <p />
+ * End time for this instance can also be set using the PARM_END_TIME attribute
+ * <p />
+ *
+ * @author Esteban
+ *
+ */
+public class GpListener implements Runnable {
+
+ private static Logger m_oLogger = Logger.getLogger(GpListener.class);
+
+ public static void main(String[] args) throws Exception {
+ GpListener oProc = new GpListener(args[0]);
+ oProc.run();
+ GpListener.State oS = oProc.getState();
+
+ if (null != oS.getException()) {
+ m_oLogger.error("GpListener <" + args[0] + "> FAILED\n", oS
+ .getException());
+ }
+ System.exit(oS.getCompletionCode());
+ } // ________________________________
+
+ protected int m_iDfltReloadMillis = 180000 // default interval between
+ // parameter reloads
+ ;
+
+ public static final String PARM_RELOAD_SECS = "parameterReloadSecs";
+ public static final String PARM_END_TIME = "endTime";
+
+ // Attribute name that denotes listener class to be instantiated in a child
+ // thread
+ // This attribute is not in the root node but in first level child
+ // ConfigTrees
+ public static final String PARM_LISTENER_CLASS = "listenerClass";
+ public static final String PARM_ACTIONS = "actions";
+ public static final String PARM_MAX_THREADS = "maxThreads";
+ public static final String CHLD_EMAIL_PARMS = "EmailProperties";
+
+ private String m_sParmsName;
+ private ConfigTree m_oParms;
+
+ private HashMap<String, Object> m_oAtts;
+
+ /**
+ * Obtain a shallow copy of needed atributes in this object's last loaded
+ * parameter tree <p/>The local bject is cloned so child threads can use it
+ * as they choose to without interfering with the environment
+ * <p />
+ * Listener processes controlled by this object should keep a reference to
+ * this object at construction time, and not call this method again unless
+ * they specifically need updated values. Parameter reload could have
+ * happened since last call
+ *
+ * @return Map - a shallow copy of the attributes Map
+ */
+ @SuppressWarnings("unchecked")
+ public Map<String, Object> getControllerAttributes() {
+ return (Map<String, Object>) m_oAtts.clone();
+ }
+
+ private boolean m_bReloadRequested, m_bEndRequested;
+
+ private long m_lNextReload = Long.MAX_VALUE;
+
+ private long m_lEndTime = Long.MAX_VALUE;
+
+ public static final SimpleDateFormat s_oDateParse = new SimpleDateFormat(
+ "yyyyMMdd hh:mm:ss");
+
+ private State m_oState = null;
+
+ public State getState() {
+ return m_oState;
+ }
+
+ public static enum State {
+ Loading_parameters, Running, Shutting_down, Done_OK, Exception_thrown;
+ int m_iCompletionCode = 0;
+
+ Exception m_oException = null;
+
+ public int getCompletionCode() {
+ return m_iCompletionCode;
+ };
+
+ public Exception getException() {
+ return m_oException;
+ }
+ };
+
+ private CommandQueue commandQueue;
+
+ private ActionDefinitionFactory actionDefinitionFactory;
+
+ private static CommandQueue defaultCommandQueue = null;
+
+ /**
+ * Package pivate default constructor.
+ */
+ protected GpListener() {
+ }
+
+ /**
+ * Construct a Listener Manager from the named repository based
+ * configuration.
+ *
+ * @param p_sParameterName
+ * Name of the Repository entry containing the configuration.
+ * @throws Exception
+ * Unable to load/use the named configuration.
+ */
+ public GpListener(String p_sParameterName) throws Exception {
+ this(GpListener.getListenerConfig(p_sParameterName));
+ m_sParmsName = p_sParameterName;
+ }
+
+ /**
+ * Construct a Listener Manager using the specified listener configuration.
+ *
+ * @param config
+ * The configuration.
+ * @throws Exception
+ * Unable to load/use the supplied configuration.
+ */
+ public GpListener(ConfigTree config) throws Exception {
+ m_oParms = config;
+ m_oState = State.Loading_parameters;
+
+ try {
+ checkParms(m_oParms);
+ setEmailSystemProperties();
+ } catch (Exception e) {
+ String configSource = config.getAttribute("configSource");
+
+ m_oState = State.Exception_thrown;
+ m_oState.m_oException = e;
+ m_oLogger.fatal("Listener configuration and startup error. Config Source: "
+ + (configSource != null ? configSource
+ : "unknown"), e);
+
+ throw e;
+ }
+ }
+
+ /**
+ * Load the named listener configuration from the configured parameter
+ * repository.
+ *
+ * @param reposParam
+ * The name of the repository entry containing the Listener
+ * configuration.
+ * @return Listener Configuration as {@link ConfigTree}.
+ * @throws IOException
+ * Unable to access the repository.
+ * @throws ParamRepositoryException
+ * Unable to access the configuration in the repository.
+ * @throws SAXException
+ * Unable to parse the configuration.
+ */
+ private static ConfigTree getListenerConfig(String reposParam)
+ throws IOException, ParamRepositoryException, SAXException {
+ String sXml = ParamRepositoryFactory.getInstance().get(reposParam);
+ ConfigTree config = ConfigTree.fromXml(sXml);
+
+ config.setAttribute("configSource", "param-repository:" + reposParam);
+
+ return config;
+ }
+
+ /**
+ * Check to see if all needed parameters are there, and assign default
+ * values to some of them
+ *
+ * @param p_oP
+ * ConfigTree - Where to look for the mandatory/optional
+ * configuration attributes
+ * @throws Exception -
+ * If attributes are wrong or not enough for a proper runtime
+ * configuration
+ */
+ public void checkParms(ConfigTree p_oP) throws Exception {
+ // We've just loaded - set to false until next reload requested
+ m_bReloadRequested = false;
+ commandQueue = createCommandQueue(p_oP);
+
+ // Open the command queue...
+ if (null!=commandQueue)
+ commandQueue.open(p_oP);
+
+ // if PARM_RELOAD_SECS not set, and no command queue
+ // then reload every 10 minutes
+ // If there is a command queue, run until command is received
+ String sRldSecs = p_oP.getAttribute(PARM_RELOAD_SECS);
+ m_lNextReload = (null != sRldSecs)
+ ? System.currentTimeMillis() + 1000 * Long.parseLong(sRldSecs)
+ : (null == commandQueue)
+ ? Long.MAX_VALUE
+ : System.currentTimeMillis() + m_iDfltReloadMillis;
+
+ // if PARM_END_TIME not set try to run forever
+ // not a good practice if command queue is not set
+ // Expected date format is "yyyyMMdd hh:mm:ss"
+ String sEndT = p_oP.getAttribute(PARM_END_TIME);
+ m_lEndTime = (null == sEndT) ? Long.MAX_VALUE : s_oDateParse.parse(
+ sEndT).getTime();
+
+ // Read and initialise the action definitions...
+ ConfigTree actionConfig = p_oP.getFirstChild("Actions");
+ if(actionConfig == null) {
+ throw new ConfigurationException("No 'Actions' configuration.");
+ }
+ actionDefinitionFactory = new ActionDefinitionFactory(actionConfig);
+
+ } // ________________________________
+
+ /**
+ * Factory method for creating the command queue.
+ * @param config GpListener config.
+ * @return GpListener CommandQueue instance.
+ */
+ private CommandQueue createCommandQueue(ConfigTree config) {
+ String commandQueueClass = config.getAttribute("command-queue-class");
+
+ if(commandQueueClass != null) {
+ try {
+ return (CommandQueue) Class.forName(commandQueueClass).newInstance();
+ } catch (Exception e) {
+ m_oLogger.error("Failed to instantiate CommandQueue ["+ commandQueueClass + "]. Defaulting to no Command Queue", e);
+ }
+ }
+
+ return defaultCommandQueue;
+ }
+
+ /**
+ * Allows a default command queue to be set statically for all GpListener instances.
+ * @param defaultCommandQueue The defaultCommandQueue to set.
+ */
+ public static void setDefaultCommandQueue(CommandQueue defaultCommandQueue) {
+ GpListener.defaultCommandQueue = defaultCommandQueue;
+ }
+
+ /**
+ * Main execution loop <p/> Will continue to run until either <p/>a) run
+ * time is expired <p/>b) quiesce command is received in command queue
+ * <p/>For every child element that contains a PARM_LISTENER_CLASS
+ * attribute, this method will try to launch a child thread instantiating an
+ * object of that class, and will call it's run() method <p/>Once all child
+ * processes are trigered, the main thread will either <p/>1) wait for a
+ * message in the command queue (if one was configured) until next reload or
+ * end of run period expired <p/>or 2) Just sleep if there's no command
+ * queue to listen on
+ */
+ public void run() {
+ while (endNotRequested()) {
+ m_oState = State.Running;
+ for (ConfigTree oCurr : m_oParms.getAllChildren()) {
+ String sClass = oCurr.getAttribute(PARM_LISTENER_CLASS);
+ if (Util.isNullString(sClass))
+ continue;
+ tryToLaunchChildListener(oCurr, sClass);
+ }
+
+ waitForCmdOrSleep();
+
+ if (endRequested()) {
+ break;
+ }
+ if (m_sParmsName != null && timeToReload()) {
+ try {
+ m_oState = State.Loading_parameters;
+ m_oLogger
+ .info("Reloading parameters _____________________________________________________");
+ ConfigTree oNew = GpListener.getListenerConfig(m_sParmsName);
+ checkParms(oNew);
+ m_oParms = oNew;
+ setEmailSystemProperties();
+ } catch (Exception e) {
+ m_oLogger.error("Failed to reload parameters"
+ + " - Continuing with cached version", e);
+ }
+ }
+ }
+ // m_oState = State.Shutting_down;
+
+ m_oState = State.Done_OK;
+ m_oState.m_iCompletionCode = 0;
+ m_oLogger
+ .info("Finishing_____________________________________________________");
+
+ // Close the command queue...
+ try {
+ commandQueue.close();
+ } catch (CommandQueueException e) {
+ m_oLogger.error("Error closing Command Queue.", e);
+ }
+ } // ________________________________
+
+ private void tryToLaunchChildListener(ConfigTree p_oP, String p_sClassName) {
+ try {
+ Class oListener = Class.forName(p_sClassName);
+ Constructor oConst = oListener.getConstructor(new Class[] {
+ this.getClass(), ConfigTree.class, ActionDefinitionFactory.class });
+ Runnable oRun = (Runnable) oConst.newInstance(new Object[] { this,
+ p_oP, actionDefinitionFactory });
+ new Thread(oRun).start();
+ } catch (Exception e) {
+ m_oLogger.error("Cannot launch <" + p_sClassName + ">\n", e);
+ }
+ } // ________________________________
+
+ long millisToWait() {
+ return Math.min(m_lNextReload, m_lEndTime) - System.currentTimeMillis();
+ } // ________________________________
+
+ private void waitForCmdOrSleep() {
+ long lToGo = millisToWait();
+
+ if (null == commandQueue) {
+ m_oLogger.debug("About to sleep " + lToGo);
+ // No command queue nor topic - Just sleep until time
+ // exhausted, or thread interrupted
+ try {
+ if (lToGo > 0)
+ Thread.sleep(lToGo);
+ } catch (InterruptedException e) {
+ m_lEndTime = 0; // mark as end requested and return
+ }
+ return;
+ }
+
+ // Wait for commands until time exhausted or command received
+ // Note that received commands might change time variables (reload/end)
+ // that's why time to go is recalculated on each cycle
+ while ((lToGo = millisToWait()) > 0) {
+ try {
+ m_oLogger.info("Waiting for command ... timeout=" + lToGo + " millis");
+
+ String oM = commandQueue.receiveCommand(lToGo);
+ if (null == oM) {
+ return;
+ }
+ processCommand(oM);
+ if (endRequested() || timeToReload()) {
+ break;
+ }
+ } catch (CommandQueueException eJ) {
+ m_oLogger.info("receive on command queue failed", eJ);
+ }
+ }
+ } // ________________________________
+
+ /**
+ * Processes the command that has been received in the command queue (or
+ * topic) <p/>m_bEndRequested, m_bReloadRequested, and m_lEndTime could be
+ * changed
+ *
+ * <p/> <p/><TABLE border="1"> <COLGROUP> <COL width="200"/> <COL
+ * width="400"/> </COLGROUP>
+ * <TR>
+ * <TD align="center">message text</TD>
+ * <TD align="center">effect</TD>
+ * </TR>
+ * <TR>
+ * <TD>shutdown*</TD>
+ * <TD>End time will be immediately set to 'now' - quiesce process will
+ * start - Child threads will be allowed to finish normally</TD>
+ * </TR>
+ * <TR>
+ * <TD>reload param*</TD>
+ * <TD>Parameters will be immediately reloaded, and listener reconfigured
+ * with new values</TD>
+ * </TR>
+ * <TR>
+ * <TD>endTime yyyyMMdd hh:mm:ss</TD>
+ * <TD>End time will be set to new value. If hh:mm:ss is not supplied =>
+ * end of day assumed (23:59:59)</TD>
+ * </TR>
+ * </TABLE> * startsWith() <p/>
+ *
+ * @param p_oMsg
+ * Message received from the command queue.
+ *
+ */
+ private void processCommand(String sTxt) {
+ if (null == sTxt)
+ return;
+
+ String sLow = sTxt.trim().toLowerCase();
+ if (sLow.startsWith("shutdown")) {
+ m_bEndRequested = true;
+ m_oLogger.info("Shutdown has been requested");
+ return;
+ }
+ if (sLow.startsWith("reload param")) {
+ m_bReloadRequested = true;
+ m_oLogger
+ .info("Request for parameter reload has been received");
+ return;
+ }
+ String[] sa = sLow.split("\\s+");
+ if (sa.length > 1 && "endtime".equals(sa[0])) {
+ try {
+ String sDate = sa[1];
+ String sTime = (sa.length < 3 || null == sa[2]) ? "23:59:59"
+ : sa[2];
+ Date oEnd = s_oDateParse.parse(sDate + " " + sTime);
+ m_oLogger.info("New end date set to : " + oEnd);
+ m_lEndTime = oEnd.getTime();
+ } catch (Exception eDat) {
+ m_oLogger.info("Problems with endTime command", eDat);
+ }
+ }
+ } // ________________________________
+
+ /**
+ * Accessor to determine if execution time is expired or shutdown requested
+ *
+ * @return boolean if processing has to stop (all child threads will be
+ * allowed to finish)
+ */
+ public boolean endRequested() {
+ return m_bEndRequested || System.currentTimeMillis() >= m_lEndTime;
+ }
+
+ /**
+ * Accessor to determine if execution time is not expired, and no shutdown
+ * request received
+ *
+ * @return boolean - true if run time has not expired and quiesce has not
+ * been requested
+ */
+ public boolean endNotRequested() {
+ return !endRequested();
+ }
+
+ /**
+ * Provide a common accessor to determine if parameters have to be reloaded
+ * <p/> For child threads this means thread execution has to end
+ * </p>
+ * Child processes should only call this method when they are idle (as
+ * opposed to in the middle of executing a unit of work)
+ *
+ * @return boolean - true if it's time to reload parameters
+ */
+ public boolean timeToReload() {
+ return m_bReloadRequested
+ || System.currentTimeMillis() >= m_lNextReload;
+ }
+
+ /**
+ * Helper accessor for child processes that provides info to determine if
+ * they can continue with yet another execution cycle
+ *
+ * @return boolean - true if runtime is not expired and not time yet to
+ * reload parameters
+ */
+ public boolean continueLooping() {
+ return (endNotRequested() && !timeToReload());
+ } // ________________________________
+
+ private static final String[] s_saMailProps = { Environment.SMTP_HOST,
+ Environment.SMTP_USERNAME, Environment.SMTP_PASSWORD,
+ Environment.SMTP_PORT, Environment.SMTP_FROM,
+ Environment.SMTP_AUTH };
+
+ private void setEmailSystemProperties() {
+ ConfigTree oEmail = m_oParms.getFirstChild(CHLD_EMAIL_PARMS);
+ if (null != oEmail)
+ for (String sCurr : s_saMailProps) {
+ String sProp = oEmail.getAttribute(sCurr);
+ if (null != sProp)
+ ModulePropertyManager.getPropertyManager(ModulePropertyManager.TRANSPORTS_MODULE).setProperty(sCurr, sProp);
+ }
+ } // ________________________________
+
+ /**
+ * Find an attribute in the tree (arg 0) or assign default value (arg 2)
+ *
+ * @param p_oP
+ * ConfigTree - look for attributes in this Element only
+ * @param p_sAtt
+ * String - Name of attribute to find
+ * @param p_sDefault
+ * String -default value if requested attribute is not there
+ * @return String - value of attribute, or default value (if null)
+ * @throws Exception -
+ * If requested attribute not found and no default value
+ * supplied by invoker
+ */
+ public static String obtainAtt(ConfigTree p_oP, String p_sAtt, String p_sDefault)
+ throws ConfigurationException {
+ String sVal = p_oP.getAttribute(p_sAtt);
+ if ((null == sVal) && (null == p_sDefault))
+ throw new ConfigurationException("Missing or invalid <" + p_sAtt + "> attribute");
+
+ return (null != sVal) ? sVal : p_sDefault;
+ } // ________________________________
+
+ /**
+ * Find child nodes named "NotificationList" that contain an attribute
+ * 'type' that starts with "ok" (case insensitive)
+ *
+ * @param p_oP -
+ * ConfigTree to search for "NotificationList" child Elements
+ * @param p_oSer
+ * Serializable - Will constitute the body of the notification
+ */
+ public static void notifyOK(ConfigTree p_oP, Serializable p_oSer) {
+ if(p_oSer == null) {
+ return;
+ }
+
+ try {
+ Serializable oNotif = p_oSer;
+ for (ConfigTree oCurr : p_oP
+ .getChildren(NotificationList.ELEMENT)) {
+ NotificationList oNL = new NotificationList(oCurr);
+ if (!oNL.isOK())
+ continue;
+ getNotifHandler().sendNotifications(oCurr, oNotif);
+ }
+ } catch (Exception e) {
+ }
+ } // __________________________________
+
+ /**
+ * Find child nodes named "NotificationList" that contain an attribute
+ * 'type' that starts with "err" (case insensitive) or no 'type' attribute
+ * set
+ *
+ * @param p_oP -
+ * ConfigTree to search for "NotificationList" child Elements
+ * @param p_e -
+ * Exception if not null, will be appended to the body
+ * @param p_oSer
+ * Serializable - Will be included at the beginning of the body
+ * of the notification
+ */
+ public static void notifyError(ConfigTree p_oP, Exception p_e, Serializable p_oSer) {
+ if(p_oSer == null) {
+ return;
+ }
+
+ Serializable oNotif = p_oSer;
+ ByteArrayOutputStream oBO = new ByteArrayOutputStream();
+ PrintStream oPS = new PrintStream(oBO);
+ try {
+ oPS.println(oNotif.toString());
+ if (null != p_e)
+ p_e.printStackTrace(oPS);
+ oPS.close();
+
+ String sMsg = oBO.toString();
+ for (ConfigTree oCurr : p_oP
+ .getChildren(NotificationList.ELEMENT)) {
+ NotificationList oNL = new NotificationList(oCurr);
+ if (!oNL.isErr())
+ continue;
+ getNotifHandler().sendNotifications(oNL, sMsg);
+ }
+ } catch (Exception e) {
+ }
+ } // ________________________________
+
+ private static NotificationManager s_oNH;
+
+ private static final Object s_oSync = new Integer(0);
+
+ /**
+ * Lazy instantiator of a InotificationHandler
+ *
+ * @return - a reference to an implementation of the interface or null if it
+ * can't be instantiated
+ */
+ protected static NotificationManager getNotifHandler() {
+ if (null != s_oNH)
+ return s_oNH;
+ synchronized (s_oSync) {
+ if (null == s_oNH)
+ try {
+ s_oNH = NotificationHandlerFactory.getNotifHandler(
+ "remote", Configuration.getJndiServerType(),
+ Configuration.getJndiServerURL());
+ } catch (Exception e) {
+ Logger.getLogger(GpListener.class).error(
+ "Notification FAILED", e);
+ }
+ }
+ return s_oNH;
+ } // ______________________________
+
+} // ____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/JmsQueueListener.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/JmsQueueListener.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/JmsQueueListener.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,187 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.listeners.old;
+
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.ObjectMessage;
+import javax.jms.Queue;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueSession;
+import javax.jms.TextMessage;
+import javax.jms.TopicSession;
+import javax.naming.Context;
+
+import org.jboss.soa.esb.actions.ActionDefinitionFactory;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.helpers.AppServerContext;
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+public class JmsQueueListener extends AbstractListener {
+
+ public static final String LISTEN_QUEUE_CONN_FACT = "queueConnFactoryClass";
+ public static final String LISTEN_JNDI_TYPE = "listenJndiType";
+ public static final String LISTEN_JNDI_URL = "listenJndiURL";
+ public static final String LISTEN_QUEUE = "listenQueue";
+ public static final String LISTEN_MSG_SELECTOR = "listenMsgSelector";
+
+ protected boolean m_bError = false;
+ protected QueueConnection m_oQconn;
+ protected QueueSession m_oQsess;
+ protected Queue m_oQueue;
+ protected String m_sSelector;
+
+ protected MessageConsumer jmsMessageReceiver;
+
+
+ public JmsQueueListener(GpListener commandListener, ConfigTree listenerConfig, ActionDefinitionFactory actionDefinitionFactory) throws Exception {
+ super(commandListener, listenerConfig, actionDefinitionFactory);
+ checkMyParms();
+ } // __________________________________
+
+ /**
+ * Check for mandatory and optional attributes in parameter tree
+ *
+ * @throws Exception -
+ * if mandatory atts are not right or actionClass not in
+ * classpath
+ */
+ protected void checkMyParms() throws Exception {
+ // Third arg is null - Exception will br thrown if listenQueue is not
+ // found
+ String sQueue = GpListener.obtainAtt(listenerConfig, LISTEN_QUEUE, null);
+
+ // No problem if selector is null - everything in queue will be returned
+ m_sSelector = listenerConfig.getAttribute(LISTEN_MSG_SELECTOR);
+
+ m_oQconn = null;
+ m_oQsess = null;
+ m_oQueue = null;
+
+ String sJndiType = GpListener.obtainAtt(listenerConfig, LISTEN_JNDI_TYPE,
+ "jboss");
+ String sJndiURL = GpListener.obtainAtt(listenerConfig, LISTEN_JNDI_URL,
+ "localhost");
+ Context oJndiCtx = AppServerContext.getServerContext(sJndiType,
+ sJndiURL);
+
+ String sFactClass = GpListener.obtainAtt(listenerConfig,
+ LISTEN_QUEUE_CONN_FACT, "ConnectionFactory");
+ Object tmp = oJndiCtx.lookup(sFactClass);
+ QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
+
+ m_oQconn = qcf.createQueueConnection();
+ m_oQueue = (Queue) oJndiCtx.lookup(sQueue);
+ m_oQsess = m_oQconn.createQueueSession(false,
+ TopicSession.AUTO_ACKNOWLEDGE);
+ m_oQconn.start();
+ jmsMessageReceiver = m_oQsess.createReceiver(m_oQueue, m_sSelector);
+
+ } // ________________________________
+
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#receive()
+ */
+ @Override
+ protected Object[] receive() {
+ while (m_oDad.continueLooping()) {
+ Message jmsMessage = null;
+ try {
+ jmsMessage = jmsMessageReceiver.receive(m_oDad.millisToWait());
+ } catch (JMSException oJ) {
+ logger.error("JMS error on receive. Attempting JMS Destination reconnect.", oJ);
+ for (int i1 = 0; i1 < 3; i1++)
+ try {
+ checkMyParms();
+ } // try to reconnect to the queue
+ catch (Exception e) {
+ logger.error("Reconnecting to Queue", e);
+ try {
+ Thread.sleep(m_iSleepForThreads);
+ } catch (InterruptedException e1) { // Just return
+ logger.error("Unexpected thread interupt exception.", e);
+ return null;
+ }
+ }
+ }
+ if (null == jmsMessage) {
+ // REVIEW: Can this really happen i.e. the JMS
+ continue;
+ }
+
+ if (jmsMessage instanceof ObjectMessage) {
+ try {
+ return new Object[] {((ObjectMessage)jmsMessage).getObject()};
+ } catch (JMSException e) {
+ logger.error("Failed to read Serialized Object from JMS message.", e);
+ }
+ } else if (jmsMessage instanceof TextMessage) {
+ try {
+ return new Object[] {((TextMessage)jmsMessage).getText()};
+ } catch (JMSException e) {
+ logger.error("Failed to read Serialized Object from JMS message.", e);
+ }
+ } else {
+ logger.error("Unsupported JMS message type: " + jmsMessage.getClass().getName());
+ }
+ }
+
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#close()
+ */
+ @Override
+ protected void close() {
+ if (null != m_oQsess) {
+ try {
+ m_oQsess.close();
+ } catch (Exception e1) {/* Tried my best - Just continue */
+ }
+ }
+ if (null != m_oQconn) {
+ try {
+ m_oQconn.close();
+ } catch (Exception e2) {/* Tried my best - Just continue */
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#processingError(java.lang.Object, org.jboss.soa.esb.actions.ActionProcessor, java.lang.Throwable)
+ */
+ @Override
+ protected void processingError(Object initialMessage, ActionProcessor processor, Throwable error) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#processingComplete(java.lang.Object)
+ */
+ @Override
+ protected void processingComplete(Object initialMessage) {
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/RemoteDirectoryPoller.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/RemoteDirectoryPoller.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/RemoteDirectoryPoller.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,284 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.listeners.old;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.ActionDefinitionFactory;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.util.FtpClientUtil;
+import org.jboss.soa.esb.util.Util;
+
+public class RemoteDirectoryPoller extends AbstractPoller
+{
+ public static final String FILE_INPUT_DIR = "inputDir";
+ public static final String FILE_INPUT_SFX = "inputSuffix";
+ public static final String FILE_WORK_SFX = "workSuffix";
+ public static final String FILE_ERROR_DIR = "errorDir";
+ public static final String FILE_ERROR_SFX = "errorSuffix";
+ public static final String FILE_POST_DIR = "postDir";
+ public static final String FILE_POST_SFX = "postSuffix";
+ public static final String FILE_POST_DEL = "postDelete";
+
+ private ConfigTree _params;
+ private Logger _logger = Logger.getLogger(this.getClass());
+ FtpClientUtil _ftpClient;
+
+ public RemoteDirectoryPoller(GpListener p_oDad, ConfigTree p_oParms,ActionDefinitionFactory actionDF)
+ throws Exception
+ {
+ super(p_oDad,p_oParms,actionDF);
+ _params = p_oParms;
+ checkMyParms();
+ } //__________________________________
+
+
+ protected File m_oInpDir ,m_oErrorDir ,m_oPostDir;
+ protected String m_sInpSfx ,m_sWrkSfx ,m_sErrSfx ,m_sPostSfx;
+ protected boolean m_bPostDel;
+ private List <KeyValuePair> m_ftpProps = new ArrayList<KeyValuePair>();
+
+ /**
+ *
+ * @param p_o Object - Must be a File representing the file that has to be processed
+ * @return Object - an instance of the internal WorkingFile class
+ */
+ @Override
+ public Object preProcess(Object p_o)
+ {
+ if (!(p_o instanceof File))
+ return null;
+ File oF = (File)p_o;
+ WorkingFile oCurr = new WorkingFile(oF,m_sWrkSfx,m_bPostDel);
+ oCurr.errorFile = new File (m_oErrorDir ,oF.getName()+m_sErrSfx);
+ oCurr.outputFile = new File (m_oPostDir ,oF.getName()+m_sPostSfx);
+ oCurr.setFtpProps(m_ftpProps);
+
+ try
+ {
+ _ftpClient = new FtpClientUtil(_params,true);
+ _ftpClient.remoteRename(oF,oCurr);
+ }
+ catch (Exception e)
+ {
+ _logger.error("Can't FTP rename",e);
+ return null;
+ }
+ finally
+ {
+ if (null!=_ftpClient)
+ _ftpClient.quit();
+ _ftpClient = null;
+ }
+
+ return oCurr;
+ } //________________________________
+
+ @Override
+ protected List<Object> pollForCandidates()
+ {
+ List<Object> oRet = new ArrayList<Object>();
+ FtpClientUtil _ftpClient = null;
+ try
+ {
+ _ftpClient = new FtpClientUtil(_params,true);
+ _ftpClient.setRemoteDir(FtpClientUtil.fileToFtpString(m_oInpDir));
+ String[] sa = _ftpClient.getFileListFromRemoteDir(m_sInpSfx);
+ if (null!=sa)
+ for (String sCurr : sa)
+ oRet.add(new File(m_oInpDir,sCurr));
+ }
+ catch (Exception e)
+ {
+ _logger.error("Problems with FTP",e);
+ }
+ finally
+ {
+ if (null!=_ftpClient)
+ _ftpClient.quit();
+ _ftpClient = null;
+ }
+ return oRet;
+
+ } //________________________________
+
+ protected void checkMyParms() throws Exception
+ {
+ // INPUT directory and suffix (used for FileFilter)
+ String sInpDir = GpListener.obtainAtt(_params,FILE_INPUT_DIR,null);
+ m_oInpDir = new File(sInpDir);
+
+ m_sInpSfx = GpListener.obtainAtt(_params,FILE_INPUT_SFX,null);
+ m_sInpSfx = m_sInpSfx.trim();
+ if (m_sInpSfx.length()<1)
+ throw new Exception ("Invalid "+FILE_INPUT_SFX+" attribute");
+
+ // WORK suffix (will rename in input directory)
+ m_sWrkSfx = GpListener.obtainAtt(_params,FILE_WORK_SFX,".esbWork").trim();
+ if (m_sWrkSfx.length()<1)
+ throw new Exception ("Invalid "+FILE_WORK_SFX+" attribute");
+ if (m_sInpSfx.equals(m_sWrkSfx))
+ throw new Exception("Work suffix must differ from input suffix <"+m_sWrkSfx+">");
+
+ // ERROR directory and suffix (defaults to input dir and ".esbError" suffix)
+ String sErrDir = GpListener.obtainAtt(_params,FILE_ERROR_DIR,sInpDir);
+ m_oErrorDir = new File(sErrDir);
+
+ m_sErrSfx = GpListener.obtainAtt(_params,FILE_ERROR_SFX,".esbError").trim();
+ if (m_sErrSfx.length()<1)
+ throw new Exception ("Invalid "+FILE_ERROR_SFX+" attribute");
+ if (m_oErrorDir.equals(m_oInpDir) && m_sInpSfx.equals(m_sErrSfx))
+ throw new Exception("Error suffix must differ from input suffix <"+m_sErrSfx+">");
+
+
+ // Do users wish to delete files that were processed OK ?
+ String sPostDel = GpListener.obtainAtt(_params,FILE_POST_DEL,"false").trim();
+ m_bPostDel = Boolean.parseBoolean(sPostDel);
+ if (m_bPostDel)
+ return;
+
+ // POST (done) directory and suffix (defaults to input dir and ".esbDone" suffix)
+ String sPostDir = GpListener.obtainAtt(_params,FILE_POST_DIR,sInpDir);
+ m_oPostDir = new File(sPostDir);
+ m_sPostSfx = GpListener.obtainAtt(_params,FILE_POST_SFX,".esbDone").trim();
+ if (m_oPostDir.equals(m_oInpDir))
+ { if (m_sPostSfx.length()<1)
+ throw new Exception ("Invalid "+FILE_POST_SFX+" attribute");
+ if (m_sPostSfx.equals(m_sInpSfx))
+ throw new Exception("Post process suffix must differ from input suffix <"+m_sPostSfx+">");
+ }
+
+
+ FtpClientUtil _ftpClient = new FtpClientUtil(_params,false);
+ _ftpClient.quit();
+
+ // Copy FTP parameters to be passed to the action class (inside the WorkingFile class)
+ // This is a kludge - we have to get back to this (ES)
+ String[] sa = new String[]
+ {FtpClientUtil.PARMS_FTP_SERVER
+ ,FtpClientUtil.PARMS_USER
+ ,FtpClientUtil.PARMS_PASSWD
+ ,FtpClientUtil.PARMS_PASSIVE
+ ,FtpClientUtil.PARMS_PORT
+ };
+ for (String sProp : sa)
+ {
+ String sVal = _params.getAttribute(sProp);
+ if (!Util.isNullString(sVal))
+ m_ftpProps.add(new KeyValuePair(sProp,sVal));
+ }
+
+ } //________________________________
+
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#close()
+ */
+ @Override
+ protected void close() { }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#processingError(java.lang.Object, org.jboss.soa.esb.actions.ActionProcessor, java.lang.Throwable)
+ */
+ @Override
+ protected void processingError(Object initialMessage, ActionProcessor processor, Throwable error)
+ {
+ @SuppressWarnings("unused")
+ WorkingFile workingFile = (WorkingFile) initialMessage;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#processingComplete(java.lang.Object)
+ */
+ @Override
+ protected void processingComplete(Object initialMessage)
+ {
+ @SuppressWarnings("unused")
+ WorkingFile workingFile = (WorkingFile) initialMessage;
+ }
+
+ /**
+ * Working file.
+ * <p/>
+ * Once the remote directory poller picks up on an input file, it immediately tries to rename
+ * it to a working file in order to avoid a situation where the file gets processed again.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+ public static class WorkingFile extends File
+ {
+ private static final long serialVersionUID = 1L;
+
+ private boolean postDelete;
+ private File inputFile, errorFile, outputFile;
+ private List <KeyValuePair> ftpProps;
+ public void setFtpProps(List <KeyValuePair>props) {ftpProps = props; }
+ public List <KeyValuePair >getFtpProps() {return ftpProps; }
+
+ private WorkingFile(File pFile,String pWrkSfx, boolean pPostDelete)
+ {
+ super(pFile.getParentFile(), pFile.getName() + pWrkSfx);
+ inputFile = pFile;
+ }
+ /**
+ * Get the File instance representing the original input file.
+ * @return Original input file.
+ */
+ public File getInputFile() { return inputFile; }
+ /**
+ * is this working file to be deleted after successful processing ?
+ * @return boolean - true if this file can be deleted
+ */
+ public boolean isPostDelete() { return postDelete; }
+
+ public boolean localRenameToInput() { return super.renameTo(inputFile); }
+ public void remoteRenameToInput(FtpClientUtil util) throws Exception
+ {
+ util.remoteRename(this,inputFile);
+ }
+
+ public boolean localRenameToError() { return super.renameTo(errorFile); }
+ public void remoteRenameToError(FtpClientUtil util) throws Exception
+ {
+ util.remoteRename(this,errorFile);
+ }
+
+ public boolean localRenameToOutput() { return renameTo(outputFile); }
+ public void remoteRenameToOutput(FtpClientUtil util) throws Exception
+ {
+ util.remoteRename(this,outputFile);
+ }
+
+ public boolean localDelete() {return delete(); }
+ public void remoteDelete(FtpClientUtil util) throws Exception
+ {util.deleteRemoteFile(this.toString()); }
+
+ }
+} //____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/SqlTablePoller.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/SqlTablePoller.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/listeners/old/SqlTablePoller.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,505 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.listeners.old;
+
+import java.io.Serializable;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.StringTokenizer;
+
+import javax.sql.DataSource;
+
+import org.jboss.soa.esb.actions.ActionDefinitionFactory;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.helpers.persist.JdbcCleanConn;
+import org.jboss.soa.esb.helpers.persist.SimpleDataSource;
+import org.jboss.soa.esb.util.Util;
+
+/**
+ * SqlTablePoller class
+ *
+ * The SQL table that is polled should have
+ * 1) a unique key (see "keyFields" parameter) that will be used to update status
+ * 2) a column to indicate the "processing status" of this trigger row (see ROW_STATE enum)
+ *
+ * Each retrieved row (see OPTIONAL_ATT.whereCondition) should be considered as a trigger
+ * that is intended to instantiate an object of "actionClass". The new instance will
+ * receive the full ConfigTree (level 1 for each child group)
+ *
+ * @author Esteban Schifman
+ */
+public class SqlTablePoller extends AbstractPoller
+{
+/* ___________________ Example XML configuration file for a SqlTablePoller_______________
+ *
+<DocumentElementName>
+ <ExampleListenChapter
+ maxThreads="2"
+ listenerClass="org.jboss.soa.esb.listeners.SqlTablePoller"
+ actionClass="org.jboss.soa.esb.actions.templates.MockSqlRowAction"
+
+ driver-class="org.postgresql.Driver"
+ connection-url="jdbc:postgresql://myhost:5432/myDB"
+ user-name="postgres"
+ password=""
+
+ tableName="test_notif_table"
+ selectFields="oid,ref,msg"
+ keyFields="oid,ref"
+ inProcessField="statusCol"
+ whereCondition="src='pepe'"
+ orderBy="oid desc"
+ >
+ <NotificationList type="OK">
+ <target class="NotifyFiles">
+ <file URI="file:///tmp/jbossEsb/notifyDir/ListenOnNotifTable.notifOK"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+
+ <NotificationList type="err">
+ <target class="NotifyFiles">
+ <file URI="file:///tmp/jbossEsb/notifyDir/ListenOnNotifTable.notifErr"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+ </ExampleListenChapter>
+</DocumentElementName>
+ *
+ */
+
+ /**
+ * Mandatory attributes needed for SqlTablePoller
+ * 1) Table name
+ * 2) Comma separated list of fields needed in the ResultSet
+ * 3) Comma separated list of fields that constitute a unique ID of the working row
+ * all fields in this list MUST also be in the "selectFields" list
+ * these fields will be used in the "where" clause of update statements
+ * 4) Name of table field used as indicator/semaphore to avoid concurrent update
+ *
+ */
+ public static enum TABLE_ATT
+ {
+ tableName
+ ,selectFields
+ ,keyFields
+ ,inProcessField
+ };
+
+ /**
+ * Optional fields that can be included in your parameter tree as attributes in the
+ * upper Element
+ * 1) 4 character long String that indicate status of each row for this poller
+ * 1st: Character that indicates "Pending" state = available for processing
+ * 2nd: "Working" : some poller is working on the row (or ab-ended while working)
+ * 3rd: "Error" : some poller tried to process, and found an error during processing
+ * 4th: "Done" : this row has already been processed successfully
+ * 2) if you wish to further filter your ResultSet, you can add an optional list of
+ * conditions that will be included in the "scan" SQL statement (without "where")
+ * 3) Comma separated list of fields to order ResultSet (without "order by")
+ *
+ */
+ public static enum OPTIONAL_ATT
+ {
+ inProcessVals
+ ,whereCondition
+ ,orderBy
+ };
+
+ /**
+ * First character of these values are the default states of a table row trigger
+ * the "inProcessVals" parameter can override these (if that were ever necessary)
+ * this is why the default value for that parameter is "PWED" (see below)
+ * The poller will only process rows that have the "inProcessField" first character
+ * equal to the first character of whatever the "Pending" state is (typically "P")
+ *
+ */
+ public static enum ROW_STATE
+ {Pending
+ ,Working
+ ,Error
+ ,Done
+ };
+ public static final String DEFAULT_STATES = "PWED";
+
+ protected Map<String,String> m_oVals = new HashMap<String,String>();
+ protected String[] m_saCols ,m_saKeys;
+ protected String m_sUpdStates;
+
+ /**
+ * In this constructor you can override default values for the following protected base class values:
+ * <br/>
+ * <p/>m_iMinPollMillis : minimum polling interval (default 3000)
+ * <br/>m_iDfltPollMillis : default polling interval (default 20000)
+ * <br/>m_iSleepForThreads : how long to sleep if all configured threads are in use (default 3000)
+ * <br/>m_iUpperThreadLimit : max number of threads allowed (default 10)
+ * @param p_oDad GpListener - The controlling process
+ * @param p_oParms ConfigTree - Sub tree that corresponds to this instance
+ * @throws Exception
+ */
+ public SqlTablePoller(GpListener p_oDad, ConfigTree p_oParms, ActionDefinitionFactory actionDefinitionFactory) throws Exception
+ {
+ super(p_oDad, p_oParms, actionDefinitionFactory);
+ try { checkMyParms(); }
+ catch (Exception e)
+ {
+ logger.error("checkMyParms() FAILED",e);
+ throw e;
+ }
+ } //__________________________________
+
+ private void checkAndStoreAtt(ConfigTree p_oP, String p_sName, String p_sDflt)
+ throws Exception
+ {
+ m_oVals.put(p_sName,GpListener.obtainAtt(p_oP,p_sName,p_sDflt));
+ } //________________________________
+
+ protected void checkMyParms() throws Exception
+ {
+ checkAndStoreAtt(listenerConfig,SimpleDataSource.DRIVER ,null);
+ checkAndStoreAtt(listenerConfig,SimpleDataSource.URL ,null);
+ checkAndStoreAtt(listenerConfig,SimpleDataSource.USER ,"");
+ checkAndStoreAtt(listenerConfig,SimpleDataSource.PASSWORD ,"");
+
+ for (TABLE_ATT oCurr : TABLE_ATT.values())
+ checkAndStoreAtt(listenerConfig,oCurr.toString(),null);
+
+ checkAndStoreAtt(listenerConfig,OPTIONAL_ATT.whereCondition.toString(),"");
+ checkAndStoreAtt(listenerConfig,OPTIONAL_ATT.orderBy.toString(),"");
+
+ String sAtt = OPTIONAL_ATT.inProcessVals.toString();
+ checkAndStoreAtt(listenerConfig,sAtt,DEFAULT_STATES);
+ m_sUpdStates = m_oVals.get(sAtt);
+ if (m_sUpdStates.length()<4)
+ throw new Exception("Parameter <"+sAtt+"> must be at least 4 characters long (PWED)");
+
+ StringTokenizer ST = new StringTokenizer
+ (m_oVals.get(TABLE_ATT.selectFields.toString()),",");
+ m_saCols = new String[ST.countTokens()];
+ Set<String> oSelFlds = new HashSet<String>();
+ int iCurr = 0;
+ while (ST.hasMoreElements())
+ {
+ String sColName = ST.nextToken().trim();
+ m_saCols[iCurr++] = sColName;
+ oSelFlds.add(sColName);
+ }
+
+ ST = new StringTokenizer
+ (m_oVals.get(TABLE_ATT.keyFields.toString()),",");
+ m_saKeys = new String[ST.countTokens()];
+ if (m_saKeys.length < 1)
+ throw new Exception("Empty list of keyFields");
+
+ for (iCurr = 0; ST.hasMoreTokens(); iCurr++)
+ { String sKeyCol = ST.nextToken().trim();
+ if (! oSelFlds.contains(sKeyCol))
+ throw new Exception("Key field <"+ sKeyCol + "> must also be in select list");
+ m_saKeys[iCurr] = sKeyCol;
+ }
+
+ } //________________________________
+
+ @Override
+ protected Object preProcess(Object p_o)
+ {
+ return p_o;
+ } //________________________________
+
+ @SuppressWarnings("unchecked")
+ @Override
+ protected List<Object> pollForCandidates()
+ {
+ String sSel4U = selectForUpdStatement();
+ String sUpdStmt = updateStatement();
+ JdbcCleanConn oConn = null;
+ List<Object> oResults = new ArrayList<Object>();
+ try
+ {
+ oConn = newDbConn();
+ String sScan = scanStatement();
+
+ PreparedStatement PS = oConn.prepareStatement(sScan);
+ ResultSet RS = oConn.execQueryWait(PS,1);
+ while (RS.next()) {
+ SQLPollResult rowParams = new SQLPollResult(sSel4U, sUpdStmt);
+ int iCurr = 0;
+
+ for (String sColName : m_saCols) {
+ rowParams.put(sColName,RS.getObject(++iCurr));
+ }
+
+ // Set up the parameter object for the SqlRowAction
+ rowParams.sUpdStates = m_sUpdStates;
+ rowParams.saKeys = m_saKeys;
+ rowParams.sSel4Upd = sSel4U;
+ rowParams.sUpdate = sUpdStmt;
+
+ // Mark the row as "working"...
+ rowParams.changeStatusToWorking();
+
+ oResults.add(rowParams);
+ }
+ }
+ catch (Exception e)
+ {
+ logger.warn("Some triggers might not have been returned",e);
+ }
+ finally
+ {
+ if (null!=oConn)
+ oConn.release();
+ }
+
+ logger.info("Returning " + oResults.size() + " rows.");
+ return oResults;
+ } //________________________________
+
+ /**
+ * Obtain a new database connection with parameter info
+ * @return A new connection
+ * @throws Exception - if problems are encountered
+ */
+ protected JdbcCleanConn newDbConn() throws Exception
+ { DataSource oDS = new SimpleDataSource
+ (m_oVals.get(SimpleDataSource.DRIVER)
+ ,m_oVals.get(SimpleDataSource.URL)
+ ,m_oVals.get(SimpleDataSource.USER)
+ ,m_oVals.get(SimpleDataSource.PASSWORD)
+ );
+ return new JdbcCleanConn(oDS);
+ } //________________________________
+
+ /**
+ * Assemble the SQL statement to scan (poll) the table
+ * @return - The resulting SQL statement
+ */
+ protected String scanStatement()
+ {
+ StringBuilder sb = new StringBuilder ()
+ .append("select ").append(m_oVals.get(TABLE_ATT.selectFields.toString()))
+ .append(" from ") .append(m_oVals.get(TABLE_ATT.tableName.toString()));
+
+ String sAux = m_oVals.get(OPTIONAL_ATT.whereCondition.toString());
+ boolean bWhere = ! Util.isNullString(sAux);
+ if (bWhere)
+ sb.append(" where ").append(sAux);
+ sb.append((bWhere) ? " and " : " where ");
+
+ String sLike = m_oVals.get(OPTIONAL_ATT.inProcessVals.toString())
+ .substring(0,1).toUpperCase();
+ sb.append(" upper(").append(m_oVals.get(TABLE_ATT.inProcessField.toString()))
+ .append(") like '").append(sLike).append("%'");
+
+
+ sAux = m_oVals.get(OPTIONAL_ATT.orderBy);
+ if (! Util.isNullString(sAux))
+ sb.append(" order by ").append(sAux);
+ return sb.toString();
+ } //________________________________
+
+ /**
+ * Assemble the SQL statement to update the field
+ * in the "inProcessField" parameter
+ *
+ * in the table row uniquely identified by the list of fields
+ * in the "keyFields" parameter
+ *
+ * @return - The resulting SQL statement
+ */
+ protected String updateStatement()
+ {
+ StringBuilder sb = new StringBuilder ()
+ .append("update ").append(m_oVals.get(TABLE_ATT.tableName.toString()))
+ .append(" set ") .append(m_oVals.get(TABLE_ATT.inProcessField.toString()))
+ .append(" = ? where ")
+ ;
+ int iCurr = 0;
+ for(String sCurr : m_saKeys)
+ { if (iCurr++ > 0)
+ sb.append(" and ");
+ sb.append(sCurr).append(" = ?");
+ }
+ return sb.toString();
+ } //________________________________
+
+ /**
+ * Assemble the SQL "select for update" statement
+ * for the "inProcessField" parameter
+ *
+ * in the table row uniquely identified by the list of fields
+ * in the "keyFields" parameter
+ *
+ * @return - The resulting SQL statement
+ */
+ protected String selectForUpdStatement()
+ {
+ StringBuilder sb = new StringBuilder ()
+ .append("select ").append(m_oVals.get(TABLE_ATT.inProcessField.toString()))
+ .append(" from ") .append(m_oVals.get(TABLE_ATT.tableName.toString()))
+ .append(" where ")
+ ;
+ int iCurr = 0;
+ for(String sCurr : m_saKeys)
+ { if (iCurr++ > 0)
+ sb.append(" and ");
+ sb.append(sCurr).append(" = ?");
+ }
+ return sb.append(" for update").toString();
+ } //________________________________
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#close()
+ */
+ @Override
+ protected void close() {
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#processingError(java.lang.Object, org.jboss.soa.esb.actions.ActionProcessor, java.lang.Throwable)
+ */
+ @Override
+ protected void processingError(Object initialMessage, ActionProcessor processor, Throwable error) {
+ // Mark the row as "error"...
+ ((SQLPollResult)initialMessage).changeStatusToError();
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#processingComplete(java.lang.Object)
+ */
+ @Override
+ protected void processingComplete(Object initialMessage) {
+ // Mark the row as "working"...
+ ((SQLPollResult)initialMessage).changeStatusToDone();
+ }
+
+ private class SQLPollResult extends LinkedHashMap implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ private String sUpdStates;
+
+ private String[] saKeys;
+
+ private String sSel4Upd, sUpdate;
+
+ private SQLPollResult(String sSel4Upd, String sUpdate) throws Exception {
+ this.sSel4Upd = sSel4Upd;
+ this.sUpdate = sUpdate;
+ }
+
+ private String getStatus(ROW_STATE p_oState) {
+ int iPos = p_oState.ordinal();
+ return sUpdStates.substring(iPos, ++iPos);
+ }
+
+ private boolean changeStatusToWorking() {
+ return changeStatus(ROW_STATE.Pending, ROW_STATE.Working);
+ }
+
+ private boolean changeStatusToDone() {
+ return changeStatus(ROW_STATE.Working, ROW_STATE.Done);
+ }
+
+ private boolean changeStatusToError() {
+ return changeStatus(ROW_STATE.Working, ROW_STATE.Error);
+ }
+
+ private boolean changeStatus(ROW_STATE fromState, ROW_STATE toState) {
+ JdbcCleanConn dbConnection = null;
+
+ try {
+ // This is expensive at the moment but will be OK once we get proper connection pooling enabled!
+ dbConnection = newDbConn();
+ } catch (Exception e) {
+ logger.error("Unable to get DB connection.", e);
+ throw new IllegalStateException("Unable to get DB connection.", e);
+ }
+
+ try {
+ PreparedStatement m_PSsel4U;
+ PreparedStatement m_PSupd;
+
+ m_PSsel4U = dbConnection.prepareStatement(sSel4Upd);
+ m_PSupd = dbConnection.prepareStatement(sUpdate);
+
+ int iParm=1;
+ for (String sColName : saKeys) {
+ Object oVal = get(sColName);
+ m_PSsel4U.setObject (iParm ,oVal);
+ // parameters are +1 in update statement
+ // autoincrement leaves things ready for next SQL parameter
+ m_PSupd.setObject (++iParm,oVal);
+ }
+
+ try {
+ ResultSet resultSet = dbConnection.execQueryWait(m_PSsel4U, 5);
+
+ if (resultSet.next()) {
+ String sOldStatus = resultSet.getString(1).substring(0, 1);
+
+ if (sOldStatus.equalsIgnoreCase(getStatus(fromState))) {
+ m_PSupd.setString(1, getStatus(toState));
+ dbConnection.execUpdWait(m_PSupd, 5);
+ dbConnection.commit();
+
+ if(logger.isDebugEnabled()) {
+ logger.debug("Successfully changed row state from " + fromState + " to " + toState + ".");
+ }
+
+ return true;
+ } else {
+ logger.warn("Cannot change row state from " + fromState + " to " + toState + ". Row not in state " + fromState);
+ return false;
+ }
+ }
+ logger.error("Row status change to " + toState + " has failed. Rolling back!!");
+ } catch(Exception e) {
+ logger.error("Row status change to " + toState + " has failed. Rolling back!!", e);
+ }
+
+ try {
+ dbConnection.rollback();
+ } catch (Exception e) {
+ logger.error("Unable to rollback row status change to " + fromState.name(), e);
+ }
+ } catch (Exception e) {
+ logger.error("Unexpected exception.", e);
+ } finally {
+ dbConnection.release();
+ }
+
+ return false;
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/Constants.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/Constants.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/Constants.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,41 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.nagios;
+
+/**
+ * A few constant values synchronized from the C NSCA client/server source.
+ */
+public class Constants {
+
+ public static final int TRANSMITTED_IV_SIZE = 128;
+
+ public static final int MAX_HOSTNAME_LENGTH = 64;
+ public static final int MAX_DESCRIPTION_LENGTH = 128;
+ public static final int MAX_PLUGINOUTPUT_LENGTH = 512;
+
+ public static final int NSCA_PACKET_VERSION_3 = 3;
+
+ public static final String FICTICIOUS_TEST_HOST = "ficticious.test.host";
+
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/Constants.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/MonitorManager.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/MonitorManager.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/MonitorManager.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,206 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.nagios;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.logging.ConsoleHandler;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import java.util.logging.SimpleFormatter;
+
+import org.jboss.soa.esb.nagios.monitor.ServiceMonitor;
+import org.jboss.soa.esb.nagios.transport.NagiosNSCAPacket;
+import org.jboss.soa.esb.nagios.transport.NagiosNSCATransport;
+
+/**
+ * The MonitorManager is the core of the Java Nagios client software. It provides
+ * the infrastructure for reporting information and the background process for sending
+ * those reports to the NSCA daemon process on the Nagios server.
+ *
+ * When instantiated without a valid nagiosHost, it will sit and do nothing until a
+ * host has been provided - at which point it will begin cycling to send information
+ * to that Nagios server.
+ *
+ * The no-argument constructer is used in JMX environments where JMX systems aren't
+ * able to initialize the MonitorManager except through calling Setter methods for
+ * the core parameters such as nagiosHost.
+ *
+ * Typical usage in stand-alone applications:
+ *
+ * MonitorManager mm = new MonitorManager("XXXXXXXXXXXX", 5667);
+ * ServiceMonitor heartbeat = new HeartbeatMonitor("hostname", "servicename");
+ * mm.addMonitor(heartbeat);
+ * mm.start();
+ */
+public class MonitorManager {
+
+ // LOCK object for synchronization
+ private final Object LOCK = new Object();
+
+ private final Logger logger_
+ = Logger.getLogger(MonitorManager.class.getName());
+ private final List monitors_ = new ArrayList();
+ private final BackgroundTask backgroundTask_ = new BackgroundTask();
+ private Thread backgroundThread_ = null;
+
+ private String nagiosHost = null;
+ private int nagiosPort = 0;
+
+ private long SLEEP_INTERVAL = 5000; // millisecond sleep time between checks
+
+ public MonitorManager() {
+ init();
+ }
+
+ public MonitorManager(String nagiosHost, int nagiosPort) {
+ this.nagiosHost = nagiosHost;
+ this.nagiosPort = nagiosPort;
+ init();
+ }
+
+ private void init() {
+ logger_.setLevel(Level.ALL);
+ ConsoleHandler conh = new ConsoleHandler();
+ SimpleFormatter form = new SimpleFormatter();
+ conh.setFormatter(form);
+ logger_.addHandler(conh);
+ }
+
+ public String getStatus() {
+ if (backgroundTask_.running) {
+ return "Running - cycle "+backgroundTask_.CYCLE;
+ } else {
+ return "Stopped";
+ }
+ }
+
+ public String getNagiosHost() {
+ return nagiosHost;
+ }
+
+ public void setNagiosHost(String nagiosHost) {
+ this.nagiosHost = nagiosHost;
+ }
+
+ public int getNagiosPort() {
+ return nagiosPort;
+ }
+
+ public void setNagiosPort(int nagiosPort) {
+ this.nagiosPort = nagiosPort;
+ }
+
+ @SuppressWarnings("unchecked")
+ public void addMonitor(ServiceMonitor monitor) {
+ monitors_.add(monitor);
+ }
+
+ public void removeMonitor(ServiceMonitor monitor) {
+ monitors_.remove(monitor);
+ }
+
+ public void start() {
+ synchronized (LOCK) {
+ if (backgroundThread_ == null) {
+ backgroundThread_ = new Thread(backgroundTask_);
+ }
+ }
+ if (!backgroundThread_.isAlive()) {
+ backgroundTask_.running = true;
+ backgroundTask_.CYCLE = 0;
+ backgroundThread_.start();
+ }
+ }
+
+ public void stop() {
+ if (backgroundThread_ != null && backgroundThread_.isAlive()) {
+ backgroundTask_.stop();
+ }
+ try {
+ backgroundThread_.join();
+ backgroundThread_ = null;
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public long getInterval() {
+ return SLEEP_INTERVAL;
+ }
+
+ public void setInterval(long interval) {
+ SLEEP_INTERVAL = interval;
+ }
+
+ protected class BackgroundTask implements Runnable {
+
+ private boolean running = true;
+ private int CYCLE = 0;
+
+ public void run() {
+
+ System.out.println("Nagios Background Monitor thread started.");
+
+ while (running) {
+ try {
+
+ Thread.sleep(SLEEP_INTERVAL);
+ CYCLE++;
+
+ if (nagiosHost != null) {
+
+ final Iterator iter = monitors_.iterator();
+
+ while (iter.hasNext()) {
+ final ServiceMonitor monitor = (ServiceMonitor) iter.next();
+ @SuppressWarnings("unused")
+ final ServiceResponse response = monitor.getResponse();
+ final NagiosNSCAPacket packet =
+ new NagiosNSCAPacket(monitor.getHost()
+ , monitor.getService()
+ , monitor.getResponse());
+ if (nagiosHost != Constants.FICTICIOUS_TEST_HOST)
+ NagiosNSCATransport.send(nagiosHost, nagiosPort, packet);
+ }
+
+ }
+
+ } catch (InterruptedException e) {
+ // ok if interrupted
+ }
+ }
+
+ running = false;
+ System.out.println("Nagios Background Monitor thread exiting.");
+
+ }
+
+ public void stop() {
+ running = false;
+ }
+ }
+
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/MonitorManager.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/NagiosAgent.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/NagiosAgent.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/NagiosAgent.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,97 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.nagios;
+
+import org.jboss.soa.esb.nagios.monitor.MemoryMonitor;
+import org.jboss.soa.esb.nagios.monitor.ServiceMonitor;
+
+public class NagiosAgent implements NagiosAgentMBean {
+
+ private static final MonitorManager monitor_ = new MonitorManager();
+ private ServiceMonitor service_ = null;
+
+ private static final String DEFAULT_HOST = "javatest";
+ private static final String DEFAULT_SERVICE = "java-heartbeat-service";
+
+ private String host = DEFAULT_HOST;
+ private String service = DEFAULT_SERVICE;
+
+ public NagiosAgent() {
+ service_ = new MemoryMonitor(host, service);
+ monitor_.addMonitor(service_);
+ }
+
+ public void start() {
+ monitor_.start();
+ }
+
+ public void stop() {
+ monitor_.stop();
+ }
+
+ public int getPort() {
+ return monitor_.getNagiosPort();
+ }
+
+ public void setPort(int port) {
+ monitor_.setNagiosPort(port);
+ }
+
+ public String getServer() {
+ return monitor_.getNagiosHost();
+ }
+
+ public void setServer(String host) {
+ monitor_.setNagiosHost(host);
+ }
+
+ public long getInterval() {
+ return monitor_.getInterval();
+ }
+
+ public void setInterval(long interval) {
+ monitor_.setInterval(interval);
+ }
+
+ public String getStatus() {
+ return monitor_.getStatus();
+ }
+
+ public String getHost() {
+ return service_.getHost();
+ }
+
+ public void setHost(String host) {
+ service_.setHost(host);
+ }
+
+ public String getService() {
+ return service_.getService();
+ }
+
+ public void setService(String service) {
+ service_.setService(service);
+ }
+
+}
\ No newline at end of file
Property changes on: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/NagiosAgent.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/NagiosAgentMBean.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/NagiosAgentMBean.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/NagiosAgentMBean.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,48 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.nagios;
+
+public interface NagiosAgentMBean {
+
+ public void start();
+ public void stop();
+
+ public String getHost();
+ public void setHost(String host);
+
+ public String getService();
+ public void setService(String service);
+
+ public String getServer();
+ public void setServer(String server);
+
+ public int getPort();
+ public void setPort(int port);
+
+ public long getInterval();
+ public void setInterval(long interval);
+
+ public String getStatus();
+
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/NagiosAgentMBean.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/Runner.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/Runner.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/Runner.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.nagios;
+
+import org.jboss.soa.esb.common.ModulePropertyManager;
+
+/*
+ * Do we still need this stuff?
+ *
+ * TODO
+ */
+
+public class Runner
+{
+ /*
+ * Leave properties here until we determine their utility.
+ */
+
+ private static final String MONITOR_PROP = "org.jboss.soa.esb.nagios.monitor.host";
+
+ private static final String DEFAULT_HOST = "localhost";
+
+ public static void main(String[] args)
+ {
+
+ NagiosAgent agent = new NagiosAgent();
+ agent.setInterval(5000);
+ String sNagiosMonitor = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty(
+ MONITOR_PROP, DEFAULT_HOST);
+ agent.setHost(sNagiosMonitor);
+ agent.setPort(5667);
+
+ agent.start();
+
+ while (true)
+ ;
+ }
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/Runner.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/ServiceResponse.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/ServiceResponse.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/ServiceResponse.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,56 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.nagios;
+
+/**
+ * Holder class for response information from a monitored service
+ */
+public class ServiceResponse {
+
+ private int returncode = 0;
+ private String message = null;
+
+ public ServiceResponse(int returncode, String message) {
+ this.returncode = returncode;
+ this.message = message;
+ }
+
+ public ServiceResponse() {}
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public int getReturncode() {
+ return returncode;
+ }
+
+ public void setReturncode(int returncode) {
+ this.returncode = returncode;
+ }
+}
\ No newline at end of file
Property changes on: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/ServiceResponse.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/monitor/HeartbeatMonitor.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/monitor/HeartbeatMonitor.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/monitor/HeartbeatMonitor.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,64 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.nagios.monitor;
+
+import org.jboss.soa.esb.nagios.ServiceResponse;
+
+public class HeartbeatMonitor implements ServiceMonitor {
+
+ private static int CYCLE = 0;
+
+ private String host;
+ private String service;
+
+ public HeartbeatMonitor(String host, String service) {
+ this.host = host;
+ this.service = service;
+ }
+
+ public String getHost() {
+ return host;
+ }
+
+ public void setHost(String host) {
+ this.host = host;
+ }
+
+ public String getService() {
+ return service;
+ }
+
+ public void setService(String service) {
+ this.service = service;
+ }
+
+ public ServiceResponse getResponse() {
+ ServiceResponse sr = new ServiceResponse();
+ sr.setReturncode(0);
+ sr.setMessage("Service heartbeat - index " + (++CYCLE));
+ return sr;
+ }
+
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/monitor/HeartbeatMonitor.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/monitor/MemoryMonitor.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/monitor/MemoryMonitor.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/monitor/MemoryMonitor.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,66 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.nagios.monitor;
+
+import org.jboss.soa.esb.nagios.ServiceResponse;
+
+public class MemoryMonitor implements ServiceMonitor {
+
+// private static int CYCLE = 0;
+
+ private String host;
+ private String service;
+
+ public MemoryMonitor(String host, String service) {
+ this.host = host;
+ this.service = service;
+ }
+
+ public String getHost() {
+ return host;
+ }
+
+ public void setHost(String host) {
+ this.host = host;
+ }
+
+ public String getService() {
+ return service;
+ }
+
+ public void setService(String service) {
+ this.service = service;
+ }
+
+ public ServiceResponse getResponse() {
+ ServiceResponse sr = new ServiceResponse();
+ sr.setReturncode(0);
+ long free = Runtime.getRuntime().freeMemory();
+ long total = Runtime.getRuntime().totalMemory();
+ long max = Runtime.getRuntime().maxMemory();
+ sr.setMessage("Java Memory Status (free/total/max) = "+free+"/"+total+"/"+max);
+ return sr;
+ }
+
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/monitor/MemoryMonitor.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/monitor/ServiceMonitor.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/monitor/ServiceMonitor.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/monitor/ServiceMonitor.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,38 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.nagios.monitor;
+
+import org.jboss.soa.esb.nagios.ServiceResponse;
+
+public interface ServiceMonitor
+{
+ public ServiceResponse getResponse();
+
+ public String getHost();
+ public void setHost(String host);
+
+ public String getService();
+ public void setService(String service);
+
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/monitor/ServiceMonitor.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/transport/NagiosNSCAPacket.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/transport/NagiosNSCAPacket.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/transport/NagiosNSCAPacket.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,161 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.nagios.transport;
+
+
+import org.jboss.soa.esb.nagios.Constants;
+import org.jboss.soa.esb.nagios.ServiceResponse;
+import org.jboss.soa.esb.nagios.util.ByteOps;
+
+
+/**
+ * Representation of a Nagios NSCA data packet. The C implementation of Nagios NSCA uses a struct to represent this data. This class
+ * constructs a byte array that mirrors that struct. There are some tricky bits here that may need adjustment for new versions of
+ * Java, new versions of GCC, or different versions of the Nagios NSCA daemon process compiled on different hardware architectures.
+ */
+public class NagiosNSCAPacket {
+
+ private long timestamp;
+ private int returncode;
+ private String host;
+ private String servicename;
+ private String message;
+
+ /**
+ * Construct a new packet with the provided information
+ *
+ * @param timestamp
+ * use the one provided upon first connection unless time on server and client are accurately synchronized
+ * @param returncode
+ * the returncode of the check
+ * @param host
+ * the Nagios host name we are reporting for
+ * @param servicename
+ * the Nagios service name we are reporting for
+ * @param message
+ * a message to Nagios from the monitor
+ */
+ public NagiosNSCAPacket(long timestamp, int returncode, String host, String servicename, String message) {
+ this.timestamp = timestamp;
+ this.returncode = returncode;
+ this.host = host;
+ this.servicename = servicename;
+ this.message = message;
+ }
+
+ public NagiosNSCAPacket(String host, String servicename, ServiceResponse response) {
+ this.host = host;
+ this.servicename = servicename;
+ this.returncode = response.getReturncode();
+ this.message = response.getMessage();
+ }
+
+ public String getHost() {
+ return host;
+ }
+
+ public void setHost(String host) {
+ this.host = host;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public int getReturncode() {
+ return returncode;
+ }
+
+ public void setReturncode(int returncode) {
+ this.returncode = returncode;
+ }
+
+ public String getServicename() {
+ return servicename;
+ }
+
+ public void setServicename(String servicename) {
+ this.servicename = servicename;
+ }
+
+ public long getTimestamp() {
+ return timestamp;
+ }
+
+ public void setTimestamp(long timestamp) {
+ this.timestamp = timestamp;
+ }
+
+ public byte[] getData() {
+ // 16 bit version
+ // 32 bit crc
+ // 32 bit timestamp
+ // 16 bit returncode
+ // 64 byte hostname
+ // 128 byte description
+ // 512 byte plugin output
+
+ byte[] data = new byte[4 + 4 + 4 + 4 + 64 + 128 + 512];
+
+ // 16 bit version (padded to 32 for C typedef?)
+ ByteOps.copyIntoArray(ByteOps.intToBytes(Constants.NSCA_PACKET_VERSION_3, 2, null, 0), data, 0, 4, false);
+
+ // 32 bit crc goes in last
+
+ // 32 bit timestamp (in Unix epoch format)
+ int epoch = (int) (timestamp / 1000);
+ ByteOps.copyIntoArray(ByteOps.intToBytes(epoch, 4, null, 0), data, 8, 4, false);
+
+ // 16 bit returncode (padded to 32 for C typedef?)
+ ByteOps.copyIntoArray(ByteOps.intToBytes(returncode, 2, null, 0), data, 12, 4, false);
+
+ // 64 byte hostname
+ ByteOps.copyIntoArray(host.getBytes(), data, 14, Constants.MAX_HOSTNAME_LENGTH, true);
+
+ // 128 byte description
+ ByteOps.copyIntoArray(servicename.getBytes(), data, 14 + 64, Constants.MAX_DESCRIPTION_LENGTH, true);
+
+ // 512 byte plugin output
+ ByteOps.copyIntoArray(message.getBytes(), data, 14 + 64 + 128, Constants.MAX_PLUGINOUTPUT_LENGTH, true);
+
+ // 32 bit crc
+ clearChecksumInPacket(data);
+ long crc = org.jboss.soa.esb.nagios.util.CRC32.calculate(data);
+ ByteOps.copyIntoArray(ByteOps.longToBytes(crc, 4, null, 0), data, 4, 4, false);
+
+ return data;
+
+ }
+
+ public static void clearChecksumInPacket(byte[] packet) {
+ packet[4] = 0;
+ packet[5] = 0;
+ packet[6] = 0;
+ packet[7] = 0;
+ }
+}
\ No newline at end of file
Property changes on: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/transport/NagiosNSCAPacket.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/transport/NagiosNSCATransport.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/transport/NagiosNSCATransport.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/transport/NagiosNSCATransport.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,115 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.nagios.transport;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.Socket;
+import java.util.logging.Logger;
+
+import org.jboss.soa.esb.nagios.Constants;
+import org.jboss.soa.esb.nagios.util.ByteOps;
+
+/**
+ * Transport class sends the data string from the monitor into the Nagios NSCA
+ * monitor
+ */
+public class NagiosNSCATransport {
+
+ private static final Logger logger_
+ = Logger.getLogger(NagiosNSCATransport.class.getName());
+
+ /**
+ * Transport a packet to the Nagios server
+ *
+ * @param host
+ * @param port
+ * @param message
+ */
+ public static void send(String host, int port, NagiosNSCAPacket packet) {
+
+ Socket socket = null;
+
+ try {
+
+ logger_.fine("Connecting to " + host + " : " + port);
+
+ socket = new Socket(host, port);
+ InputStream in = socket.getInputStream();
+
+ // Read IV data from socket on initial connect
+ byte[] data = new byte[Constants.TRANSMITTED_IV_SIZE];
+ readBytes(data, in);
+
+ // Read timestamp data from socket
+ byte[] tsdata = new byte[4];
+ readBytes(tsdata, in);
+
+ long timestamp = (long) ByteOps.bytesToInt(tsdata, 0, 4) * 1000;
+
+ logger_.finest("Got timestamp " + timestamp);
+ packet.setTimestamp(timestamp);
+
+ OutputStream out = socket.getOutputStream();
+
+ byte[] pdata = packet.getData();
+
+ logger_.finest("Writing packet length " + pdata.length
+ + " with message: " + packet.getMessage());
+
+ out.write(pdata);
+
+ out.flush();
+
+ out.close();
+ socket.close();
+
+ logger_.finest("Done.");
+
+ } catch (Exception e) {
+ logger_.severe("Failure transmitting packet to Nagios (host="+host+", port="+port+" - " + e.getMessage());
+ e.printStackTrace();
+ }
+
+ }
+
+ /**
+ * Fills the provided byte array with bytes from the InputStream
+ *
+ * @param data array to fill
+ * @param in input stream
+ * @throws IOException
+ */
+ public static void readBytes(byte[] data, InputStream in)
+ throws IOException {
+ int total = 0;
+ while (total < data.length) {
+ int readlen = in.read(data, total, data.length - total);
+ if (readlen == -1) throw new IOException("Unable to read!");
+ total += readlen;
+ }
+ }
+
+}
\ No newline at end of file
Property changes on: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/transport/NagiosNSCATransport.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/util/ByteOps.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/util/ByteOps.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/util/ByteOps.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,123 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.nagios.util;
+
+/**
+ * Byte manipulation utility methods
+ */
+public class ByteOps {
+
+ /**
+ * Convert portion of an array of bytes into an int
+ *
+ * @param b byte array containing data
+ * @param offset offset into array to start conversion
+ * @param size number of bytes in array to use for conversion
+ * @return the int value
+ */
+ public static int bytesToInt(byte[] b, int offset, int size) {
+ int num = 0;
+ int sw = 8 * (size - 1);
+
+ for (int loop = 0; loop < size; loop++) {
+ num |= ((int) b[offset + loop] & 0x00ff) << sw;
+ sw -= 8;
+ }
+
+ return num;
+ }
+
+ /**
+ * Convert an int to some number of bytes and store them in an array.
+ * If no array is provided (ie null) a new one will be allocated.
+ *
+ * @param num number to convert
+ * @param len length of bytes to use
+ * @param b array to store value into (optional, if null one will be created)
+ * @param offset position in array to store into
+ * @return original array provided, or new array created (if none provided)
+ */
+ public static byte[] intToBytes(int num, int len, byte[] b, int offset) {
+
+ if (b == null) {
+ b = new byte[len];
+ offset = 0;
+ }
+ int sw = ((len - 1) * 8);
+ int mask = (0xff << sw);
+
+ for (int l = 0; l < len; l++) {
+ b[offset + l] = (byte) ((num & mask) >>> sw);
+
+ sw -= 8;
+ mask >>>= 8;
+ }
+
+ return b;
+ }
+
+ public static final byte[] longToBytes(long num, int len, byte[] b,
+ int offset) {
+
+ if (b == null) {
+ b = new byte[len];
+ offset = 0;
+ }
+ long sw = ((len - 1) * 8);
+ long mask = (0xffL << sw);
+
+ for (int l = 0; l < len; l++) {
+ b[offset + l] = (byte) ((num & mask) >>> sw);
+
+ sw -= 8;
+ mask >>>= 8;
+ }
+
+ return b;
+ }
+
+ /**
+ * Convert a long to some number of bytes and store them in an array.
+ * If no array is provided (ie null) a new one will be allocated.
+ *
+ * @param num number to convert
+ * @param len length of bytes to use
+ * @param b array to store value into (optional, if null one will be created)
+ * @param offset position in array to store into
+ * @return original array provided, or new array created (if none provided)
+ */
+ public static void copyIntoArray(byte[] src, byte[] dst, int offset,
+ int length, boolean terminator) {
+
+ for (int i = 0; i < length && i < src.length && i + offset < dst.length; i++) {
+ if (i + offset < dst.length)
+ dst[i + offset] = src[i];
+ }
+
+ if (terminator && offset + length + 1 < dst.length)
+ dst[offset + length + 1] = 0;
+
+ }
+
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/util/ByteOps.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/util/CRC32.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/util/CRC32.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/util/CRC32.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,89 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.nagios.util;
+
+/**
+ * CRC32 Implementation
+ *
+ * Uses lazy-initialization technique, and pre-built value table
+ * for accelerating calculations.
+ */
+public class CRC32 {
+
+ /**
+ * Internal use only, initialization locking.
+ */
+ private static final Object LOCK = new Object();
+
+ /**
+ * Internal use only, pre-computed value table.
+ */
+ private static long[] crc32_table = null;
+
+ /**
+ * Internal use only, initialize pre-computed value table. There is no
+ * need to call this directly.
+ */
+ private static void init() {
+ synchronized (LOCK) {
+ if (crc32_table == null) {
+ // Initialize CRC value table
+ crc32_table = new long[256];
+ long crc, poly;
+ int i, j;
+ poly = 0xEDB88320L;
+ for (i = 0; i < 256; i++) {
+ crc = i;
+ for (j = 8; j > 0; j--) {
+ if ((crc & 1) > 0) {
+ crc = (crc >> 1) ^ poly;
+ } else {
+ crc >>= 1;
+ }
+ }
+ crc32_table[i] = crc;
+ }
+ }
+ }
+ }
+
+ /**
+ * Compute the CRC32 checksum of the provided byte array buffer.
+ * @param buffer - the buffer on which to do the computation
+ * @return the calculated CRC32 checksum
+ */
+ public static long calculate(byte[] buffer) {
+ init();
+ long crc;
+ int this_char;
+ int current_index;
+ crc = 0xFFFFFFFF;
+ for (current_index = 0; current_index < buffer.length; current_index++) {
+ this_char = (int) buffer[current_index];
+ crc = ((crc >> 8) & 0x00FFFFFF)
+ ^ crc32_table[((int)crc ^ this_char) & 0xFF];
+ }
+ return (crc ^ 0xFFFFFFFF);
+ }
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/listeners/src/org/jboss/soa/esb/nagios/util/CRC32.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/build.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/build.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/build.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,130 @@
+<?xml version="1.0"?>
+<project name="build.listeners.tests" default="org.jboss.esb.listeners.tests.compile" basedir=".">
+
+ <property name="org.jboss.esb.module.src.dir" value="../src"/>
+ <property name="org.jboss.esb.module.classes.root.dir" value="${org.jboss.esb.internal.dest}/classes"/>
+ <property name="org.jboss.esb.module.classes.dir" value="${org.jboss.esb.internal.dest}/classes/listeners"/>
+ <property name="org.jboss.esb.module.tests.src.dir" value="${basedir}/src"/>
+ <property name="org.jboss.esb.tests.classes.dir" value="${org.jboss.esb.internal.dest}/tests"/>
+ <property name="org.jboss.esb.tests.report.dir" value="${org.jboss.esb.internal.dest}/tests/junit"/>
+ <property name="org.jboss.esb.root.dir" value="../.."/>
+ <property name="org.jboss.esb.ejb3_embedded.lib.dir" value="${org.jboss.esb.root.dir}/../lib/ext/ejb3_embedded"/>
+ <property name="org.jboss.esb.module.tests.conf.dir" value="${org.jboss.esb.root.dir}/listeners/tests/resources/conf"/>
+
+ <property environment="env"/>
+
+ <property name="org.jboss.esb.ext.lib.dir" value="${org.jboss.esb.root.dir}/lib/ext"/>
+
+ <condition property="org.jboss.esb.ext.lib.dir" value="{org.jboss.esb.jboss.home}/client">
+ <equals arg1="${org.jboss.esb.frominstall}" arg2="yes"/>
+ </condition>
+
+ <path id="org.jboss.esb.tests.base.classpath">
+
+ <fileset dir="../${org.jboss.esb.ext.lib.dir}" includes="*.jar"/>
+ <pathelement location="${org.jboss.esb.module.classes.root.dir}/rosetta"/>
+ <pathelement location="${org.jboss.esb.module.classes.root.dir}/services"/>
+ <pathelement location="${org.jboss.esb.module.classes.dir}"/>
+ <pathelement location="${org.jboss.esb.module.tests.conf.dir}"/>
+ <!-- Needed as the listeners import javax.jms.* -->
+ <fileset dir="${org.jboss.esb.ejb3_embedded.lib.dir}" includes="jboss-ejb3-all.jar hibernate-all.jar thirdparty-all.jar"/>
+
+ <!--
+ <fileset dir="../${org.jboss.esb.ext.lib.dir}"
+ includes="activation.jar jbossall-client.jar log4j.jar mail.jar junit.jar emma.jar emma_ant.jar"/>
+ <pathelement location="${org.jboss.esb.module.classes.dir}"/>
+ -->
+ </path>
+
+ <target name="org.jboss.esb.tests.init">
+ <tstamp>
+ <format property="TODAY" pattern="d-MM-yy"/>
+ </tstamp>
+
+ <mkdir dir="${org.jboss.esb.tests.classes.dir}"/>
+ <mkdir dir="${org.jboss.esb.tests.report.dir}"/>
+ </target>
+
+ <target name="clean"/>
+
+ <target name="purge" depends="clean">
+ <delete dir="${org.jboss.esb.tests.classes.dir}"/>
+ </target>
+
+ <target name="org.jboss.esb.listeners.tests.compile" if="org.jboss.esb.buildtests" depends="org.jboss.esb.tests.init">
+
+ <javac
+ destdir="${org.jboss.esb.tests.classes.dir}"
+ classpathref="org.jboss.esb.tests.base.classpath"
+ debug="${org.jboss.esb.debug}"
+ optimize="${org.jboss.esb.optimize}"
+ >
+ <src path="${org.jboss.esb.module.tests.src.dir}"/>
+ </javac>
+
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- T E S T -->
+ <!-- ====================================================================== -->
+ <target name="org.jboss.esb.listeners.internal.test">
+ <property name="org.jboss.esb.module.tests.coverage.dir" value="${org.jboss.esb.internal.dest}/tests/coverage/listeners"/>
+ <property name="org.jboss.esb.module.classes.instr.dir" value="${org.jboss.esb.module.tests.coverage.dir}/instr" />
+
+ <!-- Instrument the code for code coverage - using emma... -->
+ <delete dir="${org.jboss.esb.module.tests.coverage.dir}" />
+ <mkdir dir="${org.jboss.esb.module.tests.coverage.dir}" />
+ <emma>
+ <instr instrpath="${org.jboss.esb.module.classes.dir}"
+ destdir="${org.jboss.esb.module.classes.instr.dir}"
+ metadatafile="${org.jboss.esb.module.tests.coverage.dir}/coverage.emma" />
+ </emma>
+ <!-- Run the tests -->
+ <antcall target="org.jboss.esb.services.internal.test.exec"/>
+
+ <!-- Generate the coverage report -->
+ <emma>
+ <report sourcepath="${org.jboss.esb.module.src.dir}" sort="+block,+name,+method,+class" metrics="method:70,block:80,line:80,class:100">
+ <fileset dir="${org.jboss.esb.module.tests.coverage.dir}" >
+ <include name="*.emma" />
+ </fileset>
+ <html outfile="${org.jboss.esb.module.tests.coverage.dir}/index.html" depth="method" columns="name,line,class,method,block"/>
+ </report>
+ </emma>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- U N I T A N D F U N C T I O N A L T E S T S -->
+ <!-- ====================================================================== -->
+ <target name="org.jboss.esb.services.internal.test.exec">
+ <echo message="Running tests for module"/>
+ <junit printsummary="yes" haltonerror="yes" haltonfailure="yes" showoutput="no" fork="true">
+ <formatter type="plain" usefile="false"/>
+ <formatter type="xml"/>
+ <batchtest todir="${org.jboss.esb.tests.report.dir}">
+ <fileset dir="${org.jboss.esb.module.tests.src.dir}">
+ <include name="**/**UnitTest.java"/>
+ <include name="**/**FuncTest.java"/>
+ </fileset>
+ </batchtest>
+ <classpath>
+ <!-- using instrumented code for code coverage -->
+ <pathelement location="${org.jboss.esb.module.classes.instr.dir}"/>
+ <pathelement location="${org.jboss.esb.tests.classes.dir}"/>
+ <!-- Need the tests src folder because there may be non-compiled test resources -->
+ <pathelement location="${org.jboss.esb.module.tests.src.dir}"/>
+ <path refid="org.jboss.esb.tests.base.classpath"/>
+ </classpath>
+ <!-- emma jvm args -->
+ <jvmarg value="-Demma.coverage.out.file=${org.jboss.esb.module.tests.coverage.dir}/coverage.emma" />
+ <jvmarg value="-Demma.coverage.out.merge=true" />
+ </junit>
+ <junitreport>
+ <fileset dir="${org.jboss.esb.tests.report.dir}">
+ <include name="*.xml"/>
+ </fileset>
+ <report format="frames" todir="${org.jboss.esb.tests.report.dir}"/>
+ <report format="noframes" todir="${org.jboss.esb.tests.report.dir}"/>
+ </junitreport>
+ </target>
+</project>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/resources/conf/log4j.properties
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/resources/conf/log4j.properties 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/resources/conf/log4j.properties 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,7 @@
+### direct log messages to stdout ###
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.Target=System.out
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
+### set log levels - for more verbose logging change 'info' to 'debug' ###
+log4j.rootLogger=info, stdout
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/device-profile.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/device-profile.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/device-profile.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!DOCTYPE device-profiles PUBLIC "-//MILYN//DTD TINAK 1.0//EN" "http://www.milyn.org/dtd/device-profile-1.0.dtd">
+
+<device-profiles>
+ <device-profile name="type:Acme-Order-XML" list="profile1,profile2"/>
+ <device-profile name="from:Acme" list="profile23,profile24"/>
+ <device-profile name="to:AcmePartner" list="profile55,profile56"/>
+
+ <device-profile name="profile1" list="A"/>
+ <device-profile name="profile2" list="B"/>
+ <device-profile name="profile23" list="C"/>
+ <device-profile name="profile24" list="D"/>
+ <device-profile name="profile55" list="E"/>
+ <device-profile name="profile56" list="E"/>
+</device-profiles>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-01.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-01.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-01.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,16 @@
+ <Actions>
+ <Action name="ActionA" processor="TestActionProcessor1">
+ <property name="param1" value="val1" />
+ <property name="param2" value="val2" />
+ <property name="param3" value="val3" />
+ </Action>
+ <Action name="ActionB" processor="TestActionProcessor1">
+ <property name="param1" value="val2" />
+ </Action>
+ <Action name="ActionC" processor="TestActionProcessor2" />
+
+ <ProcessorAliases>
+ <Alias name="TestActionProcessor1" class="org.jboss.soa.esb.actions.TestActionProcessor1" />
+ <Alias name="TestActionProcessor2" class="org.jboss.soa.esb.actions.TestActionProcessor2" />
+ </ProcessorAliases>
+ </Actions>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-02.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-02.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-02.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,9 @@
+ <Actions>
+ <Action name="" processor="TestActionProcessor1">
+ <property name="param1" value="val1" />
+ </Action>
+
+ <ProcessorAliases>
+ <Alias name="TestActionProcessor1" class="org.jboss.soa.esb.actions.TestActionProcessor1" />
+ </ProcessorAliases>
+ </Actions>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-03.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-03.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-03.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,9 @@
+ <Actions>
+ <Action name="ActionA" processor="">
+ <property name="param1" value="val1" />
+ </Action>
+
+ <ProcessorAliases>
+ <Alias name="TestActionProcessor1" class="org.jboss.soa.esb.actions.TestActionProcessor1" />
+ </ProcessorAliases>
+ </Actions>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-04.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-04.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-04.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,9 @@
+ <Actions>
+ <Action name="ActionA" processor="TestActionProcessor1">
+ <property name="" value="val1" />
+ </Action>
+
+ <ProcessorAliases>
+ <Alias name="TestActionProcessor1" class="org.jboss.soa.esb.actions.TestActionProcessor1" />
+ </ProcessorAliases>
+ </Actions>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-05.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-05.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-05.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,9 @@
+ <Actions>
+ <Action name="ActionA" processor="TestActionProcessor1">
+ <property name="param1" value="" />
+ </Action>
+
+ <ProcessorAliases>
+ <Alias name="TestActionProcessor1" class="org.jboss.soa.esb.actions.TestActionProcessor1" />
+ </ProcessorAliases>
+ </Actions>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-06.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-06.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-06.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,9 @@
+ <Actions>
+ <Action name="ActionA" processor="UnknownHandle1">
+ <property name="param1" value="val1" />
+ </Action>
+
+ <ProcessorAliases>
+ <Alias name="TestActionProcessor1" class="org.jboss.soa.esb.actions.TestActionProcessor1" />
+ </ProcessorAliases>
+ </Actions>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-07.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-07.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-07.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,9 @@
+ <Actions>
+ <Action name="ActionA" processor="TestActionProcessor1">
+ <property name="param1" value="val1" />
+ </Action>
+
+ <ProcessorAliases>
+ <Alias name="" class="org.jboss.soa.esb.actions.TestActionProcessor1" />
+ </ProcessorAliases>
+ </Actions>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-08.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-08.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-08.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,6 @@
+ <Actions>
+
+ <ProcessorAliases>
+ <Alias name="TestActionProcessor1" class="org.jboss.soa.esb.actions.TestActionProcessor1" />
+ </ProcessorAliases>
+ </Actions>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-09.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-09.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-09.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,5 @@
+ <Actions>
+ <Action name="ActionA" processor="TestActionProcessor1">
+ <property name="param1" value="val1" />
+ </Action>
+ </Actions>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-10.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-10.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-10.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,8 @@
+ <Actions>
+ <Action name="ActionA" processor="TestActionProcessor1">
+ <property name="param1" value="val1" />
+ </Action>
+
+ <ProcessorAliases>
+ </ProcessorAliases>
+ </Actions>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-11.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-11.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinition-Config-11.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,9 @@
+ <Actions>
+ <Action name="ActionA" processor="TestActionProcessor1">
+ <property name="param1" value="val1" />
+ </Action>
+
+ <ProcessorAliases>
+ <Alias name="TestActionProcessor1" class="org.jboss.soa.esb.actions.TestActionProcessor1" />
+ </ProcessorAliases>
+ </Actions>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinitionFactoryUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinitionFactoryUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ActionDefinitionFactoryUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,90 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions;
+
+import java.io.IOException;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.xml.sax.SAXException;
+
+/**
+ * Unit tests for the ActionDefinitionFactory class.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class ActionDefinitionFactoryUnitTest extends TestCase {
+
+ public void test_good_config() throws SAXException, IOException, ConfigurationException {
+ ConfigTree config = ConfigTree.fromInputStream(getClass().getResourceAsStream("ActionDefinition-Config-01.xml"));
+ ActionDefinitionFactory factory = new ActionDefinitionFactory(config);
+
+ // ActionProcessor Impl with a non-default public constructor
+ ActionDefinition actionDef = factory.getInstance("ActionA");
+ assertEquals("ActionA", actionDef.getName());
+ List<KeyValuePair> properties = actionDef.getProperties();
+ assertEquals(3, properties.size());
+ TestActionProcessor1 processor1 = (TestActionProcessor1) actionDef.getProcessor();
+ assertEquals(actionDef.getName(), processor1.name);
+ assertEquals(properties, processor1.properties);
+
+ actionDef = factory.getInstance("ActionB");
+ assertEquals("ActionB", actionDef.getName());
+ properties = actionDef.getProperties();
+ assertEquals(1, properties.size());
+ processor1 = (TestActionProcessor1) actionDef.getProcessor();
+ assertEquals(actionDef.getName(), processor1.name);
+ assertEquals(properties, processor1.properties);
+
+ // ActionProcessor Impl with a non-default public constructor
+ actionDef = factory.getInstance("ActionC");
+ assertEquals("ActionC", actionDef.getName());
+ //TestActionProcessor2 processor2 = (TestActionProcessor2) actionDef.getProcessor();
+ }
+
+ public void test_bad_config() throws SAXException, IOException, ConfigurationException {
+ test_bad_config("ActionDefinition-Config-02.xml", "Actions/Action has no 'name' defined.");
+ test_bad_config("ActionDefinition-Config-03.xml", "Actions/Action [ActionA] has no 'processor' defined.");
+ test_bad_config("ActionDefinition-Config-04.xml", "Actions/Action/property has no 'name' defined. Action [ActionA]");
+ test_bad_config("ActionDefinition-Config-05.xml", "Actions/Action/property has no 'value' defined. Action [ActionA]");
+ test_bad_config("ActionDefinition-Config-06.xml", "No action processor class defined for processor alias");
+ test_bad_config("ActionDefinition-Config-07.xml", "Actions/ProcessorAliases/Alias has no 'name' defined");
+ test_bad_config("ActionDefinition-Config-08.xml", "No 'Actions/Action' configurations");
+ test_bad_config("ActionDefinition-Config-09.xml", "No 'Actions/ProcessorAliases' configuration");
+ test_bad_config("ActionDefinition-Config-10.xml", "No action processor classes defined");
+ }
+
+ private void test_bad_config(String configName, String exceptionMsg) throws SAXException, IOException, ConfigurationException {
+ ConfigTree config = ConfigTree.fromInputStream(getClass().getResourceAsStream(configName));
+ try {
+ new ActionDefinitionFactory(config);
+ fail("Expected ConfigurationException");
+ } catch(ConfigurationException e) {
+ assertTrue("Expected config exception statrting with [" + exceptionMsg + "]. Instead, go [" + e.getMessage() + "]", e.getMessage().startsWith(exceptionMsg));
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/BaseTestActionProcessor.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/BaseTestActionProcessor.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/BaseTestActionProcessor.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,73 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Vector;
+
+import org.jboss.soa.esb.message.Message;
+
+/**
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public abstract class BaseTestActionProcessor implements ActionProcessor {
+
+ public ActionProcessingException exception;
+ public List<Message> processedMessages = new Vector<Message>();
+ public boolean returnNull = false;
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
+ */
+ public Message process(Message message) throws ActionProcessingException {
+ if(exception != null) {
+ throw exception;
+ }
+
+ processedMessages.add(message);
+
+ if(returnNull) {
+ return null;
+ }
+
+ return message;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
+ */
+ public Serializable getOkNotification(Message message) {
+ return "OK: " + message;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
+ */
+ public Serializable getErrorNotification(Message message) {
+ return "ERROR: " + message;
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformerUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformerUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,110 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.converters.SmooksTransformer;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+
+/**
+ * SmooksTransformer unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class SmooksTransformerUnitTest extends TestCase {
+
+ @Override
+ protected void setUp() throws Exception {
+ SmooksTransformer.reset();
+ }
+
+ public void test_bad_config() {
+ List<KeyValuePair> properties = new ArrayList<KeyValuePair>();
+
+ // Should get exceptions where required configs are missing...
+ assertConfigException(properties, "Action configuration 'message-type' not specified");
+ properties.add(new KeyValuePair("message-type", "111"));
+ assertConfigException(properties, "Action configuration 'message-from' not specified");
+ properties.add(new KeyValuePair("message-from", "AAA"));
+ assertConfigException(properties, "Action configuration 'message-to' not specified");
+ properties.add(new KeyValuePair("message-to", "BBB"));
+
+ // Should get an exception where the smooks-cdr.lst file is missing....
+ properties.add(new KeyValuePair("smooks-cdr.list-classpath-prefix", "/some/bad/cp/location/"));
+ assertConfigException(properties, "Failed to locate Smooks configuration list file [smooks-cdr.lst]. The folder containing this file must be located at");
+ }
+
+ public void test_trans() throws ActionProcessingException, ConfigurationException {
+ String stringMessage;
+ String transRes;
+
+ // Very basic test! Just illustrates profile based resource selection.
+ // Read the smooks-test.cdrl config file in this package!!
+
+ // Initialise the acme order message...
+ stringMessage = "<a><ddd>value</ddd></a>";
+
+ // Transform the order message going to "AcmePartner1"...
+ transRes = transform(stringMessage, "Acme-Order-XML", "Acme", "AcmePartner1");
+ assertEquals("<x><b>value</b></x>", transRes);
+
+ // Transform the order message going to "AcmePartner2"...
+ transRes = transform(stringMessage, "Acme-Order-XML", "Acme", "AcmePartner2");
+ assertEquals("<x><c>value</c></x>", transRes);
+ }
+
+ private String transform(String stringMessage, String type, String from, String to) throws ActionProcessingException, ConfigurationException {
+ List<KeyValuePair> properties = new ArrayList<KeyValuePair>();
+
+ // Set the message properties in order to trigger the appropriate transformations
+ // on the message...
+ properties.add(new KeyValuePair("message-type", type));
+ properties.add(new KeyValuePair("message-from", from));
+ properties.add(new KeyValuePair("message-to", to));
+
+ // The smooks-cdr.lst and device-profile.xml files are located in the root of the
+ // test src folder...
+ SmooksTransformer transformer = new SmooksTransformer("trans", properties);
+
+ Message oMsg = MessageFactory.getInstance().getMessage();
+ ActionUtils.setTaskObject(oMsg,stringMessage);
+ oMsg = transformer.process(oMsg);
+ return (String) ActionUtils.getTaskObject(oMsg);
+ }
+
+ private void assertConfigException(List<KeyValuePair> properties, String expectedException) {
+ try {
+ new SmooksTransformer("trans", properties);
+ fail("Expected ConfigurationException: [" + expectedException + "...]");
+ } catch(ConfigurationException e) {
+ assertTrue("Expected exception message to start with [" + expectedException + "]. Was [" + e.getMessage() + "]", e.getMessage().startsWith(expectedException));
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor1.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor1.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor1.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+
+public class TestActionProcessor1 extends BaseTestActionProcessor {
+
+ private static Logger logger = Logger.getLogger(TestActionProcessor1.class);
+ public String name;
+ public List<KeyValuePair> properties;
+
+ public TestActionProcessor1(String name, List<KeyValuePair> properties) {
+ this.name = name;
+ this.properties = properties;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
+ */
+ public Message process(Message message) throws ActionProcessingException {
+ logger.info("Processing action [" + name + "]: " + ActionUtils.getTaskObject(message));
+ return super.process(message);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor2.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor2.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor2.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+
+public class TestActionProcessor2 extends BaseTestActionProcessor {
+
+ private static Logger logger = Logger.getLogger(TestActionProcessor2.class);
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
+ */
+ public Message process(Message message) throws ActionProcessingException {
+ logger.info("Processing action: " + ActionUtils.getTaskObject(message));
+ return super.process(message);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor3.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor3.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor3.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+
+public class TestActionProcessor3 extends BaseTestActionProcessor {
+
+ public TestActionProcessor3(String name) {
+ System.out.println("Instantiate action handler: " + name);
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
+ */
+ public Message process(Message message) throws ActionProcessingException {
+ System.out.println("processAction: " + ActionUtils.getTaskObject(message));
+ return super.process(message);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestBean.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestBean.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestBean.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions;
+
+/**
+ * Just a simple test JavaBean class.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class TestBean implements java.io.Serializable
+{
+ private static final long serialVersionUID = 1L;
+ private String name;
+ private String phone;
+
+ public TestBean() {
+ }
+ public TestBean(String name, String phone) {
+ this.name = name;
+ this.phone = phone;
+ }
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getPhone() {
+ return phone;
+ }
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ToNowhereRouter.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ToNowhereRouter.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ToNowhereRouter.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.soa.esb.message.Message;
+
+/**
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class ToNowhereRouter extends BaseTestActionProcessor {
+
+ public static List<Object> objects = new ArrayList<Object>();
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
+ */
+ public Message process(Message msg) throws ActionProcessingException {
+ objects.add(ActionUtils.getTaskObject(msg));
+
+ System.out.println("ToNowhereRouter");
+ return msg;
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ByteArrayToStringUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ByteArrayToStringUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ByteArrayToStringUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,60 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.converters;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+
+/**
+ * ByteArrayToString unit tests.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class ByteArrayToStringUnitTest extends TestCase
+{
+
+ public void test() throws ActionProcessingException
+ {
+ List<KeyValuePair> properties = new ArrayList<KeyValuePair>();
+
+ properties.add(new KeyValuePair("encoding", "UTF-8"));
+ ByteArrayToString byteArrayToString = new ByteArrayToString(
+ "actionName", properties);
+
+ String sTest = "TestString";
+ Message msg = MessageFactory.getInstance().getMessage();
+ ActionUtils.setTaskObject(msg,sTest.getBytes());
+ byteArrayToString.process(msg);
+ String decodedBytes = (String)ActionUtils.getTaskObject(msg);
+ assertEquals(sTest, decodedBytes);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/FileToByteArrayUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/FileToByteArrayUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/FileToByteArrayUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,66 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.converters;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.actions.ActionProcessingException;
+
+/**
+ * FileToByteArray unit tests.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class FileToByteArrayUnitTest extends TestCase {
+
+ private File testFile = null;
+ private String FILE_CONTENTS = "this is the file contents!";
+
+ @Override
+ protected void setUp() throws Exception {
+ testFile = new File("FileToByteArrayUnitTest.tst");
+
+ FileWriter fileWriter = new FileWriter(testFile);
+
+ fileWriter.write(FILE_CONTENTS);
+ fileWriter.flush();
+ fileWriter.close();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ testFile.delete();
+ }
+
+ public void test() throws IOException, ActionProcessingException {
+ FileToByteArray fileToByteArray = new FileToByteArray();
+ byte[] fileContent = (byte[])fileToByteArray.process(testFile);
+
+ assertEquals(FILE_CONTENTS, new String(fileContent));
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/LongToDateConverter.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/LongToDateConverter.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/LongToDateConverter.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.converters;
+
+import java.util.Date;
+
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.actions.BaseTestActionProcessor;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * LongToDate Converter Test Action Handler.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class LongToDateConverter extends BaseTestActionProcessor
+{
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
+ */
+ public Message process(Message message) throws ActionProcessingException
+ {
+ Object oCurr = ActionUtils.getTaskObject(message);
+ if (!(oCurr instanceof Long))
+ {
+ throw new ActionProcessingException(
+ "This action handler only accepts Long object instances.");
+ }
+ System.out.println("LongToDateConverter");
+
+ try { ActionUtils.setTaskObject(message,new Date((Long)oCurr)); }
+ catch (Exception e)
+ { throw new ActionProcessingException(e); }
+ return message;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToCSVStringUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToCSVStringUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToCSVStringUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,107 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.converters;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+
+/**
+ * ObjectToCSVString unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class ObjectToCSVStringUnitTest extends TestCase {
+
+ public void test() throws ConfigurationException, ActionProcessingException {
+ List<KeyValuePair> properties = new ArrayList<KeyValuePair>();
+ Message oMsg = MessageFactory.getInstance().getMessage();
+
+ // Single value - property exist on bean...
+ properties.add(new KeyValuePair(ObjectToCSVString.BEAN_PROPERTIES_PROP, "name"));
+ ObjectToCSVString processor = new ObjectToCSVString("ObjectToCSVString", properties);
+
+ ActionUtils.setTaskObject(oMsg,new TestBean());
+ oMsg = processor.process(oMsg);
+ assertEquals("Tom Fennelly", ActionUtils.getTaskObject(oMsg));
+
+ // Multi value - properties all exist on bean...
+ properties.clear();
+ properties.add(new KeyValuePair(ObjectToCSVString.BEAN_PROPERTIES_PROP, "name,age"));
+ processor = new ObjectToCSVString("ObjectToCSVString", properties);
+ ActionUtils.setTaskObject(oMsg,new TestBean());
+ processor.process(oMsg);
+ assertEquals("Tom Fennelly,21", ActionUtils.getTaskObject(oMsg));
+
+ // Multi value - some properties exist on bean and some don't...
+ properties.clear();
+ properties.add(new KeyValuePair(ObjectToCSVString.BEAN_PROPERTIES_PROP, "id,name,phone,age"));
+ processor = new ObjectToCSVString("ObjectToCSVString", properties);
+ ActionUtils.setTaskObject(oMsg,new TestBean());
+ processor.process(oMsg);
+ assertEquals("<no-such-property>,Tom Fennelly,<no-such-property>,21", ActionUtils.getTaskObject(oMsg));
+
+ // Single value - property doesn't exist on bean...
+ properties.clear();
+ properties.add(new KeyValuePair(ObjectToCSVString.BEAN_PROPERTIES_PROP, "id"));
+ processor = new ObjectToCSVString("ObjectToCSVString", properties);
+ ActionUtils.setTaskObject(oMsg,new TestBean());
+ processor.process(oMsg);
+ assertEquals("<no-such-property>", ActionUtils.getTaskObject(oMsg));
+
+ // Single value - property doesn't exist on bean and "fail-on-missing-property" action config is set on...
+ properties.clear();
+ properties.add(new KeyValuePair(ObjectToCSVString.BEAN_PROPERTIES_PROP, "id"));
+ properties.add(new KeyValuePair(ObjectToCSVString.FAIL_ON_MISSING_PROPERTY, "true"));
+ processor = new ObjectToCSVString("ObjectToCSVString", properties);
+ ActionUtils.setTaskObject(oMsg,new TestBean());
+ try {
+ processor.process(oMsg);
+ fail("Expected ActionProcessingException");
+ } catch(ActionProcessingException e) {
+ assertEquals("Bean method: getId not found/accessible on message object org.jboss.soa.esb.actions.converters.ObjectToCSVStringUnitTest$TestBean", e.getMessage());
+ }
+ }
+
+ public static class TestBean implements java.io.Serializable
+ {
+ private static final long serialVersionUID = 1L;
+ private String name = "Tom Fennelly";
+ private int age = 21; // hehehehe
+
+ public int getAge() {
+ return age;
+ }
+ public String getName() {
+ return name;
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToFileWriterUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToFileWriterUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToFileWriterUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,112 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.converters;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.actions.routing.ObjectToFileWriter;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+
+/**
+ * Unit tests for ObjectToFileWriter.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class ObjectToFileWriterUnitTest extends TestCase {
+
+ private static final String A_STRING = "write something to file";
+ private File file = new File("./ObjectToFileWriter.tst");
+ private List<KeyValuePair> properties;
+
+ @Override
+ protected void setUp() throws Exception {
+ properties = new ArrayList<KeyValuePair>();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ file.delete();
+ }
+
+ public void test_writeWithNoAppend() throws ConfigurationException, ActionProcessingException {
+ properties.add(new KeyValuePair("file", file.getPath()));
+
+ // Write something fo file and check it was written..
+ writeAndCheck(A_STRING, A_STRING);
+ // And do it all again to make sure the contents are not appended i.e. the file is overwritten...
+ writeAndCheck(A_STRING, A_STRING);
+ }
+
+ public void test_writeWithBytes() throws ConfigurationException, ActionProcessingException, UnsupportedEncodingException {
+ properties.add(new KeyValuePair("file", file.getPath()));
+
+ // Write bytes to the file...
+ writeAndCheck(A_STRING.getBytes("UTF-8"), A_STRING);
+ }
+
+ public void test_writeWithAppend() throws ConfigurationException, ActionProcessingException {
+ properties.add(new KeyValuePair("file", file.getPath()));
+ properties.add(new KeyValuePair("append", "true"));
+
+ //On windows the file does not get deleted sometimes. Let's clean it out
+ //in that case.
+ try { new FileOutputStream(file).close();}
+ catch (IOException e) { }
+
+ // Write something to file and check it was written..
+ writeAndCheck(A_STRING, A_STRING);
+ // And do it all again to make sure the contents are appended i.e. the file is not overwritten...
+ writeAndCheck(A_STRING, A_STRING + A_STRING);
+ }
+
+
+ private void writeAndCheck(Object objectToWrite, String expected) throws ConfigurationException, ActionProcessingException {
+ // Use the ObjectToFileWriter to write something to file...
+ ObjectToFileWriter fileWriter = new ObjectToFileWriter("ObjectToFileWriter-Test", properties);
+ Message oMsg = MessageFactory.getInstance().getMessage();
+ ActionUtils.setTaskObject(oMsg,objectToWrite);
+ fileWriter.process(oMsg);
+
+ // Use the FileToByteArray processor to read the file contents back...
+ oMsg = MessageFactory.getInstance().getMessage();
+ ActionUtils.setTaskObject(oMsg,file);
+ new FileToByteArray().process(oMsg);
+ byte[] fileContent = (byte[])ActionUtils.getTaskObject(oMsg);
+
+ // Make sure the contents are as expected...
+ String fileContentString = new String(fileContent);
+ assertEquals(expected, fileContentString);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToXStreamUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToXStreamUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToXStreamUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,109 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.converters;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.actions.TestBean;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.DomDriver;
+
+/**
+ * ObjectToXStream unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class ObjectToXStreamUnitTest extends TestCase {
+
+ public void test_default() throws ActionProcessingException {
+ List<KeyValuePair> properties = new ArrayList<KeyValuePair>();
+
+ ObjectToXStream objectToXStream = new ObjectToXStream("TestBean-Serialiser", properties);
+
+ Message oMsg = MessageFactory.getInstance().getMessage();
+ ActionUtils.setTaskObject(oMsg,new TestBean("Tom", "1234"));
+ oMsg = objectToXStream.process(oMsg);
+ String xml = (String)ActionUtils.getTaskObject(oMsg);
+ XStream xstream = new XStream(new DomDriver());
+ TestBean bean = new TestBean();
+
+ assertTrue("Expected [<TestBean>]. Got [" + xml + "]", xml.startsWith("<TestBean>"));
+ xstream.alias("TestBean", TestBean.class);
+ xstream.fromXML(xml, bean);
+
+ assertEquals("Tom", bean.getName());
+ assertEquals("1234", bean.getPhone());
+ }
+
+ public void test_with_package() throws ActionProcessingException {
+ List<KeyValuePair> properties = new ArrayList<KeyValuePair>();
+
+ properties.add(new KeyValuePair("exclude-package", "false"));
+ ObjectToXStream objectToXStream = new ObjectToXStream("TestBean-Serialiser", properties);
+
+ Message oMsg = MessageFactory.getInstance().getMessage();
+ ActionUtils.setTaskObject(oMsg,new TestBean("Tom", "1234"));
+ objectToXStream.process(oMsg);
+ String xml = (String)ActionUtils.getTaskObject(oMsg);
+
+ XStream xstream = new XStream(new DomDriver());
+ TestBean bean = new TestBean();
+
+ assertTrue("Expected start with [<" + TestBean.class.getName() + ">]. Got [" + xml + "]", xml.startsWith("<" + TestBean.class.getName() + ">"));
+ xstream.fromXML(xml, bean);
+
+ assertEquals("Tom", bean.getName());
+ assertEquals("1234", bean.getPhone());
+ }
+
+ public void test_with_alias() throws ActionProcessingException {
+ List<KeyValuePair> properties = new ArrayList<KeyValuePair>();
+
+ properties.add(new KeyValuePair("class-alias", "TomsClass"));
+ ObjectToXStream objectToXStream = new ObjectToXStream("TestBean-Serialiser", properties);
+
+ Message oMsg = MessageFactory.getInstance().getMessage();
+ ActionUtils.setTaskObject(oMsg,new TestBean("Tom", "1234"));
+ objectToXStream.process(oMsg);
+ String xml = (String)ActionUtils.getTaskObject(oMsg);
+
+ XStream xstream = new XStream(new DomDriver());
+ xstream.alias("TomsClass", TestBean.class);
+ TestBean bean = new TestBean();
+
+ assertTrue("Expected start with [<TomsClass>]. Got [" + xml + "]", xml.startsWith("<TomsClass>"));
+ xstream.fromXML(xml, bean);
+
+ assertEquals("Tom", bean.getName());
+ assertEquals("1234", bean.getPhone());
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/StringToLongConverter.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/StringToLongConverter.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/StringToLongConverter.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.actions.converters;
+
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.actions.BaseTestActionProcessor;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * StringToLong Converter Test Action Handler.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class StringToLongConverter extends BaseTestActionProcessor {
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
+ */
+ public Message process(Message message) throws ActionProcessingException {
+ Object oCurr = ActionUtils.getTaskObject(message);
+ if(!(oCurr instanceof String)) {
+ throw new ActionProcessingException("This action handler only accepts String object instances.");
+ }
+
+ System.out.println("StringToLongConverter");
+ try { ActionUtils.setTaskObject(message,new Long((String)oCurr)); }
+ catch (Exception e)
+ { throw new ActionProcessingException(e); }
+ return message;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/smooks-test.cdrl
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/smooks-test.cdrl 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/actions/smooks-test.cdrl 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,28 @@
+<?xml version='1.0'?>
+<!DOCTYPE smooks-resource-list PUBLIC '-//MILYN//DTD SMOOKS 1.0//EN' 'http://milyn.org/dtd/smooksres-list-1.0.dtd'>
+
+<smooks-resource-list>
+
+ <!--
+ "Acme-Order-XML" messages going from "Acme" to "AcmePartner1"
+ -->
+ <smooks-resource useragent="type:Acme-Order-XML AND from:Acme AND to:AcmePartner1" selector="ddd" path="org.milyn.cdres.trans.RenameElementTU">
+ <param name="replacementElement">b</param>
+ </smooks-resource>
+
+ <!--
+ "Acme-Order-XML" messages going from "Acme" to "AcmePartner2"
+ -->
+ <smooks-resource useragent="type:Acme-Order-XML AND from:Acme AND to:AcmePartner2" selector="ddd" path="org.milyn.cdres.trans.RenameElementTU">
+ <param name="replacementElement">c</param>
+ </smooks-resource>
+
+ <!--
+ "Acme-Order-XML" messages going from "Acme" to anywhere
+ -->
+ <smooks-resource useragent="type:Acme-Order-XML AND from:Acme" selector="a" path="org.milyn.cdres.trans.RenameElementTU">
+ <param name="replacementElement">x</param>
+ </smooks-resource>
+
+</smooks-resource-list>
+
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/AbstractListenerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/AbstractListenerUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/AbstractListenerUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,198 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners.old;
+
+import org.jboss.soa.esb.actions.ActionDefinition;
+import org.jboss.soa.esb.actions.ActionDefinitionFactory;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.actions.BaseTestActionProcessor;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.old.AbstractListener;
+import org.jboss.soa.esb.listeners.old.GpListener;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.util.MockNonblockingListener;
+
+import junit.framework.TestCase;
+
+/**
+ * AbstractListener tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class AbstractListenerUnitTest extends TestCase {
+
+ private MockGpListener gpListener;
+ private ActionDefinitionFactory factory;
+ private ConfigTree listenerConfig;
+ private ActionDefinition action_ActionA;
+ private ActionDefinition action_ActionB;
+ private ActionDefinition action_ActionC;
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() throws Exception {
+ gpListener = new MockGpListener();
+ listenerConfig = new ConfigTree("listenerConfig");
+
+ ConfigTree config = ConfigTree.fromInputStream(getClass().getResourceAsStream("AbstractListener_ActionConfig.xml"));
+ factory = new ActionDefinitionFactory(config);
+ action_ActionA = factory.getInstance("ActionA");
+ action_ActionB = factory.getInstance("ActionB");
+ action_ActionC = factory.getInstance("ActionC");
+ assertNotNull(action_ActionA);
+ assertNotNull(action_ActionB);
+ assertNotNull(action_ActionC);
+ }
+
+ public void test_BadActionsConfig() throws Exception {
+ // Not action config of any description...
+ assertActionsConfigException("message1", "No actions configuration specified either on the listener or as a Message attachement [MESSAGE_PROCESSING_ACTIONS_LIST]. Aborting message processing.");
+
+ // Bad actions config as an override attachment - wrong type...
+ Message message = MessageFactory.getInstance().getMessage();
+ message.getAttachment().put(AbstractListener.MESSAGE_PROCESSING_ACTIONS_LIST, new Long(1));
+ assertActionsConfigException(message, "Message attachement [MESSAGE_PROCESSING_ACTIONS_LIST] must be of type java.lang.String. Received [java.lang.Long]. Aborting message processing.");
+
+ // Bad actions config as an override attachment - empty...
+ message = MessageFactory.getInstance().getMessage();
+ message.getAttachment().put(AbstractListener.MESSAGE_PROCESSING_ACTIONS_LIST, " ");
+ assertActionsConfigException(message, "Message attachement [MESSAGE_PROCESSING_ACTIONS_LIST] was specified but with an empty value. Aborting message processing.");
+
+ // Bad actions config as an override attachment - unknown action...
+ listenerConfig.setAttribute(GpListener.PARM_ACTIONS, "ActionX");
+ assertActionsConfigException("message1", "Bad Listener Configuration. No 'Actions/Action' definition for action [ActionX].");
+ }
+
+ public void test_ActionsListenerConfig() throws Exception {
+ listenerConfig.setAttribute(GpListener.PARM_ACTIONS, "ActionA, ActionB");
+
+ // Run the listener and check that the proper actions were run...
+ runListener("message1", null);
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionA.getProcessor()).processedMessages.size());
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionB.getProcessor()).processedMessages.size());
+ assertEquals(0, ((BaseTestActionProcessor)action_ActionC.getProcessor()).processedMessages.size());
+ }
+
+ public void test_ActionsOverrideConfig() throws Exception {
+ Message message = MessageFactory.getInstance().getMessage();
+
+ // Set the actions on both the listener config and on the message as an attachment...
+ listenerConfig.setAttribute(GpListener.PARM_ACTIONS, "ActionA, ActionB");
+ message.getAttachment().put(AbstractListener.MESSAGE_PROCESSING_ACTIONS_LIST, "ActionA, ActionC");
+ ActionUtils.setTaskObject(message, "message1");
+
+ // Run the listener and check that it was the attachment actions config that was used...
+ runListener(message, null);
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionA.getProcessor()).processedMessages.size());
+ assertEquals(0, ((BaseTestActionProcessor)action_ActionB.getProcessor()).processedMessages.size());
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionC.getProcessor()).processedMessages.size());
+ }
+
+ public void test_PrematureTermination_By_Exception() throws Exception {
+ listenerConfig.setAttribute(GpListener.PARM_ACTIONS, "ActionA, ActionB, ActionC");
+
+ ((BaseTestActionProcessor)action_ActionB.getProcessor()).exception = new ActionProcessingException("Premature termination by Exception!");
+
+ // Run the listener and check that it failed and raised an appropriate error on the listener...
+ runListener("message1", "Premature termination by Exception!");
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionA.getProcessor()).processedMessages.size());
+ assertEquals(0, ((BaseTestActionProcessor)action_ActionB.getProcessor()).processedMessages.size());
+ assertEquals(0, ((BaseTestActionProcessor)action_ActionC.getProcessor()).processedMessages.size());
+ }
+
+ public void test_PrematureTermination_By_Null() throws Exception {
+ listenerConfig.setAttribute(GpListener.PARM_ACTIONS, "ActionA, ActionB, ActionC");
+
+ ((BaseTestActionProcessor)action_ActionB.getProcessor()).returnNull = true;
+
+ // Run the listener and check that it failed and raised an appropriate error on the listener...
+ runListener("message1", "Premature termination of action processing pipeline [[ActionA, ActionB, ActionC]]. ActionProcessor [org.jboss.soa.esb.actions.TestActionProcessor1] returned a null message result on processing of action [ActionB].");
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionA.getProcessor()).processedMessages.size());
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionB.getProcessor()).processedMessages.size());
+ assertEquals(0, ((BaseTestActionProcessor)action_ActionC.getProcessor()).processedMessages.size());
+ }
+
+ public void test_Last_Action_Returning_Null_OK() throws Exception {
+ listenerConfig.setAttribute(GpListener.PARM_ACTIONS, "ActionA, ActionB, ActionC");
+
+ ((BaseTestActionProcessor)action_ActionC.getProcessor()).returnNull = true;
+
+ runListener("message1", null);
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionA.getProcessor()).processedMessages.size());
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionB.getProcessor()).processedMessages.size());
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionC.getProcessor()).processedMessages.size());
+ }
+
+ private void assertActionsConfigException(Object message, String expectedException) throws Exception {
+ MockNonblockingListener listener = new MockNonblockingListener(gpListener, listenerConfig, factory);
+
+ listener.messages = new Object[] {message};
+ gpListener.continueLooping = true;
+ listener.run();
+
+ assertEquals(0, listener.messagesCompleted.size());
+ assertEquals(1, listener.messagesInError.size());
+ assertEquals(message, listener.messagesInError.get(0).initialMsg);
+ assertEquals(null, listener.messagesInError.get(0).processor);
+ assertEquals(expectedException, listener.messagesInError.get(0).error.getMessage());
+ }
+
+ private MockNonblockingListener runListener(Object message, String expectedException) throws Exception {
+ MockNonblockingListener listener = new MockNonblockingListener(gpListener, listenerConfig, factory);
+
+ listener.messages = new Object[] {message};
+ gpListener.continueLooping = true;
+ listener.run();
+
+ if(expectedException == null) {
+ assertEquals(1, listener.messagesCompleted.size());
+ assertEquals(0, listener.messagesInError.size());
+ assertEquals(message, listener.messagesCompleted.get(0));
+ } else {
+ assertEquals(0, listener.messagesCompleted.size());
+ assertEquals(1, listener.messagesInError.size());
+ assertEquals(message, listener.messagesInError.get(0).initialMsg);
+ assertEquals(expectedException, listener.messagesInError.get(0).error.getMessage());
+ }
+
+ return listener;
+ }
+
+ /**
+ * Overriding the GpListener to get control over the continueLooping method.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ private class MockGpListener extends GpListener {
+ private boolean continueLooping = true;
+
+ public boolean continueLooping() {
+ try {
+ return continueLooping;
+ } finally {
+ continueLooping = false;
+ }
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/AbstractListener_ActionConfig.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/AbstractListener_ActionConfig.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/AbstractListener_ActionConfig.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,11 @@
+ <Actions>
+ <Action name="ActionA" processor="Processor1" />
+ <Action name="ActionB" processor="Processor2" />
+ <Action name="ActionC" processor="Processor3" />
+
+ <ProcessorAliases>
+ <Alias name="Processor1" class="org.jboss.soa.esb.actions.TestActionProcessor1" />
+ <Alias name="Processor2" class="org.jboss.soa.esb.actions.TestActionProcessor1" />
+ <Alias name="Processor3" class="org.jboss.soa.esb.actions.TestActionProcessor1" />
+ </ProcessorAliases>
+ </Actions>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/DirectoryPollerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/DirectoryPollerUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/DirectoryPollerUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,58 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.listeners.old;
+
+import org.jboss.soa.esb.common.tests.BaseTest;
+import org.jboss.soa.esb.listeners.old.DirectoryPoller;
+
+/**
+ * Test the DirectoryPoller
+ *
+ * @author <a href="mailto:arvinder.singh at indigo-logic.com">Arvinder Singh</a>
+ * @version <tt>$Revision:$</tt>
+ * $Id:$
+ */
+public class DirectoryPollerUnitTest extends BaseTest {
+
+
+ /**
+ * Basic construction test
+ * @throws Exception
+ */
+ public void test_Empty_Construction() throws Exception {
+ log.info("Constructing instance of DirectoryPoller");
+ // This should fail
+ try {
+ @SuppressWarnings("unused")
+ DirectoryPoller dirPoller = new DirectoryPoller(null,null, null);
+ fail("GpListener should fail with empty constructor string");
+ } catch (Exception e) {
+ }
+ }
+
+
+
+
+
+
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/GpListener-Config-01.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/GpListener-Config-01.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/GpListener-Config-01.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,31 @@
+<EsbConfig
+ command-queue-class="org.jboss.internal.soa.esb.command.InMemoryCommandQueue"
+ command-queue-name="test-queue"
+>
+
+ <ListenerConfig
+ listenerClass="org.jboss.soa.esb.util.MockPoller"
+ actions="String-To-Long, Long-To-Date, Route-To-Nowhere"
+ maxThreads="1"
+ >
+ </ListenerConfig>
+
+ <Actions>
+ <!--
+ Under the new architecture I think these will be equivalent to "Contracts Definitions"?
+ -->
+ <Action name="String-To-Long" processor="StringToLongConverter" />
+ <Action name="Long-To-Date" processor="LongToDateConverter" />
+ <Action name="Route-To-Nowhere" processor="ToNowhereRouter" />
+
+ <ProcessorAliases>
+ <!--
+ Under the new architecture I think these will be equivalent to "Services"? The alias "name" being like the Service URN.
+ -->
+ <Alias name="StringToLongConverter" class="org.jboss.soa.esb.actions.converters.StringToLongConverter" />
+ <Alias name="LongToDateConverter" class="org.jboss.soa.esb.actions.converters.LongToDateConverter" />
+ <Alias name="ToNowhereRouter" class="org.jboss.soa.esb.actions.ToNowhereRouter" />
+ </ProcessorAliases>
+ </Actions>
+
+</EsbConfig>
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/GpListenerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/GpListenerUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/GpListenerUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,92 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.listeners.old;
+
+import java.util.Date;
+
+import org.jboss.internal.soa.esb.command.InMemoryCommandQueue;
+import org.jboss.soa.esb.actions.ToNowhereRouter;
+import org.jboss.soa.esb.common.tests.BaseTest;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.old.GpListener;
+import org.jboss.soa.esb.util.ListenersManagerExecThread;
+import org.jboss.soa.esb.util.MockPoller;
+
+/**
+ * Test the GpListener
+ *
+ * @author <a href="mailto:arvinder.singh at indigo-logic.com">Arvinder Singh</a>
+ * @version <tt>$Revision:$</tt>
+ * $Id:$
+ */
+public class GpListenerUnitTest extends BaseTest {
+
+
+ /**
+ * Basic construction test
+ * @throws Exception
+ */
+ public void test_Empty_Construction() throws Exception {
+ log.info("Constructing instance of GpListener");
+ // This should fail
+ @SuppressWarnings("unused")
+ GpListener gpListener = null;
+ try {
+ gpListener = new GpListener("");
+ fail("GpListener should fail with empty constructor string");
+ } catch (Exception e) {
+ }
+ }
+
+
+
+ public void test_newGpListener() throws Exception {
+ ConfigTree config = ConfigTree.fromInputStream(getClass().getResourceAsStream("GpListener-Config-01.xml"));
+ GpListener listenerManager = new GpListener(config);
+ ListenersManagerExecThread execThread = new ListenersManagerExecThread(listenerManager);
+ long currentTimeInMillis = System.currentTimeMillis();
+
+ // Clear the routing processor at the end of the pipeline...
+ ToNowhereRouter.objects.clear();
+
+ // Start the GpListener command thread...
+ execThread.start();
+
+ // Stick the current time into the poller as a String...
+ MockPoller.addToQueue("" + currentTimeInMillis);
+
+ // The message has been pulled from the poller in-queue at this stage because MockPoller.addToQueue blocks.
+ // Wait for a few milliseconds to allow the processor pipeline do it's thing...
+ Thread.sleep(200);
+
+ // Check did the "payload" get processed. The String containing the time should have been processed down the
+ // pileline and into a Date object in the ToNowhereRouter (mock routing processor) at the end of the pipeline...
+ assertEquals(1, ToNowhereRouter.objects.size());
+ Object date = ToNowhereRouter.objects.get(0);
+ assertTrue(date instanceof Date);
+ assertEquals(new Date(currentTimeInMillis), date);
+
+ // Send a shutdown command to the GpListener...
+ InMemoryCommandQueue.getQueue("test-queue").addCommand("shutdown");
+ execThread.assertShutdownOK(10000);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/SqlTablePollerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/SqlTablePollerUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/SqlTablePollerUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,74 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.listeners.old;
+
+import org.jboss.soa.esb.common.tests.BaseTest;
+import org.jboss.soa.esb.listeners.old.SqlTablePoller;
+
+/**
+ * Test the SqlTablePoller
+ *
+ * @author <a href="mailto:arvinder.singh at indigo-logic.com">Arvinder Singh</a>
+ * @version <tt>$Revision:$</tt>
+ * $Id:$
+ */
+public class SqlTablePollerUnitTest extends BaseTest {
+
+ /**
+ * Test basic construction.
+ * @throws Exception
+ */
+ public void test_Empty_Construction() throws Exception {
+ log.info("Constructing instance of SqlTablePoller");
+ // This should fail
+ @SuppressWarnings("unused")
+ SqlTablePoller sqlPoller = null;
+ try {
+ sqlPoller = new SqlTablePoller(null, null, null);
+ fail("SqlTablePoller should fail with empty constructor string");
+ } catch (Exception e) {
+ }
+ }
+
+
+ /*
+ public void test_Construction() throws Exception {
+
+ ConfigTree domElement = ConfigTree.fromInputStream(
+ getClass().getResourceAsStream("SqlTablePollerUnitTest.xml"));
+
+
+ log.info("Loaded - " + domElement.toXml());
+ }
+ */
+
+
+
+
+
+
+
+
+
+
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/SqlTablePollerUnitTest.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/SqlTablePollerUnitTest.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/old/SqlTablePollerUnitTest.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,35 @@
+<DocumentElementName>
+ <ExampleListenChapter
+ maxThreads="2"
+ listenerClass="org.jboss.soa.esb.listeners.old.SqlTablePoller"
+ actionClass="org.jboss.soa.esb.actions.templates.MockSqlRowAction"
+
+ driver-class="org.hsqldb.jdbcDriver"
+ connection-url="jdbc:hsqldb:."
+ user-name="sa"
+ password=""
+
+ tableName="test_notif_table"
+ selectFields="oid,ref,msg"
+ keyFields="oid,ref"
+ inProcessField="statusCol"
+ whereCondition="src='pepe'"
+ orderBy="oid desc"
+ >
+ <NotificationList type="OK">
+ <target class="NotifyFiles">
+ <file URI="file:///tmp/jbossEsb/notifyDir/ListenOnNotifTable.notifOK"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+
+ <NotificationList type="err">
+ <target class="NotifyFiles">
+ <file URI="file:///tmp/jbossEsb/notifyDir/ListenOnNotifTable.notifErr"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+ </ExampleListenChapter>
+</DocumentElementName>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/AbstractMockListner.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/AbstractMockListner.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/AbstractMockListner.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,85 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.util;
+
+import java.util.List;
+import java.util.Vector;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.ActionDefinitionFactory;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.old.AbstractListener;
+import org.jboss.soa.esb.listeners.old.GpListener;
+
+/**
+ * Abstract Mock Listener implementation.
+ * <p/>
+ * Leaves you to implement the receive method in whatever way suits.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public abstract class AbstractMockListner extends AbstractListener {
+
+ private static Logger logger = Logger.getLogger(AbstractMockListner.class);
+ public List<MessageInError> messagesInError = new Vector<MessageInError>();
+ public List<Object> messagesCompleted = new Vector<Object>();
+
+ public AbstractMockListner(GpListener p_oDad, ConfigTree p_oParms, ActionDefinitionFactory actionDefinitionFactory) throws Exception {
+ super(p_oDad, p_oParms, actionDefinitionFactory);
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#processingError(java.lang.Object, org.jboss.soa.esb.actions.ActionProcessor, java.lang.Throwable)
+ */
+ @Override
+ protected void processingError(Object initialMsg, ActionProcessor processor, Throwable error) {
+ logger.info("Received 'processingError' event. Message [" + initialMsg + "], ActionProcessor [" + processor + "], Throwable [" + error + "]", error);
+ messagesInError.add(new MessageInError(initialMsg, processor, error));
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#processingComplete(java.lang.Object)
+ */
+ @Override
+ protected void processingComplete(Object initialMsg) {
+ logger.info("Received 'processingComplete' event. Message [" + initialMsg + "]");
+ messagesCompleted.add(initialMsg);
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#close()
+ */
+ @Override
+ protected void close() {
+ }
+
+ public class MessageInError {
+ public Object initialMsg;
+ public ActionProcessor processor;
+ public Throwable error;
+ public MessageInError(Object initialMsg, ActionProcessor processor, Throwable error) {
+ this.initialMsg = initialMsg;
+ this.processor = processor;
+ this.error = error;
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/ListenersManagerExecThread.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/ListenersManagerExecThread.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/ListenersManagerExecThread.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,90 @@
+package org.jboss.soa.esb.util;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.listeners.old.GpListener;
+
+public class ListenersManagerExecThread extends Thread {
+
+ private static Logger logger = Logger.getLogger(ListenersManagerExecThread.class);
+ private GpListener listenersManager;
+
+ public ListenersManagerExecThread(GpListener listenersManager) {
+ super(listenersManager);
+ this.listenersManager = listenersManager;
+ }
+
+ @Override
+ public synchronized void start() {
+ logger.info("Waiting on Listener Manager the start...");
+ super.start();
+ while(listenersManager.getState() != GpListener.State.Running) {
+ try {
+ sleep(50);
+ } catch (InterruptedException e) {
+ throw new IllegalStateException("Unexpected Thread Interrupt exception.", e);
+ }
+ if(listenersManager.getState() == GpListener.State.Exception_thrown) {
+ Exception e = listenersManager.getState().getException();
+ logger.error("Failed to start the Listener Manager!", e);
+ TestCase.fail(e.getMessage());
+ }
+ }
+ logger.info("Listener Manager running (Thread: " + getName() + ")! Note this does not mean all the Listeners are up and running!");
+ }
+
+
+ /**
+ * Get the {@link GpListener} Listeners Manager class executing in this thread.
+ * @return The listenersManager property value.
+ */
+ public GpListener getListenersManager() {
+ return listenersManager;
+ }
+
+ /**
+ * Assert that the listener Manager is in an Exception state..
+ */
+ public void asserttInException() {
+ if(listenersManager.getState() != GpListener.State.Exception_thrown) {
+ String errorMsg = "GpListener not in Exception state. Listener Manager Thread: " + this.getName();
+ logger.error(errorMsg);
+ TestCase.fail(errorMsg);
+ }
+ }
+
+ /**
+ * Assert that the listener Manager is not in an Exception state..
+ */
+ public void assertNotInException() {
+ if(listenersManager.getState() == GpListener.State.Exception_thrown) {
+ String errorMsg = "GpListener in Exception state. See log. Listener Manager Thread: " + this.getName();
+ logger.error(errorMsg, listenersManager.getState().getException());
+ TestCase.fail(errorMsg);
+ }
+ }
+
+ /**
+ * Assert that the listener Manager has shutdown.
+ * @param maxWait The maximum length of time (ms) to wait for shutdown before failing the test.
+ */
+ public void assertShutdownOK(long maxWait) {
+ long endTime = System.currentTimeMillis() + maxWait;
+
+ while(System.currentTimeMillis() < endTime) {
+ if(listenersManager.getState() == GpListener.State.Done_OK) {
+ logger.info("Shutdown was successful. Listener Manager Thread: " + this.getName());
+ return;
+ }
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {
+ logger.error("Thread interupt...", e);
+ }
+ }
+ String errorMsg = "GpListener failed to shutdown as requested. Waited for " + maxWait + "ms. Listener Manager Thread: " + this.getName();
+ logger.error(errorMsg);
+ TestCase.fail(errorMsg);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/MockNonblockingListener.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/MockNonblockingListener.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/MockNonblockingListener.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.util;
+
+import org.jboss.soa.esb.actions.ActionDefinitionFactory;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.old.GpListener;
+
+/**
+ * Non blocking mock Listener implementation.
+ * <p/>
+ * "Real" listener implementations need to perform blocking receives. This can make testing
+ * a little awkward, especially where the listener is just one of thee test fixtures.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class MockNonblockingListener extends AbstractMockListner {
+
+ public Object[] messages;
+
+ public MockNonblockingListener(GpListener p_oDad, ConfigTree p_oParms,
+ ActionDefinitionFactory actionDefinitionFactory) throws Exception {
+ super(p_oDad, p_oParms, actionDefinitionFactory);
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#receive()
+ */
+ @Override
+ protected Object[] receive() {
+ return messages;
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/MockNotificationTarget.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/MockNotificationTarget.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/MockNotificationTarget.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,68 @@
+package org.jboss.soa.esb.util;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.notification.NotificationTarget;
+
+/**
+ * Mock NotificationTarget Implementation.
+ * <p/>
+ * Configured by giving the target output list a 'name'. Notifications are statically accessed via the static
+ * {@link #getTargetList(String)} method, supplying the target list name.
+ * <p/>
+ * Sample config:
+ * <pre>
+ * <NotificationList type="OK">
+ * <target class="org.jboss.soa.esb.util.MockNotificationTarget" <b>name="ok-target"</b> />
+ * </NotificationList>
+ * </pre>
+ * @author tfennelly
+ */
+public class MockNotificationTarget extends NotificationTarget {
+
+ private static Hashtable<String, List<Serializable>> targetLists = new Hashtable<String, List<Serializable>>();
+ private List<Serializable> targetList;
+
+ public MockNotificationTarget(ConfigTree config) {
+ super(config);
+
+ String name = config.getAttribute("name");
+
+ if(name == null || name.trim().equals("")) {
+ TestCase.fail("Mock NotificationTarget configured incorrectly. Must specify a 'name' attribute on the NotificationList/target element.");
+ }
+
+ targetList = getTargetList(name);
+ }
+
+ public static List<Serializable> getTargetList(String name) {
+ synchronized (targetLists) {
+ List<Serializable> notificationList = targetLists.get(name);
+
+ // Never return a null list.
+ if(notificationList == null) {
+ notificationList = new ArrayList<Serializable>();
+ targetLists.put(name, notificationList);
+ }
+
+ return notificationList;
+ }
+ }
+
+ public static void clearNotifications() {
+ synchronized (targetLists) {
+ targetLists.clear();
+ }
+ }
+
+ @Override
+ public void sendNotification(Serializable notificationObject) throws Exception {
+ targetList.add(notificationObject);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/MockPoller.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/MockPoller.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/org/jboss/soa/esb/util/MockPoller.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,107 @@
+package org.jboss.soa.esb.util;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Queue;
+import java.util.Vector;
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+import org.jboss.soa.esb.actions.ActionDefinitionFactory;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.old.AbstractPoller;
+import org.jboss.soa.esb.listeners.old.GpListener;
+
+/**
+ * Simple Mock {@link org.jboss.soa.esb.listeners.old.AbstractPoller} implementation that can be used for testing.
+ * <p/>
+ * Maintains a static in-memory queue into which objects can be dropped for processing by the configured action handler.
+ * @author tfennelly
+ */
+public class MockPoller extends AbstractPoller {
+
+ private static Queue<Object> queue = new ConcurrentLinkedQueue<Object>();
+ public List<MessageInError> messagesInError = new Vector<MessageInError>();
+ public List<Object> messagesCompleted = new Vector<Object>();
+
+ public MockPoller(GpListener p_oDad, ConfigTree p_oParms, ActionDefinitionFactory actionDefinitionFactory) throws Exception {
+ super(p_oDad, p_oParms, actionDefinitionFactory);
+ m_iPollMillis = 250;
+ }
+
+ /**
+ * Add an object for processing by the configured action handler.
+ * <p/>
+ * Blocks indefinitely until the message is consumed.
+ * @param actionObject The Object instance for processing.
+ */
+ public static void addToQueue(Object actionObject) {
+ synchronized (queue) {
+ queue.add(actionObject);
+ }
+ while(!queue.isEmpty()) {
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {
+ throw new IllegalStateException("Unexpected thread interupt.", e);
+ }
+ }
+ }
+
+ public static void clearQueue() {
+ synchronized (queue) {
+ queue.clear();
+ }
+ }
+
+ @Override
+ protected List<Object> pollForCandidates() {
+ // This method is called periodically by the AbstractPoller.
+ synchronized (queue) {
+ List<Object> actionObjects = Arrays.asList(queue.toArray());
+ queue.clear();
+ return actionObjects;
+ }
+ }
+
+ @Override
+ protected Object preProcess(Object actionObject) {
+ // Called by the AbstractPoller for each of the objects returned to it be the above pollForCandidates method.
+ // Just return the object to be processed by the action class that's configured on the listener.
+ return actionObject;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#close()
+ */
+ @Override
+ protected void close() {
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#processingError(java.lang.Object, org.jboss.soa.esb.actions.ActionProcessor, java.lang.Throwable)
+ */
+ @Override
+ protected void processingError(Object initialMsg, ActionProcessor processor, Throwable error) {
+ messagesInError.add(new MessageInError(initialMsg, processor, error));
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.listeners.AbstractListener#processingComplete(java.lang.Object)
+ */
+ @Override
+ protected void processingComplete(Object initialMsg) {
+ messagesCompleted.add(initialMsg);
+ }
+
+ public class MessageInError {
+ public Object initialMsg;
+ public ActionProcessor processor;
+ public Throwable error;
+ public MessageInError(Object initialMsg, ActionProcessor processor, Throwable error) {
+ this.initialMsg = initialMsg;
+ this.processor = processor;
+ this.error = error;
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/smooks-cdr.lst
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/smooks-cdr.lst 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/listeners/tests/src/smooks-cdr.lst 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1 @@
+/org/jboss/soa/esb/actions/smooks-test.cdrl
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/log4j.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/log4j.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/log4j.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,287 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- A time/date based rolling appender -->
+ <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="${jboss.server.home.dir}/log/server.log"/>
+ <param name="Append" value="false"/>
+
+ <!-- Rollover at midnight each day -->
+ <param name="DatePattern" value="'.'yyyy-MM-dd"/>
+
+ <!-- Rollover at the top of each hour
+ <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
+ -->
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+
+ <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
+ <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
+ -->
+ </layout>
+ </appender>
+
+ <!-- A size based file rolling appender
+ <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="${jboss.server.home.dir}/log/server.log"/>
+ <param name="Append" value="false"/>
+ <param name="MaxFileSize" value="500KB"/>
+ <param name="MaxBackupIndex" value="1"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Target" value="System.out"/>
+ <param name="Threshold" value="INFO"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ====================== -->
+ <!-- More Appender examples -->
+ <!-- ====================== -->
+
+ <!-- Buffer events and log them asynchronously
+ <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <appender-ref ref="FILE"/>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="SMTP"/>
+ </appender>
+ -->
+
+ <!-- EMail events to an administrator
+ <appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Threshold" value="ERROR"/>
+ <param name="To" value="admin at myhost.domain.com"/>
+ <param name="From" value="nobody at myhost.domain.com"/>
+ <param name="Subject" value="JBoss Sever Errors"/>
+ <param name="SMTPHost" value="localhost"/>
+ <param name="BufferSize" value="10"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- Syslog events
+ <appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Facility" value="LOCAL7"/>
+ <param name="FacilityPrinting" value="true"/>
+ <param name="SyslogHost" value="localhost"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- Log events to JMS (requires a topic to be created)
+ <appender name="JMS" class="org.apache.log4j.net.JMSAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Threshold" value="ERROR"/>
+ <param name="TopicConnectionFactoryBindingName" value="java:/ConnectionFactory"/>
+ <param name="TopicBindingName" value="topic/MyErrorsTopic"/>
+ </appender>
+ -->
+
+ <!-- Log events through SNMP
+ <appender name="TRAP_LOG" class="org.apache.log4j.ext.SNMPTrapAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="ImplementationClassName" value="org.apache.log4j.ext.JoeSNMPTrapSender"/>
+ <param name="ManagementHost" value="127.0.0.1"/>
+ <param name="ManagementHostTrapListenPort" value="162"/>
+ <param name="EnterpriseOID" value="1.3.6.1.4.1.24.0"/>
+ <param name="LocalIPAddress" value="127.0.0.1"/>
+ <param name="LocalTrapSendPort" value="161"/>
+ <param name="GenericTrapType" value="6"/>
+ <param name="SpecificTrapType" value="12345678"/>
+ <param name="CommunityString" value="public"/>
+ <param name="ForwardStackTraceWithTrap" value="true"/>
+ <param name="Threshold" value="DEBUG"/>
+ <param name="ApplicationTrapOID" value="1.3.6.1.4.1.24.12.10.22.64"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d,%p,[%t],[%c],%m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- Emit events as JMX notifications
+ <appender name="JMX" class="org.jboss.monitor.services.JMXNotificationAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+
+ <param name="Threshold" value="WARN"/>
+ <param name="ObjectName" value="jboss.system:service=Logging,type=JMXNotificationAppender"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%c] %m"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
+ <category name="org.apache">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
+ <category name="org.jgroups">
+ <priority value="WARN"/>
+ </category>
+
+ <!-- Limit jboss axis to INFO as its DEBUG is even more verbose -->
+ <category name="org.jboss.axis">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit JBoss categories
+ <category name="org.jboss">
+ <priority value="INFO"/>
+ </category>
+ -->
+
+ <!-- Limit the JSR77 categories -->
+ <category name="org.jboss.management">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit JBoss webservice category
+ <category name="org.jboss.webservice">
+ <priority value="DEBUG"/>
+ </category>
+ -->
+
+ <!-- Decrease the priority threshold for the org.jboss.varia category
+ <category name="org.jboss.varia">
+ <priority value="DEBUG"/>
+ </category>
+ -->
+
+ <!-- Show the evolution of the DataSource pool in the logs [inUse/Available/Max]
+ <category name="org.jboss.resource.connectionmanager.JBossManagedConnectionPool">
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ </category>
+ -->
+
+ <!--
+ | An example of enabling the custom TRACE level priority that is used
+ | by the JBoss internals to diagnose low level details. This example
+ | turns on TRACE level msgs for the org.jboss.ejb.plugins package and its
+ | subpackages. This will produce A LOT of logging output.
+ <category name="org.jboss.system">
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ </category>
+ <category name="org.jboss.ejb.plugins">
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ </category>
+ -->
+
+ <!--
+ | Logs these events to SNMP:
+ - server starts/stops
+ - cluster evolution (node death/startup)
+ - When an EJB archive is deployed (and associated verified messages)
+ - When an EAR archive is deployed
+
+ <category name="org.jboss.system.server.Server">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.ha.framework.interfaces.HAPartition.lifecycle">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.deployment.MainDeployer">
+ <priority value="ERROR" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.ejb.EJBDeployer">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.deployment.EARDeployer">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ -->
+
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="FILE"/>
+ </root>
+
+ <!-- Clustering logging -->
+ <!-- Uncomment the following to redirect the org.jgroups and
+ org.jboss.ha categories to a cluster.log file.
+
+ <appender name="CLUSTER" class="org.jboss.logging.appender.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="${jboss.server.home.dir}/log/cluster.log"/>
+ <param name="Append" value="false"/>
+ <param name="MaxFileSize" value="500KB"/>
+ <param name="MaxBackupIndex" value="1"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+ </layout>
+ </appender>
+ <category name="org.jgroups">
+ <priority value="DEBUG" />
+ <appender-ref ref="CLUSTER"/>
+ </category>
+ <category name="org.jboss.ha">
+ <priority value="DEBUG" />
+ <appender-ref ref="CLUSTER"/>
+ </category>
+ -->
+
+</log4j:configuration>
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/ant.bat
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/ant.bat 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/ant.bat 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,12 @@
+ at echo off
+set ANT_CMD_LINE_ARGS=%1
+if ""%1""=="""" goto doneStart
+shift
+:setupArgs
+if ""%1""=="""" goto doneStart
+set ANT_CMD_LINE_ARGS=%ANT_CMD_LINE_ARGS% %1
+shift
+goto setupArgs
+:doneStart
+%ANT_HOME%\bin\ant %ANT_CMD_LINE_ARGS%
+
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/ant.bat
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/build.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/build.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/build.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,88 @@
+<?xml version="1.0"?>
+<project name="BuildJbossEsbRosetta" default="org.jboss.esb.rosetta.compile" basedir=".">
+
+ <property name="org.jboss.esb.rosetta.jar.name" value="jbossesb-rosetta"/>
+ <property name="org.jboss.esb.rosetta.distrib.dir" value="${org.jboss.esb.internal.dest}/dist"/>
+ <property name="org.jboss.esb.rosetta.classes.dir" value="${org.jboss.esb.internal.dest}/classes/rosetta"/>
+ <property name="org.jboss.esb.rosetta.src.dir" value="${basedir}/src"/>
+ <property name="org.jboss.esb.root.dir" value="../.."/>
+ <property environment="env"/>
+
+ <property name="org.jboss.esb.ext.lib.dir" value="${org.jboss.esb.root.dir}/lib/ext"/>
+ <property name="org.jboss.esb.ejb3.lib.dir" value="${org.jboss.esb.root.dir}/lib/ext/ejb3"/>
+ <condition property="org.jboss.esb.ext.lib.dir" value="{org.jboss.esb.jboss.home}/client">
+ <equals arg1="${org.jboss.esb.frominstall}" arg2="yes"/>
+ </condition>
+
+ <path id="org.jboss.esb.rosetta.base.classpath">
+ <fileset dir="${org.jboss.esb.ext.lib.dir}" includes="*.jar"/>
+ <fileset dir="${org.jboss.esb.ejb3.lib.dir}" includes="*.jar,*.zip"/>
+ </path>
+
+ <target name="org.jboss.esb.rosetta.init">
+ <tstamp>
+ <format property="TODAY" pattern="dd-MM-yy"/>
+ </tstamp>
+ </target>
+
+ <target name="org.jboss.esb.rosetta.prepare" depends="org.jboss.esb.rosetta.init">
+ <mkdir dir="${org.jboss.esb.rosetta.classes.dir}"/>
+ <mkdir dir="${org.jboss.esb.rosetta.distrib.dir}"/>
+ <mkdir dir="${org.jboss.esb.rosetta.distrib.dir}/lib"/>
+ </target>
+
+ <target name="clean" description="Remove classes directory">
+ <delete dir="${org.jboss.esb.rosetta.classes.dir}"/>
+ </target>
+
+ <target name="purge" depends="clean">
+ </target>
+
+
+ <target name="org.jboss.esb.rosetta.compile">
+ <!-- Compile common -->
+ <antcall target="org.jboss.esb.rosetta.internal.compile"/>
+ <!-- Compile common tests -->
+ <ant inheritAll="true" dir="tests" target="org.jboss.esb.rosetta.tests.compile"/>
+ </target>
+
+
+ <target name="org.jboss.esb.rosetta.internal.compile" depends="org.jboss.esb.rosetta.prepare"
+ description="Compile all classes">
+
+ <javac
+ destdir="${org.jboss.esb.rosetta.classes.dir}"
+ classpathref="org.jboss.esb.rosetta.base.classpath"
+ debug="${org.jboss.esb.debug}"
+ optimize="${org.jboss.esb.optimize}"
+ >
+ <src path="${org.jboss.esb.rosetta.src.dir}"/>
+ </javac>
+
+ </target>
+
+ <target name="recompile" depends="clean,org.jboss.esb.rosetta.compile"
+ description="Clean and compile"/>
+
+ <target name="jar" depends="org.jboss.esb.rosetta.compile" description="Assemble jar files">
+ <delete file="${org.jboss.esb.rosetta.distrib.dir}/lib/${org.jboss.esb.rosetta.jar.name}.jar" />
+ <jar destfile="${org.jboss.esb.rosetta.distrib.dir}/lib/${org.jboss.esb.rosetta.jar.name}.jar"
+ basedir="${org.jboss.esb.rosetta.classes.dir}"
+ includes="**/*.class"
+ excludes="test/**"
+ />
+ </target>
+
+
+
+ <target name="org.jboss.esb.rosetta.test" description="Run tests for this module">
+ <!-- Compile common tests -->
+ <ant dir="tests" target="org.jboss.esb.rosetta.internal.test"/>
+ </target>
+
+
+
+
+ <target name="all" depends="recompile,jar" />
+
+</project>
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/build.xml
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/addressing/CallHelper.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/addressing/CallHelper.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/addressing/CallHelper.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,215 @@
+package org.jboss.internal.soa.esb.addressing;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+import java.net.URI;
+import java.security.InvalidParameterException;
+
+import org.jboss.soa.esb.addressing.Call;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.XMLUtil;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class CallHelper
+{
+
+ public static Element toXML (Call call, Document doc, Element header)
+ {
+ if (call == null)
+ throw new InvalidParameterException();
+
+ try
+ {
+ if (call.getTo() != null)
+ {
+ Element toElement = doc.createElementNS(XMLUtil.WSA_NAMESPACE_URI, XMLUtil.WSA_PREFIX+":"+XMLUtil.TO_TAG);
+ PortReferenceHelper.toXML(header, doc, toElement, call.getTo().getAddr(), true);
+ header.appendChild(toElement);
+ }
+
+ if (call.getFrom() != null)
+ {
+ Element fromElement = doc.createElementNS(XMLUtil.WSA_NAMESPACE_URI, XMLUtil.WSA_PREFIX+":"+XMLUtil.FROM_TAG);
+ PortReferenceHelper.toXML(header, doc, fromElement, call.getFrom().getAddr(), false);
+ header.appendChild(fromElement);
+ }
+
+ if (call.getReplyTo() != null)
+ {
+ Element replyToElement = doc.createElementNS(XMLUtil.WSA_NAMESPACE_URI, XMLUtil.WSA_PREFIX+":"+XMLUtil.REPLY_TO_TAG);
+ PortReferenceHelper.toXML(header, doc, replyToElement, call.getReplyTo().getAddr(), false);
+ header.appendChild(replyToElement);
+ }
+
+ if (call.getRelatesTo() != null)
+ {
+ Element relatesToElement = doc.createElementNS(XMLUtil.WSA_NAMESPACE_URI, XMLUtil.WSA_PREFIX+":"+XMLUtil.RELATES_TO_TAG);
+ relatesToElement.setNodeValue(call.getRelatesTo().toString());
+ header.appendChild(relatesToElement);
+ }
+
+ if (call.getFaultTo() != null)
+ {
+ Element faultToElement = doc.createElementNS(XMLUtil.WSA_NAMESPACE_URI, XMLUtil.WSA_PREFIX+":"+XMLUtil.FAULT_TO_TAG);
+ PortReferenceHelper.toXML(header, doc, faultToElement, call.getFaultTo().getAddr(), false);
+ header.appendChild(faultToElement);
+ }
+
+ if (call.getAction() != null)
+ {
+ Element actionElement = doc.createElementNS(XMLUtil.WSA_NAMESPACE_URI, XMLUtil.WSA_PREFIX+":"+XMLUtil.ACTION_TAG);
+ actionElement.setNodeValue(call.getAction().toString());
+ header.appendChild(actionElement);
+ }
+
+ if (call.getMessageID() != null)
+ {
+ Element messageIDElement = doc.createElementNS(XMLUtil.WSA_NAMESPACE_URI, XMLUtil.WSA_PREFIX+":"+XMLUtil.MESSAGE_IDENTIFIER_TAG);
+ messageIDElement.setNodeValue(call.getMessageID().toString());
+ header.appendChild(messageIDElement);
+ }
+
+ return header;
+ }
+ catch (Exception ex)
+ {
+ // TODO improve error handling.
+
+ ex.printStackTrace();
+
+ throw new InvalidParameterException(ex.toString());
+ }
+ }
+
+ public static Call fromXML (Element header)
+ {
+ Call call = null;
+
+ try
+ {
+ call = new Call();
+
+ NodeList nl = header.getChildNodes();
+
+ for (int i = 0; i < nl.getLength(); i++)
+ {
+ Node n = nl.item(i);
+
+ if (n.getNodeName().equals(XMLUtil.WSA_PREFIX+":"+XMLUtil.TO_TAG))
+ {
+ try
+ {
+ call.setTo(new EPR(PortReferenceHelper.fromXML((Element) n, true)));
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+
+ if (n.getNodeName().equals(XMLUtil.WSA_PREFIX+":"+XMLUtil.FROM_TAG))
+ {
+ try
+ {
+ call.setFrom(new EPR(PortReferenceHelper.fromXML((Element) n, false)));
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+
+ if (n.getNodeName().equals(XMLUtil.WSA_PREFIX+":"+XMLUtil.REPLY_TO_TAG))
+ {
+ try
+ {
+ call.setReplyTo(new EPR(PortReferenceHelper.fromXML((Element) n, false)));
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+
+ if (n.getNodeName().equals(XMLUtil.WSA_PREFIX+":"+XMLUtil.RELATES_TO_TAG))
+ {
+ try
+ {
+ call.setRelatesTo(new URI(n.getNodeValue()));
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+
+ if (n.getNodeName().equals(XMLUtil.WSA_PREFIX+":"+XMLUtil.FAULT_TO_TAG))
+ {
+ try
+ {
+ call.setFaultTo(new EPR(PortReferenceHelper.fromXML((Element) n, false)));
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+
+ if (n.getNodeName().equals(XMLUtil.WSA_PREFIX+":"+XMLUtil.ACTION_TAG))
+ {
+ try
+ {
+ call.setAction(new URI(n.getNodeValue()));
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+
+ if (n.getNodeName().equals(XMLUtil.WSA_PREFIX+":"+XMLUtil.MESSAGE_IDENTIFIER_TAG))
+ {
+ try
+ {
+ call.setMessageID(new URI(n.getNodeValue()));
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ // TODO error checking!!
+
+ ex.printStackTrace();
+ }
+
+ return call;
+ }
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/addressing/EPRHelper.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/addressing/EPRHelper.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/addressing/EPRHelper.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,173 @@
+package org.jboss.internal.soa.esb.addressing;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.net.URISyntaxException;
+import java.security.InvalidParameterException;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.jboss.soa.esb.MarshalException;
+import org.jboss.soa.esb.addressing.EPR;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
+
+import com.sun.org.apache.xml.internal.serialize.OutputFormat;
+import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
+
+public class EPRHelper
+{
+ public static final String ELEMENT_NAME = "EPR";
+
+ public static final Element toXML (EPR epr, Document doc, Element header)
+ {
+ if (epr == null)
+ throw new InvalidParameterException();
+
+ try
+ {
+ PortReferenceHelper.toXML(null, doc, header, epr.getAddr(), false);
+
+ return header;
+ }
+ catch (URISyntaxException ex)
+ {
+ ex.printStackTrace();
+
+ return null;
+ }
+ catch (MarshalException ex)
+ {
+ ex.printStackTrace();
+
+ return null;
+ }
+ }
+
+ public static final String toXMLString (EPR epr)
+ {
+ if (epr == null)
+ throw new InvalidParameterException();
+
+ try
+ {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.newDocument();
+ Element portReferenceElement = doc.createElement(ELEMENT_NAME);
+
+ doc.appendChild(portReferenceElement);
+
+ toXML(epr, doc, portReferenceElement);
+
+ StringWriter sWriter = new StringWriter();
+ OutputFormat format = new OutputFormat();
+ format.setIndenting(true);
+
+ XMLSerializer xmlS = new XMLSerializer(sWriter, format);
+
+ xmlS.asDOMSerializer();
+ xmlS.serialize(doc);
+
+ return sWriter.toString();
+ }
+ catch (IOException ex)
+ {
+ ex.printStackTrace();
+
+ return null;
+ }
+ catch (ParserConfigurationException ex)
+ {
+ ex.printStackTrace();
+
+ return null;
+ }
+ }
+
+ public static final EPR fromXML (Element header)
+ {
+ if (header == null)
+ throw new InvalidParameterException();
+
+ try
+ {
+ if (header.getNodeName().equals(ELEMENT_NAME))
+ return new EPR(PortReferenceHelper.fromXML(header, false));
+ else
+ return null;
+ }
+ catch (MarshalException ex)
+ {
+ ex.printStackTrace();
+
+ return null;
+ }
+ }
+
+ public static final EPR fromXMLString (String xml)
+ {
+ if (xml == null)
+ throw new InvalidParameterException();
+
+ try
+ {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.parse(new ByteArrayInputStream(xml.getBytes()));
+ Element rootElement = doc.getDocumentElement();
+
+ return new EPR(PortReferenceHelper.fromXML(rootElement, false));
+ }
+ catch (MarshalException ex)
+ {
+ ex.printStackTrace();
+
+ return null;
+ }
+ catch (SAXException ex)
+ {
+ ex.printStackTrace();
+
+ return null;
+ }
+ catch (IOException ex)
+ {
+ ex.printStackTrace();
+
+ return null;
+ }
+ catch (ParserConfigurationException ex)
+ {
+ ex.printStackTrace();
+
+ return null;
+ }
+ }
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/addressing/PortReferenceHelper.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/addressing/PortReferenceHelper.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/addressing/PortReferenceHelper.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,430 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/*
+ * Copyright (c) 2002, 2003, Arjuna Technologies Limited.
+ *
+ * PortReferenceHelper.java
+ */
+
+package org.jboss.internal.soa.esb.addressing;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Map;
+
+import org.jboss.soa.esb.MarshalException;
+import org.jboss.soa.esb.addressing.PortReference;
+import org.jboss.soa.esb.addressing.XMLUtil;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Text;
+
+/*
+ * This should pack the PortReference into an ERP.
+ *
+ * It would be better if PortReference had a packToXML and unpackFromXML.
+ *
+ * This needs rewriting after the interoperability workshop!
+ */
+
+public class PortReferenceHelper
+{
+ /**
+ * WS-Addressing is broken in that the To field is a URI, even if the From
+ * field was an EPR! You have to use the EPR bits separately. So, the
+ * toField is used to indicate whether we are packing this address as a To
+ * field (when we need to treat it differently) or as an EPR.
+ */
+
+ /** ************************************************** */
+ public static void toXML(org.w3c.dom.Element header,
+ org.w3c.dom.Document document,
+ org.w3c.dom.Element portReferenceElement,
+ PortReference portReference, boolean toField)
+ throws MarshalException
+ {
+ try
+ {
+ if (!toField)
+ {
+ Element addressElement = document.createElementNS(
+ XMLUtil.WSA_NAMESPACE_URI, XMLUtil.ADDRESS_TAG);
+ addressElement.setPrefix(XMLUtil.WSA_PREFIX);
+ addressElement.appendChild(document
+ .createTextNode(portReference.getAddress()));
+ portReferenceElement.appendChild(addressElement);
+ }
+ else
+ {
+ portReferenceElement.appendChild(document
+ .createTextNode(portReference.getAddress()));
+ }
+
+ Iterator extensions = portReference.getExtensions();
+ Element referenceProperties = null;
+
+ while (extensions.hasNext())
+ {
+ PortReference.Extension extension = (PortReference.Extension) extensions
+ .next();
+
+ /*
+ * WS-Addressing is broken in that the To field is a URI, even
+ * if the From field was an EPR! You have to use the EPR bits
+ * separately. Doh!
+ */
+
+ if (!toField)
+ {
+ if (referenceProperties == null)
+ {
+ referenceProperties = document.createElementNS(
+ XMLUtil.WSA_NAMESPACE_URI,
+ XMLUtil.REFERENCE_PROPERTIES_TAG);
+ referenceProperties.setPrefix(XMLUtil.WSA_PREFIX);
+ portReferenceElement.appendChild(referenceProperties);
+ }
+ }
+ else
+ referenceProperties = header;
+
+ extensionToXML(referenceProperties, document, extension);
+ }
+ }
+ catch (Exception exception)
+ {
+ exception.printStackTrace();
+ throw new MarshalException("Marshal failure: " + exception);
+ }
+ }
+
+ /** **************************** */
+ public static PortReference fromXML(
+ org.w3c.dom.Element portReferenceElement, boolean toField)
+ throws MarshalException
+ {
+ PortReference portReference = new PortReference();
+
+ if (toField)
+ portReference.setAddress(portReferenceElement.getTextContent());
+
+ org.w3c.dom.NodeList elements = portReferenceElement.getChildNodes();
+
+ for (int i = 1; i < elements.getLength(); i++)
+ {
+ final Object extensionObject = elements.item(i);
+
+ if (extensionObject instanceof Element)
+ {
+ int parentNodeType = PortReference.Extension.NEITHER;
+ Element extensionElement = (Element) extensionObject;
+ NodeList children = extensionElement.getChildNodes();
+ String parentName = extensionElement.getNodeName();
+ boolean haveChildren = false;
+
+ if (parentName.equals(XMLUtil.REFERENCE_PROPERTIES_TAG))
+ parentNodeType = PortReference.Extension.REFERENCE_PROPERTIES;
+ else
+ {
+ if (parentName.equals(XMLUtil.REFERENCE_PARAMETERS_TAG))
+ parentNodeType = PortReference.Extension.REFERENCE_PARAMETERS;
+ else
+ {
+ if (!toField
+ && parentName.equals(XMLUtil.WSA_PREFIX + ":"
+ + XMLUtil.ADDRESS_TAG))
+ {
+ portReference.setAddress(extensionElement
+ .getTextContent());
+ }
+ }
+ }
+
+ final int numChildren = children.getLength();
+
+ for (int count = 0; count < numChildren; count++)
+ {
+ final Object childObject = children.item(count);
+
+ if (childObject instanceof Element)
+ {
+ Element childElement = (Element) childObject;
+
+ portReference
+ .addExtension(childrenFromXML(childElement));
+ haveChildren = true;
+ }
+ }
+
+ if (!haveChildren && !parentName.equals(XMLUtil.WSA_PREFIX + ":"+ XMLUtil.ADDRESS_TAG))
+ {
+ PortReference.Extension ext = new PortReference.Extension(
+ extensionElement.getNodeName(), null, null,
+ extensionElement.getNodeValue(), parentNodeType);
+
+ portReference.addExtension(ext);
+
+ final NamedNodeMap attrs = extensionElement.getAttributes();
+ final int numAttrs = attrs.getLength();
+ if (numAttrs > 0)
+ {
+ final HashMap<ArjunaName, String> p = new HashMap<ArjunaName, String>();
+ for (int count = 0; count < numAttrs; count++)
+ {
+ final Attr attr = (Attr) attrs.item(count);
+ if (!"http://www.w3.org/2000/xmlns/".equals(attr
+ .getNamespaceURI()))
+ {
+ final ArjunaName name = generateName(attr);
+ p.put(name, attr.getValue());
+ }
+ }
+
+ ext.addAttributes(p);
+ }
+ }
+ }
+ }
+
+ return portReference;
+ }
+
+ private final static PortReference.Extension childrenFromXML(
+ Element childRoot)
+ {
+ final NodeList children = childRoot.getChildNodes();
+ final int numChildNodes = children.getLength();
+
+ final PortReference.Extension extension;
+ if (numChildNodes > 0)
+ {
+ Object childObject = children.item(0);
+ if (childObject instanceof Element)
+ {
+ extension = new PortReference.Extension(
+ childRoot.getNodeName(), childRoot.getPrefix(),
+ childRoot.getNamespaceURI());
+
+ for (int count = 1; count < numChildNodes; count++)
+ {
+ extension.addChild(childrenFromXML((Element) childObject));
+ childObject = children.item(count);
+ }
+ }
+ else
+ {
+ extension = new PortReference.Extension(
+ childRoot.getNodeName(), childRoot.getPrefix(),
+ childRoot.getNamespaceURI(), ((Node) childObject)
+ .getNodeValue());
+ }
+ }
+ else
+ {
+ extension = new PortReference.Extension(childRoot.getNodeName(),
+ childRoot.getPrefix(), childRoot.getNamespaceURI(),
+ childRoot.getNodeValue());
+ }
+
+ final NamedNodeMap attrs = childRoot.getAttributes();
+ final int numAttrs = attrs.getLength();
+ if (numAttrs > 0)
+ {
+ final HashMap<ArjunaName, String> p = new HashMap<ArjunaName, String>();
+ for (int count = 0; count < numAttrs; count++)
+ {
+ final Attr attr = (Attr) attrs.item(count);
+ if (!"http://www.w3.org/2000/xmlns/".equals(attr
+ .getNamespaceURI()))
+ {
+ final ArjunaName name = generateName(attr);
+ p.put(name, attr.getValue());
+ }
+ }
+
+ extension.addAttributes(p);
+ }
+ return extension;
+ }
+
+ private final static Element extensionToXML(Element packInto,
+ org.w3c.dom.Document document, PortReference.Extension toPack)
+ throws MarshalException
+ {
+ final String uri = toPack.getURI();
+ final Element element;
+ if (uri == null)
+ {
+ element = document.createElement(toPack.getTag());
+ }
+ else
+ {
+ final String prefix = toPack.getPrefix();
+ element = document.createElementNS(uri, toPack.getTag());
+ element.setPrefix(prefix);
+ element.setAttributeNS(XMLUtil.XMLNS_URI, XMLUtil.XMLNS_PREFIX
+ + toPack.getPrefix(), uri);
+ }
+ packInto.appendChild(element);
+
+ if (toPack.getValue() != null)
+ {
+ final Text text = document.createTextNode(toPack.getValue());
+ element.appendChild(text);
+ }
+
+ LinkedList extensions = toPack.getChildren();
+
+ if (extensions != null)
+ {
+ for (int i = 0; i < extensions.size(); i++)
+ {
+ PortReference.Extension ext = (PortReference.Extension) extensions
+ .get(i);
+
+ extensionToXML(element, document, ext);
+ }
+ }
+
+ HashMap attrs = toPack.getAttributes();
+
+ if (attrs != null)
+ {
+ Iterator names = attrs.entrySet().iterator();
+
+ while (names.hasNext())
+ {
+ Map.Entry entry = (Map.Entry) names.next();
+ ArjunaName name = (ArjunaName) entry.getKey();
+ final String value = (String) entry.getValue();
+ final String attrURI = name.toString();
+ if (attrURI != null)
+ {
+ element.setAttributeNS(attrURI, name.getQualifiedName(),
+ value);
+ }
+ else
+ {
+ element.setAttribute(name.getQualifiedName(), value);
+ }
+ }
+ }
+
+ return element;
+ }
+
+ /**
+ * Generate a name based on the attribute.
+ *
+ * @param attr
+ * The current attribute.
+ * @return The name
+ */
+ private static ArjunaName generateName(final Attr attr)
+ {
+ final String localName = attr.getNodeName();
+ final String uri = attr.getNamespaceURI();
+ final String prefix = attr.getPrefix();
+
+ return new ArjunaName(uri, prefix, localName);
+ }
+
+ private static class ArjunaName
+ {
+ /**
+ * The uri.
+ */
+ private final String uri;
+
+ /**
+ * The prefix.
+ */
+ private final String prefix;
+
+ /**
+ * The local name.
+ */
+ private final String localName;
+
+ /**
+ * Construct the name.
+ *
+ * @param uri
+ * The uri.
+ * @param prefix
+ * The prefix.
+ * @param localName
+ * The local name.
+ */
+ public ArjunaName(final String uri, final String prefix,
+ final String localName)
+ {
+ this.uri = uri;
+ this.prefix = prefix;
+ this.localName = localName;
+ }
+
+ /**
+ * Get the uri.
+ *
+ * @return the uri.
+ */
+ public String getURI()
+ {
+ return uri;
+ }
+
+ /**
+ * Get the prefix.
+ *
+ * @return the prefix.
+ */
+ public String getPrefix()
+ {
+ return prefix;
+ }
+
+ /**
+ * Get the local name.
+ *
+ * @return the local name.
+ */
+ public String getLocalName()
+ {
+ return localName;
+ }
+
+ /**
+ * Get the qualified name.
+ *
+ * @return the qualified name.
+ */
+ public String getQualifiedName()
+ {
+ return (prefix == null ? localName : prefix + ":" + localName);
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/command/CommandQueue.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/command/CommandQueue.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/command/CommandQueue.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,34 @@
+package org.jboss.internal.soa.esb.command;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+/**
+ * Command queue abstraction.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public interface CommandQueue {
+
+ /**
+ * Open the command queue.
+ * @param config Command queue configuration.
+ * @throws CommandQueueException Queue exception. Check for probable chained cause exceptions.
+ */
+ public void open(ConfigTree config) throws CommandQueueException;
+
+ /**
+ * Receive a message from the underlying queue implementation.
+ * <p/>
+ * Performs a blocking receive on the command queue, controled by the receive timeout.
+ * @param timeout The receive block timeout. Zero to block indefinitely.
+ * @return The command message from the queue.
+ * @throws CommandQueueException Queue exception. Check for probable chained cause exceptions.
+ */
+ public String receiveCommand(long timeout) throws CommandQueueException;
+
+ /**
+ * Close the command queue.
+ * @throws CommandQueueException Queue exception. Check for probable chained cause exceptions.
+ */
+ public void close() throws CommandQueueException;
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/command/CommandQueueException.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/command/CommandQueueException.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/command/CommandQueueException.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,29 @@
+package org.jboss.internal.soa.esb.command;
+
+import org.jboss.soa.esb.BaseException;
+
+/**
+ * Command queue exception.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class CommandQueueException extends BaseException {
+
+ private static final long serialVersionUID = 1L;
+
+ public CommandQueueException() {
+ super();
+ }
+
+ public CommandQueueException(String message) {
+ super(message);
+ }
+
+ public CommandQueueException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public CommandQueueException(Throwable cause) {
+ super(cause);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/command/InMemoryCommandQueue.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/command/InMemoryCommandQueue.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/command/InMemoryCommandQueue.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,86 @@
+package org.jboss.internal.soa.esb.command;
+
+import java.util.Hashtable;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.LinkedBlockingQueue;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+/**
+ * In Memory Blocking Command Queue.
+ * <p/>
+ * Suitable for testing or any other purpose.
+ * <p/>
+ * The command queue's configuration needs to specify the
+ * queue name via a "command-queue-name" attribute supplied in the configuration to the
+ * {@link #open(ConfigTree)} method. The queues are stored statically and can be accessed via the
+ * {@link #getQueue(String)} method using the queue name.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class InMemoryCommandQueue implements CommandQueue {
+
+ /**
+ * Command queue name attribute name.
+ */
+ public static final String COMMAND_QUEUE_NAME = "command-queue-name";
+
+ private static Hashtable<String, InMemoryCommandQueue> commandQueues = new Hashtable<String, InMemoryCommandQueue>();
+
+ private String name;
+ private BlockingQueue<String> queue = new LinkedBlockingQueue<String>();
+
+ public void open(ConfigTree config) throws CommandQueueException {
+ if(config == null) {
+ throw new IllegalArgumentException("null 'config' arg in method call.");
+ }
+
+ name = config.getAttribute(COMMAND_QUEUE_NAME);
+ if(name == null) {
+ throw new CommandQueueException("Attribute 'command-queue-name' must be specified on the command queue configuration.");
+ }
+ commandQueues.put(name, this);
+ }
+
+ /**
+ * Add a command to the in-memory command queue.
+ * <p/>
+ * Blocks until the command has been consumed.
+ * @param command The command string.
+ */
+ public void addCommand(String command) {
+ queue.add(command);
+ while(!queue.isEmpty()) {
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public String receiveCommand(long timeout) throws CommandQueueException {
+ if(name == null || !commandQueues.containsKey(name)) {
+ throw new CommandQueueException("Sorry. Invalid call to 'receiveCommand' method. Queue is not open!");
+ }
+
+ try {
+ return queue.take();
+ } catch (InterruptedException e) {
+ throw new CommandQueueException("Error taking command message from command queue.", e);
+ }
+ }
+
+ public void close() throws CommandQueueException {
+ commandQueues.remove(name);
+ }
+
+ /**
+ * Get the command queue based on the name supplied in the configuration ("command-queue-name").
+ * @param name The name of the queue ala the "command-queue-name" attribute on the queue configuration.
+ * @return The MockCommandQueue instance, or null if no such queue exists.
+ */
+ public static InMemoryCommandQueue getQueue(String name) {
+ return commandQueues.get(name);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/command/JmsCommandQueue.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/command/JmsCommandQueue.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/command/JmsCommandQueue.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,172 @@
+package org.jboss.internal.soa.esb.command;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.jms.Connection;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueSession;
+import javax.jms.Session;
+import javax.jms.TextMessage;
+import javax.jms.Topic;
+import javax.jms.TopicConnection;
+import javax.jms.TopicConnectionFactory;
+import javax.jms.TopicSession;
+import javax.naming.Context;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.AppServerContext;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.util.Util;
+
+/**
+ * JMS based Command Queue implementation.
+ * <p/>
+ * This code was simply pulled from the GpListener.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class JmsCommandQueue implements CommandQueue {
+
+ private static Logger logger = Logger.getLogger(JmsCommandQueue.class);
+
+ public static final String COMMAND_CONN_FACTORY = "commandConnFactoryClass";
+
+ public static final String COMMAND_JNDI_TYPE = "commandJndiType";
+
+ public static final String COMMAND_JNDI_URL = "commandJndiURL";
+
+ public static final String COMMAND_IS_TOPIC = "commandIsTopic";
+
+ public static final String COMMAND_JNDI_NAME = "commandJndiName";
+
+ public static final String COMMAND_MSG_SELECTOR = "messageSelector";
+
+ private MessageConsumer m_oCmdSrc;
+
+ private Session m_oJmsSess;
+
+ private Connection m_oJmsConn;
+
+ public void open(ConfigTree config) throws CommandQueueException {
+ try {
+ initialiseJMS(config);
+ } catch (Exception e) {
+ throw new CommandQueueException("Failed to initialise JMS Command Queue.", e);
+ }
+ }
+
+ public void close() throws CommandQueueException {
+ if (null != m_oJmsSess) {
+ try {
+ m_oJmsSess.close();
+ } catch (JMSException eS) {/* Tried my best - Just continue */
+ }
+ }
+ if (null != m_oJmsConn) {
+ try {
+ m_oJmsConn.close();
+ } catch (JMSException eC) {/* Tried my best - Just continue */
+ }
+ }
+ }
+
+ public String receiveCommand(long timeout) throws CommandQueueException {
+ try {
+ Message jmsMessage = m_oCmdSrc.receive(timeout);
+
+ if (null == jmsMessage)
+ return null;
+ if (jmsMessage instanceof TextMessage) {
+ return ((TextMessage)jmsMessage).getText();
+ } else {
+ logger.warn("Message in command queue IGNORED - should be instanceof TextMessage");
+ }
+ } catch(Exception e) {
+ throw new CommandQueueException("Exception receiving message from JMS Command Queue.", e);
+ }
+
+ return null;
+ }
+
+ private void initialiseJMS(ConfigTree p_oP) throws Exception {
+ // Only check for JMS attributes if a queue JNDI name was specified
+ String sJndiName = p_oP.getAttribute(COMMAND_JNDI_NAME);
+ if (!Util.isNullString(sJndiName)) {
+ Map<String, Object> oNewAtts = new HashMap<String, Object>();
+
+ oNewAtts.put(COMMAND_JNDI_NAME, sJndiName);
+
+ String sJndiType = obtainAtt(p_oP, COMMAND_JNDI_TYPE, "jboss");
+ oNewAtts.put(COMMAND_JNDI_TYPE, sJndiType);
+ String sJndiURL = obtainAtt(p_oP, COMMAND_JNDI_URL, "localhost");
+ oNewAtts.put(COMMAND_JNDI_URL, sJndiURL);
+ Context oJndiCtx = AppServerContext.getServerContext(sJndiType,
+ sJndiURL);
+
+ String sFactClass = obtainAtt(p_oP, COMMAND_CONN_FACTORY,
+ "ConnectionFactory");
+ oNewAtts.put(COMMAND_CONN_FACTORY, sFactClass);
+ if (Util.isNullString(sFactClass))
+ sFactClass = "ConnectionFactory";
+ Object oFactCls = oJndiCtx.lookup(sFactClass);
+
+ String sMsgSelector = p_oP.getAttribute(COMMAND_MSG_SELECTOR);
+ if (null != sMsgSelector)
+ oNewAtts.put(COMMAND_MSG_SELECTOR, sMsgSelector);
+
+ boolean bIsTopic = Boolean.parseBoolean(obtainAtt(p_oP,
+ COMMAND_IS_TOPIC, "false"));
+ if (bIsTopic) {
+ TopicConnectionFactory tcf = (TopicConnectionFactory) oFactCls;
+ TopicConnection oTC = tcf.createTopicConnection();
+ Topic oTopic = (Topic) oJndiCtx.lookup(sJndiName);
+ TopicSession oSess = oTC.createTopicSession(false,
+ TopicSession.AUTO_ACKNOWLEDGE);
+ m_oJmsConn = oTC;
+ m_oJmsSess = oSess;
+ oTC.start();
+ m_oCmdSrc = oSess.createSubscriber(oTopic, sMsgSelector, true);
+ } else {
+ QueueConnectionFactory qcf = (QueueConnectionFactory) oFactCls;
+ QueueConnection oQC = qcf.createQueueConnection();
+ javax.jms.Queue oQ = (javax.jms.Queue) oJndiCtx
+ .lookup(sJndiName);
+ QueueSession oSess = oQC.createQueueSession(false,
+ TopicSession.AUTO_ACKNOWLEDGE);
+ oQC.start();
+ m_oJmsConn = oQC;
+ m_oJmsSess = oSess;
+ m_oCmdSrc = oSess.createReceiver(oQ, sMsgSelector);
+ }
+ }
+ }
+
+ /**
+ * Find an attribute in the tree (arg 0) or assign default value (arg 2)
+ *
+ * @param p_oP
+ * ConfigTree - look for attributes in this Element only
+ * @param p_sAtt
+ * String - Name of attribute to find
+ * @param p_sDefault
+ * String -default value if requested attribute is not there
+ * @return String - value of attribute, or default value (if null)
+ * @throws Exception -
+ * If requested attribute not found and no default value
+ * supplied by invoker
+ */
+ private String obtainAtt(ConfigTree p_oP, String p_sAtt, String p_sDefault)
+ throws ConfigurationException {
+ String sVal = p_oP.getAttribute(p_sAtt);
+ if ((null == sVal) && (null == p_sDefault))
+ throw new ConfigurationException("Missing or invalid <" + p_sAtt + "> attribute");
+
+ return (null != sVal) ? sVal : p_sDefault;
+ } // ________________________________
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/MessageFactoryImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/MessageFactoryImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/MessageFactoryImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,136 @@
+package org.jboss.internal.soa.esb.message.format;
+
+import java.net.URI;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Properties;
+
+import org.jboss.internal.soa.esb.message.format.serialized.SerializedMessagePlugin;
+import org.jboss.internal.soa.esb.message.format.xml.XMLMessagePlugin;
+import org.jboss.soa.esb.common.ModulePropertyManager;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessagePlugin;
+import org.jboss.soa.esb.message.format.MessageType;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/**
+ * Messages may contain attachments that do not appear in the main payload body.
+ * For example, binary document formats, zip files etc.
+ *
+ * @author Mark Little
+ */
+
+public class MessageFactoryImpl extends MessageFactory
+{
+
+ public MessageFactoryImpl ()
+ {
+ reset();
+ }
+
+ public void reset ()
+ {
+ messageFormats.clear();
+
+ /*
+ * Go through the properties loaded from the property file. Anything
+ * starting with MessagePlugin.MESSAGE_PLUGIN is assumed to be a plugin
+ * that we load and add to the list.
+ */
+
+ Properties properties = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperties();
+
+ if (properties != null)
+ {
+ Enumeration names = properties.propertyNames();
+
+ while (names.hasMoreElements())
+ {
+ String attrName = (String) names.nextElement();
+
+ if (attrName.startsWith(MessagePlugin.MESSAGE_PLUGIN))
+ {
+ try
+ {
+ String pluginName = properties.getProperty(attrName);
+ Class c = Class.forName(pluginName);
+ MessagePlugin thePlugin = (MessagePlugin) c.newInstance();
+
+ messageFormats.put(thePlugin.getType(), thePlugin);
+ }
+ catch (ClassNotFoundException ex)
+ {
+ ex.printStackTrace();
+ }
+ catch (IllegalAccessException ex)
+ {
+ ex.printStackTrace();
+ }
+ catch (InstantiationException ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+ }
+ }
+
+ /*
+ * Now add the default(s).
+ */
+
+ messageFormats.put(MessageType.JBOSS_XML, new XMLMessagePlugin());
+ messageFormats.put(MessageType.JAVA_SERIALIZED, new SerializedMessagePlugin());
+ }
+
+ public Message getMessage() // returns some default implementation.
+ {
+ return ((MessagePlugin) messageFormats.get(MessageType.DEFAULT_TYPE)).getMessage();
+ }
+
+ public Message getMessage(URI type) // returns a message of a specific type.
+ {
+ if (type == null)
+ throw new IllegalArgumentException();
+
+ MessagePlugin plugin = messageFormats.get(type);
+
+ if (plugin != null)
+ return plugin.getMessage();
+ else
+ return null;
+ }
+
+ public Message getMessage(Message msg, URI type) // convert a message
+ // from one form to
+ // another.
+ {
+ if ((msg == null) || (type == null))
+ throw new IllegalArgumentException();
+
+ return null;
+ }
+
+ private final Hashtable<URI, MessagePlugin> messageFormats = new Hashtable<URI, MessagePlugin>();
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,152 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+package org.jboss.internal.soa.esb.message.format.serialized;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.Map;
+
+import org.jboss.soa.esb.message.Attachment;
+
+/**
+ * Messages may contain attachments that do not appear in the main payload body.
+ * For example, binary document formats, zip files etc.
+ *
+ * @author Mark Little
+ */
+
+public class AttachmentImpl implements Attachment, java.io.Serializable
+{
+ private static final long serialVersionUID = 0x0;
+
+ public Object get(String name)
+ {
+ return _table.get(name);
+ }
+
+ public Object put(String name, Object value)
+ {
+ if (value instanceof Serializable)
+ return _table.put(name,(Serializable)value);
+ throw new IllegalArgumentException("value must be Serializable");
+ }
+
+ public Object remove(String name)
+ {
+ return _table.remove(name);
+ }
+
+ public String[] getNames()
+ {
+ return _table.keySet().toArray(new String[_table.size()]);
+ }
+
+ public Object itemAt(int index) throws IndexOutOfBoundsException
+ {
+ return _list.get(index);
+ }
+
+ public Object removeItemAt(int index) throws IndexOutOfBoundsException
+ {
+ return _list.remove(index);
+ }
+
+ public Object replaceItemAt(int index, Object value) throws IndexOutOfBoundsException
+ {
+ if (value instanceof Serializable)
+ return _list.set(index,(Serializable)value);
+ throw new IllegalArgumentException("value must be Serializable");
+ }
+
+ public void addItem(Object value)
+ {
+ if (value instanceof Serializable)
+ _list.add((Serializable)value);
+ else
+ throw new IllegalArgumentException("value must be Serializable");
+ }
+
+ public void addItemAt(int index, Object value) throws IndexOutOfBoundsException
+ {
+ if (value instanceof Serializable)
+ _list.add(index,(Serializable)value);
+ else
+ throw new IllegalArgumentException("value must be Serializable");
+ }
+
+ public int getNamedCount()
+ {
+ return _table.size();
+ }
+ public int getUnnamedCount()
+ {
+ return _list.size();
+ }
+ public String toString()
+ { return new StringBuilder()
+ .append("Attachment - Named:").append(_table.toString())
+ .append(" Unnamed:").append(_list.toString())
+ .toString();
+ }
+
+ @Override
+ public boolean equals(Object arg)
+ {
+ if (! (arg instanceof Attachment))
+ return false;
+ Attachment other = (Attachment)arg;
+
+ if (other.getNamedCount() != _table.size())
+ return false;
+ for(Map.Entry<String,Serializable>oCurr : _table.entrySet())
+ {
+ Object val = other.get(oCurr.getKey());
+ if (null==oCurr.getValue())
+ if (null==val)
+ continue;
+ else
+ return false;
+ if (!oCurr.getValue().equals(val))
+ return false;
+ }
+
+ if (other.getUnnamedCount() != _list.size())
+ return false;
+ int index = 0;
+ for (Serializable oCurr : _list)
+ {
+ Object val = other.itemAt(index++);
+ if (null==oCurr)
+ if (null==val)
+ continue;
+ else
+ return false;
+ if (!oCurr.equals(val))
+ return false;
+ }
+ return true;
+ }
+
+ ArrayList<Serializable> _list = new ArrayList<Serializable>();
+ Hashtable<String,Serializable> _table = new Hashtable<String,Serializable>();
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,124 @@
+package org.jboss.internal.soa.esb.message.format.serialized;
+
+import java.io.Serializable;
+import java.util.Hashtable;
+
+import org.jboss.soa.esb.message.Body;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/*
+ * This implementation requires that all contents are serializable.
+ */
+
+public class BodyImpl implements Body, java.io.Serializable
+{
+ private static final long serialVersionUID = 0x0;
+
+ public BodyImpl ()
+ {
+ _content = null;
+ _objects = new Hashtable<String, Serializable>();
+ }
+
+ public void setContents (byte[] content)
+ {
+ _content = content;
+ }
+
+ public byte[] getContents ()
+ {
+ return _content;
+ }
+
+ public void add (String name, Object value)
+ {
+ if ((name == null) || (value == null))
+ throw new IllegalArgumentException();
+
+ if (value instanceof Serializable)
+ {
+ synchronized (_objects)
+ {
+ _objects.put(name, (Serializable) value);
+ }
+ }
+ else
+ throw new IllegalArgumentException("Object must be Serializable.");
+ }
+
+ public Object get (String name)
+ {
+ synchronized (_objects)
+ {
+ return _objects.get(name);
+ }
+ }
+
+ public Object remove (String name)
+ {
+ synchronized (_objects)
+ {
+ return _objects.remove(name);
+ }
+ }
+
+ public void replace (Body b)
+ {
+ if (b == null)
+ throw new IllegalArgumentException();
+
+ setContents(b.getContents());
+
+ _objects = ((BodyImpl) b)._objects;
+ }
+
+ public void merge (Body b)
+ {
+ if (b == null)
+ throw new IllegalArgumentException();
+
+ byte[] toAdd = b.getContents();
+
+ if ((toAdd != null) && (toAdd.length > 0))
+ {
+ if ((_content == null) || (_content.length == 0))
+ {
+ _content = toAdd;
+ }
+ else
+ {
+ int newSize = _content.length + toAdd.length;
+ byte[] buffer = new byte[newSize];
+
+ System.arraycopy(_content, 0, buffer, 0, _content.length);
+ System.arraycopy(toAdd, 0, buffer, _content.length, toAdd.length);
+
+ _content = buffer;
+ }
+ }
+ }
+
+ private byte[] _content;
+ private Hashtable<String, Serializable> _objects;
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,29 @@
+package org.jboss.internal.soa.esb.message.format.serialized;
+
+import org.jboss.soa.esb.message.Context;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+public class ContextImpl implements Context, java.io.Serializable
+{
+ private static final long serialVersionUID = 0x0;
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/FaultImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/FaultImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/FaultImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,55 @@
+package org.jboss.internal.soa.esb.message.format.serialized;
+
+import java.net.URI;
+
+import org.jboss.soa.esb.message.Fault;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+public class FaultImpl implements Fault, java.io.Serializable
+{
+ private static final long serialVersionUID = 0x0;
+
+ public URI getCode ()
+ {
+ return _code;
+ }
+
+ public void setCode (URI code)
+ {
+ _code = code;
+ }
+
+ public String getReason ()
+ {
+ return _reason;
+ }
+
+ public void setReason (String reason)
+ {
+ _reason = reason;
+ }
+
+ private URI _code = null;
+ private String _reason = null;
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,58 @@
+package org.jboss.internal.soa.esb.message.format.serialized;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+import java.io.Serializable;
+
+import org.jboss.soa.esb.addressing.Call;
+import org.jboss.soa.esb.message.Header;
+
+/**
+ * The message header. Contains such things as routing information.
+ */
+
+public class HeaderImpl implements Header, Serializable
+{
+ private static final long serialVersionUID = 0x0;
+
+ public HeaderImpl ()
+ {
+ _call = null;
+ }
+
+ // TODO add other setters/getters for artibitrary attributes
+
+ public Call getCall ()
+ {
+ return _call;
+ }
+
+ public void setCall (Call call)
+ {
+ if (call == null)
+ throw new IllegalArgumentException();
+
+ _call = call;
+ }
+
+ private Call _call;
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/MessageImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/MessageImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/MessageImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,129 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+package org.jboss.internal.soa.esb.message.format.serialized;
+
+import java.io.Serializable;
+import java.net.URI;
+
+import org.jboss.soa.esb.message.Attachment;
+import org.jboss.soa.esb.message.Body;
+import org.jboss.soa.esb.message.Context;
+import org.jboss.soa.esb.message.Fault;
+import org.jboss.soa.esb.message.Header;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.Properties;
+import org.jboss.soa.esb.message.format.MessageType;
+
+
+/**
+ * This is the basic internal core message abstraction. A message consists of the following
+ * components:
+ *
+ * Header: the header information contains information such as the destination EPR, the
+ * sender EPR, where the reply goes etc, i.e., general message-level functional information.
+ * Context: additional information to contextualise the message; for example, transaction or
+ * security data, the identity of the ultimate receiver, or HTTP-cookie like information.
+ * Body: the actual payload of the message.
+ * Fault: any fault information associated with the message.
+ * Attachment: any attachments associated with the message.
+ *
+ * Each message, once created, has a corresponding element for these 5 components. That element
+ * may be empty (<b>NOT NULL</b>). The object representing the element can then be used to act
+ * on the corresponding data item in the message.
+ *
+ * @author Mark Little
+ *
+ */
+
+public class MessageImpl implements Message, Serializable
+{
+ private static final long serialVersionUID = 0x0;
+
+ /**
+ * @return get the header component of the message.
+ */
+
+ public Header getHeader ()
+ {
+ return _theHeader;
+ }
+
+ /**
+ * @return get the context component of the message.
+ */
+
+ public Context getContext ()
+ {
+ return _theContext;
+ }
+
+ /**
+ * @return get the body component of the message.
+ */
+
+ public Body getBody ()
+ {
+ return _theBody;
+ }
+
+ /**
+ * @return get any faults associated with the message. These should not
+ * be application level faults, but comms level.
+ */
+
+ public Fault getFault ()
+ {
+ return _theFault;
+ }
+
+ /**
+ * @return get any message attachments.
+ */
+
+ public Attachment getAttachment ()
+ {
+ return _theAttachment;
+ }
+
+ /**
+ * @return the type of this message format.
+ */
+
+ public URI getType ()
+ {
+ return MessageType.JAVA_SERIALIZED;
+ }
+
+ /**
+ * @return Map<String,Object> - any message properties.
+ */
+ public Properties getProperties()
+ {
+ return _properties;
+ }
+
+ private HeaderImpl _theHeader = new HeaderImpl();
+ private ContextImpl _theContext = new ContextImpl();
+ private BodyImpl _theBody = new BodyImpl();
+ private FaultImpl _theFault = new FaultImpl();
+ private AttachmentImpl _theAttachment = new AttachmentImpl();
+ private Properties _properties = new PropertiesImpl();
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,92 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author schifest at heuristica.com.ar
+ */
+package org.jboss.internal.soa.esb.message.format.serialized;
+
+import java.io.Serializable;
+import java.util.Hashtable;
+import java.util.Map;
+
+import org.jboss.soa.esb.message.Properties;
+
+public class PropertiesImpl implements Properties, Serializable
+{
+ private static final long serialVersionUID = 0x0;
+
+ public Object getProperty(String name)
+ {
+ return _table.get(name);
+ }
+
+ public Object getProperty(String name, Object defaultVal)
+ {
+ Object oRet = getProperty(name);
+ return (null == oRet) ? defaultVal : oRet;
+ }
+
+ public Object setProperty(String name, Object value)
+ {
+ if (value instanceof Serializable)
+ return _table.put(name, (Serializable) value);
+ else
+ throw new IllegalArgumentException("Value must be serializable");
+ }
+
+ public Object remove(String name)
+ {
+ return _table.remove(name);
+ }
+
+ public int size() {return _table.size(); }
+
+ public String[] getNames()
+ {
+ return _table.keySet().toArray(new String[_table.size()]);
+ }
+
+ public String toString()
+ {
+ return _table.toString();
+ }
+
+ @Override
+ public boolean equals(Object arg)
+ {
+ if (! (arg instanceof Properties))
+ return false;
+ Properties other = (Properties)arg;
+ if (other.size() != _table.size())
+ return false;
+ for(Map.Entry<String,Serializable>oCurr : _table.entrySet())
+ {
+ Object val = other.getProperty(oCurr.getKey());
+ if (null==oCurr.getValue())
+ if (null==val)
+ continue;
+ else
+ return false;
+ if (!oCurr.getValue().equals(val))
+ return false;
+ }
+ return true;
+ }
+
+ Hashtable<String, Serializable> _table = new Hashtable<String, Serializable>();
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/SerializedMessagePlugin.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/SerializedMessagePlugin.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/SerializedMessagePlugin.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,48 @@
+package org.jboss.internal.soa.esb.message.format.serialized;
+
+import java.net.URI;
+
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessagePlugin;
+import org.jboss.soa.esb.message.format.MessageType;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/**
+ * Used to plug in new message formats dynamically.
+ *
+ * @author Mark Little
+ *
+ */
+
+public class SerializedMessagePlugin implements MessagePlugin
+{
+ public Message getMessage ()
+ {
+ return new MessageImpl();
+ }
+
+ public URI getType ()
+ {
+ return MessageType.JAVA_SERIALIZED;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,270 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+package org.jboss.internal.soa.esb.message.format.xml;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.Map;
+
+import org.jboss.internal.soa.esb.thirdparty.Base64;
+import org.jboss.soa.esb.message.Attachment;
+import org.w3c.dom.CDATASection;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * Messages may contain attachments that do not appear in the main payload body.
+ * For example, binary document formats, zip files etc.
+ *
+ * @author Mark Little
+ */
+
+public class AttachmentImpl implements Attachment, java.io.Serializable
+{
+ public static final String ATTACHMENT_TAG = "Attachment";
+ public static final String NAME_ATTR = "name";
+ public static final String NAMED_TAG = "Named";
+ public static final String UNNAMED_TAG = "UnNamed";
+
+ private static final long serialVersionUID = 0x0;
+
+ public Object get(String name)
+ {
+ return _table.get(name);
+ }
+
+ public Object put(String name, Object value)
+ {
+ if (value instanceof Serializable)
+ return _table.put(name, (Serializable) value);
+ throw new IllegalArgumentException("value must be Serializable");
+ }
+
+ public Object remove(String name)
+ {
+ return _table.remove(name);
+ }
+
+ public String[] getNames()
+ {
+ return _table.keySet().toArray(new String[_table.size()]);
+ }
+
+ public Object itemAt(int index) throws IndexOutOfBoundsException
+ {
+ return _list.get(index);
+ }
+
+ public Object removeItemAt(int index) throws IndexOutOfBoundsException
+ {
+ return _list.remove(index);
+ }
+
+ public Object replaceItemAt(int index, Object value)
+ throws IndexOutOfBoundsException
+ {
+ if (value instanceof Serializable)
+ return _list.set(index, (Serializable) value);
+ throw new IllegalArgumentException("value must be Serializable");
+ }
+
+ public void addItem(Object value)
+ {
+ if (value instanceof Serializable)
+ _list.add((Serializable) value);
+ else
+ throw new IllegalArgumentException("value must be Serializable");
+ }
+
+ public void addItemAt(int index, Object value)
+ throws IndexOutOfBoundsException
+ {
+ if (value instanceof Serializable)
+ _list.add(index, (Serializable) value);
+ else
+ throw new IllegalArgumentException("value must be Serializable");
+ }
+
+ public int getNamedCount()
+ {
+ return _table.size();
+ }
+
+ public int getUnnamedCount()
+ {
+ return _list.size();
+ }
+
+ public String toString()
+ {
+ return new StringBuilder().append("Attachment - Named:").append(
+ _table.toString()).append(" Unnamed:").append(_list.toString())
+ .toString();
+ }
+
+ /**
+ * toXML(elem) - Will build a child element with appropriate values and
+ * append it to arg0
+ *
+ * @param elem
+ * Element - where to add 'this' as a child node
+ * @return Element - 'this' as the added Element, or <null> if no
+ * properties in table and nothing was appended to arg0
+ * @see XMLUtil.ATTACHMENT_TAG
+ */
+ public Element toXML(Element elem)
+ {
+ if (_table.size() < 1 && _list.size() < 1)
+ return null;
+
+ Document doc = elem.getOwnerDocument();
+ Element thisElement = doc.createElement(ATTACHMENT_TAG);
+
+ listToXml(doc, thisElement);
+ tableToXml(doc, thisElement);
+
+ elem.appendChild(thisElement);
+ return thisElement;
+ }
+
+ private void tableToXml(Document doc, Element elem)
+ {
+ for (Map.Entry<String, Serializable> oCurr : _table.entrySet())
+ {
+ Element named = doc.createElement(NAMED_TAG);
+ named.setAttribute(NAME_ATTR, oCurr.getKey());
+ named.appendChild(doc.createCDATASection(Base64.encodeObject(oCurr
+ .getValue())));
+ elem.appendChild(named);
+ }
+ }
+
+ private void listToXml(Document doc, Element elem)
+ {
+ for (Serializable oCurr : _list)
+ {
+ Element anonymous = doc.createElement(UNNAMED_TAG);
+ anonymous.appendChild(doc.createCDATASection(Base64
+ .encodeObject(oCurr)));
+ elem.appendChild(anonymous);
+ }
+ }
+
+ /**
+ * fromXml(elem) - Populate properties found in appropriate child element
+ *
+ * @see XMLUtil.ATTACHMENT_TAG
+ * @param elem -
+ * Element where to look for child nodes
+ */
+ public void fromXML(Element elem)
+ {
+ _table.clear();
+ _list.clear();
+
+ NodeList NL = elem.getElementsByTagName(ATTACHMENT_TAG);
+ for (int i1 = 0; i1 < NL.getLength(); i1++)
+ {
+ Node oCurr = NL.item(i1);
+ if ((oCurr instanceof Element))
+ {
+ listFromXml((Element) oCurr);
+ tableFromXml((Element) oCurr);
+ }
+ }
+ }
+
+ private void listFromXml(Element elem)
+ {
+ NodeList anonymous = elem.getElementsByTagName(UNNAMED_TAG);
+ for (int i1 = 0; i1 < anonymous.getLength(); i1++)
+ {
+ Node oCurr = anonymous.item(i1);
+ if (oCurr instanceof Element)
+ {
+ CDATASection cdata = (CDATASection) oCurr.getFirstChild();
+ Object value = Base64.decodeToObject(cdata.getWholeText());
+ _list.add((Serializable) value);
+ }
+ }
+ }
+
+ private void tableFromXml(Element elem)
+ {
+ NodeList named = elem.getElementsByTagName(NAMED_TAG);
+ for (int i1 = 0; i1 < named.getLength(); i1++)
+ {
+ Node oCurr = named.item(i1);
+ if (oCurr instanceof Element)
+ {
+ CDATASection cdata = (CDATASection) oCurr.getFirstChild();
+ String name = ((Element) oCurr).getAttribute(NAME_ATTR);
+ Object value = Base64.decodeToObject(cdata.getWholeText());
+ _table.put(name, (Serializable) value);
+ }
+ }
+ }
+
+ @Override
+ public boolean equals(Object arg)
+ {
+ if (! (arg instanceof Attachment))
+ return false;
+ Attachment other = (Attachment)arg;
+
+ if (other.getNamedCount() != _table.size())
+ return false;
+ for(Map.Entry<String,Serializable>oCurr : _table.entrySet())
+ {
+ Object val = other.get(oCurr.getKey());
+ if (null==oCurr.getValue())
+ if (null==val)
+ continue;
+ else
+ return false;
+ if (!oCurr.getValue().equals(val))
+ return false;
+ }
+
+ if (other.getUnnamedCount() != _list.size())
+ return false;
+ int index = 0;
+ for (Serializable oCurr : _list)
+ {
+ Object val = other.itemAt(index++);
+ if (null==oCurr)
+ if (null==val)
+ continue;
+ else
+ return false;
+ if (!oCurr.equals(val))
+ return false;
+ }
+ return true;
+ }
+
+ ArrayList<Serializable> _list = new ArrayList<Serializable>();
+ Hashtable<String, Serializable> _table = new Hashtable<String, Serializable>();
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,217 @@
+package org.jboss.internal.soa.esb.message.format.xml;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+
+import org.jboss.internal.soa.esb.message.format.xml.marshal.MarshalUnmarshalManager;
+import org.jboss.internal.soa.esb.thirdparty.Base64;
+import org.jboss.soa.esb.MarshalException;
+import org.jboss.soa.esb.UnmarshalException;
+import org.jboss.soa.esb.message.Body;
+import org.w3c.dom.CDATASection;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/*
+ * A Body implementation that serializes to XML.
+ */
+
+public class BodyImpl implements Body
+{
+ public static final String BODY_TAG = "Body";
+
+ public static final String BYTES_TAG = "Bytes";
+
+ public BodyImpl()
+ {
+ _content = null;
+ _objects = new Hashtable<String, Object>();
+ }
+
+ public void add(String name, Object value)
+ {
+ if ((name == null) || (value == null))
+ throw new IllegalArgumentException();
+
+ synchronized (_objects)
+ {
+ _objects.put(name, value);
+ }
+ }
+
+ public Object get(String name)
+ {
+ synchronized (_objects)
+ {
+ return _objects.get(name);
+ }
+ }
+
+ public Object remove(String name)
+ {
+ synchronized (_objects)
+ {
+ return _objects.remove(name);
+ }
+ }
+
+ public Element toXML(Element envelope) throws MarshalException
+ {
+ Document doc = envelope.getOwnerDocument();
+ Element bodyElement = doc.createElement(BODY_TAG);
+
+ envelope.appendChild(bodyElement);
+
+ if (_content != null)
+ {
+ Element byteElement = doc.createElement(BYTES_TAG);
+
+ byteElement.appendChild(doc.createCDATASection(Base64
+ .encodeBytes(_content)));
+
+ bodyElement.appendChild(byteElement);
+ }
+
+ /*
+ * This would normally be handled by an external adapter.
+ */
+
+ Enumeration<String> keys = _objects.keys();
+
+ while (keys.hasMoreElements())
+ {
+ String key = keys.nextElement();
+ Object value = _objects.get(key);
+
+ Element objElement = doc.createElement(key);
+
+ if (MarshalUnmarshalManager.getInstance().marshal(objElement, value))
+ bodyElement.appendChild(objElement);
+ else
+ throw new MarshalException("Cannot pack object "+key);
+ }
+
+ return bodyElement;
+ }
+
+ public void fromXML(Element envelope) throws UnmarshalException
+ {
+ NodeList nl = envelope.getChildNodes();
+
+ for (int i = 0; i < nl.getLength(); i++)
+ {
+ /*
+ * TODO
+ *
+ * In the past, bugs in certain Dom implementations mean that
+ * getElementsByName did not always work. Still the case? Plus this
+ * way is quicker.
+ */
+
+ if (nl.item(i).getNodeName().equals(BODY_TAG))
+ {
+ NodeList children = nl.item(i).getChildNodes();
+
+ for (int j = 0; j < children.getLength(); j++)
+ {
+ Object xxx = children.item(j);
+ if (!(xxx instanceof Element))
+ continue;
+ Element child = (Element) xxx;
+
+ if (child.getNodeName().equals(BYTES_TAG))
+ {
+ CDATASection cdata = (CDATASection) child.getFirstChild();
+
+ _content = Base64.decode(cdata.getWholeText());
+ }
+ else
+ {
+ Object value = MarshalUnmarshalManager.getInstance().unmarshal((Element) child.getFirstChild());
+
+ if (value == null)
+ throw new UnmarshalException("Cannot unpack object "+child.getNodeName());
+ else
+ _objects.put(child.getNodeName(), value);
+ }
+ }
+ }
+ }
+ }
+
+ public void setContents(byte[] content)
+ {
+ _content = content;
+ }
+
+ public byte[] getContents()
+ {
+ return _content;
+ }
+
+ public void replace(Body b)
+ {
+ if (b == null)
+ throw new IllegalArgumentException();
+
+ setContents(b.getContents());
+
+ _objects = ((BodyImpl) b)._objects;
+ }
+
+ public void merge(Body b)
+ {
+ if (b == null)
+ throw new IllegalArgumentException();
+
+ byte[] toAdd = b.getContents();
+
+ if ((toAdd != null) && (toAdd.length > 0))
+ {
+ if ((_content == null) || (_content.length == 0))
+ {
+ _content = toAdd;
+ }
+ else
+ {
+ int newSize = _content.length + toAdd.length;
+ byte[] buffer = new byte[newSize];
+
+ System.arraycopy(_content, 0, buffer, 0, _content.length);
+ System.arraycopy(toAdd, 0, buffer, _content.length,
+ toAdd.length);
+
+ _content = buffer;
+ }
+ }
+
+ _objects.putAll(((BodyImpl) b)._objects);
+ }
+
+ private byte[] _content;
+
+ private Hashtable<String, Object> _objects;
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,45 @@
+package org.jboss.internal.soa.esb.message.format.xml;
+
+import org.jboss.soa.esb.message.Context;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+public class ContextImpl implements Context
+{
+ public static final String CONTEXT_TAG = "Context";
+
+ public Element toXML (Element envelope)
+ {
+ Document doc = envelope.getOwnerDocument();
+ Element contextElement = doc.createElement(CONTEXT_TAG);
+
+ envelope.appendChild(contextElement);
+
+ return contextElement;
+ }
+
+ public void fromXML (Element envelope)
+ {
+ }
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/FaultImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/FaultImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/FaultImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,134 @@
+package org.jboss.internal.soa.esb.message.format.xml;
+
+import java.net.URI;
+
+import org.jboss.soa.esb.message.Fault;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Text;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+public class FaultImpl implements Fault
+{
+ public static final String FAULT_TAG = "Fault";
+
+ public static final String CODE_TAG = "Code";
+
+ public static final String REASON_TAG = "Reason";
+
+ public URI getCode()
+ {
+ return _code;
+ }
+
+ public void setCode(URI code)
+ {
+ _code = code;
+ }
+
+ public String getReason()
+ {
+ return _reason;
+ }
+
+ public void setReason(String reason)
+ {
+ _reason = reason;
+ }
+
+ public Element toXML(Element envelope)
+ {
+ Document doc = envelope.getOwnerDocument();
+ Element faultElement = doc.createElement(FAULT_TAG);
+
+ if (_code != null)
+ {
+ Element codeElement = doc.createElement(CODE_TAG);
+ Text content = doc.createTextNode(_code.toString());
+
+ codeElement.appendChild(content);
+
+ faultElement.appendChild(codeElement);
+ }
+
+ if (_reason != null)
+ {
+ Element reasonElement = doc.createElement(REASON_TAG);
+ Text content = doc.createTextNode(_reason);
+
+ reasonElement.appendChild(content);
+
+ faultElement.appendChild(reasonElement);
+ }
+
+ if ((_code != null) || (_reason != null))
+ {
+ envelope.appendChild(faultElement);
+
+ return faultElement;
+ }
+ else
+ return envelope;
+ }
+
+ public void fromXML (Element envelope)
+ {
+ NodeList nl = envelope.getChildNodes();
+
+ _code = null;
+ _reason = null;
+
+ for (int i = 0; i < nl.getLength(); i++)
+ {
+ if (nl.item(i).getNodeName().equals(FAULT_TAG))
+ {
+ NodeList children = nl.item(i).getChildNodes();
+
+ for (int j = 0; j < children.getLength(); j++)
+ {
+ Element child = (Element) children.item(j);
+
+ if (child.getNodeName().equals(CODE_TAG))
+ {
+ try
+ {
+ _code = new URI(child.getFirstChild().getNodeValue());
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+
+ if (child.getNodeName().equals(REASON_TAG))
+ _reason = child.getFirstChild().getNodeValue();
+ }
+ }
+ }
+ }
+
+ private URI _code = null;
+ private String _reason = null;
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,101 @@
+package org.jboss.internal.soa.esb.message.format.xml;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+import org.jboss.internal.soa.esb.addressing.CallHelper;
+import org.jboss.soa.esb.addressing.Call;
+import org.jboss.soa.esb.message.Header;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * The message header. Contains such things as routing information.
+ */
+
+public class HeaderImpl implements Header
+{
+ public static final String HEADER_TAG = "Header";
+
+ public HeaderImpl ()
+ {
+ _call = null;
+ }
+
+ // TODO add other setters/getters for artibitrary attributes
+
+ public Call getCall ()
+ {
+ return _call;
+ }
+
+ public void setCall (Call call)
+ {
+ if (call == null)
+ throw new IllegalArgumentException();
+
+ _call = call;
+ }
+
+ public Element toXML (Element envelope)
+ {
+ Document doc = envelope.getOwnerDocument();
+
+ // TODO remove MAGIC strings!!
+
+ Element headerElement = doc.createElement(HEADER_TAG);
+
+ envelope.appendChild(headerElement);
+
+ if (_call != null)
+ return CallHelper.toXML(_call, doc, headerElement);
+ else
+ return headerElement;
+ }
+
+ public void fromXML (Element envelope)
+ {
+ _call = new Call();
+
+ NodeList nl = envelope.getChildNodes();
+ Element headerElement = null;
+
+ for (int i = 0; i < nl.getLength(); i++)
+ {
+ Node n = nl.item(i);
+
+ if (n.getNodeName().equals(HEADER_TAG))
+ {
+ headerElement = (Element) n;
+ break;
+ }
+ }
+
+ // TODO error handling!!
+
+ if (headerElement != null)
+ _call = CallHelper.fromXML(headerElement);
+ }
+
+ private Call _call;
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/MessageImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/MessageImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/MessageImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,197 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+package org.jboss.internal.soa.esb.message.format.xml;
+
+import java.net.URI;
+
+import org.jboss.soa.esb.message.Attachment;
+import org.jboss.soa.esb.message.Body;
+import org.jboss.soa.esb.message.Context;
+import org.jboss.soa.esb.message.Fault;
+import org.jboss.soa.esb.message.Header;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.Properties;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+
+/**
+ * This is the basic internal core message abstraction. A message consists of the following
+ * components:
+ *
+ * Header: the header information contains information such as the destination EPR, the
+ * sender EPR, where the reply goes etc, i.e., general message-level functional information.
+ * Context: additional information to contextualise the message; for example, transaction or
+ * security data, the identity of the ultimate receiver, or HTTP-cookie like information.
+ * Body: the actual payload of the message.
+ * Fault: any fault information associated with the message.
+ * Attachment: any attachments associated with the message.
+ * Properties: any properties associated with the message.
+ *
+ * Each message, once created, has a corresponding element for these 5 components. That element
+ * may be empty (<b>NOT NULL</b>). The object representing the element can then be used to act
+ * on the corresponding data item in the message.
+ *
+ * @author Mark Little
+ *
+ */
+
+public class MessageImpl implements Message
+{
+ public static final String ENVELOPE_TAG = "Envelope";
+
+ /**
+ * @return get the header component of the message.
+ */
+
+ public Header getHeader ()
+ {
+ return _theHeader;
+ }
+
+ /**
+ * @return get the context component of the message.
+ */
+
+ public Context getContext ()
+ {
+ return _theContext;
+ }
+
+ /**
+ * @return get the body component of the message.
+ */
+
+ public Body getBody ()
+ {
+ return _theBody;
+ }
+
+ /**
+ * @return get any faults associated with the message. These should not
+ * be application level faults, but comms level.
+ */
+
+ public Fault getFault ()
+ {
+ return _theFault;
+ }
+
+ /**
+ * @return get any message attachments.
+ */
+
+ public Attachment getAttachment ()
+ {
+ return _theAttachment;
+ }
+
+ /**
+ * @return the type of this message format.
+ */
+
+ public URI getType ()
+ {
+ return MessageType.JBOSS_XML;
+ }
+ /**
+ * getProperties()
+ * @return org.jboss.soa.esb.message.Properties - any message properties.
+ */
+ public Properties getProperties()
+ {
+ return _theProperties;
+ }
+
+ // to/from XML here, rather than on individual elements
+
+ public Document toXML (Document doc)
+ {
+ try
+ {
+ // TODO remove magic strings!
+
+ Element envelope = doc.createElement(ENVELOPE_TAG);
+
+ doc.appendChild(envelope);
+
+ _theHeader.toXML(envelope);
+ _theContext.toXML(envelope);
+ _theBody.toXML(envelope);
+ _theFault.toXML(envelope);
+ _theAttachment.toXML(envelope);
+ _theProperties.toXML(envelope);
+
+ return doc;
+ }
+ catch (Exception ex)
+ {
+ // TODO error handling
+
+ ex.printStackTrace();
+
+ return null;
+ }
+ }
+
+ public void fromXML (Document doc)
+ {
+ try
+ {
+ NodeList nl = doc.getChildNodes();
+ Element envelope = null;
+
+ for (int i = 0; i < nl.getLength(); i++)
+ {
+ Node n = nl.item(i);
+
+ if (n.getNodeName().equals(ENVELOPE_TAG))
+ {
+ envelope = (Element) n;
+ break;
+ }
+ }
+
+ _theHeader.fromXML(envelope);
+ _theContext.fromXML(envelope);
+ _theBody.fromXML(envelope);
+ _theFault.fromXML(envelope);
+ _theAttachment.fromXML(envelope);
+ _theProperties.fromXML(envelope);
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+
+ // TODO add equality operator(s)
+
+ private HeaderImpl _theHeader = new HeaderImpl();
+ private ContextImpl _theContext = new ContextImpl();
+ private BodyImpl _theBody = new BodyImpl();
+ private FaultImpl _theFault = new FaultImpl();
+ private AttachmentImpl _theAttachment = new AttachmentImpl();
+ private PropertiesImpl _theProperties = new PropertiesImpl();
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,165 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author schifest at heuristica.com.ar
+ */
+package org.jboss.internal.soa.esb.message.format.xml;
+
+import java.io.Serializable;
+import java.util.Hashtable;
+import java.util.Map;
+
+import org.jboss.internal.soa.esb.thirdparty.Base64;
+import org.jboss.soa.esb.message.Properties;
+import org.w3c.dom.CDATASection;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class PropertiesImpl implements Properties
+{
+ public static final String PROPERTIES_TAG = "Properties";
+
+ public Object getProperty(String name)
+ {
+ return _table.get(name);
+ }
+
+ public Object getProperty(String name, Object defaultVal)
+ {
+ Object oRet = getProperty(name);
+ return (null == oRet) ? defaultVal : oRet;
+ }
+
+ public Object setProperty(String name, Object value)
+ {
+ if (value instanceof Serializable)
+ return _table.put(name, (Serializable) value);
+ else
+ throw new IllegalArgumentException("value must be XmlSerializable");
+ }
+
+ public Object remove(String name)
+ {
+ return _table.remove(name);
+ }
+
+ public int size() {return _table.size(); }
+
+ public String[] getNames()
+ {
+ return _table.keySet().toArray(new String[_table.size()]);
+ }
+
+ /**
+ * toXML(elem) - Will build a child element with appropriate values and
+ * append it to arg0
+ *
+ * @param elem
+ * Element - where to add 'this' as a child node
+ * @return Element - 'this' as the added Element, or <null> if no
+ * properties in table and nothing was appended to arg0
+ */
+ public Element toXML(Element elem)
+ {
+ if (_table.size() < 1)
+ return null;
+
+ Document doc = elem.getOwnerDocument();
+ Element thisElement = doc.createElement(PROPERTIES_TAG);
+
+ boolean bAdd = false;
+ for (Map.Entry<String, Serializable> oCurr : _table.entrySet())
+ {
+ Element oProp = doc.createElement(oCurr.getKey());
+ oProp.appendChild(doc.createCDATASection(Base64.encodeObject(oCurr
+ .getValue())));
+ thisElement.appendChild(oProp);
+ bAdd = true;
+ }
+ if (bAdd)
+ {
+ elem.appendChild(thisElement);
+ return thisElement;
+ }
+ else
+ return null;
+ }
+
+ /**
+ * fromXml(elem) - Populate properties found in appropriate child element
+ *
+ * @see XMLUtil.PROPERTIES_TAG
+ * @param elem -
+ * Element where to look for child nodes
+ */
+ public void fromXML(Element elem)
+ {
+ _table.clear();
+
+ NodeList NL = elem.getElementsByTagName(PROPERTIES_TAG);
+ for (int i1 = 0; i1 < NL.getLength(); i1++)
+ {
+ Node oCurr = NL.item(i1);
+ if (!(oCurr instanceof Element))
+ continue;
+ NodeList props = oCurr.getChildNodes();
+ for (int i2 = 0; i2 < props.getLength(); i2++)
+ {
+ Node oProp = props.item(i2);
+ if (oProp instanceof Element)
+ {
+ CDATASection cdata = (CDATASection) oProp.getFirstChild();
+ Object value = Base64.decodeToObject(cdata.getWholeText());
+ _table.put(oProp.getNodeName(), (Serializable) value);
+ }
+ }
+ }
+ }
+
+ public String toString()
+ {
+ return _table.toString();
+ }
+
+ @Override
+ public boolean equals(Object arg)
+ {
+ if (! (arg instanceof Properties))
+ return false;
+ Properties other = (Properties)arg;
+ if (other.size() != _table.size())
+ return false;
+ for(Map.Entry<String,Serializable>oCurr : _table.entrySet())
+ {
+ Object val = other.getProperty(oCurr.getKey());
+ if (null==oCurr.getValue())
+ if (null==val)
+ continue;
+ else
+ return false;
+ if (!oCurr.getValue().equals(val))
+ return false;
+ }
+ return true;
+ }
+
+ Hashtable<String, Serializable> _table = new Hashtable<String, Serializable>();
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/XMLMessagePlugin.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/XMLMessagePlugin.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/XMLMessagePlugin.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,48 @@
+package org.jboss.internal.soa.esb.message.format.xml;
+
+import java.net.URI;
+
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessagePlugin;
+import org.jboss.soa.esb.message.format.MessageType;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/**
+ * Used to plug in new message formats dynamically.
+ *
+ * @author Mark Little
+ *
+ */
+
+public class XMLMessagePlugin implements MessagePlugin
+{
+ public Message getMessage ()
+ {
+ return new MessageImpl();
+ }
+
+ public URI getType ()
+ {
+ return MessageType.JBOSS_XML;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/XMLUtil.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/XMLUtil.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/XMLUtil.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,34 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/*
+ * Copyright (c) 2002, 2003, Arjuna Technologies Limited.
+ *
+ * XMLUtil.java
+ */
+
+package org.jboss.internal.soa.esb.message.format.xml;
+
+public class XMLUtil
+{
+ public static final String ESB_PREFIX = "jbesb";
+ public static final String ESB_NAMESPACE_URI = "http://www.jboss.org/ws/2006/09/esb";
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalManager.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalManager.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalManager.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,157 @@
+package org.jboss.internal.soa.esb.message.format.xml.marshal;
+
+import java.net.URI;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Properties;
+
+import org.jboss.soa.esb.MarshalException;
+import org.jboss.soa.esb.UnmarshalException;
+import org.jboss.soa.esb.common.ModulePropertyManager;
+import org.w3c.dom.Element;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/**
+ * Used to plug in new Object marshal/unmarshal formats dynamically. When packing
+ * objects in XML, the system runs through the list of registered plug-ins until it
+ * finds one that can deal with the object type (or faults). When packing, the name (type)
+ * of the plug-in that packed the object is also attached to facilitate unpacking.
+ *
+ * @author Mark Little
+ *
+ */
+
+public class MarshalUnmarshalManager
+{
+ public static MarshalUnmarshalManager getInstance ()
+ {
+ return _instance;
+ }
+
+ private MarshalUnmarshalManager ()
+ {
+ /*
+ * Go through the properties loaded from the property file. Anything
+ * starting with MessagePlugin.MESSAGE_PLUGIN is assumed to be a plugin
+ * that we load and add to the list.
+ */
+
+ Properties properties = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperties();
+
+ if (properties != null)
+ {
+ Enumeration names = properties.propertyNames();
+
+ while (names.hasMoreElements())
+ {
+ String attrName = (String) names.nextElement();
+
+ if (attrName.startsWith(MarshalUnmarshalPlugin.MARSHAL_UNMARSHAL_PLUGIN))
+ {
+ try
+ {
+ String pluginName = properties.getProperty(attrName);
+ Class c = Class.forName(pluginName);
+ MarshalUnmarshalPlugin thePlugin = (MarshalUnmarshalPlugin) c.newInstance();
+
+ _plugins.put(thePlugin.type(), thePlugin);
+ }
+ catch (ClassNotFoundException ex)
+ {
+ ex.printStackTrace();
+ }
+ catch (IllegalAccessException ex)
+ {
+ ex.printStackTrace();
+ }
+ catch (InstantiationException ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+ }
+
+ /*
+ * Add in the default plugin.
+ */
+
+ SerializedMarshalUnmarshalPlugin defaultPlugin = new SerializedMarshalUnmarshalPlugin();
+
+ _plugins.put(defaultPlugin.type(), defaultPlugin);
+ }
+ }
+
+ /**
+ * Pack the provided object into the document.
+ *
+ * @param doc the XML document.
+ * @param param the object to pack.
+ *
+ * @return <code>true</code> if the object was packed, <code>false</code> otherwise.
+ * @throws MarshalException thrown if there is a problem packing.
+ */
+
+ public boolean marshal (Element doc, Object param) throws MarshalException
+ {
+ Enumeration<URI> keys = _plugins.keys();
+
+ while (keys.hasMoreElements())
+ {
+ if (_plugins.get(keys.nextElement()).marshal(doc, param))
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Unpack the object from the document.
+ *
+ * @param doc the document.
+ *
+ * @return the object, or <code>null</code> if this implementation cannot deal with the
+ * format.
+ * @throws UnmarshalException thrown if there is a problem unpacking.
+ */
+
+ public Object unmarshal (Element doc) throws UnmarshalException
+ {
+ Enumeration<URI> keys = _plugins.keys();
+
+ while (keys.hasMoreElements())
+ {
+ URI uri = keys.nextElement();
+
+ if (doc.getNodeName().equals(uri.toString()))
+ {
+ return _plugins.get(uri).unmarshal(doc);
+ }
+ }
+
+ return null;
+ }
+
+ private Hashtable<URI,MarshalUnmarshalPlugin> _plugins = new Hashtable<URI,MarshalUnmarshalPlugin>();
+
+ private static final MarshalUnmarshalManager _instance = new MarshalUnmarshalManager();
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalPlugin.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalPlugin.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalPlugin.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,73 @@
+package org.jboss.internal.soa.esb.message.format.xml.marshal;
+
+import java.net.URI;
+
+import org.jboss.soa.esb.MarshalException;
+import org.jboss.soa.esb.UnmarshalException;
+import org.w3c.dom.Element;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/**
+ * Used to plug in new Object marshal/unmarshal formats dynamically. When packing
+ * objects in XML, the system runs through the list of registered plug-ins until it
+ * finds one that can deal with the object type (or faults). When packing, the name (type)
+ * of the plug-in that packed the object is also attached to facilitate unpacking.
+ *
+ * @author Mark Little
+ *
+ */
+
+public interface MarshalUnmarshalPlugin
+{
+ public static final String MARSHAL_UNMARSHAL_PLUGIN = "org.jboss.soa.esb.message.format.xml.plugin";
+
+ /**
+ * Pack the provided object into the document.
+ *
+ * @param doc the XML document.
+ * @param param the object to pack.
+ *
+ * @return <code>true</code> if the object was packed, <code>false</code> otherwise.
+ * @throws MarshalException thrown if there is a problem packing.
+ */
+
+ public boolean marshal (Element doc, Object param) throws MarshalException;
+
+ /**
+ * Unpack the object from the document.
+ *
+ * @param doc the document.
+ *
+ * @return the object, or <code>null</code> if this implementation cannot deal with the
+ * format.
+ * @throws UnmarshalException thrown if there is a problem unpacking.
+ */
+
+ public Object unmarshal (Element doc) throws UnmarshalException;
+
+ /**
+ * @return the unique name for this plugin.
+ */
+
+ public URI type ();
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/marshal/SerializedMarshalUnmarshalPlugin.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/marshal/SerializedMarshalUnmarshalPlugin.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/marshal/SerializedMarshalUnmarshalPlugin.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,126 @@
+package org.jboss.internal.soa.esb.message.format.xml.marshal;
+
+import java.io.Serializable;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.jboss.internal.soa.esb.thirdparty.Base64;
+import org.jboss.soa.esb.MarshalException;
+import org.jboss.soa.esb.UnmarshalException;
+import org.w3c.dom.CDATASection;
+import org.w3c.dom.Element;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/**
+ * Used to plug in new Object marshal/unmarshal formats dynamically. When packing
+ * objects in XML, the system runs through the list of registered plug-ins until it
+ * finds one that can deal with the object type (or faults). When packing, the name (type)
+ * of the plug-in that packed the object is also attached to facilitate unpacking.
+ *
+ * @author Mark Little
+ *
+ */
+
+public class SerializedMarshalUnmarshalPlugin implements MarshalUnmarshalPlugin
+{
+ public SerializedMarshalUnmarshalPlugin ()
+ {
+ try
+ {
+ _type = new URI("urn:xml:marshalunmarshal:plugin:serialization");
+ }
+ catch (URISyntaxException ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+
+ /**
+ * Pack the provided object into the document.
+ *
+ * @param doc the XML document.
+ * @param param the object to pack.
+ *
+ * @return <code>true</code> if the object was packed, <code>false</code> otherwise.
+ * @throws MarshalException thrown if there is a problem packing.
+ */
+
+ public boolean marshal (Element doc, Object param) throws MarshalException
+ {
+ if (param instanceof Serializable)
+ {
+ // we can deal with this type!
+
+ try
+ {
+ Element nodeElement = doc.getOwnerDocument().createElement(type().toString());
+
+ nodeElement.appendChild(doc.getOwnerDocument().createCDATASection(Base64.encodeObject((Serializable) param)));
+
+ doc.appendChild(nodeElement);
+ }
+ catch (Exception ex)
+ {
+ throw new MarshalException(ex.toString());
+ }
+
+ return true;
+ }
+ else
+ return false;
+ }
+
+ /**
+ * Unpack the object from the document.
+ *
+ * @param doc the document.
+ *
+ * @return the object, or <code>null</code> if this implementation cannot deal with the
+ * format.
+ * @throws UnmarshalException thrown if there is a problem unpacking.
+ */
+
+ public Object unmarshal (Element doc) throws UnmarshalException
+ {
+ if (doc.getNodeName().equals(type().toString()))
+ {
+ CDATASection cdata = (CDATASection) doc.getFirstChild();
+
+ return Base64.decodeToObject(cdata.getWholeText());
+ }
+ else
+ return null;
+ }
+
+ /**
+ * @return the unique name for this plugin.
+ */
+
+ public URI type ()
+ {
+ return _type;
+ }
+
+ private URI _type = null;
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/notification/MacroExpander.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/notification/MacroExpander.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/notification/MacroExpander.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,98 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.internal.soa.esb.notification;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+
+
+/**
+ * MacroExpander class.
+ * <p/>
+ * This class takes a DOM and iterates over it, replacing all "macro" tokens in
+ * any attribute values using the values from the supplied Map.
+ *
+ * @author <a href="mailto:schifest at gmail.com">Esteban Shifman</a>
+ */
+public class MacroExpander {
+ private static final String CTX_PREFIX = "@@ctx@@";
+
+ public static final String CTX_BATCH_UID = CTX_PREFIX + "batchUid";
+
+ public static final String CTX_BATCH_NUM = CTX_PREFIX + "batchNum";
+
+ public static final String CTX_INPUT_FILE = CTX_PREFIX + "inputFile";
+
+ public static final String CTX_POST_FILE = CTX_PREFIX + "postFile";
+
+ private static final String[] s_saMacros = {
+ CTX_BATCH_UID, CTX_BATCH_NUM, CTX_INPUT_FILE, CTX_POST_FILE };
+
+ /**
+ * Perform a macro replacement on the DOM tree attribute values
+ * of the supplied ConfigTree using the supplied macro token
+ * replacement map.
+ * @param domTree The DOM Tree to be operated on.
+ * @param replacementTokenMapMap The token replacement map.
+ */
+ public static void replaceMacros(ConfigTree domTree, Map replacementTokenMap) {
+
+ List<KeyValuePair> changed = new ArrayList<KeyValuePair>();
+ for (String currAtt : domTree.getAttributeNames())
+ {
+ String sVal = domTree.getAttribute(currAtt);
+ boolean bSubst = false;
+ int iPos = 0;
+
+ while (0 <= (iPos = sVal.indexOf(CTX_PREFIX, 0))) {
+ String sRest = sVal.substring(iPos);
+ for (int ii = 0; ii < s_saMacros.length; ii++) {
+ String sMac = s_saMacros[ii];
+ if (!sRest.startsWith(sMac)) {
+ continue;
+ }
+ Object oRpl = (null != replacementTokenMap) ? replacementTokenMap.get(sMac) : null;
+ if (null == oRpl) {
+ continue;
+ }
+ bSubst = true;
+ sVal = sVal.substring(0, iPos) + oRpl.toString() + sVal.substring(iPos + sMac.length());
+ break;
+ }
+ }
+ if (bSubst)
+ changed.add(new KeyValuePair(currAtt,sVal));
+ }
+ for (KeyValuePair kvp : changed)
+ domTree.setAttribute(kvp.getKey(),kvp.getValue());
+ changed = null;
+
+ // Iterate over the child elements and recursively call this method...
+ for (ConfigTree child : domTree.getAllChildren())
+ replaceMacros(child, replacementTokenMap);
+ }
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/notification/MacroExpander.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/parameters/ParamFileRepository.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/parameters/ParamFileRepository.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/parameters/ParamFileRepository.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,277 @@
+package org.jboss.internal.soa.esb.parameters;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+import javax.naming.CompoundName;
+import javax.naming.InvalidNameException;
+
+import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.util.StreamUtils;
+import org.jboss.soa.esb.common.ModulePropertyManager;
+import org.jboss.soa.esb.parameters.ParamRepository;
+import org.jboss.soa.esb.parameters.ParamRepositoryException;
+
+/**
+ * This class provides basic file-based storage/retrieval of parameter trees for
+ * the JBoss ESB. <p/> This class creates a hierarchical parameter file
+ * structure on the file system. E.g. the value for a parameter named
+ * "org/jboss/param1" is stored in a file called "param1" in the folder "<root>/org/jboss",
+ * where "root" is either the working directory (default) or the directory
+ * specified in the "org.jboss.soa.esb.paramsRepository.file.root" System
+ * property.
+ *
+ * @author Esteban
+ *
+ */
+public class ParamFileRepository implements ParamRepository
+{
+
+ /**
+ * System property defining the repository root directory.
+ */
+ public static final String FILE_PARAMS_REPOS_ROOT = "org.jboss.soa.esb.paramsRepository.file.root";
+
+ /**
+ * The repository root dir.
+ */
+ private File root;
+
+ /**
+ * Logger.
+ */
+ private Logger logger = Logger.getLogger(ParamFileRepository.class);
+
+ /**
+ * Public default constructor.
+ */
+ public ParamFileRepository()
+ {
+ String rootDir = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE)
+ .getProperty(FILE_PARAMS_REPOS_ROOT);
+
+ // Set the repository root directory.
+ if (rootDir == null)
+ {
+ // set it to the working dir.
+ root = new File("./");
+ } else
+ {
+ root = new File(rootDir);
+ if (!root.exists())
+ {
+ throw new IllegalStateException(
+ "Nonexistant directory specified in the ["
+ + FILE_PARAMS_REPOS_ROOT
+ + "] System property: "
+ + root.getAbsolutePath());
+ }
+ }
+
+ logger.info("Setting parameter repository root dir to ["
+ + root.getAbsolutePath() + "].");
+ }
+
+ public void add(String name, String value) throws ParamRepositoryException
+ {
+ FileParamName nameParam = asserNameOK(name);
+ if (value == null)
+ {
+ throw new IllegalArgumentException(
+ "null 'value' arg in method call.");
+ }
+
+ synchronized (this)
+ {
+ File paramFile = toParamFile(nameParam);
+
+ paramFile.getParentFile().mkdirs();
+ FileOutputStream fileStream = null;
+ try
+ {
+ fileStream = new FileOutputStream(paramFile);
+ fileStream.write(value.getBytes("UTF-8"));
+ } catch (IOException e)
+ {
+ throw new ParamRepositoryException(
+ "IO Error while storing param [" + nameParam + "].", e);
+ } finally
+ {
+ try
+ {
+ if (fileStream != null)
+ {
+ fileStream.flush();
+ fileStream.close();
+ }
+ } catch (IOException e)
+ {
+ logger.warn("Unable to close param file: "
+ + paramFile.getAbsolutePath(), e);
+ }
+ }
+ }
+ }
+
+ public String get(String name) throws ParamRepositoryException
+ {
+ FileParamName paramName = asserNameOK(name);
+
+ synchronized (this)
+ {
+ File paramFile = new File(name);
+
+ if (!paramFile.exists())
+ {
+ paramFile = toParamFile(paramName);
+ if (!paramFile.exists())
+ {
+ return null;
+ }
+ }
+
+ InputStream fileStream = null;
+ try
+ {
+ fileStream = new FileInputStream(paramFile);
+ byte[] value = StreamUtils.readStream(fileStream);
+ return new String(value, "UTF-8");
+ } catch (Exception e)
+ {
+ throw new ParamRepositoryException(
+ "Unable to load Param Value from file: "
+ + paramFile.getAbsolutePath(), e);
+ } finally
+ {
+ try
+ {
+ if (fileStream != null)
+ {
+ fileStream.close();
+ }
+ } catch (IOException e)
+ {
+ logger.warn("Unable to close param file: "
+ + paramFile.getAbsolutePath(), e);
+ }
+ }
+ }
+ }
+
+ public void remove(String name)
+ {
+ FileParamName paramName = asserNameOK(name);
+
+ synchronized (this)
+ {
+ File paramFile = toParamFile(paramName);
+ if (paramFile.exists())
+ {
+ paramFile.delete();
+ }
+ }
+ }
+
+ /**
+ * Get the repository root directory.
+ *
+ * @return The repository root directory.
+ */
+ public File getRoot()
+ {
+ return root;
+ }
+
+ /**
+ * Get the param file for the specified param name.
+ *
+ * @param paramName
+ * The param name.
+ * @return The param file.
+ */
+ public File toParamFile(String name)
+ {
+ FileParamName paramName = asserNameOK(name);
+ return new File(root, paramName.toString());
+ }
+
+ /**
+ * Get the param file for the specified param name.
+ *
+ * @param paramName
+ * The param name.
+ * @return The param file.
+ */
+ private File toParamFile(FileParamName paramName)
+ {
+ return new File(root, paramName.toString());
+ }
+
+ private FileParamName asserNameOK(String name)
+ {
+ FileParamName paramName;
+
+ if (name == null)
+ {
+ throw new IllegalArgumentException(
+ "null 'name' arg in repository call.");
+ }
+ try
+ {
+ paramName = new FileParamName(name);
+ } catch (InvalidNameException e)
+ {
+ throw new IllegalArgumentException("Invalid 'name' arg: " + name, e);
+ }
+ if (paramName.size() == 0)
+ {
+ throw new IllegalArgumentException(
+ "Invalid 'name' arg. 0 tokens: " + name);
+ }
+
+ return paramName;
+ }
+
+ /**
+ * Parameter Name. <p/> Represents a compound parameter name - from a
+ * hierarchical namespace.
+ * <h4 id="syntax">Parameter Name Format</h4>
+ * The syntax of the parameter name is expected to be in "directory" format,
+ * read from left to right, where the syntax seperator character is '/' e.g.
+ * "com/acme/ParameterX".
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ private static class FileParamName extends CompoundName
+ {
+
+ private static final long serialVersionUID = 1L;
+
+ private static final Properties nameSyntaxProperties = new Properties();
+ static
+ {
+ nameSyntaxProperties.setProperty("jndi.syntax.direction",
+ "left_to_right");
+ nameSyntaxProperties.setProperty("jndi.syntax.separator", "/");
+ };
+
+ /**
+ * Public Constructor.
+ *
+ * @param name
+ * The name of the parameter, specified according to the <a
+ * href="#syntax">defined syntax</a>.
+ * @throws InvalidNameException
+ * The supplied name violates the <a href="#syntax">defined
+ * syntax</a>.
+ */
+ public FileParamName(String name) throws InvalidNameException
+ {
+ super(name, nameSyntaxProperties);
+ }
+ }
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/thirdparty/Base64.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/thirdparty/Base64.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/thirdparty/Base64.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,1451 @@
+package org.jboss.internal.soa.esb.thirdparty;
+
+/**
+ * Encodes and decodes to and from Base64 notation.
+ *
+ * <p>
+ * Change Log:
+ * </p>
+ * <ul>
+ * <li>v2.1 - Cleaned up javadoc comments and unused variables and methods. Added
+ * some convenience methods for reading and writing to and from files.</li>
+ * <li>v2.0.2 - Now specifies UTF-8 encoding in places where the code fails on systems
+ * with other encodings (like EBCDIC).</li>
+ * <li>v2.0.1 - Fixed an error when decoding a single byte, that is, when the
+ * encoded data was a single byte.</li>
+ * <li>v2.0 - I got rid of methods that used booleans to set options.
+ * Now everything is more consolidated and cleaner. The code now detects
+ * when data that's being decoded is gzip-compressed and will decompress it
+ * automatically. Generally things are cleaner. You'll probably have to
+ * change some method calls that you were making to support the new
+ * options format (<tt>int</tt>s that you "OR" together).</li>
+ * <li>v1.5.1 - Fixed bug when decompressing and decoding to a
+ * byte[] using <tt>decode( String s, boolean gzipCompressed )</tt>.
+ * Added the ability to "suspend" encoding in the Output Stream so
+ * you can turn on and off the encoding if you need to embed base64
+ * data in an otherwise "normal" stream (like an XML file).</li>
+ * <li>v1.5 - Output stream pases on flush() command but doesn't do anything itself.
+ * This helps when using GZIP streams.
+ * Added the ability to GZip-compress objects before encoding them.</li>
+ * <li>v1.4 - Added helper methods to read/write files.</li>
+ * <li>v1.3.6 - Fixed OutputStream.flush() so that 'position' is reset.</li>
+ * <li>v1.3.5 - Added flag to turn on and off line breaks. Fixed bug in input stream
+ * where last buffer being read, if not completely full, was not returned.</li>
+ * <li>v1.3.4 - Fixed when "improperly padded stream" error was thrown at the wrong time.</li>
+ * <li>v1.3.3 - Fixed I/O streams which were totally messed up.</li>
+ * </ul>
+ *
+ * <p>
+ * I am placing this code in the Public Domain. Do with it as you will.
+ * This software comes with no guarantees or warranties but with
+ * plenty of well-wishing instead!
+ * Please visit <a href="http://iharder.net/base64">http://iharder.net/base64</a>
+ * periodically to check for updates or to contribute improvements.
+ * </p>
+ *
+ * @author Robert Harder
+ * @author rob at iharder.net
+ * @version 2.1
+ */
+public class Base64
+{
+
+/* ******** P U B L I C F I E L D S ******** */
+
+
+ /** No options specified. Value is zero. */
+ public final static int NO_OPTIONS = 0;
+
+ /** Specify encoding. */
+ public final static int ENCODE = 1;
+
+
+ /** Specify decoding. */
+ public final static int DECODE = 0;
+
+
+ /** Specify that data should be gzip-compressed. */
+ public final static int GZIP = 2;
+
+
+ /** Don't break lines when encoding (violates strict Base64 specification) */
+ public final static int DONT_BREAK_LINES = 8;
+
+
+/* ******** P R I V A T E F I E L D S ******** */
+
+
+ /** Maximum line length (76) of Base64 output. */
+ private final static int MAX_LINE_LENGTH = 76;
+
+
+ /** The equals sign (=) as a byte. */
+ private final static byte EQUALS_SIGN = (byte)'=';
+
+
+ /** The new line character (\n) as a byte. */
+ private final static byte NEW_LINE = (byte)'\n';
+
+
+ /** Preferred encoding. */
+ private final static String PREFERRED_ENCODING = "UTF-8";
+
+
+ /** The 64 valid Base64 values. */
+ private final static byte[] ALPHABET;
+ private final static byte[] _NATIVE_ALPHABET = /* May be something funny like EBCDIC */
+ {
+ (byte)'A', (byte)'B', (byte)'C', (byte)'D', (byte)'E', (byte)'F', (byte)'G',
+ (byte)'H', (byte)'I', (byte)'J', (byte)'K', (byte)'L', (byte)'M', (byte)'N',
+ (byte)'O', (byte)'P', (byte)'Q', (byte)'R', (byte)'S', (byte)'T', (byte)'U',
+ (byte)'V', (byte)'W', (byte)'X', (byte)'Y', (byte)'Z',
+ (byte)'a', (byte)'b', (byte)'c', (byte)'d', (byte)'e', (byte)'f', (byte)'g',
+ (byte)'h', (byte)'i', (byte)'j', (byte)'k', (byte)'l', (byte)'m', (byte)'n',
+ (byte)'o', (byte)'p', (byte)'q', (byte)'r', (byte)'s', (byte)'t', (byte)'u',
+ (byte)'v', (byte)'w', (byte)'x', (byte)'y', (byte)'z',
+ (byte)'0', (byte)'1', (byte)'2', (byte)'3', (byte)'4', (byte)'5',
+ (byte)'6', (byte)'7', (byte)'8', (byte)'9', (byte)'+', (byte)'/'
+ };
+
+ /** Determine which ALPHABET to use. */
+ static
+ {
+ byte[] __bytes;
+ try
+ {
+ __bytes = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".getBytes( PREFERRED_ENCODING );
+ } // end try
+ catch (java.io.UnsupportedEncodingException use)
+ {
+ __bytes = _NATIVE_ALPHABET; // Fall back to native encoding
+ } // end catch
+ ALPHABET = __bytes;
+ } // end static
+
+
+ /**
+ * Translates a Base64 value to either its 6-bit reconstruction value
+ * or a negative number indicating some other meaning.
+ **/
+ private final static byte[] DECODABET =
+ {
+ -9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 0 - 8
+ -5,-5, // Whitespace: Tab and Linefeed
+ -9,-9, // Decimal 11 - 12
+ -5, // Whitespace: Carriage Return
+ -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 14 - 26
+ -9,-9,-9,-9,-9, // Decimal 27 - 31
+ -5, // Whitespace: Space
+ -9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 33 - 42
+ 62, // Plus sign at decimal 43
+ -9,-9,-9, // Decimal 44 - 46
+ 63, // Slash at decimal 47
+ 52,53,54,55,56,57,58,59,60,61, // Numbers zero through nine
+ -9,-9,-9, // Decimal 58 - 60
+ -1, // Equals sign at decimal 61
+ -9,-9,-9, // Decimal 62 - 64
+ 0,1,2,3,4,5,6,7,8,9,10,11,12,13, // Letters 'A' through 'N'
+ 14,15,16,17,18,19,20,21,22,23,24,25, // Letters 'O' through 'Z'
+ -9,-9,-9,-9,-9,-9, // Decimal 91 - 96
+ 26,27,28,29,30,31,32,33,34,35,36,37,38, // Letters 'a' through 'm'
+ 39,40,41,42,43,44,45,46,47,48,49,50,51, // Letters 'n' through 'z'
+ -9,-9,-9,-9 // Decimal 123 - 126
+ /*,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 127 - 139
+ -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 140 - 152
+ -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 153 - 165
+ -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 166 - 178
+ -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 179 - 191
+ -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 192 - 204
+ -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 205 - 217
+ -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 218 - 230
+ -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9, // Decimal 231 - 243
+ -9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9 // Decimal 244 - 255 */
+ };
+
+ // I think I end up not using the BAD_ENCODING indicator.
+ //private final static byte BAD_ENCODING = -9; // Indicates error in encoding
+ private final static byte WHITE_SPACE_ENC = -5; // Indicates white space in encoding
+ private final static byte EQUALS_SIGN_ENC = -1; // Indicates equals sign in encoding
+
+
+ /** Defeats instantiation. */
+ private Base64(){}
+
+
+
+/* ******** E N C O D I N G M E T H O D S ******** */
+
+
+ /**
+ * Encodes up to the first three bytes of array <var>threeBytes</var>
+ * and returns a four-byte array in Base64 notation.
+ * The actual number of significant bytes in your array is
+ * given by <var>numSigBytes</var>.
+ * The array <var>threeBytes</var> needs only be as big as
+ * <var>numSigBytes</var>.
+ * Code can reuse a byte array by passing a four-byte array as <var>b4</var>.
+ *
+ * @param b4 A reusable byte array to reduce array instantiation
+ * @param threeBytes the array to convert
+ * @param numSigBytes the number of significant bytes in your array
+ * @return four byte array in Base64 notation.
+ * @since 1.5.1
+ */
+ private static byte[] encode3to4( byte[] b4, byte[] threeBytes, int numSigBytes )
+ {
+ encode3to4( threeBytes, 0, numSigBytes, b4, 0 );
+ return b4;
+ } // end encode3to4
+
+
+ /**
+ * Encodes up to three bytes of the array <var>source</var>
+ * and writes the resulting four Base64 bytes to <var>destination</var>.
+ * The source and destination arrays can be manipulated
+ * anywhere along their length by specifying
+ * <var>srcOffset</var> and <var>destOffset</var>.
+ * This method does not check to make sure your arrays
+ * are large enough to accomodate <var>srcOffset</var> + 3 for
+ * the <var>source</var> array or <var>destOffset</var> + 4 for
+ * the <var>destination</var> array.
+ * The actual number of significant bytes in your array is
+ * given by <var>numSigBytes</var>.
+ *
+ * @param source the array to convert
+ * @param srcOffset the index where conversion begins
+ * @param numSigBytes the number of significant bytes in your array
+ * @param destination the array to hold the conversion
+ * @param destOffset the index where output will be put
+ * @return the <var>destination</var> array
+ * @since 1.3
+ */
+ private static byte[] encode3to4(
+ byte[] source, int srcOffset, int numSigBytes,
+ byte[] destination, int destOffset )
+ {
+ // 1 2 3
+ // 01234567890123456789012345678901 Bit position
+ // --------000000001111111122222222 Array position from threeBytes
+ // --------| || || || | Six bit groups to index ALPHABET
+ // >>18 >>12 >> 6 >> 0 Right shift necessary
+ // 0x3f 0x3f 0x3f Additional AND
+
+ // Create buffer with zero-padding if there are only one or two
+ // significant bytes passed in the array.
+ // We have to shift left 24 in order to flush out the 1's that appear
+ // when Java treats a value as negative that is cast from a byte to an int.
+ int inBuff = ( numSigBytes > 0 ? ((source[ srcOffset ] << 24) >>> 8) : 0 )
+ | ( numSigBytes > 1 ? ((source[ srcOffset + 1 ] << 24) >>> 16) : 0 )
+ | ( numSigBytes > 2 ? ((source[ srcOffset + 2 ] << 24) >>> 24) : 0 );
+
+ switch( numSigBytes )
+ {
+ case 3:
+ destination[ destOffset ] = ALPHABET[ (inBuff >>> 18) ];
+ destination[ destOffset + 1 ] = ALPHABET[ (inBuff >>> 12) & 0x3f ];
+ destination[ destOffset + 2 ] = ALPHABET[ (inBuff >>> 6) & 0x3f ];
+ destination[ destOffset + 3 ] = ALPHABET[ (inBuff ) & 0x3f ];
+ return destination;
+
+ case 2:
+ destination[ destOffset ] = ALPHABET[ (inBuff >>> 18) ];
+ destination[ destOffset + 1 ] = ALPHABET[ (inBuff >>> 12) & 0x3f ];
+ destination[ destOffset + 2 ] = ALPHABET[ (inBuff >>> 6) & 0x3f ];
+ destination[ destOffset + 3 ] = EQUALS_SIGN;
+ return destination;
+
+ case 1:
+ destination[ destOffset ] = ALPHABET[ (inBuff >>> 18) ];
+ destination[ destOffset + 1 ] = ALPHABET[ (inBuff >>> 12) & 0x3f ];
+ destination[ destOffset + 2 ] = EQUALS_SIGN;
+ destination[ destOffset + 3 ] = EQUALS_SIGN;
+ return destination;
+
+ default:
+ return destination;
+ } // end switch
+ } // end encode3to4
+
+
+
+ /**
+ * Serializes an object and returns the Base64-encoded
+ * version of that serialized object. If the object
+ * cannot be serialized or there is another error,
+ * the method will return <tt>null</tt>.
+ * The object is not GZip-compressed before being encoded.
+ *
+ * @param serializableObject The object to encode
+ * @return The Base64-encoded object
+ * @since 1.4
+ */
+ public static String encodeObject( java.io.Serializable serializableObject )
+ {
+ return encodeObject( serializableObject, NO_OPTIONS );
+ } // end encodeObject
+
+
+
+ /**
+ * Serializes an object and returns the Base64-encoded
+ * version of that serialized object. If the object
+ * cannot be serialized or there is another error,
+ * the method will return <tt>null</tt>.
+ * <p>
+ * Valid options:<pre>
+ * GZIP: gzip-compresses object before encoding it.
+ * DONT_BREAK_LINES: don't break lines at 76 characters
+ * <i>Note: Technically, this makes your encoding non-compliant.</i>
+ * </pre>
+ * <p>
+ * Example: <code>encodeObject( myObj, Base64.GZIP )</code> or
+ * <p>
+ * Example: <code>encodeObject( myObj, Base64.GZIP | Base64.DONT_BREAK_LINES )</code>
+ *
+ * @param serializableObject The object to encode
+ * @param options Specified options
+ * @return The Base64-encoded object
+ * @see Base64#GZIP
+ * @see Base64#DONT_BREAK_LINES
+ * @since 2.0
+ */
+ public static String encodeObject( java.io.Serializable serializableObject, int options )
+ {
+ // Streams
+ java.io.ByteArrayOutputStream baos = null;
+ java.io.OutputStream b64os = null;
+ java.io.ObjectOutputStream oos = null;
+ java.util.zip.GZIPOutputStream gzos = null;
+
+ // Isolate options
+ int gzip = (options & GZIP);
+ int dontBreakLines = (options & DONT_BREAK_LINES);
+
+ try
+ {
+ // ObjectOutputStream -> (GZIP) -> Base64 -> ByteArrayOutputStream
+ baos = new java.io.ByteArrayOutputStream();
+ b64os = new Base64.OutputStream( baos, ENCODE | dontBreakLines );
+
+ // GZip?
+ if( gzip == GZIP )
+ {
+ gzos = new java.util.zip.GZIPOutputStream( b64os );
+ oos = new java.io.ObjectOutputStream( gzos );
+ } // end if: gzip
+ else
+ oos = new java.io.ObjectOutputStream( b64os );
+
+ oos.writeObject( serializableObject );
+ } // end try
+ catch( java.io.IOException e )
+ {
+ e.printStackTrace();
+ return null;
+ } // end catch
+ finally
+ {
+ try{ oos.close(); } catch( Exception e ){}
+ try{ gzos.close(); } catch( Exception e ){}
+ try{ b64os.close(); } catch( Exception e ){}
+ try{ baos.close(); } catch( Exception e ){}
+ } // end finally
+
+ // Return value according to relevant encoding.
+ try
+ {
+ return new String( baos.toByteArray(), PREFERRED_ENCODING );
+ } // end try
+ catch (java.io.UnsupportedEncodingException uue)
+ {
+ return new String( baos.toByteArray() );
+ } // end catch
+
+ } // end encode
+
+
+
+ /**
+ * Encodes a byte array into Base64 notation.
+ * Does not GZip-compress data.
+ *
+ * @param source The data to convert
+ * @since 1.4
+ */
+ public static String encodeBytes( byte[] source )
+ {
+ return encodeBytes( source, 0, source.length, NO_OPTIONS );
+ } // end encodeBytes
+
+
+
+ /**
+ * Encodes a byte array into Base64 notation.
+ * <p>
+ * Valid options:<pre>
+ * GZIP: gzip-compresses object before encoding it.
+ * DONT_BREAK_LINES: don't break lines at 76 characters
+ * <i>Note: Technically, this makes your encoding non-compliant.</i>
+ * </pre>
+ * <p>
+ * Example: <code>encodeBytes( myData, Base64.GZIP )</code> or
+ * <p>
+ * Example: <code>encodeBytes( myData, Base64.GZIP | Base64.DONT_BREAK_LINES )</code>
+ *
+ *
+ * @param source The data to convert
+ * @param options Specified options
+ * @see Base64#GZIP
+ * @see Base64#DONT_BREAK_LINES
+ * @since 2.0
+ */
+ public static String encodeBytes( byte[] source, int options )
+ {
+ return encodeBytes( source, 0, source.length, options );
+ } // end encodeBytes
+
+
+ /**
+ * Encodes a byte array into Base64 notation.
+ * Does not GZip-compress data.
+ *
+ * @param source The data to convert
+ * @param off Offset in array where conversion should begin
+ * @param len Length of data to convert
+ * @since 1.4
+ */
+ public static String encodeBytes( byte[] source, int off, int len )
+ {
+ return encodeBytes( source, off, len, NO_OPTIONS );
+ } // end encodeBytes
+
+
+
+ /**
+ * Encodes a byte array into Base64 notation.
+ * <p>
+ * Valid options:<pre>
+ * GZIP: gzip-compresses object before encoding it.
+ * DONT_BREAK_LINES: don't break lines at 76 characters
+ * <i>Note: Technically, this makes your encoding non-compliant.</i>
+ * </pre>
+ * <p>
+ * Example: <code>encodeBytes( myData, Base64.GZIP )</code> or
+ * <p>
+ * Example: <code>encodeBytes( myData, Base64.GZIP | Base64.DONT_BREAK_LINES )</code>
+ *
+ *
+ * @param source The data to convert
+ * @param off Offset in array where conversion should begin
+ * @param len Length of data to convert
+ * @param options Specified options
+ * @see Base64#GZIP
+ * @see Base64#DONT_BREAK_LINES
+ * @since 2.0
+ */
+ public static String encodeBytes( byte[] source, int off, int len, int options )
+ {
+ // Isolate options
+ int dontBreakLines = ( options & DONT_BREAK_LINES );
+ int gzip = ( options & GZIP );
+
+ // Compress?
+ if( gzip == GZIP )
+ {
+ java.io.ByteArrayOutputStream baos = null;
+ java.util.zip.GZIPOutputStream gzos = null;
+ Base64.OutputStream b64os = null;
+
+
+ try
+ {
+ // GZip -> Base64 -> ByteArray
+ baos = new java.io.ByteArrayOutputStream();
+ b64os = new Base64.OutputStream( baos, ENCODE | dontBreakLines );
+ gzos = new java.util.zip.GZIPOutputStream( b64os );
+
+ gzos.write( source, off, len );
+ gzos.close();
+ } // end try
+ catch( java.io.IOException e )
+ {
+ e.printStackTrace();
+ return null;
+ } // end catch
+ finally
+ {
+ try{ gzos.close(); } catch( Exception e ){}
+ try{ b64os.close(); } catch( Exception e ){}
+ try{ baos.close(); } catch( Exception e ){}
+ } // end finally
+
+ // Return value according to relevant encoding.
+ try
+ {
+ return new String( baos.toByteArray(), PREFERRED_ENCODING );
+ } // end try
+ catch (java.io.UnsupportedEncodingException uue)
+ {
+ return new String( baos.toByteArray() );
+ } // end catch
+ } // end if: compress
+
+ // Else, don't compress. Better not to use streams at all then.
+ else
+ {
+ // Convert option to boolean in way that code likes it.
+ boolean breakLines = dontBreakLines == 0;
+
+ int len43 = len * 4 / 3;
+ byte[] outBuff = new byte[ ( len43 ) // Main 4:3
+ + ( (len % 3) > 0 ? 4 : 0 ) // Account for padding
+ + (breakLines ? ( len43 / MAX_LINE_LENGTH ) : 0) ]; // New lines
+ int d = 0;
+ int e = 0;
+ int len2 = len - 2;
+ int lineLength = 0;
+ for( ; d < len2; d+=3, e+=4 )
+ {
+ encode3to4( source, d+off, 3, outBuff, e );
+
+ lineLength += 4;
+ if( breakLines && lineLength == MAX_LINE_LENGTH )
+ {
+ outBuff[e+4] = NEW_LINE;
+ e++;
+ lineLength = 0;
+ } // end if: end of line
+ } // en dfor: each piece of array
+
+ if( d < len )
+ {
+ encode3to4( source, d+off, len - d, outBuff, e );
+ e += 4;
+ } // end if: some padding needed
+
+
+ // Return value according to relevant encoding.
+ try
+ {
+ return new String( outBuff, 0, e, PREFERRED_ENCODING );
+ } // end try
+ catch (java.io.UnsupportedEncodingException uue)
+ {
+ return new String( outBuff, 0, e );
+ } // end catch
+
+ } // end else: don't compress
+
+ } // end encodeBytes
+
+
+
+
+
+/* ******** D E C O D I N G M E T H O D S ******** */
+
+
+ /**
+ * Decodes four bytes from array <var>source</var>
+ * and writes the resulting bytes (up to three of them)
+ * to <var>destination</var>.
+ * The source and destination arrays can be manipulated
+ * anywhere along their length by specifying
+ * <var>srcOffset</var> and <var>destOffset</var>.
+ * This method does not check to make sure your arrays
+ * are large enough to accomodate <var>srcOffset</var> + 4 for
+ * the <var>source</var> array or <var>destOffset</var> + 3 for
+ * the <var>destination</var> array.
+ * This method returns the actual number of bytes that
+ * were converted from the Base64 encoding.
+ *
+ *
+ * @param source the array to convert
+ * @param srcOffset the index where conversion begins
+ * @param destination the array to hold the conversion
+ * @param destOffset the index where output will be put
+ * @return the number of decoded bytes converted
+ * @since 1.3
+ */
+ private static int decode4to3( byte[] source, int srcOffset, byte[] destination, int destOffset )
+ {
+ // Example: Dk==
+ if( source[ srcOffset + 2] == EQUALS_SIGN )
+ {
+ // Two ways to do the same thing. Don't know which way I like best.
+ //int outBuff = ( ( DECODABET[ source[ srcOffset ] ] << 24 ) >>> 6 )
+ // | ( ( DECODABET[ source[ srcOffset + 1] ] << 24 ) >>> 12 );
+ int outBuff = ( ( DECODABET[ source[ srcOffset ] ] & 0xFF ) << 18 )
+ | ( ( DECODABET[ source[ srcOffset + 1] ] & 0xFF ) << 12 );
+
+ destination[ destOffset ] = (byte)( outBuff >>> 16 );
+ return 1;
+ }
+
+ // Example: DkL=
+ else if( source[ srcOffset + 3 ] == EQUALS_SIGN )
+ {
+ // Two ways to do the same thing. Don't know which way I like best.
+ //int outBuff = ( ( DECODABET[ source[ srcOffset ] ] << 24 ) >>> 6 )
+ // | ( ( DECODABET[ source[ srcOffset + 1 ] ] << 24 ) >>> 12 )
+ // | ( ( DECODABET[ source[ srcOffset + 2 ] ] << 24 ) >>> 18 );
+ int outBuff = ( ( DECODABET[ source[ srcOffset ] ] & 0xFF ) << 18 )
+ | ( ( DECODABET[ source[ srcOffset + 1 ] ] & 0xFF ) << 12 )
+ | ( ( DECODABET[ source[ srcOffset + 2 ] ] & 0xFF ) << 6 );
+
+ destination[ destOffset ] = (byte)( outBuff >>> 16 );
+ destination[ destOffset + 1 ] = (byte)( outBuff >>> 8 );
+ return 2;
+ }
+
+ // Example: DkLE
+ else
+ {
+ try{
+ // Two ways to do the same thing. Don't know which way I like best.
+ //int outBuff = ( ( DECODABET[ source[ srcOffset ] ] << 24 ) >>> 6 )
+ // | ( ( DECODABET[ source[ srcOffset + 1 ] ] << 24 ) >>> 12 )
+ // | ( ( DECODABET[ source[ srcOffset + 2 ] ] << 24 ) >>> 18 )
+ // | ( ( DECODABET[ source[ srcOffset + 3 ] ] << 24 ) >>> 24 );
+ int outBuff = ( ( DECODABET[ source[ srcOffset ] ] & 0xFF ) << 18 )
+ | ( ( DECODABET[ source[ srcOffset + 1 ] ] & 0xFF ) << 12 )
+ | ( ( DECODABET[ source[ srcOffset + 2 ] ] & 0xFF ) << 6)
+ | ( ( DECODABET[ source[ srcOffset + 3 ] ] & 0xFF ) );
+
+
+ destination[ destOffset ] = (byte)( outBuff >> 16 );
+ destination[ destOffset + 1 ] = (byte)( outBuff >> 8 );
+ destination[ destOffset + 2 ] = (byte)( outBuff );
+
+ return 3;
+ }catch( Exception e){
+ System.out.println(""+source[srcOffset]+ ": " + ( DECODABET[ source[ srcOffset ] ] ) );
+ System.out.println(""+source[srcOffset+1]+ ": " + ( DECODABET[ source[ srcOffset + 1 ] ] ) );
+ System.out.println(""+source[srcOffset+2]+ ": " + ( DECODABET[ source[ srcOffset + 2 ] ] ) );
+ System.out.println(""+source[srcOffset+3]+ ": " + ( DECODABET[ source[ srcOffset + 3 ] ] ) );
+ return -1;
+ } //e nd catch
+ }
+ } // end decodeToBytes
+
+
+
+
+ /**
+ * Very low-level access to decoding ASCII characters in
+ * the form of a byte array. Does not support automatically
+ * gunzipping or any other "fancy" features.
+ *
+ * @param source The Base64 encoded data
+ * @param off The offset of where to begin decoding
+ * @param len The length of characters to decode
+ * @return decoded data
+ * @since 1.3
+ */
+ public static byte[] decode( byte[] source, int off, int len )
+ {
+ int len34 = len * 3 / 4;
+ byte[] outBuff = new byte[ len34 ]; // Upper limit on size of output
+ int outBuffPosn = 0;
+
+ byte[] b4 = new byte[4];
+ int b4Posn = 0;
+ int i = 0;
+ byte sbiCrop = 0;
+ byte sbiDecode = 0;
+ for( i = off; i < off+len; i++ )
+ {
+ sbiCrop = (byte)(source[i] & 0x7f); // Only the low seven bits
+ sbiDecode = DECODABET[ sbiCrop ];
+
+ if( sbiDecode >= WHITE_SPACE_ENC ) // White space, Equals sign or better
+ {
+ if( sbiDecode >= EQUALS_SIGN_ENC )
+ {
+ b4[ b4Posn++ ] = sbiCrop;
+ if( b4Posn > 3 )
+ {
+ outBuffPosn += decode4to3( b4, 0, outBuff, outBuffPosn );
+ b4Posn = 0;
+
+ // If that was the equals sign, break out of 'for' loop
+ if( sbiCrop == EQUALS_SIGN )
+ break;
+ } // end if: quartet built
+
+ } // end if: equals sign or better
+
+ } // end if: white space, equals sign or better
+ else
+ {
+ System.err.println( "Bad Base64 input character at " + i + ": " + source[i] + "(decimal)" );
+ return null;
+ } // end else:
+ } // each input character
+
+ byte[] out = new byte[ outBuffPosn ];
+ System.arraycopy( outBuff, 0, out, 0, outBuffPosn );
+ return out;
+ } // end decode
+
+
+
+
+ /**
+ * Decodes data from Base64 notation, automatically
+ * detecting gzip-compressed data and decompressing it.
+ *
+ * @param s the string to decode
+ * @return the decoded data
+ * @since 1.4
+ */
+ public static byte[] decode( String s )
+ {
+ byte[] bytes;
+ try
+ {
+ bytes = s.getBytes( PREFERRED_ENCODING );
+ } // end try
+ catch( java.io.UnsupportedEncodingException uee )
+ {
+ bytes = s.getBytes();
+ } // end catch
+ //</change>
+
+ // Decode
+ bytes = decode( bytes, 0, bytes.length );
+
+
+ // Check to see if it's gzip-compressed
+ // GZIP Magic Two-Byte Number: 0x8b1f (35615)
+ if( bytes != null && bytes.length >= 4 )
+ {
+
+ int head = ((int)bytes[0] & 0xff) | ((bytes[1] << 8) & 0xff00);
+ if( java.util.zip.GZIPInputStream.GZIP_MAGIC == head )
+ {
+ java.io.ByteArrayInputStream bais = null;
+ java.util.zip.GZIPInputStream gzis = null;
+ java.io.ByteArrayOutputStream baos = null;
+ byte[] buffer = new byte[2048];
+ int length = 0;
+
+ try
+ {
+ baos = new java.io.ByteArrayOutputStream();
+ bais = new java.io.ByteArrayInputStream( bytes );
+ gzis = new java.util.zip.GZIPInputStream( bais );
+
+ while( ( length = gzis.read( buffer ) ) >= 0 )
+ {
+ baos.write(buffer,0,length);
+ } // end while: reading input
+
+ // No error? Get new bytes.
+ bytes = baos.toByteArray();
+
+ } // end try
+ catch( java.io.IOException e )
+ {
+ // Just return originally-decoded bytes
+ } // end catch
+ finally
+ {
+ try{ baos.close(); } catch( Exception e ){}
+ try{ gzis.close(); } catch( Exception e ){}
+ try{ bais.close(); } catch( Exception e ){}
+ } // end finally
+
+ } // end if: gzipped
+ } // end if: bytes.length >= 2
+
+ return bytes;
+ } // end decode
+
+
+
+
+ /**
+ * Attempts to decode Base64 data and deserialize a Java
+ * Object within. Returns <tt>null</tt> if there was an error.
+ *
+ * @param encodedObject The Base64 data to decode
+ * @return The decoded and deserialized object
+ * @since 1.5
+ */
+ public static Object decodeToObject( String encodedObject )
+ {
+ // Decode and gunzip if necessary
+ byte[] objBytes = decode( encodedObject );
+
+ java.io.ByteArrayInputStream bais = null;
+ java.io.ObjectInputStream ois = null;
+ Object obj = null;
+
+ try
+ {
+ bais = new java.io.ByteArrayInputStream( objBytes );
+ ois = new java.io.ObjectInputStream( bais );
+
+ obj = ois.readObject();
+ } // end try
+ catch( java.io.IOException e )
+ {
+ e.printStackTrace();
+ obj = null;
+ } // end catch
+ catch( java.lang.ClassNotFoundException e )
+ {
+ e.printStackTrace();
+ obj = null;
+ } // end catch
+ finally
+ {
+ try{ bais.close(); } catch( Exception e ){}
+ try{ ois.close(); } catch( Exception e ){}
+ } // end finally
+
+ return obj;
+ } // end decodeObject
+
+
+
+ /**
+ * Convenience method for encoding data to a file.
+ *
+ * @param dataToEncode byte array of data to encode in base64 form
+ * @param filename Filename for saving encoded data
+ * @return <tt>true</tt> if successful, <tt>false</tt> otherwise
+ *
+ * @since 2.1
+ */
+ public static boolean encodeToFile( byte[] dataToEncode, String filename )
+ {
+ boolean success = false;
+ Base64.OutputStream bos = null;
+ try
+ {
+ bos = new Base64.OutputStream(
+ new java.io.FileOutputStream( filename ), Base64.ENCODE );
+ bos.write( dataToEncode );
+ success = true;
+ } // end try
+ catch( java.io.IOException e )
+ {
+
+ success = false;
+ } // end catch: IOException
+ finally
+ {
+ try{ bos.close(); } catch( Exception e ){}
+ } // end finally
+
+ return success;
+ } // end encodeToFile
+
+
+ /**
+ * Convenience method for decoding data to a file.
+ *
+ * @param dataToDecode Base64-encoded data as a string
+ * @param filename Filename for saving decoded data
+ * @return <tt>true</tt> if successful, <tt>false</tt> otherwise
+ *
+ * @since 2.1
+ */
+ public static boolean decodeToFile( String dataToDecode, String filename )
+ {
+ boolean success = false;
+ Base64.OutputStream bos = null;
+ try
+ {
+ bos = new Base64.OutputStream(
+ new java.io.FileOutputStream( filename ), Base64.DECODE );
+ bos.write( dataToDecode.getBytes( PREFERRED_ENCODING ) );
+ success = true;
+ } // end try
+ catch( java.io.IOException e )
+ {
+ success = false;
+ } // end catch: IOException
+ finally
+ {
+ try{ bos.close(); } catch( Exception e ){}
+ } // end finally
+
+ return success;
+ } // end decodeToFile
+
+
+
+
+ /**
+ * Convenience method for reading a base64-encoded
+ * file and decoding it.
+ *
+ * @param filename Filename for reading encoded data
+ * @return decoded byte array or null if unsuccessful
+ *
+ * @since 2.1
+ */
+ public static byte[] decodeFromFile( String filename )
+ {
+ byte[] decodedData = null;
+ Base64.InputStream bis = null;
+ try
+ {
+ // Set up some useful variables
+ java.io.File file = new java.io.File( filename );
+ byte[] buffer = null;
+ int length = 0;
+ int numBytes = 0;
+
+ // Check for size of file
+ if( file.length() > Integer.MAX_VALUE )
+ {
+ System.err.println( "File is too big for this convenience method (" + file.length() + " bytes)." );
+ return null;
+ } // end if: file too big for int index
+ buffer = new byte[ (int)file.length() ];
+
+ // Open a stream
+ bis = new Base64.InputStream(
+ new java.io.BufferedInputStream(
+ new java.io.FileInputStream( file ) ), Base64.DECODE );
+
+ // Read until done
+ while( ( numBytes = bis.read( buffer, length, 4096 ) ) >= 0 )
+ length += numBytes;
+
+ // Save in a variable to return
+ decodedData = new byte[ length ];
+ System.arraycopy( buffer, 0, decodedData, 0, length );
+
+ } // end try
+ catch( java.io.IOException e )
+ {
+ System.err.println( "Error decoding from file " + filename );
+ } // end catch: IOException
+ finally
+ {
+ try{ bis.close(); } catch( Exception e) {}
+ } // end finally
+
+ return decodedData;
+ } // end decodeFromFile
+
+
+
+ /**
+ * Convenience method for reading a binary file
+ * and base64-encoding it.
+ *
+ * @param filename Filename for reading binary data
+ * @return base64-encoded string or null if unsuccessful
+ *
+ * @since 2.1
+ */
+ public static String encodeFromFile( String filename )
+ {
+ String encodedData = null;
+ Base64.InputStream bis = null;
+ try
+ {
+ // Set up some useful variables
+ java.io.File file = new java.io.File( filename );
+ byte[] buffer = new byte[ (int)(file.length() * 1.4) ];
+ int length = 0;
+ int numBytes = 0;
+
+ // Open a stream
+ bis = new Base64.InputStream(
+ new java.io.BufferedInputStream(
+ new java.io.FileInputStream( file ) ), Base64.ENCODE );
+
+ // Read until done
+ while( ( numBytes = bis.read( buffer, length, 4096 ) ) >= 0 )
+ length += numBytes;
+
+ // Save in a variable to return
+ encodedData = new String( buffer, 0, length, Base64.PREFERRED_ENCODING );
+
+ } // end try
+ catch( java.io.IOException e )
+ {
+ System.err.println( "Error encoding from file " + filename );
+ } // end catch: IOException
+ finally
+ {
+ try{ bis.close(); } catch( Exception e) {}
+ } // end finally
+
+ return encodedData;
+ } // end encodeFromFile
+
+
+
+
+ /* ******** I N N E R C L A S S I N P U T S T R E A M ******** */
+
+
+
+ /**
+ * A {@link Base64.InputStream} will read data from another
+ * <tt>java.io.InputStream</tt>, given in the constructor,
+ * and encode/decode to/from Base64 notation on the fly.
+ *
+ * @see Base64
+ * @since 1.3
+ */
+ public static class InputStream extends java.io.FilterInputStream
+ {
+ private boolean encode; // Encoding or decoding
+ private int position; // Current position in the buffer
+ private byte[] buffer; // Small buffer holding converted data
+ private int bufferLength; // Length of buffer (3 or 4)
+ private int numSigBytes; // Number of meaningful bytes in the buffer
+ private int lineLength;
+ private boolean breakLines; // Break lines at less than 80 characters
+
+
+ /**
+ * Constructs a {@link Base64.InputStream} in DECODE mode.
+ *
+ * @param in the <tt>java.io.InputStream</tt> from which to read data.
+ * @since 1.3
+ */
+ public InputStream( java.io.InputStream in )
+ {
+ this( in, DECODE );
+ } // end constructor
+
+
+ /**
+ * Constructs a {@link Base64.InputStream} in
+ * either ENCODE or DECODE mode.
+ * <p>
+ * Valid options:<pre>
+ * ENCODE or DECODE: Encode or Decode as data is read.
+ * DONT_BREAK_LINES: don't break lines at 76 characters
+ * (only meaningful when encoding)
+ * <i>Note: Technically, this makes your encoding non-compliant.</i>
+ * </pre>
+ * <p>
+ * Example: <code>new Base64.InputStream( in, Base64.DECODE )</code>
+ *
+ *
+ * @param in the <tt>java.io.InputStream</tt> from which to read data.
+ * @param options Specified options
+ * @see Base64#ENCODE
+ * @see Base64#DECODE
+ * @see Base64#DONT_BREAK_LINES
+ * @since 2.0
+ */
+ public InputStream( java.io.InputStream in, int options )
+ {
+ super( in );
+ this.breakLines = (options & DONT_BREAK_LINES) != DONT_BREAK_LINES;
+ this.encode = (options & ENCODE) == ENCODE;
+ this.bufferLength = encode ? 4 : 3;
+ this.buffer = new byte[ bufferLength ];
+ this.position = -1;
+ this.lineLength = 0;
+ } // end constructor
+
+ /**
+ * Reads enough of the input stream to convert
+ * to/from Base64 and returns the next byte.
+ *
+ * @return next byte
+ * @since 1.3
+ */
+ public int read() throws java.io.IOException
+ {
+ // Do we need to get data?
+ if( position < 0 )
+ {
+ if( encode )
+ {
+ byte[] b3 = new byte[3];
+ int numBinaryBytes = 0;
+ for( int i = 0; i < 3; i++ )
+ {
+ try
+ {
+ int b = in.read();
+
+ // If end of stream, b is -1.
+ if( b >= 0 )
+ {
+ b3[i] = (byte)b;
+ numBinaryBytes++;
+ } // end if: not end of stream
+
+ } // end try: read
+ catch( java.io.IOException e )
+ {
+ // Only a problem if we got no data at all.
+ if( i == 0 )
+ throw e;
+
+ } // end catch
+ } // end for: each needed input byte
+
+ if( numBinaryBytes > 0 )
+ {
+ encode3to4( b3, 0, numBinaryBytes, buffer, 0 );
+ position = 0;
+ numSigBytes = 4;
+ } // end if: got data
+ else
+ {
+ return -1;
+ } // end else
+ } // end if: encoding
+
+ // Else decoding
+ else
+ {
+ byte[] b4 = new byte[4];
+ int i = 0;
+ for( i = 0; i < 4; i++ )
+ {
+ // Read four "meaningful" bytes:
+ int b = 0;
+ do{ b = in.read(); }
+ while( b >= 0 && DECODABET[ b & 0x7f ] <= WHITE_SPACE_ENC );
+
+ if( b < 0 )
+ break; // Reads a -1 if end of stream
+
+ b4[i] = (byte)b;
+ } // end for: each needed input byte
+
+ if( i == 4 )
+ {
+ numSigBytes = decode4to3( b4, 0, buffer, 0 );
+ position = 0;
+ } // end if: got four characters
+ else if( i == 0 ){
+ return -1;
+ } // end else if: also padded correctly
+ else
+ {
+ // Must have broken out from above.
+ throw new java.io.IOException( "Improperly padded Base64 input." );
+ } // end
+
+ } // end else: decode
+ } // end else: get data
+
+ // Got data?
+ if( position >= 0 )
+ {
+ // End of relevant data?
+ if( /*!encode &&*/ position >= numSigBytes )
+ return -1;
+
+ if( encode && breakLines && lineLength >= MAX_LINE_LENGTH )
+ {
+ lineLength = 0;
+ return '\n';
+ } // end if
+ else
+ {
+ lineLength++; // This isn't important when decoding
+ // but throwing an extra "if" seems
+ // just as wasteful.
+
+ int b = buffer[ position++ ];
+
+ if( position >= bufferLength )
+ position = -1;
+
+ return b & 0xFF; // This is how you "cast" a byte that's
+ // intended to be unsigned.
+ } // end else
+ } // end if: position >= 0
+
+ // Else error
+ else
+ {
+ // When JDK1.4 is more accepted, use an assertion here.
+ throw new java.io.IOException( "Error in Base64 code reading stream." );
+ } // end else
+ } // end read
+
+
+ /**
+ * Calls {@link #read()} repeatedly until the end of stream
+ * is reached or <var>len</var> bytes are read.
+ * Returns number of bytes read into array or -1 if
+ * end of stream is encountered.
+ *
+ * @param dest array to hold values
+ * @param off offset for array
+ * @param len max number of bytes to read into array
+ * @return bytes read into array or -1 if end of stream is encountered.
+ * @since 1.3
+ */
+ public int read( byte[] dest, int off, int len ) throws java.io.IOException
+ {
+ int i;
+ int b;
+ for( i = 0; i < len; i++ )
+ {
+ b = read();
+
+ //if( b < 0 && i == 0 )
+ // return -1;
+
+ if( b >= 0 )
+ dest[off + i] = (byte)b;
+ else if( i == 0 )
+ return -1;
+ else
+ break; // Out of 'for' loop
+ } // end for: each byte read
+ return i;
+ } // end read
+
+ } // end inner class InputStream
+
+
+
+
+
+
+ /* ******** I N N E R C L A S S O U T P U T S T R E A M ******** */
+
+
+
+ /**
+ * A {@link Base64.OutputStream} will write data to another
+ * <tt>java.io.OutputStream</tt>, given in the constructor,
+ * and encode/decode to/from Base64 notation on the fly.
+ *
+ * @see Base64
+ * @since 1.3
+ */
+ public static class OutputStream extends java.io.FilterOutputStream
+ {
+ private boolean encode;
+ private int position;
+ private byte[] buffer;
+ private int bufferLength;
+ private int lineLength;
+ private boolean breakLines;
+ private byte[] b4; // Scratch used in a few places
+ private boolean suspendEncoding;
+
+ /**
+ * Constructs a {@link Base64.OutputStream} in ENCODE mode.
+ *
+ * @param out the <tt>java.io.OutputStream</tt> to which data will be written.
+ * @since 1.3
+ */
+ public OutputStream( java.io.OutputStream out )
+ {
+ this( out, ENCODE );
+ } // end constructor
+
+
+ /**
+ * Constructs a {@link Base64.OutputStream} in
+ * either ENCODE or DECODE mode.
+ * <p>
+ * Valid options:<pre>
+ * ENCODE or DECODE: Encode or Decode as data is read.
+ * DONT_BREAK_LINES: don't break lines at 76 characters
+ * (only meaningful when encoding)
+ * <i>Note: Technically, this makes your encoding non-compliant.</i>
+ * </pre>
+ * <p>
+ * Example: <code>new Base64.OutputStream( out, Base64.ENCODE )</code>
+ *
+ * @param out the <tt>java.io.OutputStream</tt> to which data will be written.
+ * @param options Specified options.
+ * @see Base64#ENCODE
+ * @see Base64#DECODE
+ * @see Base64#DONT_BREAK_LINES
+ * @since 1.3
+ */
+ public OutputStream( java.io.OutputStream out, int options )
+ {
+ super( out );
+ this.breakLines = (options & DONT_BREAK_LINES) != DONT_BREAK_LINES;
+ this.encode = (options & ENCODE) == ENCODE;
+ this.bufferLength = encode ? 3 : 4;
+ this.buffer = new byte[ bufferLength ];
+ this.position = 0;
+ this.lineLength = 0;
+ this.suspendEncoding = false;
+ this.b4 = new byte[4];
+ } // end constructor
+
+
+ /**
+ * Writes the byte to the output stream after
+ * converting to/from Base64 notation.
+ * When encoding, bytes are buffered three
+ * at a time before the output stream actually
+ * gets a write() call.
+ * When decoding, bytes are buffered four
+ * at a time.
+ *
+ * @param theByte the byte to write
+ * @since 1.3
+ */
+ public void write(int theByte) throws java.io.IOException
+ {
+ // Encoding suspended?
+ if( suspendEncoding )
+ {
+ super.out.write( theByte );
+ return;
+ } // end if: supsended
+
+ // Encode?
+ if( encode )
+ {
+ buffer[ position++ ] = (byte)theByte;
+ if( position >= bufferLength ) // Enough to encode.
+ {
+ out.write( encode3to4( b4, buffer, bufferLength ) );
+
+ lineLength += 4;
+ if( breakLines && lineLength >= MAX_LINE_LENGTH )
+ {
+ out.write( NEW_LINE );
+ lineLength = 0;
+ } // end if: end of line
+
+ position = 0;
+ } // end if: enough to output
+ } // end if: encoding
+
+ // Else, Decoding
+ else
+ {
+ // Meaningful Base64 character?
+ if( DECODABET[ theByte & 0x7f ] > WHITE_SPACE_ENC )
+ {
+ buffer[ position++ ] = (byte)theByte;
+ if( position >= bufferLength ) // Enough to output.
+ {
+ int len = Base64.decode4to3( buffer, 0, b4, 0 );
+ out.write( b4, 0, len );
+ //out.write( Base64.decode4to3( buffer ) );
+ position = 0;
+ } // end if: enough to output
+ } // end if: meaningful base64 character
+ else if( DECODABET[ theByte & 0x7f ] != WHITE_SPACE_ENC )
+ {
+ throw new java.io.IOException( "Invalid character in Base64 data." );
+ } // end else: not white space either
+ } // end else: decoding
+ } // end write
+
+
+
+ /**
+ * Calls {@link #write(int)} repeatedly until <var>len</var>
+ * bytes are written.
+ *
+ * @param theBytes array from which to read bytes
+ * @param off offset for array
+ * @param len max number of bytes to read into array
+ * @since 1.3
+ */
+ public void write( byte[] theBytes, int off, int len ) throws java.io.IOException
+ {
+ // Encoding suspended?
+ if( suspendEncoding )
+ {
+ super.out.write( theBytes, off, len );
+ return;
+ } // end if: supsended
+
+ for( int i = 0; i < len; i++ )
+ {
+ write( theBytes[ off + i ] );
+ } // end for: each byte written
+
+ } // end write
+
+
+
+ /**
+ * Method added by PHIL. [Thanks, PHIL. -Rob]
+ * This pads the buffer without closing the stream.
+ */
+ public void flushBase64() throws java.io.IOException
+ {
+ if( position > 0 )
+ {
+ if( encode )
+ {
+ out.write( encode3to4( b4, buffer, position ) );
+ position = 0;
+ } // end if: encoding
+ else
+ {
+ throw new java.io.IOException( "Base64 input not properly padded." );
+ } // end else: decoding
+ } // end if: buffer partially full
+
+ } // end flush
+
+
+ /**
+ * Flushes and closes (I think, in the superclass) the stream.
+ *
+ * @since 1.3
+ */
+ public void close() throws java.io.IOException
+ {
+ // 1. Ensure that pending characters are written
+ flushBase64();
+
+ // 2. Actually close the stream
+ // Base class both flushes and closes.
+ super.close();
+
+ buffer = null;
+ out = null;
+ } // end close
+
+
+
+ /**
+ * Suspends encoding of the stream.
+ * May be helpful if you need to embed a piece of
+ * base640-encoded data in a stream.
+ *
+ * @since 1.5.1
+ */
+ public void suspendEncoding() throws java.io.IOException
+ {
+ flushBase64();
+ this.suspendEncoding = true;
+ } // end suspendEncoding
+
+
+ /**
+ * Resumes encoding of the stream.
+ * May be helpful if you need to embed a piece of
+ * base640-encoded data in a stream.
+ *
+ * @since 1.5.1
+ */
+ public void resumeEncoding()
+ {
+ this.suspendEncoding = false;
+ } // end resumeEncoding
+
+
+
+ } // end inner class OutputStream
+
+
+} // end class Base64
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/util/StreamUtils.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/util/StreamUtils.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/internal/soa/esb/util/StreamUtils.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.internal.soa.esb.util;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * Stream handling utilities.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class StreamUtils {
+
+ /**
+ * Read the supplied InputStream and return as an array of bytes.
+ * @param stream The stream to read.
+ * @return The stream contents in an array of bytes.
+ */
+ public static byte[] readStream(InputStream stream) {
+ if(stream == null) {
+ throw new IllegalArgumentException("null 'stream' arg passed in method call.");
+ }
+
+ ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();
+ byte[] buffer = new byte[256];
+ int readCount = 0;
+
+ try {
+ while((readCount = stream.read(buffer)) != -1) {
+ outBuffer.write(buffer, 0, readCount);
+ }
+ } catch (IOException e) {
+ throw new IllegalStateException("Error reading stream.", e);
+ }
+
+ return outBuffer.toByteArray();
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/BaseException.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/BaseException.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/BaseException.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,42 @@
+package org.jboss.soa.esb;
+
+/**
+ * Base ESB Exception.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class BaseException extends Exception {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Public Default Constructor.
+ */
+ public BaseException() {
+ super();
+ }
+
+ /**
+ * Public Constructor.
+ * @param message Exception message.
+ */
+ public BaseException(String message) {
+ super(message);
+ }
+
+ /**
+ * Public Constructor.
+ * @param message Exception message.
+ * @param cause Exception cause.
+ */
+ public BaseException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ /**
+ * Public Constructor.
+ * @param cause Exception cause.
+ */
+ public BaseException(Throwable cause) {
+ super(cause);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/ConfigurationException.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/ConfigurationException.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/ConfigurationException.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb;
+
+/**
+ * Configuration Exception.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class ConfigurationException extends BaseException {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Construct an exception instance.
+ * @param message Exception message.
+ */
+ public ConfigurationException(String message) {
+ super(message);
+ }
+
+ /**
+ * Construct an exception instance.
+ * @param message Exception message.
+ * @param cause Exception cause.
+ */
+ public ConfigurationException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ /**
+ * Construct an exception instance.
+ * @param cause Exception cause.
+ */
+ public ConfigurationException(Throwable cause) {
+ super(cause);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/MarshalException.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/MarshalException.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/MarshalException.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,42 @@
+package org.jboss.soa.esb;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/**
+ * Thrown if marshalling failed.
+ */
+
+public class MarshalException extends Exception
+{
+ public static final long serialVersionUID = 0xE;
+
+ public MarshalException()
+ {
+ super();
+ }
+
+ public MarshalException(String s)
+ {
+ super(s);
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/ProtocolNotSupportedException.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/ProtocolNotSupportedException.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/ProtocolNotSupportedException.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,39 @@
+package org.jboss.soa.esb;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+
+public class ProtocolNotSupportedException extends Exception
+{
+ public static final long serialVersionUID = 0xE;
+
+ public ProtocolNotSupportedException()
+ {
+ super();
+ }
+
+ public ProtocolNotSupportedException(String s)
+ {
+ super(s);
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/SendFailedException.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/SendFailedException.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/SendFailedException.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,50 @@
+package org.jboss.soa.esb;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+
+public class SendFailedException extends Exception
+{
+ public static final long serialVersionUID = 0xE;
+
+ public SendFailedException()
+ {
+ super();
+ }
+
+ public SendFailedException(String s)
+ {
+ super(s);
+ }
+
+ public SendFailedException(Exception ex)
+ {
+ _nestedException = ex;
+ }
+
+ public Exception getNestedException()
+ {
+ return _nestedException;
+ }
+
+ private Exception _nestedException;
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/UnmarshalException.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/UnmarshalException.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/UnmarshalException.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,42 @@
+package org.jboss.soa.esb;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/**
+ * Thrown if unmarshalling failed.
+ */
+
+public class UnmarshalException extends Exception
+{
+ public static final long serialVersionUID = 0xE;
+
+ public UnmarshalException()
+ {
+ super();
+ }
+
+ public UnmarshalException(String s)
+ {
+ super(s);
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/Call.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/Call.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/Call.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,271 @@
+package org.jboss.soa.esb.addressing;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+/**
+ * Represents an interaction pattern for a specific message exchange. When sending a message
+ * the sender application can specify where errors are to be returned, where responses are
+ * to go, along with other interaction information.
+ *
+ * A call represents an exchange pattern for this message. It is built up as the message
+ * flows through the ESB and identifies where the message should go, along with any
+ * routing information for faults, replies etc.
+ *
+ *
+ * To: the destination. MANDATORY.
+ * From: the sender. OPTIONAL. If not defined, then the sender MAY be inferred from the transport.
+ * ReplyTo: the destination for any response. OPTIONAL.
+ * FaultTo: the destination for any error message. OPTIONAL.
+ * RelatesTo: used to indicate that this message is related to another. OPTIONAL.
+ * Action: used by the sender to indicate the semantics of the message. Must be unique. MANDATORY.
+ * MessageID: used to uniquely identify this message. OPTIONAL.
+ *
+ * @author marklittle
+ *
+ */
+
+// TODO maybe this should simply go into the Header interface?
+
+public class Call
+{
+ /**
+ * Create a new (empty) call.
+ */
+
+ public Call ()
+ {
+ }
+
+ /**
+ * Create a new call, whose To field is set to the supplied EPR.
+ *
+ * @param epr the To field.
+ */
+
+ public Call (EPR epr)
+ {
+ _to = epr;
+ }
+
+ /**
+ * Set the To field. Must not be null.
+ *
+ * @param epr the To field value.
+ */
+
+ public void setTo (EPR epr)
+ {
+ if (epr == null)
+ throw new IllegalArgumentException();
+
+ _to = epr;
+ }
+
+ /**
+ * @return the To field.
+ * @throws URISyntaxException thrown if the address is invalid.
+ */
+
+ public EPR getTo () throws URISyntaxException
+ {
+ return _to;
+ }
+
+ /**
+ * Set the From field. May be null.
+ *
+ * @param from the value of the field.
+ */
+
+ public void setFrom (EPR from)
+ {
+ _from = from;
+ }
+
+ /**
+ * @return the From field.
+ * @throws URISyntaxException thrown if the address is invalid.
+ */
+
+ public EPR getFrom () throws URISyntaxException
+ {
+ return _from;
+ }
+
+ /**
+ * Set the ReplyTo field. May be null.
+ *
+ * @param replyTo the value of the field.
+ */
+
+ public void setReplyTo (EPR replyTo)
+ {
+ _replyTo = replyTo;
+ }
+
+ /**
+ * @return the ReplyTo field.
+ * @throws URISyntaxException thrown if the address is invalid.
+ */
+
+ public EPR getReplyTo () throws URISyntaxException
+ {
+ return _replyTo;
+ }
+
+ /**
+ * Set the FaultTo field. May be null.
+ *
+ * @param uri the value of the field.
+ */
+
+ public void setFaultTo (EPR uri)
+ {
+ _faultTo = uri;
+ }
+
+ /**
+ * @return the FaultTo field.
+ * @throws URISyntaxException thrown if the address is invalid.
+ */
+
+ public EPR getFaultTo () throws URISyntaxException
+ {
+ return _faultTo;
+ }
+
+ /**
+ * Set the RelatesTo field.
+ *
+ * @param uri the value to set.
+ */
+
+ public void setRelatesTo (URI uri)
+ {
+ _relatesTo = uri;
+ }
+
+ /**
+ * @return the RelatesTo field.
+ * @throws URISyntaxException thrown if the field is invalid.
+ */
+
+ public URI getRelatesTo () throws URISyntaxException
+ {
+ return _relatesTo;
+ }
+
+ /**
+ * Set the Action field.
+ * @param uri the value to set.
+ */
+
+ public void setAction (URI uri)
+ {
+ _action = uri;
+ }
+
+ /**
+ * @return the Action field.
+ * @throws URISyntaxException thrown if the field is invalid.
+ */
+
+ public URI getAction () throws URISyntaxException
+ {
+ return _action;
+ }
+
+ /**
+ * Set the MessageId for this instance.
+ *
+ * @param uri the value to use.
+ */
+
+ public void setMessageID (URI uri)
+ {
+ _messageID = uri;
+ }
+
+ /**
+ * @return the MessageID field.
+ * @throws URISyntaxException thrown if the value is invalid.
+ */
+
+ public URI getMessageID () throws URISyntaxException
+ {
+ return _messageID;
+ }
+
+ /**
+ * Copy the instance specified.
+ *
+ * @param from the instance to copy.
+ */
+
+ public void copy (Call from)
+ {
+ Call fromImpl = (Call) from;
+
+ _to = fromImpl._to;
+ _from = fromImpl._from;
+ _replyTo = fromImpl._replyTo;
+ _relatesTo = fromImpl._relatesTo;
+ _faultTo = fromImpl._faultTo;
+ _action = fromImpl._action;
+ _messageID = fromImpl._messageID;
+ }
+
+// public void setMetaData (MetaData md);
+// public MetaData getMetaData ();
+// public void addReferenceParameter (...);
+
+ public String toString ()
+ {
+ return "To: "+_to+" From: "+_from+" ReplyTo: "+_replyTo+" FaultTo: "+_faultTo+" Action: "+_action;
+ }
+
+ /**
+ * This instance is valid if all mandatory elements are set.
+ *
+ * @return <code>true</code> if all mandatory elements are set, <code>false</code> otherwise.
+ */
+
+ public boolean valid ()
+ {
+ if ((_to != null) && (_action != null))
+ return true;
+ else
+ return false;
+ }
+
+ private EPR _to = null;
+ private EPR _from = null;
+ private EPR _faultTo = null;
+ private EPR _replyTo = null;
+ private URI _relatesTo = null;
+ private URI _action = null;
+ private URI _messageID = null;
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/EPR.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/EPR.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/EPR.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,135 @@
+package org.jboss.soa.esb.addressing;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+
+/**
+ * This class represents the endpoint reference for services.
+ */
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+/**
+ * The Endpoint Reference class. All services (and clients) can be represented by
+ * an EPR, which is effectively an address. If using SOA principles then the ultimate
+ * recipient of the message should be addressed in a loosely-coupled manner: the service
+ * should multiplex/demultiplex work across "objects" based on the message content and
+ * the EPR should not address a specific "object".
+ *
+ * @author marklittle
+ *
+ */
+public class EPR
+{
+ /**
+ * Create a new Endpoint Reference with a null address.
+ */
+
+ public EPR ()
+ {
+ _addr = new PortReference();
+ }
+
+ /**
+ * Create a new Endpoint Reference with the specified address.
+ *
+ * @param addr the specified address.
+ */
+
+ public EPR (PortReference addr)
+ {
+ _addr = addr;
+ }
+
+ /**
+ * Create a new Endpoint Reference with the specified address.
+ *
+ * @param uri the specified address.
+ */
+
+ public EPR (URI uri)
+ {
+ _addr = new PortReference(uri.toString());
+ }
+
+ /**
+ * Override the address of this EPR.
+ *
+ * @param uri the new address.
+ */
+
+ public void setAddr (PortReference uri)
+ {
+ _addr = uri;
+ }
+
+ /**
+ * Get the EPR address.
+ *
+ * @return the address.
+ * @throws URISyntaxException thrown if the address is invalid.
+ */
+
+ public PortReference getAddr () throws URISyntaxException
+ {
+ return _addr;
+ }
+
+ /**
+ * Copy the contents of the specified EPR into this instance.
+ *
+ * @param from the instance to copy.
+ */
+
+ public void copy (EPR from)
+ {
+ EPR fromImpl = (EPR) from;
+
+ _addr = fromImpl._addr;
+ }
+
+// public void setMetaData (MetaData md);
+// public MetaData getMetaData ();
+// public void addReferenceParameter (...);
+
+ public String toString ()
+ {
+ return "EPR: "+_addr;
+ }
+
+ public boolean equals (Object obj)
+ {
+ if (obj == this)
+ return true;
+ else
+ {
+ if (obj instanceof EPR)
+ return ((EPR) obj)._addr.equals(_addr);
+ }
+
+ return false;
+ }
+
+ private PortReference _addr;
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/PortReference.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/PortReference.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/PortReference.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,396 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/*
+ * Copyright (c) 2002, 2003, Arjuna Technologies Limited.
+ *
+ * PortReference.java
+ */
+
+package org.jboss.soa.esb.addressing;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * An implementation of a WS-Addressing EPR. It needs completely rewriting after
+ * the interoperability workshop as it is not extensible. It's morphed with the changing WS-C/WS-T and
+ * WS-Addr specifications and their quirks; now that WS-Addr is finalized the
+ * old quirks no longer need to be supported so it's best to rewrite this from
+ * scratch.
+ *
+ * An instance of a PortReference represents a single element in WS-A.
+ */
+
+public class PortReference
+{
+ public PortReference()
+ {
+ }
+
+ public PortReference(String address)
+ {
+ setAddress(address);
+ }
+
+ public void setAddress(String address)
+ {
+ _address = address;
+ }
+
+ public String getAddress()
+ {
+ return _address;
+ }
+
+ public void addExtension(PortReference.Extension extension)
+ {
+ _extensions.add(extension);
+ }
+
+ // all extensions are added as the Arjuna namespace.
+
+ public void addExtension(String value)
+ {
+ addExtension(XMLUtil.INSTANCE_IDENTIFIER_TAG, XMLUtil.WSARJADDR_PREFIX,
+ XMLUtil.WSARJADDR_NAMESPACE_URI, value,
+ Extension.REFERENCE_PROPERTIES);
+ }
+
+ public void addExtension(String tag, String value)
+ {
+ addExtension(tag, XMLUtil.WSARJADDR_PREFIX,
+ XMLUtil.WSARJADDR_NAMESPACE_URI, value,
+ Extension.REFERENCE_PROPERTIES);
+ }
+
+ /**
+ * Define the tag, prefix and namespace URI for the extension value. The
+ * parent is a refProperty.
+ */
+
+ public void addExtension(String tag, String prefix, String uri, String value)
+ {
+ _extensions.add(new Extension(tag, prefix, uri, value,
+ Extension.REFERENCE_PROPERTIES));
+ }
+
+ /**
+ * Define the tag, prefix and namespace URI for the extension value. The
+ * parent field defines whether the attribute has a refParam, refProp or
+ * neither as its parent.
+ */
+
+ public void addExtension(String tag, String prefix, String uri,
+ String value, int parent)
+ {
+ _extensions.add(new Extension(tag, prefix, uri, value, parent));
+ }
+
+ // placeholders only
+
+ public void addPortType(String qName)
+ {
+ }
+
+ public void addServiceName(String portName, String qName)
+ {
+ }
+
+ public void addPolicy()
+ {
+ }
+
+ public String getExtensionValue(String tag)
+ {
+ String extensionValue = null;
+ Iterator iterator = _extensions.iterator();
+
+ while (iterator.hasNext() && (extensionValue == null))
+ {
+ Extension extension = (Extension) iterator.next();
+
+ if (tag.equals(extension.getTag()))
+ extensionValue = extension.getValue();
+ }
+
+ return extensionValue;
+ }
+
+ public Iterator getExtensions()
+ {
+ return _extensions.iterator();
+ }
+
+ public void clearExtensions()
+ {
+ _extensions.clear();
+ }
+
+ public String toString()
+ {
+ return "PortReference < " + _address + " >";
+ }
+
+ public String extendedToString()
+ {
+ String addr = "<" + XMLUtil.WSA_PREFIX + ":Address " + _address + "/>";
+
+ Iterator extensions = getExtensions();
+
+ while (extensions.hasNext())
+ {
+ Extension ext = (Extension) extensions.next();
+
+ addr += ", <" + XMLUtil.WSA_PREFIX + ":"
+ + XMLUtil.REFERENCE_PROPERTIES_TAG + " " + ext.getPrefix()
+ + ":" + ext.getTag() + " : " + ext.getValue() + "/>";
+ }
+
+ return "PortReference : " + addr;
+ }
+
+ /**
+ * Is this object equal to the specified parameter?
+ *
+ * @param rhs
+ * The rhs object.
+ * @return true if the specified object is equal, false otherwise.
+ */
+ public boolean equals(final Object rhs)
+ {
+ if ((rhs != null) && (rhs.getClass() == getClass()))
+ {
+ // This should really only include reference property extensions
+ final PortReference rhsPortReference = (PortReference) rhs;
+ return (equalsObject(_address, rhsPortReference._address)
+ && equalsObject(_extensions, rhsPortReference._extensions)
+ && equalsObject(_portType, rhsPortReference._portType)
+ && equalsObject(_serviceName, rhsPortReference._serviceName) && equalsObject(
+ _policies, rhsPortReference._policies));
+ }
+ return false;
+ }
+
+ /**
+ * Return the hash code for this object.
+ *
+ * @return the hash code value.
+ */
+ public int hashCode()
+ {
+ // Not checked for spread.
+ return (objectHashCode(_address, 0x1)
+ ^ objectHashCode(_extensions, 0x2)
+ ^ objectHashCode(_portType, 0x4)
+ ^ objectHashCode(_serviceName, 0x8) ^ objectHashCode(_policies,
+ 0x10));
+ }
+
+ public static class Extension
+ {
+ public static final int REFERENCE_PROPERTIES = 0;
+ public static final int REFERENCE_PARAMETERS = 1;
+ public static final int NEITHER = 2;
+
+ public Extension(String tag, String prefix, String uri)
+ {
+ this(tag, prefix, uri, null, REFERENCE_PROPERTIES);
+ }
+
+ public Extension(String tag, String prefix, String uri, String value)
+ {
+ this(tag, prefix, uri, value, REFERENCE_PROPERTIES);
+ }
+
+ public Extension(String tag, String prefix, String uri, String value,
+ int parent)
+ {
+ _tag = tag;
+ _prefix = prefix;
+ _uri = uri;
+ _value = value;
+ _parent = parent;
+
+ /*
+ * If XML was loaded via DOM1 then prefix and namespace won't work!
+ */
+
+ if (_uri == null)
+ _uri = XMLUtil.WSARJADDR_NAMESPACE_URI;
+
+ if (_prefix == null)
+ _prefix = XMLUtil.WSARJADDR_PREFIX;
+
+ if (_tag.contains(":"))
+ {
+ int colon = _tag.indexOf(':');
+
+ _tag = _tag.substring(colon+1);
+ }
+ }
+
+ public int getParent()
+ {
+ return _parent;
+ }
+
+ public String getTag()
+ {
+ return _tag;
+ }
+
+ public String getPrefix()
+ {
+ return _prefix;
+ }
+
+ public String getURI()
+ {
+ return _uri;
+ }
+
+ public String getValue()
+ {
+ return _value;
+ }
+
+ public LinkedList getChildren()
+ {
+ return _extensions;
+ }
+
+ public HashMap getAttributes()
+ {
+ return _attributes;
+ }
+
+ public void addAttributes(HashMap props)
+ {
+ _attributes = props;
+ }
+
+ public void addChild(Extension child)
+ {
+ if (_extensions == null)
+ _extensions = new LinkedList<Extension>();
+
+ _extensions.add(child);
+ }
+
+ public String toString()
+ {
+ return new String("< " + _tag + ", " + _prefix + ", " + _uri + ", "
+ + _value + " >");
+ }
+
+ /**
+ * Is this object equal to the specified parameter (ignoring prefix)?
+ *
+ * @param rhs
+ * The rhs object.
+ * @return true if the specified object is equal, false otherwise.
+ */
+ public boolean equals(final Object rhs)
+ {
+ if ((rhs != null) && (rhs.getClass() == getClass()))
+ {
+ final Extension rhsExtension = (Extension) rhs;
+ return (equalsObject(_tag, rhsExtension._tag)
+ && equalsObject(_uri, rhsExtension._uri)
+ && equalsObject(_value, rhsExtension._value)
+ && equalsObject(_extensions, rhsExtension._extensions) && (_parent == rhsExtension._parent));
+ }
+ return false;
+ }
+
+ /**
+ * Return the hash code for this object.
+ *
+ * @return the hash code value.
+ */
+ public int hashCode()
+ {
+ // Not checked for spread.
+ return (_parent ^ objectHashCode(_tag, 0x4)
+ ^ objectHashCode(_uri, 0x8) ^ objectHashCode(_value, 0x10) ^ objectHashCode(
+ _extensions, 0x20));
+ }
+
+ private String _tag = null;
+
+ private String _prefix = null;
+
+ private String _uri = null;
+
+ private String _value = null;
+
+ private int _parent = NEITHER;
+
+ private LinkedList<Extension> _extensions = null;
+
+ private HashMap _attributes = null;
+
+ }
+
+ /**
+ * Get the hash code from the object or use the default if null.
+ *
+ * @param obj
+ * The object.
+ * @param defaultHashCode
+ * The default hash code.
+ * @return The hash code.
+ */
+ static int objectHashCode(final Object obj, final int defaultHashCode)
+ {
+ return (obj == null ? defaultHashCode : obj.hashCode());
+ }
+
+ /**
+ * Are the two objects equal?
+ *
+ * @param lhs
+ * The lhs object.
+ * @param rhs
+ * The rhs object.
+ * @return true if equal or both null, false otherwise.
+ */
+ static boolean equalsObject(final Object lhs, final Object rhs)
+ {
+ if (lhs == null)
+ {
+ return (rhs == null);
+ } else
+ {
+ return lhs.equals(rhs);
+ }
+ }
+
+ private String _address = null;
+ private LinkedList<Extension> _extensions = new LinkedList<Extension>();
+ private Extension _portType = null;
+ private Extension _serviceName = null;
+ private List _policies = null;
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/XMLUtil.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/XMLUtil.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/XMLUtil.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,62 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/*
+ * Copyright (c) 2002, 2003, Arjuna Technologies Limited.
+ *
+ * XMLUtil.java
+ */
+
+package org.jboss.soa.esb.addressing;
+
+public class XMLUtil
+{
+ // WS-Addr
+
+ public static final String WSA_PREFIX = "wsa";
+ public static final String WSA_NAMESPACE_URI = "http://schemas.xmlsoap.org/ws/2004/08/addressing";
+
+ public static final String ENDPOINT_REFERENCE_TAG = "EndpointReference";
+ public static final String MESSAGE_IDENTIFIER_TAG = "MessageID";
+ public static final String REFERENCE_PROPERTIES_TAG = "ReferenceProperties";
+ public static final String REFERENCE_PARAMETERS_TAG = "ReferenceParameters";
+ public static final String REPLY_TO_TAG = "ReplyTo";
+ public static final String FROM_TAG = "From";
+
+ public static final String TO_TAG = "To";
+ public static final String ADDRESS_TAG = "Address";
+ public static final String ACTION_TAG = "Action";
+ public static final String RELATES_TO_TAG = "RelatesTo";
+ public static final String FAULT_TO_TAG = "FaultTo";
+
+ // WS-ARJADDR
+
+ public static final String WSARJADDR_PREFIX = "wsarjaddr";
+ public static final String WSARJADDR_NAMESPACE_URI = "http://schemas.arjuna.com/ws/2004/06/wsarjaddr";
+
+ public static final String INSTANCE_IDENTIFIER_TAG = "InstanceIdentifier";
+
+ public static final String UNKNOWNERROR_ERROR_CODE = "UnknownError";
+
+ // XML Namespace
+ public static final String XMLNS_URI = "http://www.w3.org/2000/xmlns/" ;
+ public static final String XMLNS_PREFIX = "xmlns:" ;
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/EmailEpr.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/EmailEpr.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/EmailEpr.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,169 @@
+package org.jboss.soa.esb.addressing.helpers;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+
+/**
+ * This class represents the endpoint reference for services.
+ */
+
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.PortReference;
+
+/**
+ * A helper class for using email style EPRs. Simply create and use instances of
+ * this type.
+ *
+ * @author marklittle
+ *
+ */
+public class EmailEpr extends EPR
+{
+ public static final String DEFAULT_PORT = "25";
+ public static final String DEFAULT_USERNAME = "";
+ public static final String DEFAULT_PASSWORD = "";
+
+ public static final String SMTP_PROTOCOL = "smtp";
+ public static final String POP_PROTOCOL = "pop";
+
+ public static final String USERNAME_TAG = "username";
+ public static final String PASSWORD_TAG = "password";
+
+ private static final String PROTOCOL_SEPARATOR = "://";
+ private static final String PORT_SEPARATOR = ":";
+
+ public EmailEpr (EPR epr)
+ {
+ copy(epr);
+ }
+
+ /**
+ * Create a new email EPR. The port number will be assumed to be 25,
+ * and there are no values for username and password.
+ *
+ * @param protocol the protocol to use.
+ * @param host the host name.
+ */
+
+ public EmailEpr (String protocol, String host)
+ {
+ this(protocol, host, DEFAULT_PORT, DEFAULT_USERNAME, DEFAULT_PASSWORD);
+ }
+
+ /**
+ * Create a new email EPR.
+ *
+ * @param protocol the protocol to use.
+ * @param host the host name.
+ * @param port the port to use.
+ * @param username the username for sending/receiving.
+ * @param password the password for sending/receiving.
+ */
+
+ public EmailEpr (String protocol, String host, String port, String username, String password)
+ {
+ // how many of these do we really need? modify accordingly.
+
+ if ((protocol == null) || (host == null) || (port == null))
+ throw new IllegalArgumentException();
+
+ if ((protocol.equals(SMTP_PROTOCOL) || (protocol.equals(POP_PROTOCOL))))
+ {
+ PortReference addr = new PortReference(protocol+PROTOCOL_SEPARATOR+host+PORT_SEPARATOR+port);
+
+ if (username != null)
+ addr.addExtension(USERNAME_TAG, username);
+
+ if (password != null)
+ addr.addExtension(PASSWORD_TAG, password);
+
+ setAddr(addr);
+ }
+ else
+ throw new IllegalArgumentException("Invalid email protocol!");
+ }
+
+ /**
+ * @return the email protocol used.
+ * @throws URISyntaxException thrown if the address is malformed.
+ */
+
+ public final String getProtocol () throws URISyntaxException
+ {
+ URI addr = new URI(getAddr().getAddress());
+
+ return addr.getScheme();
+ }
+
+ /**
+ * @return the email host used.
+ * @throws URISyntaxException thrown if the address is malformed.
+ */
+
+ public final String getHost () throws URISyntaxException
+ {
+ URI addr = new URI(getAddr().getAddress());
+
+ return addr.getHost();
+ }
+
+ /**
+ * @return the email port used, or -1 if not specified.
+ * @throws URISyntaxException thrown if the address is malformed.
+ */
+
+ public final int getPort () throws URISyntaxException
+ {
+ URI addr = new URI(getAddr().getAddress());
+
+ return addr.getPort();
+ }
+
+ /*
+ * There are deliberately no setters for the values once the EPR is created.
+ */
+
+ /**
+ * @return the password for this EPR, or <code>null</code> if none is set.
+ * @throws URISyntaxException thrown if the address is malformed.
+ */
+
+ public final String getPassword () throws URISyntaxException
+ {
+ return getAddr().getExtensionValue(PASSWORD_TAG);
+ }
+
+ /**
+ * @return the username for this EPR, or <code>null</code> if none is set.
+ * @throws URISyntaxException thrown if the address is malformed.
+ */
+
+ public final String getUserName () throws URISyntaxException
+ {
+ return getAddr().getExtensionValue(USERNAME_TAG);
+ }
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/FTPEpr.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/FTPEpr.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/FTPEpr.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,149 @@
+package org.jboss.soa.esb.addressing.helpers;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+
+/**
+ * This class represents the endpoint reference for services.
+ */
+
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.PortReference;
+
+/**
+ * A helper class for using FTP style EPRs. Simply create instances of this
+ * class instead of the base EPR. Since URLs can use FTP, we try to leverage
+ * that as much as possible.
+ *
+ * @author marklittle
+ *
+ */
+public class FTPEpr extends EPR
+{
+ public static final String USERNAME_TAG = "username";
+ public static final String PASSWORD_TAG = "password";
+
+ public FTPEpr (EPR epr)
+ {
+ copy(epr);
+ }
+
+ public FTPEpr (URL url) throws URISyntaxException
+ {
+ super(new URI(url.toString()));
+ }
+
+ public FTPEpr (String url) throws URISyntaxException
+ {
+ super(new URI(url));
+ }
+
+ /**
+ * Set the URL for this endpoint.
+ *
+ * @param url the address.
+ */
+
+ public final void setURL (URL url)
+ {
+ super.setAddr(new PortReference(url.toString()));
+ }
+
+ /**
+ * Get the URL address.
+ *
+ * @return the address.
+ * @throws URISyntaxException thrown if the address is invalid.
+ */
+
+ public final URL getURL () throws MalformedURLException, URISyntaxException
+ {
+ return new URL(super.getAddr().getAddress());
+ }
+
+ /**
+ * Set the username for this FTP EPR.
+ *
+ * @param username the user's name.
+ * @throws URISyntaxException thrown if this EPR is malformed.
+ */
+
+ public final void setUserName (String username) throws URISyntaxException
+ {
+ if (username == null)
+ throw new IllegalArgumentException();
+
+ if (userSet)
+ throw new IllegalStateException("Username already set.");
+
+ getAddr().addExtension(USERNAME_TAG, username);
+ userSet = true;
+ }
+
+ /**
+ * @return the user's name associated with this EPR.
+ * @throws URISyntaxException thrown if this EPR is malformed.
+ */
+
+ public final String getUserName () throws URISyntaxException
+ {
+ return getAddr().getExtensionValue(USERNAME_TAG);
+ }
+
+ /**
+ * Set the password for this FTP EPR.
+ *
+ * @param password the user's name.
+ * @throws URISyntaxException thrown if this EPR is malformed.
+ */
+
+ public final void setPassword (String password) throws URISyntaxException
+ {
+ if (password == null)
+ throw new IllegalArgumentException();
+
+ if (passwordSet)
+ throw new IllegalStateException("Cannot change password");
+
+ getAddr().addExtension(PASSWORD_TAG, password);
+ passwordSet = true;
+ }
+
+ /**
+ * @return the password associated with this EPR.
+ * @throws URISyntaxException thrown if this EPR is malformed.
+ */
+
+ public final String getPassword () throws URISyntaxException
+ {
+ return getAddr().getExtensionValue(PASSWORD_TAG);
+ }
+
+ private boolean passwordSet = false;
+ private boolean userSet = false;
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/HTTPEpr.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/HTTPEpr.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/HTTPEpr.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,85 @@
+package org.jboss.soa.esb.addressing.helpers;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+
+/**
+ * This class represents the endpoint reference for services.
+ */
+
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.PortReference;
+
+/**
+ * A helper class for using HTTP style EPRs. Simply create instances of this
+ * class instead of the base EPR.
+ *
+ * @author marklittle
+ *
+ */
+public class HTTPEpr extends EPR
+{
+
+ public HTTPEpr (EPR epr)
+ {
+ copy(epr);
+ }
+
+ public HTTPEpr (URL url) throws URISyntaxException
+ {
+ super(new URI(url.toString()));
+ }
+
+ public HTTPEpr (String url) throws URISyntaxException
+ {
+ super(new URI(url));
+ }
+
+ /**
+ * Set the URL for this endpoint.
+ *
+ * @param url the address.
+ */
+
+ public final void setURL (URL url)
+ {
+ super.setAddr(new PortReference(url.toString()));
+ }
+
+ /**
+ * Get the URL address.
+ *
+ * @return the address.
+ * @throws URISyntaxException thrown if the address is invalid.
+ */
+
+ public final URL getURL () throws MalformedURLException, URISyntaxException
+ {
+ return new URL(super.getAddr().getAddress());
+ }
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/JDBCEpr.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/JDBCEpr.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/JDBCEpr.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,208 @@
+package org.jboss.soa.esb.addressing.helpers;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+
+/**
+ * This class represents the endpoint reference for services.
+ */
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.PortReference;
+
+/**
+ * A helper class for using database style EPRs. Simply create instances of this
+ * class instead of the base EPR.
+ *
+ * @author marklittle
+ *
+ */
+
+public class JDBCEpr extends EPR
+{
+ public static final String JDBC_PROTOCOL = "jdbc";
+
+ public static final String USERNAME_TAG = "username";
+ public static final String PASSWORD_TAG = "password";
+ public static final String SQL_TAG = "sql";
+ public static final String DRIVER_TAG = "driver";
+
+ public JDBCEpr (EPR epr)
+ {
+ copy(epr);
+ }
+
+ public JDBCEpr (String url, String sql) throws URISyntaxException
+ {
+ super(new URI(url));
+
+ setSQL(sql);
+ }
+
+ /**
+ * Set the URL for this endpoint.
+ *
+ * @param url the address.
+ */
+
+ public final void setURL (String url)
+ {
+ super.setAddr(new PortReference(url));
+ }
+
+ /**
+ * Get the URL address.
+ *
+ * @return the address.
+ * @throws URISyntaxException thrown if the address is invalid.
+ */
+
+ public final String getURL () throws URISyntaxException
+ {
+ return getAddr().getAddress();
+ }
+
+ /**
+ * Set the username for this FTP EPR.
+ *
+ * @param username the user's name.
+ * @throws URISyntaxException thrown if this EPR is malformed.
+ */
+
+ public final void setUserName (String username) throws URISyntaxException
+ {
+ if (username == null)
+ throw new IllegalArgumentException();
+
+ if (userSet)
+ throw new IllegalStateException("Username already set.");
+
+ getAddr().addExtension(USERNAME_TAG, username);
+ userSet = true;
+ }
+
+ /**
+ * @return the user's name associated with this EPR.
+ * @throws URISyntaxException thrown if this EPR is malformed.
+ */
+
+ public final String getUserName () throws URISyntaxException
+ {
+ return getAddr().getExtensionValue(USERNAME_TAG);
+ }
+
+ /**
+ * Set the password for this FTP EPR.
+ *
+ * @param password the user's name.
+ * @throws URISyntaxException thrown if this EPR is malformed.
+ */
+
+ public final void setPassword (String password) throws URISyntaxException
+ {
+ if (password == null)
+ throw new IllegalArgumentException();
+
+ if (passwordSet)
+ throw new IllegalStateException("Password already set.");
+
+ getAddr().addExtension(PASSWORD_TAG, password);
+ passwordSet = true;
+ }
+
+ /**
+ * @return the password associated with this EPR.
+ * @throws URISyntaxException thrown if this EPR is malformed.
+ */
+
+ public final String getPassword () throws URISyntaxException
+ {
+ return getAddr().getExtensionValue(PASSWORD_TAG);
+ }
+
+ /**
+ * Set the SQL command that is used by this EPR.
+ *
+ * @param sql the statement.
+ * @throws URISyntaxException thrown if this EPR is malformed.
+ */
+
+ public final void setSQL (String sql) throws URISyntaxException
+ {
+ if (sql == null)
+ throw new IllegalArgumentException();
+
+ if (sqlSet)
+ throw new IllegalStateException("SQL already set.");
+
+ getAddr().addExtension(SQL_TAG, sql);
+ sqlSet = true;
+ }
+
+ /**
+ * @return the SQL statement for this EPR.
+ * @throws URISyntaxException thrown if this EPR is malformed.
+ */
+
+ public final String getSQL () throws URISyntaxException
+ {
+ return getAddr().getExtensionValue(SQL_TAG);
+ }
+
+ /**
+ * Set the driver that is used by this EPR.
+ *
+ * @param driver the driver.
+ * @throws URISyntaxException thrown if this EPR is malformed.
+ */
+
+ public final void setDriver (String driver) throws URISyntaxException
+ {
+ if (driver == null)
+ throw new IllegalArgumentException();
+
+ if (driverSet)
+ throw new IllegalStateException("Driver already set.");
+
+ getAddr().addExtension(DRIVER_TAG, driver);
+ driverSet = true;
+ }
+
+ /**
+ * @return the driver used by this EPR.
+ * @throws URISyntaxException thrown if this EPR is malformed.
+ */
+
+ public final String getDriver () throws URISyntaxException
+ {
+ return getAddr().getExtensionValue(DRIVER_TAG);
+ }
+
+ private boolean userSet = false;
+ private boolean passwordSet = false;
+ private boolean sqlSet = false;
+ private boolean driverSet = false;
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/JMSEpr.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/JMSEpr.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/helpers/JMSEpr.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,226 @@
+package org.jboss.soa.esb.addressing.helpers;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+
+/**
+ * This class represents the endpoint reference for services.
+ */
+
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.PortReference;
+
+/**
+ * A helper class for using JMS style EPRs. Simply create and use instances of
+ * this type.
+ *
+ * @author marklittle
+ *
+ */
+
+public class JMSEpr extends EPR
+{
+ public static final String JMS_PROTOCOL = "jms";
+ public static final String PROTOCOL_SEPARATOR = "://";
+
+ public static final String ONE_ONE_PROTOCOL = "1.1";
+ public static final String ONE_ZERO_TWO_PROTOCOL = "1.0.2b";
+
+ public static final String SPECIFICATION_VERSION_TAG = "specification-version";
+ public static final String DESTINATION_TYPE_TAG = "destination-type";
+ public static final String DESTINATION_NAME_TAG = "destination-name";
+ public static final String CONNECTION_FACTORY_TAG = "connection-factory";
+ public static final String JNDI_TYPE_TAG = "jndi-type";
+ public static final String JNDI_URL_TAG = "jndi-URL";
+ public static final String MESSAGE_SELECTOR_TAG = "message-selector";
+
+ public static final String QUEUE_TYPE = "queue";
+ public static final String TOPIC_TYPE = "topic";
+
+ public JMSEpr (EPR epr)
+ {
+ copy(epr);
+ }
+
+ /**
+ * Create a new JMS EPR. The protocol version is assumed to be 1.1.
+ * , jndi_type=jboss, jndi_url=localhost, messageSelector=null
+ *
+ * @param destinationType the type of destination (queue/topic).
+ * @param destinationName name of the queue/topic.
+ * @param connection reference to the connection factory.
+ */
+
+ public JMSEpr (String destinationType, String destinationName, String connection)
+ {
+ this(ONE_ONE_PROTOCOL, destinationType, destinationName, connection
+ ,"jboss", "localhost", null);
+ }
+
+ /**
+ * Create a new JMS EPR. The protocol version is assumed to be 1.1.
+ *
+ * @param destinationType the type of destination (queue/topic).
+ * @param destinationName name of the queue/topic.
+ * @param connection reference to the connection factory.
+ * @param jndiType reference to the type of jndi to obtain the JMS objects from
+ * @param jndiUrl reference to the location of the jndi to obtain the JMS objects from
+ * @param messageSelector reference to the connection factory.
+ */
+
+ public JMSEpr (String destinationType, String destinationName, String connection, String jndiType, String jndiUrl, String messageSelector)
+ {
+ this(ONE_ONE_PROTOCOL, destinationType, destinationName, connection,jndiType, jndiUrl, messageSelector);
+ }
+
+ /**
+ * Create a new JMS EPR.
+ *
+ * @param protocol the protocol version.
+ * @param destinationType the type of destination (queue/topic).
+ * @param destinationName name of the queue/topic.
+ * @param connection reference to the connection factory.
+ * @param jndiType reference to the type of jndi to obtain the JMS objects from
+ * @param jndiUrl reference to the location of the jndi to obtain the JMS objects from
+ * @param messageSelector reference to the connection factory.
+ */
+
+ public JMSEpr (String protocol, String destinationType, String destinationName, String connection, String jndiType, String jndiUrl, String messageSelector)
+ {
+ // how many of these do we really need? modify accordingly.
+
+ if ((protocol == null) || (destinationType == null) || (destinationName == null) || (connection == null))
+ throw new IllegalArgumentException();
+
+ if (protocol.equals(ONE_ONE_PROTOCOL) || (protocol.equals(ONE_ZERO_TWO_PROTOCOL)))
+ {
+ if (destinationType.equals(QUEUE_TYPE) || destinationType.equals(TOPIC_TYPE))
+ {
+ PortReference addr = new PortReference(JMS_PROTOCOL+PROTOCOL_SEPARATOR+destinationType);
+
+ addr.addExtension(SPECIFICATION_VERSION_TAG, protocol);
+
+ if (destinationName != null)
+ addr.addExtension(DESTINATION_NAME_TAG, destinationName);
+
+ if (connection != null)
+ addr.addExtension(CONNECTION_FACTORY_TAG, connection);
+
+ if (jndiType != null)
+ addr.addExtension(JNDI_TYPE_TAG, jndiType);
+
+ if (jndiUrl != null)
+ addr.addExtension(JNDI_URL_TAG, jndiUrl);
+
+ if (messageSelector != null)
+ addr.addExtension(MESSAGE_SELECTOR_TAG, messageSelector);
+
+ setAddr(addr);
+ }
+ else
+ throw new IllegalArgumentException("Invalid destination type!");
+ }
+ else
+ throw new IllegalArgumentException("Invalid specification version!");
+ }
+
+ /*
+ * There are deliberately no setters for the values once the EPR is created.
+ */
+
+ /**
+ * @return the destination type used.
+ * @throws URISyntaxException thrown if the address is malformed.
+ */
+
+ public final String getDestinationType () throws URISyntaxException
+ {
+ URI uri = new URI(getAddr().getAddress());
+
+ return uri.getHost(); // ;-)
+ }
+
+ /**
+ * @return the specification version used.
+ * @throws URISyntaxException thrown if the address is malformed.
+ */
+
+ public final String getVersion () throws URISyntaxException
+ {
+ return getAddr().getExtensionValue(SPECIFICATION_VERSION_TAG);
+ }
+
+ /**
+ * @return the destination name used.
+ * @throws URISyntaxException thrown if the address is malformed.
+ */
+
+ public final String getDestinationName () throws URISyntaxException
+ {
+ return getAddr().getExtensionValue(DESTINATION_NAME_TAG);
+ }
+
+ /**
+ * @return the connection factory for this EPR, or <code>null</code> if none is set.
+ * @throws URISyntaxException thrown if the address is malformed.
+ */
+
+ public final String getConnectionFactory () throws URISyntaxException
+ {
+ return getAddr().getExtensionValue(CONNECTION_FACTORY_TAG);
+ }
+
+ /**
+ * @return the jndi type for this EPR, or <code>null</code> if none is set.
+ * @throws URISyntaxException thrown if the address is malformed.
+ */
+
+ public final String getJndiType () throws URISyntaxException
+ {
+ return getAddr().getExtensionValue(JNDI_TYPE_TAG);
+ }
+
+ /**
+ * @return the jndi URL for this EPR, or <code>null</code> if none is set.
+ * @throws URISyntaxException thrown if the address is malformed.
+ */
+
+ public final String getJndiURL () throws URISyntaxException
+ {
+ return getAddr().getExtensionValue(JNDI_URL_TAG);
+ }
+
+ /**
+ * @return the message selector for this EPR, or <code>null</code> if none is set.
+ * @throws URISyntaxException thrown if the address is malformed.
+ */
+
+ public final String getMessageSelector () throws URISyntaxException
+ {
+ return getAddr().getExtensionValue(MESSAGE_SELECTOR_TAG);
+ }
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/util/EPRManager.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/util/EPRManager.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/addressing/util/EPRManager.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,219 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+package org.jboss.soa.esb.addressing.util;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Hashtable;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.jboss.internal.soa.esb.addressing.EPRHelper;
+import org.jboss.soa.esb.addressing.EPR;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
+
+/**
+ * Allows EPRs to be saved to and loaded from files. Mainly for testing
+ * purposes. This version assumes XML as the output format.
+ *
+ * @author marklittle
+ *
+ */
+
+public class EPRManager
+{
+
+ /**
+ * All EPRs are saves in files within the current working directory.
+ *
+ * @return the manager for the cwd.
+ */
+
+ public static final EPRManager getInstance ()
+ {
+ return getInstance("");
+ }
+
+ /**
+ * All EPRs are saves in files within a defined directory. Get the right
+ * manager for that directory.
+ *
+ * @param domain
+ * the name of the directory. If <code>null</code> then
+ * the null String is assumed.
+ * @return the manager for the directory. If it does not exist, then one
+ * will be created.
+ */
+
+ public static final EPRManager getInstance (String domain)
+ {
+ if (domain == null)
+ domain = "";
+
+ synchronized (_instances)
+ {
+ EPRManager theInstance = _instances.get(domain);
+
+ if (theInstance == null)
+ {
+ theInstance = new EPRManager(domain);
+
+ _instances.put(domain, theInstance);
+ }
+
+ return theInstance;
+ }
+ }
+
+ public final String getDomain ()
+ {
+ return _directory;
+ }
+
+ public boolean equals (Object manager)
+ {
+ if (manager instanceof EPRManager)
+ {
+ EPRManager comp = (EPRManager) manager;
+
+ if (_directory.equals(comp.getDomain()))
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Save the EPR into the specified file.
+ *
+ * @param name
+ * the name of the file to use (the logical service
+ * name).
+ * @param address
+ * the EPR to save.
+ *
+ * @throws IOException
+ * thrown if there is an error.
+ */
+
+ public final void saveEPR (String name, EPR address) throws IOException
+ {
+ if ((name == null) || (address == null))
+ throw new IllegalArgumentException();
+
+ try
+ {
+ String documentAsString = EPRHelper.toXMLString(address);
+
+ FileOutputStream output = new FileOutputStream(_directory
+ + File.separator + name);
+
+ output.write(documentAsString.getBytes());
+ output.flush();
+ output.getFD().sync(); // make sure it's on disk!
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+
+ /**
+ * Remove the EPR-to-file association.
+ *
+ * @param name
+ * the logical name for the service.
+ * @throws IOException
+ * thrown if there are any errors.
+ */
+
+ public final void removeEPR (String name) throws IOException
+ {
+ if (name == null)
+ throw new IllegalArgumentException();
+
+ File theFile = new File(_directory + File.separator + name);
+
+ if (theFile.exists())
+ theFile.delete();
+ else
+ throw new FileNotFoundException();
+ }
+
+ /**
+ * Get the EPR specified by the logical name.
+ *
+ * @param name
+ * the service name.
+ * @return the EPR, or <code>null</code> if none exists.
+ * @throws IOException
+ * thrown if there is an error.
+ */
+
+ public final EPR loadEPR (String name) throws IOException
+ {
+ if (name == null)
+ throw new IllegalArgumentException();
+
+ File theFile = new File(_directory + File.separator + name);
+
+ try
+ {
+ if (theFile.exists())
+ {
+ DocumentBuilderFactory factory = DocumentBuilderFactory
+ .newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.parse(theFile);
+ Element rootElement = doc.getDocumentElement();
+
+ return EPRHelper.fromXML(rootElement);
+ }
+ else
+ throw new FileNotFoundException(theFile.toString());
+ }
+ catch (SAXException ex)
+ {
+ throw new IOException(ex.toString());
+ }
+ catch (ParserConfigurationException ex)
+ {
+ throw new IllegalArgumentException(ex.toString());
+ }
+ }
+
+ protected EPRManager(String domain)
+ {
+ _directory = domain;
+ }
+
+ private String _directory;
+
+ private static Hashtable<String, EPRManager> _instances = new Hashtable<String, EPRManager>();
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/Configuration.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/Configuration.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/Configuration.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,273 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.common;
+
+import org.jboss.soa.esb.helpers.KeyValuePair;
+
+public class Configuration
+{
+ private static KeyValuePair[] s_oaKV = new KeyValuePair[]
+ {
+ new KeyValuePair(Environment.SMTP_HOST, getSmtpHost()),
+ new KeyValuePair(Environment.SMTP_USERNAME, getSmtpUsername()),
+ new KeyValuePair(Environment.SMTP_PASSWORD, getSmtpPassword()),
+ new KeyValuePair(Environment.SMTP_PORT, getSmtpPort()),
+ new KeyValuePair(Environment.SMTP_FROM, getSmtpFrom()),
+ new KeyValuePair(Environment.SMTP_AUTH, getSmtpAuth()),
+ new KeyValuePair(Environment.JNDI_SERVER_TYPE, getJndiServerType()),
+ new KeyValuePair(Environment.JNDI_SERVER_URL, getJndiServerURL()),
+ new KeyValuePair(Environment.REGISTRY_QUERY_MANAGER_URI, getRegistryQueryManageURI()),
+ new KeyValuePair(Environment.REGISTRY_LIFECYCLE_MANAGER_URI,getRegistryLifecycleManagerURI()),
+ new KeyValuePair(Environment.REGISTRY_IMPEMENTATION_CLASS, getRegistryImplementationClass()),
+ new KeyValuePair(Environment.REGISTRY_FACTORY_CLASS, getRegistryFactoryClass()),
+ new KeyValuePair(Environment.REGISTRY_USER, getRegistryUser()),
+ new KeyValuePair(Environment.REGISTRY_PASSWORD, getRegistryPassword()),
+ new KeyValuePair(Environment.REGISTRY_SCOUT_TRANSPORT_CLASS,getRegistryScoutTransportClass()),
+ new KeyValuePair(Environment.PARAMS_REPOS_IMPL_CLASS, getParamRepositoryImplClass()),
+ new KeyValuePair(Environment.OBJECT_STORE_CONFIG_FILE, getObjStoreConfigFile()),
+ new KeyValuePair(Environment.ENCRYPT_FACTORY_CLASS, getEncryptionFactoryClass()),
+ new KeyValuePair(Environment.DB_DRIVER, getDbDriver()),
+ new KeyValuePair(Environment.DB_URL, getDbUrl()),
+ new KeyValuePair(Environment.DB_USER, getDbUser()),
+ new KeyValuePair(Environment.DB_PASSWORD, getDbPassword()),
+ new KeyValuePair(Environment.MSG_STORE_DB_CONNECTION_URL, getStoreUrl()),
+ new KeyValuePair(Environment.MSG_STORE_DB_JDBC_DRIVER, getStoreDriver()),
+ new KeyValuePair(Environment.MSG_STORE_DB_CONNECTION_USER, getStoreUser()),
+ new KeyValuePair(Environment.MSG_STORE_DB_CONNECTION_PWD, getStorePwd()),
+ new KeyValuePair(Environment.MSG_STORE_DB_POOL_MIN_SIZE, getStorePoolMinSize()),
+ new KeyValuePair(Environment.MSG_STORE_DB_POOL_MAX_SIZE, getStorePoolMaxSize()),
+ new KeyValuePair(Environment.MSG_STORE_DB_POOL_INITIAL_SIZE,getStorePoolInitialSize()),
+ new KeyValuePair(Environment.MSG_STORE_DB_POOL_TEST_TABLE, getStorePoolTestTable()),
+ new KeyValuePair(Environment.MSG_STORE_DB_POOL_TIMEOUT_MILLIS,getStorePoolTimeoutMillis()),
+
+
+ };
+
+ public static String dump()
+ {
+ StringBuilder sb = new StringBuilder("Dump of SystemProperties:\n");
+ for (KeyValuePair oCurr : s_oaKV)
+ {
+ sb.append(oCurr.getKey()).append("=").append(oCurr.getValue())
+ .append("\n");
+ }
+ return sb.append("______________________________________").toString();
+ } // ________________________________
+
+ public static String getSmtpHost()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.TRANSPORTS_MODULE).getProperty(Environment.SMTP_HOST, Environment.DEFAULT_HOST);
+ }
+
+ public static String getSmtpUsername()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.TRANSPORTS_MODULE).getProperty(Environment.SMTP_USERNAME,
+ Environment.DEFAULT_USERNAME);
+ }
+
+ public static String getSmtpPassword()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.TRANSPORTS_MODULE).getProperty(Environment.SMTP_PASSWORD,
+ Environment.DEFAULT_PASSWORD);
+ }
+
+ public static String getSmtpPort()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.TRANSPORTS_MODULE).getProperty(Environment.SMTP_PORT, Environment.DEFAULT_PORT);
+ }
+
+ public static String getSmtpFrom()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.TRANSPORTS_MODULE).getProperty(Environment.SMTP_FROM);
+ }
+
+ public static String getSmtpAuth()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.TRANSPORTS_MODULE).getProperty(Environment.SMTP_AUTH);
+ }
+
+ public static String getJndiServerType()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty(Environment.JNDI_SERVER_TYPE,
+ Environment.DEFAULT_SERVER_TYPE);
+ }
+
+ public static String getJndiServerURL()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty(Environment.JNDI_SERVER_URL,
+ Environment.DEFAULT_HOST);
+ }
+ /**
+ * The Registry Query Manager URI can be used to obtain information about services and their endPoints.
+ * @return Registry Query Manager URI String
+ */
+ public static String getRegistryQueryManageURI()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.REGISTRY_MODULE).getProperty(Environment.REGISTRY_QUERY_MANAGER_URI);
+ }
+ /**
+ * The Registry Lifecycle Manager URI can be use to publish services.
+ * @return Registry Lifecycle Manager URI String
+ */
+ public static String getRegistryLifecycleManagerURI()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.REGISTRY_MODULE).getProperty(Environment.REGISTRY_LIFECYCLE_MANAGER_URI);
+ }
+ /**
+ * The Registry Factory Class setting specifies which JAXR implementation should be used.
+ * @return Registry Factory Class String
+ */
+ public static String getRegistryFactoryClass()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.REGISTRY_MODULE).getProperty(Environment.REGISTRY_FACTORY_CLASS);
+ }
+ /**
+ * The Registry Implememtation Class defines wrapper class
+ * @return Registry Implementation Class String
+ */
+ public static String getRegistryImplementationClass()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.REGISTRY_MODULE).getProperty(Environment.REGISTRY_IMPEMENTATION_CLASS);
+ }
+ /**
+ * The Registry Scout Transport Class defines which communication protocol Scout should use to communicate
+ * with the UDDI registry. Note that this parameter is Scout specific.
+ * @return Registry Scout Transport Class String
+ */
+ public static String getRegistryScoutTransportClass()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.REGISTRY_MODULE).getProperty(Environment.REGISTRY_SCOUT_TRANSPORT_CLASS);
+ }
+ /**
+ * The Registry User is used to inquire and publish to the Registry.
+ * @return Registry User String
+ */
+ public static String getRegistryUser()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.REGISTRY_MODULE).getProperty(Environment.REGISTRY_USER);
+ }
+ /**
+ * The Registry Password that goes with the Registry User.
+ * @return Registry Password String
+ */
+ public static String getRegistryPassword()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.REGISTRY_MODULE).getProperty(Environment.REGISTRY_PASSWORD);
+ }
+
+ public static String getParamRepositoryImplClass()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty(Environment.PARAMS_REPOS_IMPL_CLASS);
+ }
+
+ public static String getObjStoreConfigFile()
+ {
+ String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty(Environment.OBJECT_STORE_CONFIG_FILE);
+ return property;
+ }
+
+ public static String getEncryptionFactoryClass()
+ {
+ return ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty(Environment.ENCRYPT_FACTORY_CLASS,
+ org.jboss.soa.esb.services.DefaultEncryptionFactory.class
+ .getName());
+ }
+
+ public static String getDbDriver()
+ {
+ String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE).getProperty(Environment.DB_DRIVER);
+ return property;
+ }
+
+ public static String getDbUrl()
+ {
+ String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE).getProperty(Environment.DB_URL);
+ return property;
+ }
+
+ public static String getDbUser()
+ {
+ String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE).getProperty(Environment.DB_USER);
+ return property;
+ }
+
+ public static String getDbPassword()
+ {
+ String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE).getProperty(Environment.DB_PASSWORD);
+ return property;
+ }
+
+ public static String getStoreUrl()
+ {
+ String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_CONNECTION_URL);
+ return property;
+ }
+
+ public static String getStoreDriver()
+ {
+ String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_JDBC_DRIVER);
+ return property;
+ }
+
+ public static String getStorePwd()
+ {
+ String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_CONNECTION_PWD);
+ return property;
+ }
+
+ public static String getStoreUser()
+ {
+ String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_CONNECTION_USER);
+ return property;
+ }
+
+ public static String getStorePoolInitialSize()
+ {
+ String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_POOL_INITIAL_SIZE);
+ return property;
+ }
+
+ public static String getStorePoolMinSize()
+ {
+ String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_POOL_MIN_SIZE);
+ return property;
+ }
+
+ public static String getStorePoolMaxSize()
+ {
+ String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_POOL_MAX_SIZE);
+ return property;
+ }
+
+ public static String getStorePoolTestTable()
+ {
+ String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_POOL_TEST_TABLE);
+ return property;
+ }
+
+ public static String getStorePoolTimeoutMillis()
+ {
+ String property = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE).getProperty(Environment.MSG_STORE_DB_POOL_TIMEOUT_MILLIS);
+ return property;
+ }
+}
\ No newline at end of file
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/Configuration.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/Environment.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/Environment.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/Environment.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,114 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.common;
+
+public class Environment
+{
+ public static final String PROPERTIES_FILE = "org.jboss.soa.esb.propertyFile";
+
+ /*
+ * Transport specific properties.
+ */
+
+ public static final String SMTP_HOST = "org.jboss.soa.esb.mail.smtp.host";
+ public static final String SMTP_USERNAME = "org.jboss.soa.esb.mail.smtp.user";
+ public static final String SMTP_PASSWORD = "org.jboss.soa.esb.mail.smtp.password";
+ public static final String SMTP_PORT = "org.jboss.soa.esb.mail.smtp.port";
+ public static final String SMTP_FROM = "org.jboss.soa.esb.mail.smtp.from";
+ public static final String SMTP_AUTH = "org.jboss.soa.esb.mail.smtp.auth";
+
+ /*
+ * Code properties
+ */
+ public static final String JNDI_SERVER_TYPE = "org.jboss.soa.esb.jndi.server.type";
+ public static final String JNDI_SERVER_URL = "org.jboss.soa.esb.jndi.server.url";
+ public static final String PARAMS_REPOS_IMPL_CLASS = "org.jboss.soa.esb.paramsRepository.class";
+ public static final String OBJECT_STORE_CONFIG_FILE = "org.jboss.soa.esb.objStore.configFile";
+ public static final String ENCRYPT_FACTORY_CLASS = "org.jboss.soa.esb.encryption.factory.class";
+ /**
+ * The Registry Query Manager URI defines the endPoint where registry queries can be made.
+ */
+ public static final String REGISTRY_QUERY_MANAGER_URI = "org.jboss.soa.esb.registry.queryManagerURI";
+ /**
+ * The Registry Lifecycle Manager URI defines the endPoint where service information can be published to.
+ */
+ public static final String REGISTRY_LIFECYCLE_MANAGER_URI = "org.jboss.soa.esb.registry.lifeCycleManagerURI";
+ /**
+ * The Registry Implementation class, a light wrapper class.
+ */
+ public static final String REGISTRY_IMPEMENTATION_CLASS = "org.jboss.soa.esb.registry.implementationClass";
+ /**
+ * The Registry Factory Class setting specifies which JAXR implementation should be used.
+ */
+ public static final String REGISTRY_FACTORY_CLASS = "org.jboss.soa.esb.registry.factoryClass";
+ /**
+ * The user used to query and publish to the registry.
+ */
+ public static final String REGISTRY_USER = "org.jboss.soa.esb.registry.user";
+ /**
+ * The password for the registry user.
+ */
+ public static final String REGISTRY_PASSWORD = "org.jboss.soa.esb.registry.password";
+ /**
+ * The Registry Scout Transport Class defines which communication protocol Scout should use to communicate
+ * with the UDDI registry. Note that this parameter is Scout specific.
+ */
+ public static final String REGISTRY_SCOUT_TRANSPORT_CLASS = "org.jboss.soa.esb.scout.proxy.transportClass";
+
+ /**
+ * Property that holds directory to use with the helper EPRManager class.
+ */
+ public static final String REGISTRY_FILE_HELPER_DIR = "org.jboss.soa.esb.registry.file.directory";
+ /*
+ * Connection specific properties
+ */
+ public static String DB_DRIVER = "org.jboss.esb.db.driver";
+ public static String DB_URL = "org.jboss.esb.db.url";
+ public static String DB_USER = "org.jboss.esb.db.user";
+ public static String DB_PASSWORD = "org.jboss.esb.db.password";
+
+ /*
+ * Some default values.
+ */
+ public static final String DEFAULT_PROPERTY_FILE = "jbossesb-properties.xml";
+ public static final String DEFAULT_HOST = "localhost";
+ public static final String DEFAULT_USERNAME = "";
+ public static final String DEFAULT_PASSWORD = "";
+ public static final String DEFAULT_PORT = "25";
+ public static final String DEFAULT_SERVER_TYPE = "jboss";
+
+ /*
+ * DatabaseMessageStore Persistence Store properties.
+ */
+ public static final String MSG_STORE_DB_CONNECTION_URL = "org.jboss.soa.esb.persistence.db.connection.url";
+ public static final String MSG_STORE_DB_CONNECTION_USER = "org.jboss.soa.esb.persistence.db.user";
+ public static final String MSG_STORE_DB_CONNECTION_PWD = "org.jboss.soa.esb.persistence.db.pwd";
+ public static final String MSG_STORE_DB_TABLE_NAME = "org.jboss.soa.esb.persistence.db.table";
+ public static final String MSG_STORE_DB_JDBC_DRIVER = "org.jboss.soa.esb.persistence.db.jdbc.driver";
+ public static final String MSG_STORE_DB_POOL_INITIAL_SIZE = "org.jboss.soa.esb.persistence.db.pool.initial.size";
+ public static final String MSG_STORE_DB_POOL_MIN_SIZE = "org.jboss.soa.esb.persistence.db.pool.min.size";
+ public static final String MSG_STORE_DB_POOL_MAX_SIZE = "org.jboss.soa.esb.persistence.db.pool.max.size";
+ public static final String MSG_STORE_DB_POOL_TEST_TABLE = "org.jboss.soa.esb.persistence.db.pool.test.table";
+ public static final String MSG_STORE_DB_POOL_TIMEOUT_MILLIS = "org.jboss.soa.esb.persistence.db.pool.timeout.millis";
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/ModulePropertyManager.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/ModulePropertyManager.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/ModulePropertyManager.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,157 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2002
+ *
+ * Arjuna Solutions Limited,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: arjPropertyManager.java 2342 2006-03-30 13:06:17Z $
+ */
+
+package org.jboss.soa.esb.common;
+
+import java.util.Hashtable;
+
+import com.arjuna.common.internal.util.propertyservice.plugins.io.XMLFilePlugin;
+import com.arjuna.common.util.propertyservice.PropertyManager;
+import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
+
+/**
+ * The ESB configuration file is split into modules, each concerned with a
+ * specific capability. Each module may also depend upon another module. We use
+ * a PropertyManager per module to manage properties and relationships.
+ *
+ * All properties are grouped within <properties/> sections and individual
+ * properties by <property/>. If you look at some you'll see that they may be
+ * named and may have a depends value, which relates to another section. This
+ * tells the PropertyManager to load the depends section first. A property value
+ * may be overridden by a dependant section, but the PropertyManager remembers
+ * the hierarchy, so if you want to you can inspect and change the lower level
+ * value and the PropertyManager can be used to preserve these changes if the
+ * values are written back out to the source location.
+ *
+ * The way the PropertyManager works means that it builds up a list of dependant
+ * modules in a directed acyclic graph. This means that there is a root, which
+ * can see every property below it, but nodes below cannot see properties above
+ * them: there is a level of isolation.
+ *
+ * When creating PropertyManagers, you need to specify where in the graph it is
+ * to "tie in". This obviously has an affect on what that instance can then see
+ * or do: if it goes in at the wrong level, it won't be able to see properties
+ * it may need (unless they were defined to be "system" properties, and in which
+ * case they are globally accessible.)
+ *
+ * This means that we now have isolated PropertyManagers for each module. It
+ * helps the management side of things a lot, but does mean that we have to
+ * consider where in the graph a property needs to be, or which PropertyManager
+ * we want to use to try to access it.
+ *
+ * @author marklittle
+ *
+ */
+public class ModulePropertyManager
+{
+
+ /*
+ * The names of the various modules in the property file.
+ */
+
+ public static final String CORE_MODULE = "core";
+
+ public static final String CONNECTION_MODULE = "connection";
+
+ public static final String REGISTRY_MODULE = "registry";
+
+ public static final String TRANSPORTS_MODULE = "transports";
+
+ public static final String DBSTORE_MODULE = "dbstore";
+
+
+
+ /**
+ * Get the property manager responsible for the module component in the
+ * file.
+ *
+ * @param name
+ * the name of the module.
+ * @return the relevant property manager.
+ */
+
+ public static PropertyManager getPropertyManager(String name)
+ {
+ synchronized (managers)
+ {
+ PropertyManager theManager = managers.get(name);
+
+ if (theManager == null)
+ {
+ theManager = initialise(name);
+
+ if (theManager != null) {
+ managers.put(name, theManager);
+ }
+ }
+
+ return theManager;
+ }
+ }
+
+ private static final PropertyManager initialise(String name)
+ {
+ /**
+ * Retrieve the property manager from the factory and add the ESB
+ * properties file to it.
+ *
+ * set com.arjuna.common.util.propertyservice.verbosePropertyManager=ON
+ * for verbose output from the PropertyManager.
+ */
+
+ PropertyManager propertyManager = PropertyManagerFactory
+ .getPropertyManager(
+ "org.jboss.soa.esb.propertymanager." + name, name);
+
+ String propertiesFilename = System.getProperty(
+ Environment.PROPERTIES_FILE, Environment.DEFAULT_PROPERTY_FILE);
+
+ /*
+ * Does not cause reloading of the same file over and over. Once it is loaded,
+ * subsequent attempts to reload are ignored internally.
+ */
+
+ try
+ {
+ propertyManager.load(XMLFilePlugin.class.getName(),
+ propertiesFilename);
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+
+ return null;
+ }
+
+ return propertyManager;
+ }
+
+ private static Hashtable<String, PropertyManager> managers = new Hashtable<String, PropertyManager>();
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/Address.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/Address.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/Address.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,154 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.common.bizclasses;
+
+import java.util.ArrayList;
+import java.util.EnumMap;
+import java.util.List;
+
+import org.jboss.soa.esb.util.BaseBusinessObject;
+import org.jboss.soa.esb.util.BobjStdDTO;
+import org.jboss.soa.esb.util.Util;
+
+public class Address extends BaseBusinessObject
+{
+ public enum ATTRIB
+ {strNum
+ ,strLine1
+ ,strLine2
+ ,suite
+ ,twnCty1
+ ,twnCty2
+ ,postalZip
+ ,provSt
+ ,cntry
+ };
+ private EnumMap<ATTRIB,String>m_oData;
+
+ public enum CHLD_LIST
+ {Lpho
+ };
+ private List<Telephone> m_olPhones;
+
+ public Address(String p_sElem) {super(p_sElem);}
+ public Address(String p_sElem, long p_lUid) {super(p_sElem, p_lUid);}
+
+ @SuppressWarnings("unchecked")
+ public Address(BobjStdDTO p_oDto) throws Exception
+ { super(p_oDto);
+
+ for (ATTRIB oCurr : ATTRIB.values())
+ setField(oCurr,p_oDto.getAttr(oCurr.toString()));
+ m_olPhones = (List<Telephone>)
+ p_oDto.getChildObjList(CHLD_LIST.Lpho.toString() ,Telephone.class);
+ } //__________________________________
+
+ public BobjStdDTO toDTO() throws Exception
+ { BobjStdDTO oRet = super.toDTO();
+
+ for (ATTRIB oCurr : ATTRIB.values())
+ oRet.addAttr(oCurr.toString(), getField(oCurr));
+ oRet.addDto(CHLD_LIST.Lpho.toString() ,getDtoList(Telephone.class ,m_olPhones));
+
+ return oRet;
+ } //__________________________________
+
+ public String setField(ATTRIB pKey, String pVal)
+ { if (null==pKey) return null;
+ String sRet = (null==m_oData)? null : m_oData.remove(pKey);
+ if (! Util.isNullString(pVal))
+ { if (null==m_oData)
+ m_oData = new EnumMap<ATTRIB,String>(ATTRIB.class);
+ m_oData.put(pKey,pVal);
+ }
+ return sRet;
+ } //__________________________________
+
+ public String getField(ATTRIB pKey)
+ { if (null==pKey) return null;
+ if (null==m_oData) return null;
+ return m_oData.get(pKey);
+ } //__________________________________
+
+ // Telephone List handling
+
+ public int getPhoneCount ()
+ { return (null == m_olPhones)? 0 : m_olPhones.size(); }
+
+ public Telephone getPhoneAt (int p_i)
+ { if (null == m_olPhones) return null;
+ if(p_i < 0 || p_i >=m_olPhones.size()) return null;
+ return m_olPhones.get(p_i);
+ }//_____________________________________________
+
+ public void addPhone(Telephone p_oPh)
+ { if(null==p_oPh) return;
+ if(null==m_olPhones)
+ m_olPhones = new ArrayList<Telephone>();
+ m_olPhones.add(p_oPh);
+ }//_____________________________________________
+
+ public Telephone rmvPhoneAt (int p_i)
+ { if (null == m_olPhones) return null;
+ if(p_i < 0 || p_i >=m_olPhones.size()) return null;
+ return m_olPhones.remove(p_i);
+ }//_____________________________________________
+
+ public Telephone getPhoneRole(String p_sRole)
+ { return (Telephone)BaseBusinessObject.getRoleFromList(p_sRole,m_olPhones);
+ }//_____________________________________________
+
+ public String toString()
+ { StringBuilder sb = new StringBuilder();
+ String sCurr = getField(ATTRIB.strNum);
+ if (! Util.isNullString(sCurr))
+ sb.append(sCurr).append(" ");
+
+ ATTRIB [] oa = {ATTRIB.strLine1,ATTRIB.strLine2
+ ,ATTRIB.twnCty1,ATTRIB.twnCty2 };
+ for (ATTRIB oAtt : oa)
+ { sCurr = getField(oAtt);
+ if(! Util.isNullString(sCurr))
+ sb.append(sCurr.trim()).append("\n");
+ }
+ StringBuilder sZprov = new StringBuilder();
+ sCurr = getField(ATTRIB.postalZip);
+ if (! Util.isNullString(sCurr))
+ sZprov.append(sCurr.trim()).append(" ");
+
+ sCurr = getField(ATTRIB.provSt);
+ if (! Util.isNullString(sCurr))
+ sZprov.append(sCurr.trim());
+ if (sb.length()>0 && '\n'!=sb.charAt(-1+sb.length()))
+ sb.append("\n");
+ sb.append(sZprov);
+
+ sCurr = getField(ATTRIB.cntry);
+ if (! Util.isNullString(sCurr))
+ { if (sb.length()>0 && '\n'!=sb.charAt(-1+sb.length()))
+ sb.append("\n");
+ sb.append(sCurr.trim());
+ }
+ return sb.toString();
+ } //__________________________________
+} //____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/Address.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/BankAcct.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/BankAcct.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/BankAcct.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,73 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.common.bizclasses;
+
+import java.util.EnumMap;
+
+import org.jboss.soa.esb.util.BaseBusinessObject;
+import org.jboss.soa.esb.util.BobjStdDTO;
+import org.jboss.soa.esb.util.Util;
+
+public class BankAcct extends BaseBusinessObject
+{
+ public enum ATTRIB
+ {acct
+ ,bank
+ ,branch
+ ,desig
+ };
+ private EnumMap<ATTRIB,String>m_oData;
+
+ public BankAcct(String p_sElem) {super(p_sElem);}
+ public BankAcct(String p_sElem, long p_lUid) {super(p_sElem, p_lUid);}
+
+ public BankAcct(BobjStdDTO p_oDto) throws Exception
+ { super(p_oDto);
+ for (ATTRIB oCurr : ATTRIB.values())
+ setField(oCurr,p_oDto.getAttr(oCurr.toString()));
+ } //__________________________________
+
+ public BobjStdDTO toDTO() throws Exception
+ { BobjStdDTO oRet = super.toDTO();
+ for (ATTRIB oCurr : ATTRIB.values())
+ oRet.addAttr(oCurr.toString(), getField(oCurr));
+ return oRet;
+ } //__________________________________
+
+ public String setField(ATTRIB pKey, String pVal)
+ { if (null==pKey) return null;
+ String sRet = (null==m_oData)? null : m_oData.remove(pKey);
+ if (! Util.isNullString(pVal))
+ { if (null==m_oData)
+ m_oData = new EnumMap<ATTRIB,String>(ATTRIB.class);
+ m_oData.put(pKey,pVal);
+ }
+ return sRet;
+ } //__________________________________
+
+ public String getField(ATTRIB pKey)
+ { if (null==pKey) return null;
+ if (null==m_oData) return null;
+ return m_oData.get(pKey);
+ } //__________________________________
+} //____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/BankAcct.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/BatchProcess.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/BatchProcess.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/BatchProcess.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,265 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.common.bizclasses;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.EnumMap;
+import java.util.List;
+
+import org.jboss.soa.esb.util.BaseBusinessObject;
+import org.jboss.soa.esb.util.BobjStdDTO;
+import org.jboss.soa.esb.util.Util;
+
+public class BatchProcess extends BaseBusinessObject {
+
+ public enum ATTRIB {
+ srcApp, batchNum, createStamp, commitStamp
+ };
+
+ private EnumMap<ATTRIB, String> m_oData;
+
+ public enum CHLD_LIST {
+ Hdrs, Itms
+ };
+
+ public List<OneValue> m_olHeaders, m_olItems;
+
+ /**
+ * @param p_sElem
+ * String
+ * @param p_lUid
+ * long
+ * @see BaseBusinessObject#BaseBusinessObject(String,long)
+ */
+ public BatchProcess(String p_sElem, long p_lUid) {
+ super(p_sElem, p_lUid);
+ }
+
+ /**
+ *
+ * @param p_oDto
+ * BobjStdDTO
+ * @throws Exception
+ * @see BaseBusinessObject#BaseBusinessObject(BobjStdDTO)
+ */
+
+ @SuppressWarnings("unchecked")
+ public BatchProcess(BobjStdDTO p_oDto) throws Exception {
+ super(p_oDto);
+ for (ATTRIB oCurr : ATTRIB.values())
+ setField(oCurr, p_oDto.getAttr(oCurr.toString()));
+
+ m_olHeaders = (List<OneValue>) p_oDto.getChildObjList(CHLD_LIST.Hdrs
+ .toString(), OneValue.class);
+ m_olItems = (List<OneValue>) p_oDto.getChildObjList(CHLD_LIST.Itms
+ .toString(), OneValue.class);
+ }// __________________________________________
+
+ /**
+ *
+ * @throws Exception
+ * @return BobjStdDTO
+ * @see BusinessObject#toDTO()
+ */
+ public BobjStdDTO toDTO() throws Exception {
+ BobjStdDTO oRet = super.toDTO();
+ for (ATTRIB oCurr : ATTRIB.values())
+ oRet.addAttr(oCurr.toString(), getField(oCurr));
+
+ oRet.addDto(CHLD_LIST.Hdrs.toString(), getDtoList(OneValue.class,
+ m_olItems));
+ oRet.addDto(CHLD_LIST.Itms.toString(), getDtoList(OneValue.class,
+ m_olHeaders));
+ return oRet;
+
+ }// _________________________________________
+
+ // Setters
+ /**
+ * Add a reference to a BusinessObject (it's UID) to the list of batch
+ * header BusinessObjects
+ *
+ * @param p_l
+ * long - The UID of the BusinessObject to add to the header list
+ * @see BatchProcess#m_olHeaders
+ */
+ public void addHeaderUid(long p_l) {
+ if (null == m_olHeaders)
+ m_olHeaders = new ArrayList<OneValue>();
+ m_olHeaders.add(OneValue.getLongValue(p_l));
+ }// _____________________________________________
+
+ /**
+ * Remove an object from the header list
+ *
+ * @param p_i
+ * int - index of header to remove
+ * @return long - UID of the object removed
+ * @see BatchProcess#addHeaderUid(long)
+ */
+ public long rmvHeaderAt(int p_i) {
+ if (null == m_olHeaders)
+ return -1;
+ if (p_i < 0 || p_i >= m_olHeaders.size())
+ return -1;
+ return Long.parseLong(((OneValue) m_olHeaders.remove(p_i)).m_sVal);
+ }// _____________________________________________
+
+ /**
+ * Add a reference to a BusinessObject (it's UID) to the list of batch items
+ * BusinessObjects
+ *
+ * @param p_l
+ * long - The UID of the BusinessObject to add to the item list
+ * @see BatchProcess#m_olItems
+ */
+ public void addChildUid(long p_l) {
+ if (null == m_olItems)
+ m_olItems = new ArrayList<OneValue>();
+ m_olItems.add(OneValue.getLongValue(p_l));
+ }// _____________________________________________
+
+ /**
+ * Remove an object from the item list
+ *
+ * @param p_i
+ * int - index of item to remove
+ * @return long - UID of the object removed
+ * @see BatchProcess#addChildUid(long)
+ */
+ public long rmvChildAt(int p_i) {
+ if (null == m_olItems)
+ return -1;
+ if (p_i < 0 || p_i >= m_olItems.size())
+ return -1;
+ return Long.parseLong(((OneValue) m_olItems.remove(p_i)).m_sVal);
+ }// _____________________________________________
+
+ // getters
+ /**
+ * Return the number of header objects in this batch
+ *
+ * @return int - The size of the header list
+ * @see BatchProcess#m_olHeaders
+ */
+ public int getHeaderCount() {
+ return (null == m_olHeaders) ? 0 : m_olHeaders.size();
+ }// _______________________________
+
+ /**
+ * Get an object from the header list
+ *
+ * @param p_i
+ * int - index of header object to get
+ * @return long - UID of the object at requested position - or minus 1 (-1)
+ * if invalid index
+ * @see BatchProcess#m_olHeaders
+ */
+ public long getHeaderAt(int p_i) {
+ if (null == m_olHeaders)
+ return -1;
+ if (p_i < 0 || p_i >= m_olHeaders.size())
+ return -1;
+ return Long.parseLong(((OneValue) m_olHeaders.get(p_i)).m_sVal);
+ }// _____________________________________________
+
+ /**
+ * Return the number of item objects in this batch
+ *
+ * @return int - The size of the item list
+ * @see BatchProcess#m_olItems
+ */
+ public int getChildCount() {
+ return (null == m_olItems) ? 0 : m_olItems.size();
+ }// _______________________________
+
+ /**
+ * Get an object from the item list
+ *
+ * @param p_i
+ * int - index of item object to get
+ * @return long - UID of the object at requested position - or minus 1 (-1)
+ * if invalid index
+ * @see BatchProcess#m_olItems
+ */
+ public long getChildAt(int p_i) {
+ if (null == m_olItems)
+ return -1;
+ if (p_i < 0 || p_i >= m_olItems.size())
+ return -1;
+ return Long.parseLong(((OneValue) m_olItems.get(p_i)).m_sVal);
+ }// _____________________________________________
+
+ private static final SimpleDateFormat s_FD = new SimpleDateFormat(
+ "yyyyMMdd HH:mm:ss.S");
+
+ protected final String showStamp(ATTRIB pFld) {
+ long lMillis = Util.parseLong(getField(pFld));
+ if (lMillis < 1)
+ return "";
+ return s_FD.format(new Date(lMillis));
+ }// _____________________________________________
+
+ /**
+ * Obtain a String[] of 'human readable' attributes that will help identify
+ * the BatchProcess object.
+ * <p>
+ * These attributes will be stored in the batch_index table in the Object
+ * store to allow for standard SQL queries. Once the desired object is
+ * identified, we can access the Object table using the Object's that are
+ * referenced in the batch_index table UID
+ * </p>
+ *
+ * @return String[] - Batch number, Creation time, Commit time
+ */
+ public String[] locator() {
+ String sFrom = getField(ATTRIB.srcApp);
+ String sNumber = getField(ATTRIB.batchNum);
+ return new String[] {
+ (null == sFrom) ? "" : sFrom.substring(0, Math.min(50, sFrom
+ .length())), (null == sNumber) ? "" : sNumber,
+ showStamp(ATTRIB.createStamp), showStamp(ATTRIB.commitStamp) };
+ } // __________________________________
+
+ public String setField(ATTRIB pKey, String pVal) {
+ if (null == pKey)
+ return null;
+ String sRet = (null == m_oData) ? null : m_oData.remove(pKey);
+ if (!Util.isNullString(pVal)) {
+ if (null == m_oData)
+ m_oData = new EnumMap<ATTRIB, String>(ATTRIB.class);
+ m_oData.put(pKey, pVal);
+ }
+ return sRet;
+ } // __________________________________
+
+ public String getField(ATTRIB pKey) {
+ if (null == pKey)
+ return null;
+ if (null == m_oData)
+ return null;
+ return m_oData.get(pKey);
+ } // __________________________________
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/BatchProcess.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/OneValue.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/OneValue.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/OneValue.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,99 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.common.bizclasses;
+
+import org.jboss.soa.esb.util.BaseBusinessObject;
+import org.jboss.soa.esb.util.BobjStdDTO;
+
+/**
+ * Utility class used to serialize a String within a list of child
+ * BusinessObjects It provides no functionality other than allowing the
+ * inclusion of a String (eventually with a role and an element name) in a list
+ * of children
+ */
+
+public class OneValue extends BaseBusinessObject {
+ private static final String A_VAL = "v";
+
+ public String m_sVal;
+
+ /**
+ * @see BaseBusinessObject#BaseBusinessObject(BobjStdDTO)
+ * @param p_sElem
+ * String
+ */
+ public OneValue(String p_sElem) {
+ super(p_sElem);
+ }
+
+ /**
+ * @see BaseBusinessObject#BaseBusinessObject(BobjStdDTO)
+ * @param p_sElem
+ * String
+ * @param p_lUid
+ * long
+ */
+ public OneValue(String p_sElem, long p_lUid) {
+ super(p_sElem, p_lUid);
+ }
+
+ /**
+ * @see BaseBusinessObject#BaseBusinessObject(BobjStdDTO)
+ * @param p_oDto
+ * BobjStdDTO
+ * @throws Exception
+ */
+ public OneValue(BobjStdDTO p_oDto) throws Exception {
+ super(p_oDto);
+ m_sVal = p_oDto.getAttr(A_VAL);
+ } // ___________________________________
+
+ /**
+ * @see BusinessObject#toDTO()
+ * @throws Exception
+ * @return BobjStdDTO
+ */
+ public BobjStdDTO toDTO() throws Exception {
+ BobjStdDTO oRet = super.toDTO();
+ oRet.addAttr(A_VAL, m_sVal);
+ return oRet;
+ } // ___________________________________
+
+ public static final OneValue getLongValue(Long p_l) {
+ OneValue oCurr = new OneValue((String) null);
+ if (null != p_l)
+ oCurr.m_sVal = Long.toString(p_l);
+ return oCurr;
+ } // ___________________________________
+
+ public static final OneValue getStringValue(String p_sVal) {
+ return getStringValue(p_sVal, null);
+ } // ___________________________________
+
+ public static final OneValue getStringValue(String p_sVal, String p_sRole) {
+ OneValue oCurr = new OneValue((String) null);
+ oCurr.m_sVal = p_sVal;
+ oCurr.setRole(p_sRole);
+ return oCurr;
+ } // ___________________________________
+
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/OneValue.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/Person.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/Person.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/Person.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,242 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.common.bizclasses;
+
+import java.util.ArrayList;
+import java.util.EnumMap;
+import java.util.List;
+
+import org.jboss.soa.esb.util.BaseBusinessObject;
+import org.jboss.soa.esb.util.BobjStdDTO;
+import org.jboss.soa.esb.util.Util;
+
+public class Person extends BaseBusinessObject
+{
+ public enum ATTRIB
+ {pfx
+ ,givN
+ ,midN
+ ,fmlyN
+ ,sfx
+ ,doB
+ ,gend
+ ,prefLang
+ };
+ private EnumMap<ATTRIB,String>m_oData;
+
+ public enum CHLD_LIST
+ {Laddr
+ ,Lemail
+ ,Lpho
+ };
+ private List<Address> m_olAddr;
+ private List<OneValue> m_olEmail;
+ private List<Telephone> m_olPhones;
+
+ public Person(String p_sElem) {super(p_sElem);}
+ public Person(String p_sElem, long p_lUid) {super(p_sElem, p_lUid);}
+
+ @SuppressWarnings("unchecked")
+ public Person(BobjStdDTO p_oDto) throws Exception
+ {super(p_oDto);
+
+ for (ATTRIB oCurr : ATTRIB.values())
+ setField(oCurr,p_oDto.getAttr(oCurr.toString()));
+
+ m_olPhones = (List<Telephone>)
+ p_oDto.getChildObjList(CHLD_LIST.Lpho.toString() ,Telephone.class);
+ m_olEmail = (List<OneValue>)
+ p_oDto.getChildObjList(CHLD_LIST.Lemail.toString(),OneValue.class);
+ m_olAddr = (List<Address>)
+ p_oDto.getChildObjList(CHLD_LIST.Laddr.toString(),Address.class);
+ } //__________________________________
+
+ public BobjStdDTO toDTO() throws Exception
+ { BobjStdDTO oRet = super.toDTO();
+
+ for (ATTRIB oCurr : ATTRIB.values())
+ oRet.addAttr(oCurr.toString(), getField(oCurr));
+
+ oRet.addDto(CHLD_LIST.Lpho.toString() ,getDtoList(Telephone.class ,m_olPhones));
+ oRet.addDto(CHLD_LIST.Lemail.toString() ,getDtoList(OneValue.class ,m_olEmail));
+ oRet.addDto(CHLD_LIST.Laddr.toString() ,getDtoList(Address.class ,m_olAddr));
+
+ return oRet;
+
+ }//_________________________________________
+
+ public String[] locator()
+ {
+ return new String[]
+ {nameForLocator()
+ ,phoneForLocator()
+ ,addressForLocator()
+ };
+ } //__________________________________
+
+ protected String nameForLocator()
+ {
+ StringBuilder sb = new StringBuilder();
+ String sCurr = getField(ATTRIB.pfx);
+ if (null!=sCurr) sb.append(sCurr).append(" ");
+
+ sCurr = getField(ATTRIB.fmlyN);
+ if (null!=sCurr) sb.append(sCurr).append(", ");
+
+ sCurr = getField(ATTRIB.givN);
+ if (null!=sCurr) sb.append(sCurr).append(" ");
+
+ sCurr = getField(ATTRIB.midN);
+ if (null!=sCurr) sb.append(sCurr).append(" ");
+
+
+ return (sb.length()>0) ? sb.toString() : "UNKNOWN NAME";
+ } //__________________________________
+
+ protected String phoneForLocator()
+ {
+ StringBuilder sb = new StringBuilder();
+ Telephone oPh = getPhoneAt(0);
+
+ if (null==oPh)
+ { Address oAddr = getAddressAt(0);
+ if (null!=oAddr)
+ oPh = oAddr.getPhoneAt(0);
+ }
+
+ if (null!=oPh)
+ sb.append(oPh.toString());
+ return (sb.length()>0) ? sb.toString() : "";
+ } //__________________________________
+
+ protected String addressForLocator()
+ {
+ StringBuilder sb = new StringBuilder();
+ Address oAddr = getAddressAt(0);
+ if (null!=oAddr)
+ sb.append(oAddr.toString());
+ return (sb.length()>0) ? sb.toString() : "";
+ } //__________________________________
+
+ public String setField(ATTRIB pKey, String pVal)
+ { if (null==pKey) return null;
+ String sRet = (null==m_oData)? null : m_oData.remove(pKey);
+ if (! Util.isNullString(pVal))
+ { if (null==m_oData)
+ m_oData = new EnumMap<ATTRIB,String>(ATTRIB.class);
+ m_oData.put(pKey,pVal);
+ }
+ return sRet;
+ } //__________________________________
+
+ public String getField(ATTRIB pKey)
+ { if (null==pKey) return null;
+ if (null==m_oData) return null;
+ return m_oData.get(pKey);
+ } //__________________________________
+
+ // Address List handling
+
+ public int getAddressCount ()
+ { return (null == m_olAddr)? 0 : m_olAddr.size(); }
+
+ public Address getAddressAt (int p_i)
+ { if (null == m_olAddr) return null;
+ if(p_i < 0 || p_i >=m_olAddr.size()) return null;
+ return m_olAddr.get(p_i);
+ }//_____________________________________________
+
+ public void addAddress(Address p_oAddress)
+ { if(null==p_oAddress) return;
+ if(null==m_olAddr)
+ m_olAddr = new ArrayList<Address>();
+ m_olAddr.add(p_oAddress);
+ }//_____________________________________________
+
+ public Address rmvAddressAt (int p_i)
+ { if (null == m_olAddr) return null;
+ if(p_i < 0 || p_i >=m_olAddr.size()) return null;
+ return m_olAddr.remove(p_i);
+ }//_____________________________________________
+
+ public Address getAddressRole(String p_sRole)
+ { return (Address)BaseBusinessObject.getRoleFromList(p_sRole,m_olAddr);
+ }//_____________________________________________
+
+ // Telephone List handling
+
+ public int getPhoneCount ()
+ { return (null == m_olPhones)? 0 : m_olPhones.size(); }
+
+ public Telephone getPhoneAt (int p_i)
+ { if (null == m_olPhones) return null;
+ if(p_i < 0 || p_i >=m_olPhones.size()) return null;
+ return m_olPhones.get(p_i);
+ }//_____________________________________________
+
+ public void addPhone(Telephone p_oPh)
+ { if(null==p_oPh) return;
+ if(null==m_olPhones)
+ m_olPhones = new ArrayList<Telephone>();
+ m_olPhones.add(p_oPh);
+ }//_____________________________________________
+
+ public Telephone rmvPhoneAt (int p_i)
+ { if (null == m_olPhones) return null;
+ if(p_i < 0 || p_i >=m_olPhones.size()) return null;
+ return m_olPhones.remove(p_i);
+ }//_____________________________________________
+
+ public Telephone getPhoneRole(String p_sRole)
+ { return (Telephone)BaseBusinessObject.getRoleFromList(p_sRole,m_olPhones);
+ }//_____________________________________________
+
+ // e-mail List handling
+
+ public int getEmailCount ()
+ { return (null == m_olEmail)? 0 : m_olEmail.size(); }
+
+ public OneValue getEmailAt (int p_i)
+ { if (null == m_olEmail) return null;
+ if(p_i < 0 || p_i >=m_olEmail.size()) return null;
+ return m_olEmail.get(p_i);
+ }//_____________________________________________
+
+ public void addEmail(OneValue p_oEm)
+ { if(null==p_oEm) return;
+ if(null==m_olEmail)
+ m_olEmail = new ArrayList<OneValue>();
+ m_olEmail.add(p_oEm);
+ }//_____________________________________________
+
+ public OneValue rmvEmailAt (int p_i)
+ { if (null == m_olEmail) return null;
+ if(p_i < 0 || p_i >=m_olEmail.size()) return null;
+ return m_olEmail.remove(p_i);
+ }//_____________________________________________
+
+ public String getEmailRole(String p_sRole)
+ { OneValue oEm = (OneValue)BaseBusinessObject.getRoleFromList(p_sRole,m_olEmail);
+ return (null==oEm) ? null : oEm.m_sVal;
+ }//_____________________________________________
+
+} //____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/Person.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/Telephone.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/Telephone.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/Telephone.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,94 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.common.bizclasses;
+
+import java.util.EnumMap;
+
+import org.jboss.soa.esb.util.BaseBusinessObject;
+import org.jboss.soa.esb.util.BobjStdDTO;
+import org.jboss.soa.esb.util.Util;
+
+public class Telephone extends BaseBusinessObject
+{
+ public enum ATTRIB
+ {cntry
+ ,city
+ ,num
+ ,ext
+ };
+ private EnumMap<ATTRIB,String>m_oData;
+
+ public Telephone(String p_sElem) {super(p_sElem);}
+ public Telephone(String p_sElem, long p_lUid) {super(p_sElem, p_lUid);}
+
+ public Telephone(BobjStdDTO p_oDto) throws Exception
+ { super(p_oDto);
+ for (ATTRIB oCurr : ATTRIB.values())
+ setField(oCurr,p_oDto.getAttr(oCurr.toString()));
+ } //__________________________________
+
+ public BobjStdDTO toDTO() throws Exception
+ { BobjStdDTO oRet = super.toDTO();
+ for (ATTRIB oCurr : ATTRIB.values())
+ oRet.addAttr(oCurr.toString(), getField(oCurr));
+ return oRet;
+ } //__________________________________
+
+ public String setField(ATTRIB pKey, String pVal)
+ { if (null==pKey) return null;
+ if (null==m_oData) m_oData = new EnumMap<ATTRIB,String>(ATTRIB.class);
+ String sRet = m_oData.remove(pKey);
+ if (! Util.isNullString(pVal))
+ m_oData.put(pKey,pVal);
+ return sRet;
+ } //__________________________________
+
+ public String getField(ATTRIB pKey)
+ { if (null==pKey) return null;
+ if (null==m_oData) return null;
+ return m_oData.get(pKey);
+ } //__________________________________
+
+ public String toString()
+ { StringBuilder sb = new StringBuilder();
+ String sCurr = getField(ATTRIB.cntry);
+ if (! Util.isNullString(sCurr))
+ sb.append("+").append(sCurr.trim());
+
+ sCurr = getField(ATTRIB.city);
+ if(Util.isNullString(sCurr)) sb.append(" ");
+ else
+ sb.append("(").append(sCurr.trim()).append(")");
+
+ sCurr = getField(ATTRIB.num);
+ if(! Util.isNullString(sCurr))
+ sb.append(sCurr.trim());
+
+ sCurr = getField(ATTRIB.ext);
+ if(!Util.isNullString(sCurr))
+ sb.append(" Ext ").append(sCurr.trim());
+
+ return sb.toString();
+ } //__________________________________
+
+} //____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/common/bizclasses/Telephone.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/AbandonedConnectionTimerTask.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/AbandonedConnectionTimerTask.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/AbandonedConnectionTimerTask.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,50 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.connection;
+
+import java.util.TimerTask;
+
+/**
+ * Timer task which will run at scheduled times based on the property set by the user.
+ * This task will remove all unused connections which have elapsed a certain period of time
+ * @author MohitK
+ * Date: Jul 26, 2006
+ */
+public class AbandonedConnectionTimerTask extends TimerTask {
+
+ private DefaultConnectionPoolImpl m_oPool;
+
+ /**
+ * Constructor which takes the pool implementation
+ * @param pool
+ */
+ public AbandonedConnectionTimerTask(DefaultConnectionPoolImpl pool){
+ this.m_oPool = pool;
+ }
+
+ public void run() {
+ synchronized(m_oPool){
+ m_oPool.releaseAbandonedConnections();
+ }
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionFactory.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionFactory.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionFactory.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,40 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.connection;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+/**
+ * Factory interface for creating connections based on different sources such as Driver, DriverManager or any
+ * third party implementation
+ * @author MohitK
+ * Date: Jul 18, 2006
+ */
+public interface ConnectionFactory {
+ /**
+ * Creates a new JDBC Connection. The implementation is left to the classes.
+ * @return Connection
+ * @throws SQLException
+ */
+ public Connection createConnection() throws SQLException;
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionPool.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionPool.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionPool.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,64 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.connection;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import org.jboss.soa.esb.connection.exception.ConnectionException;
+
+/**
+ * Interface that needs to be implemented to provide pool of connections.
+ * @see DefaultConnectionPoolImpl
+ * Default implementation of Connection Pool
+ * @author MohitK
+ * Date: Jul 18, 2006
+ */
+public interface ConnectionPool {
+ /**
+ * This method is used to create the connection pool and keep it ready
+ * @param prop Properties for the connection pool including connection properties
+ * @throws ConnectionException
+ */
+ public void createPool(ConnectionProperties prop) throws ConnectionException;
+
+ /**
+ * This method is called whenever a connection is needed from the pool.
+ * @return Connection to be used
+ * @throws SQLException
+ */
+ public Connection getConnection() throws SQLException;
+
+ /**
+ * This method closes an open connection and returns the connection to the pool.
+ * @param connectionToClose The connection to be returned to the pool.
+ * @throws SQLException
+ */
+ public void closeConnection(Connection connectionToClose) throws SQLException;
+
+ /**
+ * This method is called when the pool needs to be destroyed effectively closing all open connections
+ * @throws SQLException
+ */
+ public void releasePool() throws SQLException;
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionPoolFactory.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionPoolFactory.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionPoolFactory.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,64 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.connection;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.connection.exception.ConnectionException;
+
+/**
+ * Factory class which creates a connection pool. The factory also creates a JVM Shutdown hook which is called when
+ * JVM is shutting down which indirectly calls @link ConnectionPool#releasePool
+ *
+ * @author MohitK
+ * Date: Jul 19, 2006
+ */
+public class ConnectionPoolFactory {
+
+
+ private static Logger Log = Logger.getLogger(ConnectionPoolFactory.class);
+
+ /**
+ * Factory method to create and return a connection pool based on the property set for the connection pool
+ * implementation. The factory also registers a shut down hook with the JVM so that the connections in the pool
+ * are closed and released with causing connections leaks.
+ *
+ * @param connProperties Properties for the connection pool
+ * @return Connection Pool
+ * @throws ConnectionException
+ */
+ public static ConnectionPool createPool(ConnectionProperties connProperties) throws ConnectionException {
+ String connectionPoolClassName = connProperties.getConnectionPoolClass();
+ try {
+ ConnectionPool pool = (ConnectionPool) Class.forName(connectionPoolClassName).newInstance();
+ pool.createPool(connProperties);
+ FreeConnectionPoolResources freeResourcesThread = new FreeConnectionPoolResources(pool);
+ Runtime.getRuntime().addShutdownHook(freeResourcesThread);
+ return pool;
+ } catch (ConnectionException e) {
+ Log.error("ConnectionPoolFactory: Error in creating Connection Pool", e);
+ throw e;
+ } catch (Throwable t){
+ Log.error("ConnectionPoolFactory: Error in Connection Pool", t);
+ throw new ConnectionException(t);
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionProperties.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionProperties.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionProperties.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,358 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.connection;
+
+import java.util.Properties;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.common.ModulePropertyManager;
+
+/**
+ * Connection Property class which stores all connection and connection pool
+ * properties. It keeps the properties ready so that is can be used by the pool
+ * and connection factory
+ *
+ * @author MohitK Date: Jul 18, 2006
+ */
+public class ConnectionProperties
+{
+
+ private static Logger Log = Logger.getLogger(ConnectionProperties.class);
+
+ private Properties m_oConnectionProperties;
+
+ public static final String DRIVER_CLASSNAME = "driver-class";
+
+ public static final String CONNECTION_URL = "connection-url";
+
+ public static final String USERNAME = "user-name";
+
+ public static final String PASSWORD = "password";
+
+ public static final String AUTO_COMMIT = "auto-commit";
+
+ public static final String ISOLATION_LEVEL = "isolation";
+
+ public static final String MIN_POOL_SIZE = "min-pool-size";
+
+ public static final String MAX_POOL_SIZE = "max-pool-size";
+
+ public static final String BLOCKING_CONNECTION_TIME = "blocking-timeout-millis";
+
+ public static final String CONNECTION_POOL_CLASS = "connection-pool-class";
+
+ public static final String PASSWORD_DECODER = "password-decrypter";
+
+ public static final String ABANDONED_CONNECTION_TIMEOUT = "abandoned-connection-timeout";
+
+ public static final String ABANDONED_CONNECTION_CHECK_INTERVAL = "abandoned-connection-time-interval";
+
+ private boolean m_bAutoCommit;
+
+ private Integer m_iIsolationLvl;
+
+ private int m_iMinPoolSize;
+
+ private int m_iMaxPoolSize;
+
+ private long m_lConnBlockTime;
+
+ private String m_sConnectionPoolClass;
+
+ private String m_sUser;
+
+ private String m_sPassword;
+
+ private String m_sConnectionUrl;
+
+ private long m_lAbandonedConnectionTimeout;
+
+ private long m_lAbandonedConnectionCheckInterval;
+
+ private String m_sDriverClassName;
+
+ public static final String DEFAULT_MIN_POOL_SIZE = "5";
+
+ public static final String DEFAULT_MAX_POOL_SIZE = "10";
+
+ public static final String DEFAULT_CONN_BLOCK_TIME_MILLIS = "5000";
+
+ public static final String DEFAULT_CONNECTION_POOL_CLASS = DefaultConnectionPoolImpl.class
+ .getName();
+
+ public static final String DEFAULT_ABANDONED_CONNECTION_TIMEOUT = "10000";
+
+ public static final String DEFAULT_ABANDONED_CONNECTION_CHECK_INTERVAL = "30000";
+
+ public ConnectionProperties(Properties connectionProperties)
+ {
+ this.m_oConnectionProperties = connectionProperties;
+ setDriverClassName();
+ setConnectionUrl();
+ setUser();
+ setPassword();
+ setConnectionPoolClass();
+ setAutoCommit();
+ setIsolationLevel();
+ setMinPoolSize();
+ setMaxPoolSize();
+ setBlockingConnectionTime();
+ setAbandonedConnectionTimeOut();
+ setAbandonedConnectionCheckInterval();
+ }
+
+ private void setDriverClassName()
+ {
+ m_sDriverClassName = m_oConnectionProperties
+ .getProperty(DRIVER_CLASSNAME);
+ if (m_sDriverClassName == null)
+ {
+ m_sDriverClassName = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE)
+ .getProperty(DRIVER_CLASSNAME);
+ }
+ }
+
+ protected String getDriverClassName()
+ {
+ return m_sDriverClassName;
+ }
+
+ protected String getConnectionUrl()
+ {
+ return m_sConnectionUrl;
+ }
+
+ private void setConnectionUrl()
+ {
+ m_sConnectionUrl = m_oConnectionProperties.getProperty(CONNECTION_URL);
+ if (m_sConnectionUrl == null)
+ {
+ m_sConnectionUrl = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE).getProperty(
+ CONNECTION_URL);
+ }
+ }
+
+ protected boolean getAutoCommit()
+ {
+ return m_bAutoCommit;
+ }
+
+ protected Integer getIsolationLevel()
+ {
+ return m_iIsolationLvl;
+ }
+
+ private void setIsolationLevel()
+ {
+ String isolation = (String) m_oConnectionProperties
+ .get(ISOLATION_LEVEL);
+ if (isolation == null)
+ {
+ isolation = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE).getProperty(
+ ISOLATION_LEVEL);
+ }
+ this.m_iIsolationLvl = (isolation != null) ? new Integer(isolation)
+ : null;
+ }
+
+ protected int getMinPoolSize()
+ {
+ return m_iMinPoolSize;
+ }
+
+ protected int getMaxPoolSize()
+ {
+ return m_iMaxPoolSize;
+ }
+
+ private void setMinPoolSize()
+ {
+ String strPoolSize = m_oConnectionProperties.getProperty(MIN_POOL_SIZE);
+ if (strPoolSize == null)
+ {
+ strPoolSize = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE).getProperty(
+ MIN_POOL_SIZE, DEFAULT_MIN_POOL_SIZE);
+ }
+ this.m_iMinPoolSize = Integer.parseInt(strPoolSize);
+ }
+
+ private void setMaxPoolSize()
+ {
+ String strPoolSize = (String) m_oConnectionProperties
+ .get(MAX_POOL_SIZE);
+ if (strPoolSize == null)
+ {
+ strPoolSize = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE).getProperty(
+ MAX_POOL_SIZE, DEFAULT_MAX_POOL_SIZE);
+ }
+ this.m_iMaxPoolSize = Integer.parseInt(strPoolSize);
+ }
+
+ private void setBlockingConnectionTime()
+ {
+ String strBlockTimeMillis = (String) m_oConnectionProperties
+ .get(BLOCKING_CONNECTION_TIME);
+ if (strBlockTimeMillis == null)
+ {
+ strBlockTimeMillis = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE)
+ .getProperty(BLOCKING_CONNECTION_TIME,
+ DEFAULT_CONN_BLOCK_TIME_MILLIS);
+ }
+ this.m_lConnBlockTime = Integer.parseInt(strBlockTimeMillis);
+ }
+
+ protected long getConnectionBlockTimeInMillis()
+ {
+ return m_lConnBlockTime;
+ }
+
+ private void setAutoCommit()
+ {
+ String autoCommit = (String) m_oConnectionProperties.get(AUTO_COMMIT);
+ if (autoCommit == null || autoCommit.equals("false"))
+ {
+ m_bAutoCommit = Boolean.FALSE;
+ } else
+ {
+ m_bAutoCommit = Boolean.TRUE;
+ }
+ }
+
+ private void setConnectionPoolClass()
+ {
+ m_sConnectionPoolClass = m_oConnectionProperties
+ .getProperty(CONNECTION_POOL_CLASS);
+ if (m_sConnectionPoolClass == null)
+ {
+ m_sConnectionPoolClass = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE)
+ .getProperty(CONNECTION_POOL_CLASS,
+ DEFAULT_CONNECTION_POOL_CLASS);
+ }
+ }
+
+ protected String getUser()
+ {
+ return m_sUser;
+ }
+
+ public void setUser()
+ {
+ this.m_sUser = m_oConnectionProperties.getProperty(USERNAME);
+ if (m_sUser == null)
+ {
+ m_sUser = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE).getProperty(USERNAME);
+ }
+ }
+
+ protected String getPassword()
+ {
+ return m_sPassword;
+ }
+
+ protected void setPassword()
+ {
+ this.m_sPassword = m_oConnectionProperties.getProperty(PASSWORD);
+ if (m_sPassword == null)
+ {
+ m_sPassword = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE).getProperty(
+ PASSWORD);
+ }
+ String strPasswordDecoder = m_oConnectionProperties
+ .getProperty(PASSWORD_DECODER);
+ if (strPasswordDecoder == null)
+ {
+ strPasswordDecoder = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE)
+ .getProperty(PASSWORD_DECODER);
+ }
+ if (strPasswordDecoder != null)
+ {
+ try
+ {
+ PasswordDecoder decoder = (PasswordDecoder) Class.forName(
+ strPasswordDecoder).newInstance();
+ this.m_sPassword = decoder.decode(m_sPassword);
+ } catch (InstantiationException e)
+ {
+ Log.error(
+ "Error in creating instance of Password Decoder Class:-"
+ + strPasswordDecoder, e);
+ } catch (IllegalAccessException e)
+ {
+ Log.error(
+ "Error in creating instance of Password Decoder Class:-"
+ + strPasswordDecoder, e);
+ } catch (ClassNotFoundException e)
+ {
+ Log.error("Password Decoder Class:-" + strPasswordDecoder
+ + " not found in Classpath");
+ Log.error("Please check the property:-" + PASSWORD_DECODER);
+ Log.error(e);
+ }
+ }
+ }
+
+ protected String getConnectionPoolClass()
+ {
+ return m_sConnectionPoolClass;
+ }
+
+ private void setAbandonedConnectionTimeOut()
+ {
+ String strAbandonedConnectionTimeout = m_oConnectionProperties
+ .getProperty(ABANDONED_CONNECTION_TIMEOUT);
+ if (strAbandonedConnectionTimeout == null)
+ {
+ strAbandonedConnectionTimeout = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE)
+ .getProperty(ABANDONED_CONNECTION_TIMEOUT,
+ DEFAULT_ABANDONED_CONNECTION_TIMEOUT);
+ }
+ this.m_lAbandonedConnectionTimeout = Long
+ .parseLong(strAbandonedConnectionTimeout);
+ }
+
+ private void setAbandonedConnectionCheckInterval()
+ {
+ String strAbandonedConnectionCheckInterval = m_oConnectionProperties
+ .getProperty(ABANDONED_CONNECTION_CHECK_INTERVAL);
+ if (strAbandonedConnectionCheckInterval == null
+ || strAbandonedConnectionCheckInterval.trim().length() == 0)
+ {
+ strAbandonedConnectionCheckInterval = ModulePropertyManager
+ .getPropertyManager(ModulePropertyManager.CONNECTION_MODULE).getProperty(
+ ABANDONED_CONNECTION_CHECK_INTERVAL,
+ DEFAULT_ABANDONED_CONNECTION_CHECK_INTERVAL);
+ }
+ this.m_lAbandonedConnectionCheckInterval = Long
+ .parseLong(strAbandonedConnectionCheckInterval);
+ }
+
+ protected long getAbandonedConnectionTimeOut()
+ {
+ return this.m_lAbandonedConnectionTimeout;
+ }
+
+ protected long getAbandonedConnectionCheckInterval()
+ {
+ return this.m_lAbandonedConnectionCheckInterval;
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionWrapper.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionWrapper.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/ConnectionWrapper.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,326 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.connection;
+
+import java.sql.CallableStatement;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.sql.SQLWarning;
+import java.sql.Savepoint;
+import java.sql.Statement;
+import java.util.Map;
+
+/**
+ * Wrapper class which encapsulates @link Connection
+ * @author MohitK
+ * Date: Jul 18, 2006
+ */
+public class ConnectionWrapper implements Connection {
+
+ private Connection _originalHeavyConnection;
+ private ConnectionPool _connectionPool;
+ private boolean _isClosed = false;
+ private long _activatedTime;
+
+ public ConnectionWrapper(Connection originalHeavyConnection, ConnectionPool pool) throws SQLException {
+ if (originalHeavyConnection == null) {
+ throw new SQLException("Original Connection is Null");
+ }
+ this._originalHeavyConnection = originalHeavyConnection;
+ if (pool == null) {
+ throw new SQLException("Connection Pool is null");
+ }
+ this._connectionPool = pool;
+ }
+
+ public Statement createStatement() throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.createStatement();
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public PreparedStatement prepareStatement(String sql) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.prepareStatement(sql);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public CallableStatement prepareCall(String sql) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.prepareCall(sql);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public String nativeSQL(String sql) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.nativeSQL(sql);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public void setAutoCommit(boolean autoCommit) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ _originalHeavyConnection.setAutoCommit(autoCommit);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+
+ }
+
+ public boolean getAutoCommit() throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.getAutoCommit();
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public void commit() throws SQLException {
+ if (_originalHeavyConnection != null) {
+ _originalHeavyConnection.commit();
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public void rollback() throws SQLException {
+ if (_originalHeavyConnection != null) {
+ _originalHeavyConnection.rollback();
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public synchronized void close() throws SQLException {
+ if (_originalHeavyConnection != null) {
+ _connectionPool.closeConnection(this);
+ }
+ this._isClosed = true;
+ }
+
+ public boolean isClosed() throws SQLException {
+ return _isClosed;
+ }
+
+ public DatabaseMetaData getMetaData() throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.getMetaData();
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public void setReadOnly(boolean readOnly) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ _originalHeavyConnection.setReadOnly(readOnly);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public boolean isReadOnly() throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.isReadOnly();
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public void setCatalog(String catalog) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ _originalHeavyConnection.setCatalog(catalog);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public String getCatalog() throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.getCatalog();
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public void setTransactionIsolation(int level) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ _originalHeavyConnection.setTransactionIsolation(level);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public int getTransactionIsolation() throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.getTransactionIsolation();
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public SQLWarning getWarnings() throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.getWarnings();
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public void clearWarnings() throws SQLException {
+ if (_originalHeavyConnection != null) {
+ _originalHeavyConnection.clearWarnings();
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.createStatement(resultSetType, resultSetConcurrency);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.prepareStatement(sql, resultSetType, resultSetConcurrency);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.prepareCall(sql, resultSetType, resultSetConcurrency);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public Map<String, Class<?>> getTypeMap() throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.getTypeMap();
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public void setTypeMap(Map<String, Class<?>> map) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ _originalHeavyConnection.setTypeMap(map);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public void setHoldability(int holdability) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ _originalHeavyConnection.setHoldability(holdability);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public int getHoldability() throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.getHoldability();
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public Savepoint setSavepoint() throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.setSavepoint();
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public Savepoint setSavepoint(String name) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.setSavepoint(name);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public void rollback(Savepoint savepoint) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ _originalHeavyConnection.rollback(savepoint);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public void releaseSavepoint(Savepoint savepoint) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ _originalHeavyConnection.releaseSavepoint(savepoint);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.createStatement(resultSetType, resultSetConcurrency, resultSetHoldability);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.prepareStatement(sql, resultSetType, resultSetConcurrency, resultSetHoldability);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.prepareCall(sql, resultSetType, resultSetConcurrency, resultSetHoldability);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.prepareStatement(sql, autoGeneratedKeys);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public PreparedStatement prepareStatement(String sql, int columnIndexes[]) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.prepareStatement(sql, columnIndexes);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ public PreparedStatement prepareStatement(String sql, String columnNames[]) throws SQLException {
+ if (_originalHeavyConnection != null) {
+ return _originalHeavyConnection.prepareStatement(sql, columnNames);
+ } else
+ throw new SQLException("Connection closed due to inactivity");
+ }
+
+ protected synchronized Connection getActualConnection() {
+ return _originalHeavyConnection;
+ }
+
+ protected long getActivatedTime() {
+ return _activatedTime;
+ }
+
+ protected void setActivatedTime(long activedTime) {
+ this._activatedTime = activedTime;
+ }
+
+ protected String getName() {
+ return _originalHeavyConnection.toString();
+ }
+
+ protected void setOriginalConnection(Connection conn) {
+ this._originalHeavyConnection = conn;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/DefaultConnectionPoolImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/DefaultConnectionPoolImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/DefaultConnectionPoolImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,201 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.connection;
+
+import java.sql.Connection;
+import java.sql.Driver;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.util.Enumeration;
+import java.util.Properties;
+import java.util.Stack;
+import java.util.Timer;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.connection.exception.ConnectionException;
+
+/**
+ * Default connection pool implementation class when none is specified by the user in @link ConnectionProperties
+ *
+ * @author MohitK
+ * Date: Jul 18, 2006
+ */
+public class DefaultConnectionPoolImpl implements ConnectionPool {
+
+ private static Logger Log = Logger.getLogger(DefaultConnectionPoolImpl.class);
+
+ private final Stack<ConnectionWrapper> m_oConnectionStack = new Stack<ConnectionWrapper>();
+ private final ConcurrentHashMap<String, ConnectionWrapper> m_oUsedConnectionMap = new ConcurrentHashMap<String, ConnectionWrapper>();
+ private int m_iConnCountInPool;
+ private ConnectionProperties m_oConnProperties;
+ private ConnectionFactory m_oConnectionFactory;
+
+ /**
+ * @see ConnectionPool#createPool(ConnectionProperties)
+ */
+ public void createPool(ConnectionProperties prop) throws ConnectionException {
+ this.m_oConnProperties = prop;
+ try {
+ initPool();
+ AbandonedConnectionTimerTask abandonedConnTask = new AbandonedConnectionTimerTask(this);
+ Timer abandonedTimer = new Timer(":AbandonedConnectionPoolScheduler:@" + this.toString(), true);
+ abandonedTimer.schedule(abandonedConnTask, prop.getAbandonedConnectionCheckInterval(), prop.getAbandonedConnectionCheckInterval());
+ } catch (SQLException e) {
+ Log.error("DefaultConnectionPoolImpl: Error in creating Connection Pool",e);
+ throw new ConnectionException("DefaultConnectionPoolImpl: Error in creating Connection Pool\n Reason:-" + e.getMessage(), e);
+ }
+ }
+
+ private void initPool() throws SQLException {
+
+ if (m_oConnectionFactory == null) {
+ Properties properties = new Properties();
+ properties.put("user", m_oConnProperties.getUser());
+ properties.put("password", m_oConnProperties.getPassword());
+ m_oConnectionFactory = new DriverConnectionFactory(getDriver(m_oConnProperties.getDriverClassName()), m_oConnProperties.getConnectionUrl(), properties);
+ }
+ while (m_iConnCountInPool < m_oConnProperties.getMinPoolSize()) {
+ synchronized (m_oConnectionStack) {
+ m_oConnectionStack.add(new ConnectionWrapper(m_oConnectionFactory.createConnection(), this));
+ m_iConnCountInPool++;
+ }
+ }
+ }
+
+ private Driver getDriver(String driverClassName) throws SQLException {
+ if (driverClassName != null) {
+ try {
+ Class.forName(driverClassName);
+ } catch (Throwable e) {
+ Log.error("DefaultConnectionPoolImpl: Error in loading class " + driverClassName + " to create connection pool", e);
+ throw new SQLException("DefaultConnectionPoolImpl: Error in loading class " + driverClassName + " to create connection pool");
+ }
+ return DriverManager.getDriver(m_oConnProperties.getConnectionUrl());
+ }
+ throw new SQLException("DefaultConnectionPoolImpl: Driver Class could not be loaded");
+ }
+
+ /**
+ * @see ConnectionPool#getConnection()
+ */
+ public synchronized Connection getConnection() throws SQLException {
+ ConnectionWrapper newPoolConnection;
+ if (!m_oConnectionStack.isEmpty()) {
+ newPoolConnection = m_oConnectionStack.pop();
+ m_oUsedConnectionMap.put(newPoolConnection.getName(), newPoolConnection);
+ } else if (m_iConnCountInPool < m_oConnProperties.getMaxPoolSize()) {
+ newPoolConnection = new ConnectionWrapper(m_oConnectionFactory.createConnection(), this);
+ m_oUsedConnectionMap.put(newPoolConnection.getName(), newPoolConnection);
+ m_iConnCountInPool++;
+ } else {
+ try {
+ Thread.sleep(m_oConnProperties.getConnectionBlockTimeInMillis());
+ } catch (InterruptedException e) {
+ //Do Nothing
+ }
+ if (!m_oConnectionStack.empty()) {
+ newPoolConnection = m_oConnectionStack.pop();
+ m_oUsedConnectionMap.put(newPoolConnection.getName(), newPoolConnection);
+ } else {
+ throw new SQLException("Connection Pool exhausted. Please increase number of connections");
+ }
+
+ }
+ Integer isolation = m_oConnProperties.getIsolationLevel();
+ if (isolation != null) newPoolConnection.setTransactionIsolation(isolation);
+ newPoolConnection.setAutoCommit(m_oConnProperties.getAutoCommit());
+ newPoolConnection.setActivatedTime(System.currentTimeMillis());
+ return newPoolConnection;
+ }
+
+ /**
+ * @see ConnectionPool;
+ */
+ public void closeConnection(Connection connectionToClose) {
+ synchronized (m_oConnectionStack) {
+ m_oConnectionStack.push((ConnectionWrapper) connectionToClose);
+ }
+ m_oUsedConnectionMap.remove(connectionToClose);
+ }
+
+ /**
+ * @see ConnectionPool#releasePool()
+ */
+ public void releasePool() {
+ try {
+ synchronized (m_oConnectionStack) {
+ for (ConnectionWrapper connection : m_oConnectionStack) {
+ Connection origConn = connection.getActualConnection();
+ origConn.close();
+ m_iConnCountInPool--;
+ }
+ }
+ Enumeration<ConnectionWrapper> connectionWrapperEnum = m_oUsedConnectionMap.elements();
+ while (connectionWrapperEnum.hasMoreElements()) {
+ ConnectionWrapper connectionWrapper = connectionWrapperEnum.nextElement();
+ Connection con = connectionWrapper.getActualConnection();
+ String name = connectionWrapper.getName();
+ if (con != null && !con.isClosed()) {
+ con.close();
+ }
+ m_iConnCountInPool--;
+ m_oUsedConnectionMap.remove(name);
+ }
+ } catch (SQLException e) {
+ Log.error("DefaultConnectionPoolImpl: Error in closing physical Connection", e);
+ }
+ }
+
+ protected void finalize() throws Throwable {
+ super.finalize();
+ releasePool();
+ }
+
+ /**
+ * This method will release all abandoned connections from the pool.
+ */
+ protected synchronized void releaseAbandonedConnections() {
+
+ Enumeration<ConnectionWrapper> connectionWrapperEnum = m_oUsedConnectionMap.elements();
+ while (connectionWrapperEnum.hasMoreElements()) {
+ ConnectionWrapper connectionWrapper = connectionWrapperEnum.nextElement();
+ long activedTime = connectionWrapper.getActivatedTime();
+ long currentTime = System.currentTimeMillis();
+ if ((currentTime - activedTime) > m_oConnProperties.getAbandonedConnectionTimeOut()) {
+ try {
+ Log.info("Removing abandoned Connection:-" + connectionWrapper);
+ Connection actualConnection = connectionWrapper.getActualConnection();
+ m_oUsedConnectionMap.remove(connectionWrapper.getName());
+ connectionWrapper.setOriginalConnection(null);
+ connectionWrapper = null;
+ connectionWrapper = new ConnectionWrapper(actualConnection, this);
+ synchronized (m_oConnectionStack) {
+ m_oConnectionStack.push(connectionWrapper);
+ }
+ } catch (SQLException e) {
+ Log.error("Error in releasing abandoned connection from Pool", e);
+ }
+ }
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/DriverConnectionFactory.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/DriverConnectionFactory.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/DriverConnectionFactory.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,55 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.connection;
+
+import java.sql.Connection;
+import java.sql.Driver;
+import java.sql.SQLException;
+import java.util.Properties;
+
+/**
+ * Driver implementation of Connection Factory
+ * @author MohitK
+ * Date: Jul 18, 2006
+ */
+public class DriverConnectionFactory implements ConnectionFactory{
+
+ private Driver _driver;
+ private String _driverUrl;
+ private Properties _properties;
+
+ public DriverConnectionFactory(Driver driver,String driverUrl,Properties connectionProps){
+ this._driver=driver;
+ this._driverUrl=driverUrl;
+ this._properties=connectionProps;
+
+ }
+
+ /**
+ *
+ * @see org.jboss.soa.esb.connection.ConnectionFactory#createConnection()
+ */
+ public Connection createConnection() throws SQLException {
+ return _driver.connect(_driverUrl,_properties);
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/FreeConnectionPoolResources.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/FreeConnectionPoolResources.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/FreeConnectionPoolResources.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,52 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.connection;
+
+import org.apache.log4j.Logger;
+
+/**
+ * Shutdown Hook into the JVM. The class will be invoked by the JVM when JVM is shutting down.
+ * Used to free connection resources and destroy the connection pool.
+ * This class is will guarantee closing of all connections rather than depending on finalize method.
+ *
+ * @author MohitK
+ * Date: Jul 22, 2006
+ */
+public class FreeConnectionPoolResources extends Thread {
+
+ private static Logger Log = Logger.getLogger(FreeConnectionPoolResources.class);
+
+ ConnectionPool pool;
+
+ public FreeConnectionPoolResources(ConnectionPool pool) {
+ this.pool = pool;
+ }
+
+ public void run() {
+ try {
+ pool.releasePool();
+ } catch (Exception e) {
+ Log.error("Error in freeing resources");
+ }
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/PasswordDecoder.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/PasswordDecoder.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/PasswordDecoder.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,39 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.connection;
+
+/**
+ * Interface to be implemented by classes when they need to return the DB password for the connection by using their own
+ * algorithm. Called by the connection pool
+ * @author MohitK
+ * Date: Jul 21, 2006
+ */
+public interface PasswordDecoder {
+ /**
+ * This method decodes the password for JDBC Connection, it will be called when setting JDBC connection properties.
+ * Users who need to decode the password need to implement this interface and write their own
+ * decoding logic to send the actual DB password. If this method returns null
+ * @param encodedPassword The encoded password sent by JDBC framework
+ * @return Decoded password.
+ */
+ public String decode(String encodedPassword);
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/PoolDataSource.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/PoolDataSource.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/PoolDataSource.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,118 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.connection;
+
+import java.io.PrintWriter;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.Properties;
+
+import javax.sql.DataSource;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.connection.exception.ConnectionException;
+
+/**
+ * Implementation if Datasource for getting connections from pool.
+ * @author MohitK
+ * Date: Jul 19, 2006
+ */
+public class PoolDataSource implements DataSource {
+
+ private static Logger Log = Logger.getLogger(PoolDataSource.class);
+
+ private ConnectionPool m_oPool;
+ private PrintWriter m_oLogWriter = new PrintWriter(System.out);
+ private int m_iLoginTimeOut;
+ private final Properties m_oConnProps = new Properties();
+ ConnectionProperties m_oConnectionProperties;
+
+ private synchronized ConnectionPool createConnectionPool() throws SQLException {
+ if (m_oPool == null) {
+ try {
+ if (m_oConnProps != null) {
+ m_oConnectionProperties = new ConnectionProperties(m_oConnProps);
+ m_oPool = ConnectionPoolFactory.createPool(m_oConnectionProperties);
+ }
+ } catch (ConnectionException e) {
+ Log.error("PoolDataSource: Error in creating Connection Pool",e);
+ throw new SQLException(e.getMessage());
+ }
+ }
+ return m_oPool;
+ }
+
+
+ public Properties getConnectionProperties() {
+ return m_oConnProps;
+ }
+
+ public void setConnectionProperties(Properties _connProperties) {
+ m_oConnProps.putAll(_connProperties);
+ }
+
+ /**
+ * @see javax.sql.DataSource#getConnection()
+ */
+ public Connection getConnection() throws SQLException {
+ return createConnectionPool().getConnection();
+ }
+
+ /**
+ * @see javax.sql.DataSource#getConnection(String, String)
+ */
+ public Connection getConnection(String username, String password) throws SQLException {
+ synchronized(m_oConnProps){
+ m_oConnProps.setProperty(ConnectionProperties.USERNAME, username);
+ m_oConnProps.setProperty(ConnectionProperties.PASSWORD, password);
+ }
+ // REVIEW: This class isn't thread safe at this point???
+ return createConnectionPool().getConnection();
+ }
+
+ /**
+ * @see javax.sql.DataSource#getLogWriter()
+ */
+ public PrintWriter getLogWriter() throws SQLException {
+ return this.m_oLogWriter;
+ }
+ /**
+ * @see javax.sql.DataSource#setLogWriter(java.io.PrintWriter)
+ */
+ public void setLogWriter(PrintWriter out) throws SQLException {
+ this.m_oLogWriter = out;
+ }
+ /**
+ * @see javax.sql.DataSource#setLoginTimeout(int)
+ */
+ public void setLoginTimeout(int seconds) throws SQLException {
+ this.m_iLoginTimeOut = seconds;
+ }
+
+ /**
+ * @see javax.sql.DataSource#getLoginTimeout()
+ */
+ public int getLoginTimeout() throws SQLException {
+ return m_iLoginTimeOut;
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/exception/ConnectionException.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/exception/ConnectionException.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/connection/exception/ConnectionException.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,50 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.connection.exception;
+
+/**
+ * This exception is thrown when Connection Pool fails to initialize
+ * @author MohitK
+ * Date: Jul 21, 2006
+ */
+public class ConnectionException extends Exception{
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public ConnectionException() {
+ super();
+ }
+
+ public ConnectionException(String message) {
+ super(message);
+ }
+
+ public ConnectionException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public ConnectionException(Throwable cause) {
+ super(cause);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/AppServerContext.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/AppServerContext.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/AppServerContext.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,108 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.helpers;
+
+import java.util.Properties;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+import org.apache.log4j.Logger;
+
+
+/**
+ * Obtains JNDI naming context for a predefined list of 'well known' server
+ * types
+ *
+ */
+public abstract class AppServerContext {
+ /**
+ * Logger for this class
+ */
+ private static final Logger m_oLogger = Logger
+ .getLogger(AppServerContext.class);
+
+ /**
+ * Indicates that a jboss context is requested
+ */
+ public static final String CTX_JBOSS = "jboss";
+
+ public static final int MAX_RETRIES = 10;
+
+ public static final int WAIT_FOR_RETRY = 30;
+
+ public enum SERVER_TYPE {
+ jboss, weblogic, websphere, oracle
+ };
+
+ public static Context getServerContext(String pType, String p_sJndiServer) {
+ return getServerContext(SERVER_TYPE.valueOf(pType), p_sJndiServer);
+ }
+
+ // REVIEW: What is all this about... this class doesn't support anything other than a JBoss Server!!
+
+ /**
+ * Searches a predefined table of 'well known' app server types, and returns
+ * the corresponding naming context
+ *
+ * @param p_sServer:
+ * name or IP of server, and optionally port #
+ */
+ private static Context getServerContext(SERVER_TYPE pType,
+ String p_sJndiServer) {
+ switch (pType) {
+ case jboss:
+ return jbossContext(p_sJndiServer);
+ }
+
+ return null;
+ } // __________________________________
+
+ private static Context jbossContext(String p_sJndiServer) {
+ Properties oPr = new Properties();
+ oPr.setProperty(Context.PROVIDER_URL, p_sJndiServer);
+ oPr.setProperty(Context.INITIAL_CONTEXT_FACTORY,
+ "org.jnp.interfaces.NamingContextFactory");
+ oPr.setProperty(Context.URL_PKG_PREFIXES,
+ "org.jboss.naming:org.jnp.interfaces");
+
+ boolean bCtxOK = false;
+ Context oCtx = null;
+ for (int i1 = 0; (!bCtxOK) && i1 < MAX_RETRIES; i1++) {
+ // check if context is valid
+ try {
+ oCtx = new InitialContext(oPr);
+ oCtx.list("__dummy2@#$%");
+ bCtxOK = true;
+ } catch (NamingException nex) {
+ bCtxOK = true;
+ }
+ }
+ if (bCtxOK)
+ return oCtx;
+ m_oLogger.error("Can't connect to jndiServer <" + p_sJndiServer + ">");
+ return null;
+
+ } // ________________________
+
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/AppServerContext.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/ConfigTree.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/ConfigTree.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/ConfigTree.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,553 @@
+package org.jboss.soa.esb.helpers;
+
+import java.util.*;
+import java.io.*;
+import org.apache.log4j.Logger;
+
+import javax.xml.parsers.*;
+import javax.xml.transform.*;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.w3c.dom.*;
+import org.xml.sax.SAXException;
+/**
+ * Objects of this class are to be used for run time configuration of ESB components
+ * <p/> This should gradually replace the ConfigTree class
+ * <br/> It is a subset of Tree that accepts a Map of attributes, and a List of children
+ * <br/> children can only be String values, or objects of this class
+ * <p/> fromXml() and toXml() methods allow 'visible' representations of objects of this class
+ * and run time loading/dumping from/to standard XML documents
+ *
+ * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
+ *
+ */
+public class ConfigTree implements Serializable, Cloneable
+{
+ private static final long serialVersionUID = 1L;
+/**
+ * Constructor of a root node (an uppermost ConfigTree)
+ * @param name String - the element name of 'this'
+ */
+ public ConfigTree(String name) { this(name,null); }
+/**
+ * Constructor of a ConfigTree as a child of another (second arg)
+ * @param name String - element name of 'this'
+ * @param dad ConfigTree - whom 'this' will be hanging from
+ */
+ public ConfigTree(String name, ConfigTree dad)
+ {
+ setName(name);
+ setParent(dad);
+ } // _______________________________
+/**
+ * protected constructor
+ * @param other - Where to get values for deep copy
+ */
+ protected ConfigTree(ConfigTree other)
+ {
+ copyFrom(other);
+ } // _______________________________
+
+ /**
+ *
+ * @return String - the name of this tree (element name for XML representation)
+ */
+ public String getName() { return _name; }
+ /**
+ * assign a name to 'this'
+ * @param name String - The name for this object
+ */
+ public void setName(String name)
+ {
+ if (null==name)
+ throw new IllegalArgumentException();
+ _name = name;
+ } // _______________________________
+
+ /**
+ * whose child is 'this' (null if root)
+ * @return ConfigTree - the parent tree of 'this'
+ */
+ public ConfigTree getParent() { return _dad; }
+
+ private void setParent(ConfigTree dad)
+ {
+ if (null!=_dad && null!=_dad._childs)
+ _dad._childs.remove(this);
+ if (null!=dad)
+ dad.addChild(this);
+ }
+ /**
+ * assign a value to a named attribute
+ * @param name String - the name (key) for the new attribute
+ * @param value String - the value assigned to the key (if null - old value will be deleted)
+ * @return String - old value assigned to the name (null if there was none)
+ */
+ public String setAttribute(String name,String value)
+ {
+ if (null==name)
+ throw new IllegalArgumentException("Attribute name must be non null");
+ if (null==_attributes)
+ _attributes = new HashMap<String,String>();
+ String oldVal = _attributes.remove(name);
+ if(null!=value)
+ _attributes.put(name,value);
+ return oldVal;
+ } // _______________________________
+ /**
+ *
+ * @return int - the number of non null attributes that this node has been assigned
+ */
+ public int attributeCount()
+ {
+ return (null==_attributes) ? 0 : _attributes.size();
+ } // _______________________________
+ /**
+ * retrieve the value assigned to an attribute key
+ * @param name String - the search key
+ * @return String - the value assigned to the specified key
+ */
+ public String getAttribute(String name)
+ {
+ return (null==_attributes) ? null : _attributes.get(name);
+ } // _______________________________
+ /**
+ * obtain the list of all attribute names
+ * @return Set<String> - the set of keys that have been assigned a non null value
+ */
+ public Set<String>getAttributeNames()
+ { return (null==_attributes)
+ ? new HashSet<String>()
+ : _attributes.keySet();
+ } // _______________________________
+ /**
+ * obtain the list of all attribute as a List<KeyValuePair>
+ * @return List<KeyValuePair> - containing all attributes
+ */
+ public List<KeyValuePair> attributesAsList()
+ {
+ List<KeyValuePair> oRet = new ArrayList<KeyValuePair>();
+ if (null!=_attributes)
+ for (Map.Entry<String,String> oCurr : _attributes.entrySet())
+ oRet.add(new KeyValuePair(oCurr.getKey(),oCurr.getValue()));
+ return oRet;
+ } // _______________________________
+ /**
+ * concatenated values of all child String values that have been added to 'this'
+ * <br/>"" (zero length String) if no String child nodes
+ * @return String - concatenation of all String segments (equivalent to xml text nodes)
+ */
+ public String getWholeText()
+ {
+ if (null==_childs)
+ return "";
+ StringBuilder sb = null;
+ for (Child child : _childs)
+ { if (! (child._obj instanceof String))
+ continue;
+ if (null==sb)
+ sb = new StringBuilder((String)child._obj);
+ else
+ sb.append((String)child._obj);
+ }
+ return sb.toString();
+
+ } // _______________________________
+/**
+ * <b>first</b> child containing only text, with name=arg0
+ * @param name String - the name to filter
+ * @return full text content of first 'pure text' child element under that name - <null> if none
+ */
+ public String getFirstTextChild(String name)
+ {
+ if (null==name)
+ throw new IllegalArgumentException();
+ if (null!=_childs)
+ for (Child oCurr : _childs)
+ {
+ ConfigTree tree = oCurr.getTree();
+ if (null != tree && tree.isPureText() && name.equals(tree.getName()))
+ return tree.getWholeText();
+ }
+ return null;
+ } // _______________________________
+
+ /**
+ * Obtain all String values with the same name
+ * @param name String - filter for child String nodes
+ * @return String[]
+ */
+ public String[] getTextChildren(String name)
+ {
+ if (null==name)
+ throw new IllegalArgumentException();
+ if (null==_childs)
+ return new String[0];
+ List<String>oRet = new ArrayList<String>();
+ for (Child oCurr : _childs)
+ {
+ ConfigTree tree = oCurr.getTree();
+ if (null != tree && tree.isPureText() && name.equals(tree.getName()))
+ oRet.add(tree.getWholeText());
+ }
+ return oRet.toArray(new String[oRet.size()]);
+ } // _______________________________
+/**
+ * add a child element that consists only of the text in arg0
+ * @param value String - the text to assign to the added child node
+ */
+ public void addTextChild (String value) { new Child(value); }
+
+ private void addChild(ConfigTree child)
+ { child._dad = this; new Child(child); }
+/**
+ * retrieve list of child elements of 'this' that are instances of ConfigTree
+ * @return ConfigTree[] - Array containing all child elements of class ConfigTree
+ */
+ public ConfigTree[] getAllChildren()
+ {
+ if (null==_childs)
+ return new ConfigTree[]{};
+ List<ConfigTree>oRet = new ArrayList<ConfigTree>();
+ for (Child oCurr : _childs)
+ if (null != oCurr.getTree())
+ oRet.add(oCurr.getTree());
+ return oRet.toArray(new ConfigTree[oRet.size()]);
+ } // _______________________________
+
+ /**
+ * list of child elements of 'this' that are instances of ConfigTree, with name = arg0
+ * @param name String - the name of child nodes to filter
+ * @return ConfigTree[] - child elements of class ConfigTree with name provided
+ */
+ public ConfigTree[] getChildren(String name)
+ {
+ if (null==name)
+ throw new IllegalArgumentException();
+ if (null==_childs)
+ return new ConfigTree[0];
+ List<ConfigTree>oRet = new ArrayList<ConfigTree>();
+ for (Child oCurr : _childs)
+ if (name.equals(oCurr.getName()))
+ oRet.add(oCurr.getTree());
+ return oRet.toArray(new ConfigTree[oRet.size()]);
+ } // _______________________________
+/**
+ * <b>first</b> child of class ConfigTree with name=arg0
+ * @param name String - the name to filter
+ * @return first child element under that name - <null> if none
+ */
+ public ConfigTree getFirstChild(String name)
+ {
+ if (null==name)
+ throw new IllegalArgumentException();
+ if (null!=_childs)
+ for (Child oCurr : _childs)
+ if (name.equals(oCurr.getName()))
+ return oCurr.getTree();
+ return null;
+ } // _______________________________
+/**
+ * purge the list of children
+ */
+ public void removeAllChildren()
+ {
+ _childs = null;
+ } // _______________________________
+
+ /**
+ * remove children by name
+ * @param name String - only children by that name will be removed
+ */
+ public void removeChildrenByName(String name)
+ {
+ if (null==name)
+ throw new IllegalArgumentException();
+ if (null!=_childs)
+ for (ListIterator<Child> II=_childs.listIterator(); II.hasNext();)
+ if (name.equals(II.next().getName()))
+ II.remove();
+ } // __________________________________
+
+ /**
+ *
+ * @return the number of child nodes (of any type)
+ */
+ public int childCount()
+ {
+ return (null==_childs) ? 0 : _childs.size();
+ } // __________________________________
+
+ @Override
+ public Object clone() { return cloneObj(); }
+
+ /**
+ * instantiate a new ConfigTree with the same topology and contents of 'this'
+ * <br/>Contained ConfigTree child elements will also be cloned
+ * <br/>Transient objects are NOT copied nor cloned
+ * @return ConfigTree - Deep copy of 'this'
+ */
+ public ConfigTree cloneObj() {return cloneSubtree(null); }
+
+ /**
+ * @return ConfigTree - Deep copy of 'this'
+ */
+ private ConfigTree cloneSubtree(ConfigTree dad)
+ {
+ ConfigTree oRet = new ConfigTree(_name, dad);
+ if (null!=_attributes)
+ for (Map.Entry<String,String> oAtt: _attributes.entrySet())
+ oRet.setAttribute(oAtt.getKey(),oAtt.getValue());
+ if (null!= _childs)
+ for (Child oChild : _childs)
+ {
+ ConfigTree tree = oChild.getTree();
+ if (null!=tree)
+ tree.cloneSubtree(oRet);
+ else
+ oRet.addTextChild(oChild._obj.toString());
+ }
+ return oRet;
+ } // __________________________________
+ /**
+ * Deep copy of other tree
+ * @param other - from where to copy values
+ */
+ protected void copyFrom(ConfigTree other)
+ {
+ this.setName(other.getName());
+ this._pureText = other._pureText;
+
+ if (null != other._attributes)
+ for (Map.Entry<String,String> oneAtt : other._attributes.entrySet())
+ setAttribute(oneAtt.getKey(),oneAtt.getValue());
+ if (null != other._childs)
+ for (Child child : other._childs)
+ new Child(child);
+
+ } // __________________________________
+/**
+ * obtain an instance of this class, from a 'normalized' xml format, with the default encoding
+ * <p/> the 'normalized' xml format is the output of the toXml() instance method
+ * @param xml String - what to parse
+ * @return ConfigTree - an object of this class
+ * @throws SAXException - if xml format is invalid
+ */
+ public static ConfigTree fromXml(String xml) throws SAXException
+ {
+ try { return fromXml(xml,java.nio.charset.Charset.defaultCharset().toString()); }
+ catch (UnsupportedEncodingException e)
+ {
+ // This can't happen
+ _logger.fatal("This should not happen",e);
+ return null;
+ }
+ } // __________________________________
+
+ /**
+ * obtain an instance of this class, from a 'normalized' xml format, with the encoding defined in arg1
+ * <p/> the 'normalized' xml format is the output of the toXml() instance method
+ * @param xml String - what to parse
+ * @param encoding String - The encoding of arg 0
+ * @return ConfigTree - an object of this class
+ * @throws SAXException - if xml format is invalid
+ */
+ public static ConfigTree fromXml(String xml, String encoding)
+ throws UnsupportedEncodingException, SAXException
+ {
+ if (null==xml)
+ throw new IllegalArgumentException("Xml source String is null");
+ try { return fromInputStream(new ByteArrayInputStream(xml.getBytes(encoding))); }
+ catch (IOException e)
+ {
+ _logger.fatal("This should NOT happen",e);
+ return null;
+ }
+ } // __________________________________
+
+ /**
+ * obtain an instance of this class, from a 'normalized' xml format contained in an input stream
+ * <p/> the 'normalized' xml format is the output of the toXml() instance method
+ * @param input InputStream - where to parse from
+ * @return ConfigTree - an object of this class
+ * @throws SAXException - if xml format is invalid
+ * @throws IOException - if an input/output error occurs
+ */
+ public static ConfigTree fromInputStream(InputStream input)
+ throws SAXException, IOException
+ {
+ if (null==input)
+ throw new IllegalArgumentException();
+ DocumentBuilder builder = null;
+ try { builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); }
+ catch (ParserConfigurationException e2)
+ { _logger.error("Problems with default Parser Configuration",e2);
+ return null;
+ }
+ Document oDoc = builder.parse(input);
+ oDoc.normalize();
+
+ return fromElement(oDoc.getDocumentElement());
+
+ } // __________________________________
+
+ private static ConfigTree fromElement(Element elem)
+ {
+ ConfigTree tree = new ConfigTree(elem.getNodeName());
+ NamedNodeMap NM = elem.getAttributes();
+ if (null!=NM)
+ for (int i1=0; i1<NM.getLength(); i1++)
+ {
+ Node node = NM.item(i1);
+ tree.setAttribute(node.getNodeName(),node.getNodeValue());
+ }
+ NodeList NL = elem.getChildNodes();
+ if (null!=NL)
+ for (int i1=0; i1<NL.getLength(); i1++)
+ {
+ Node node = NL.item(i1);
+ switch (node.getNodeType())
+ {
+ case Node.ELEMENT_NODE:
+ tree.addChild(ConfigTree.fromElement((Element)node));
+ break;
+ case Node.TEXT_NODE:
+ tree.addTextChild(node.getNodeValue());
+ break;
+ }
+ }
+
+ return tree;
+ } // __________________________________
+
+ private Element toElement(Document doc)
+ {
+ Element elem = doc.createElement(_name);
+ if (null!=_attributes)
+ for (Map.Entry<String,String> oAtt : _attributes.entrySet())
+ elem.setAttribute(oAtt.getKey(),oAtt.getValue());
+ if (null!=_childs)
+ for (Child child : _childs)
+ {
+ ConfigTree tree = child.getTree();
+ if (null!=tree)
+ elem.appendChild(tree.toElement(doc));
+ else
+ elem.appendChild(doc.createTextNode(child._obj.toString()));
+ }
+ return elem;
+ } // __________________________________
+ /**
+ * Equivalent to a call to toXml()
+ * @return String - a String with the 'standard' xml representation of 'this',
+ * using the default encoding
+ */
+ public String toString() { return toXml(); }
+ /**
+ * Equivalent to a call to toXml(encoding)
+ * @param encoding String -
+ * @return String - a String with the 'standard' xml representation of 'this',
+ * using the encoding specified in arg 0
+ */
+
+ public String toString(String encoding) { return toXml(encoding); }
+ /**
+ * @return String - a String with the 'standard' xml representation of 'this',
+ * using the default encoding
+ */
+ public String toXml()
+ {
+ return toXml(java.nio.charset.Charset.defaultCharset().toString());
+ } // __________________________________
+
+ /**
+ * Serialize this object - Transient objects are
+ * @param encoding String - String
+ * @return String - a String with the 'standard' xml representation of 'this',
+ * using encoding specified in arg0
+ */
+ public String toXml(String encoding)
+ {
+ Transformer transf = null;
+ try { transf = TransformerFactory.newInstance().newTransformer(); }
+ catch (TransformerConfigurationException e1)
+ { _logger.error("Cannot obtain transformer to render XML output",e1);
+ return null;
+ }
+ transf.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,"yes");
+ transf.setOutputProperty(OutputKeys.INDENT, "no");
+ transf.setOutputProperty(OutputKeys.ENCODING, encoding);
+
+ DocumentBuilder builder = null;
+ try { builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); }
+ catch (ParserConfigurationException e2)
+ { _logger.error("Problems with default Parser Configuration",e2);
+ return null;
+ }
+ Document oDoc = builder.newDocument();
+ oDoc.appendChild(toElement(oDoc));
+ oDoc.normalize();
+ DOMSource src = new DOMSource(oDoc);
+
+ ByteArrayOutputStream oStrm = new ByteArrayOutputStream(5000);
+ StreamResult res = new StreamResult(oStrm);
+
+ try { transf.transform(src, res); }
+ catch (TransformerException e3)
+ { _logger.error("Problems with XML transformation",e3);
+ return null;
+ }
+
+ return oStrm.toString();
+ } // __________________________________
+
+ /**
+ *
+ * @return boolean - indicating if 'this' element has ONLY text children (and consequently no ConfigTree children)
+ */
+ public boolean isPureText() { return _pureText; }
+
+ private class Child
+ {
+ Object _obj;
+ ConfigTree getTree()
+ { return (_obj instanceof ConfigTree)? (ConfigTree) _obj : null;
+ }
+ String getName()
+ { return (_obj instanceof ConfigTree)? ((ConfigTree) _obj)._name : null;
+ }
+ private Child(ConfigTree obj) {addToDad(obj); _pureText = false;}
+ private Child(String obj) {addToDad(obj); }
+ private Child(Child other)
+ {
+ if (other._obj instanceof ConfigTree)
+ {
+ addToDad(((ConfigTree)other._obj).cloneObj());
+ _pureText = false;
+ return;
+ }
+ if (other._obj instanceof String)
+ {
+ addToDad((String)other._obj);
+ return;
+ }
+
+ }
+ private void addToDad(Object obj)
+ { if (null==_childs)
+ _childs = new ArrayList<Child>();
+ _obj = obj;
+ _childs.add(this);
+ }
+
+ }
+
+ private boolean _pureText=true;
+ private ConfigTree _dad;
+ private String _name;
+ private Map<String,String> _attributes;
+ private List<Child> _childs;
+
+ private static transient Logger _logger = Logger.getLogger(ConfigTree.class);
+} //____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/Email.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/Email.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/Email.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,439 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.helpers;
+
+import java.util.Properties;
+import java.util.StringTokenizer;
+
+import javax.activation.DataHandler;
+import javax.activation.FileDataSource;
+import javax.mail.Address;
+import javax.mail.Authenticator;
+import javax.mail.BodyPart;
+import javax.mail.MessagingException;
+import javax.mail.Multipart;
+import javax.mail.PasswordAuthentication;
+import javax.mail.Session;
+import javax.mail.Transport;
+import javax.mail.internet.AddressException;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMultipart;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.util.Util;
+
+/**
+ * Simplifies sending of e-mails with attachments from java.
+ * <p/>
+ * The message is sent via a subsequent call to the {@link #sendMessage()}
+ * method.
+ *
+ * <h3 id="p_oMessageParms">Message Parmeters</h3>
+ * The class constructor is supplied the following parameters via a
+ * {@link org.jboss.soa.esb.helpers.ConfigTree} instance:
+ * <ol>
+ * <li><b>FROM</b>: valid e-mail address</li>
+ * <li><b>SENDTO</b>: valid comma separated list of e-mail addresses</li>
+ * <li><b>SUBJECT</b>: free text that will appear as subject of the e-mail</li>
+ * <li><b>MESSAGE</b>: free text that will appear as contents of the e-mail</li>
+ * <li><b>ATTACH</b>: list (as Text children) of valid accessible filenames to
+ * attach to the e-mail</li>
+ * </ol>
+ * All parameters except 'ATTACH' are attributes of the ConfigTree argument. ATTACH
+ * parameters (attachments) are added as child ConfigTrees of the supplied
+ * ConfigTree.
+ *
+ * @author: Heuristica - Buenos Aires - Argentina
+ */
+public class Email {
+
+ /**
+ * Class logger.
+ */
+ private static Logger logger = Logger.getLogger(Email.class);
+ /**
+ * ConfigTree attribute : will be the contents of the From: field in the
+ * outgoing message
+ */
+ public static final String FROM = "from";
+
+ /**
+ * ConfigTree attribute : comma separated list of recipients
+ */
+ public static final String SENDTO = "sendTo";
+
+ /**
+ * ConfigTree attribute : comma separated list of Copy recipients
+ */
+ public static final String COPYTO = "ccTo";
+
+ /**
+ * ConfigTree attribute : will be the contents of the Subject: field in the
+ * outgoing message
+ */
+ public static final String SUBJECT = "subject";
+
+ /**
+ * ConfigTree attribute : Value of this attribute will be the content of the
+ * e-mail's text
+ */
+ public static final String ATTACH = "attachment";
+
+ /**
+ * ConfigTree child Text elements : Each child represents the name of a file
+ * to be attached in the outgoing message
+ */
+ public static final String MESSAGE = "message";
+
+ /**
+ * will be the contents of the From: field in the outgoing message
+ */
+ private String from = null;
+
+ /**
+ * comma separated list of recipients
+ */
+ private String sendTo = null;
+
+ /**
+ * comma separated list of copy recipients
+ */
+ private String copyTo = null;
+
+ /**
+ * This attribute will be the content of the subject of the mail message
+ */
+ private String subject = null;
+
+ /**
+ * Comma separated list of attachment file names
+ */
+ private String[] attachments = null;
+
+ /**
+ * Value of this attribute will be the content of the e-mail's text
+ */
+ private String message = null;
+
+ /**
+ * The message to b sent via a subsequent call to {@link #sendMessage()}.
+ */
+ private MimeMessage mailMessage;
+
+ /**
+ * The mail Session to use
+ */
+ private Session oMailSess = null;
+
+ /**
+ * Public constructor.
+ * <p/>
+ * Initialises the mail server session and creates the mail message using
+ * the information provided in the p_oMessageParms
+ * <a href="p_oMessageParms">listed above</a>.
+ * <p/>
+ * The message is sent via a subsequent call to the {@link #sendMessage()}
+ * method.
+ *
+ * @param p_oMessageParms
+ * A ConfigTree object containing the elements mentioned above
+ * @throws MessagingException
+ * @throws AddressException
+ * @see ConfigTree
+ *
+ */
+ public Email() throws AddressException, MessagingException {
+ // REVIEW: How about typing the parameters a little better??? Looks as though that might have a huge ripple-on effect accross the codebase!!
+ // REVIEW: Does the session need to ne initialised every time???
+ this.oMailSess = initMailServerSession();
+
+ // Message can be "sent" via a subsequent call to the sendMessage method!
+ } // __________________________________
+
+ /**
+ * Send the mail message associated with this instance.
+ * @throws MessagingException Unable to transport the message associated with this
+ * Email instance.
+ */
+ public void sendMessage() throws MessagingException {
+ Transport.send(this.getMailMessage());
+ }
+
+ /**
+ * Get the {@link MimeMessage mail message} associated with this EsbMail
+ * instance.
+ * @return The mailMessage property value.
+ */
+ public MimeMessage getMailMessage() throws MessagingException {
+ if (this.mailMessage == null){
+ this.mailMessage = this.createMailMessage(this.oMailSess);
+ }
+ return mailMessage;
+ }
+
+ /**
+ * @return Returns the attachments.
+ */
+ public String[] getAttachments() {
+ return this.attachments;
+ }
+
+ /**
+ * @param attachments The attachments to set.
+ */
+ public void setAttachments(String[] attachments) {
+ this.attachments = attachments;
+ }
+
+ /**
+ * @return Returns the copyTo.
+ */
+ public String getCopyTo() {
+ return this.copyTo;
+ }
+
+ /**
+ * @param copyTo The copyTo to set.
+ */
+ public void setCopyTo(String copyTo) {
+ this.copyTo = copyTo;
+ }
+
+ /**
+ * @return Returns the from.
+ */
+ public String getFrom() {
+ return this.from;
+ }
+
+ /**
+ * @param from The from to set.
+ */
+ public void setFrom(String from) {
+ this.from = from;
+ }
+
+ /**
+ * @return Returns the sendTo.
+ */
+ public String getSendTo() {
+ return this.sendTo;
+ }
+
+ /**
+ * @param sendTo The sendTo to set.
+ */
+ public void setSendTo(String sendTo) {
+ this.sendTo = sendTo;
+ }
+
+ /**
+ * @return Returns the subject.
+ */
+ public String getSubject() {
+ return this.subject;
+ }
+
+ /**
+ * @param subject The subject to set.
+ */
+ public void setSubject(String subject) {
+ this.subject = subject;
+ }
+
+ /**
+ * @return Returns the message.
+ */
+ public String getMessage() {
+ return this.message;
+ }
+
+ /**
+ * @param message The message to set.
+ */
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ /**
+ * Create the mail message instance to be {@link #sendMessage() sent}.
+ * @param p_oMessageParms <a href="p_oMessageParms">Message parameters.</a>.
+ * @param oMailSess Mail session on which the message is to be transported.
+ * @return The message.
+ * @throws AddressException
+ * @throws MessagingException
+ */
+ private MimeMessage createMailMessage(Session oMailSess) throws AddressException, MessagingException {
+ MimeMessage oMessage = new MimeMessage(oMailSess);
+
+ // Populate the message with the data supplied in the p_oMessageParms ConfigTree.
+ addMessageAddressing(oMessage);
+ addMessageSubject( oMessage);
+ addMessageContent(oMessage);
+
+ return oMessage;
+ }
+
+ /**
+ * Add the message addressing information to the message.
+ * @param p_oMessageParms <a href="p_oMessageParms">Message parameters.</a>.
+ * @param oMessage The message.
+ * @throws AddressException
+ * @throws MessagingException
+ */
+ private void addMessageAddressing(MimeMessage oMessage) throws AddressException, MessagingException {
+ InternetAddress oFrom = new InternetAddress(this.from);
+
+ oMessage.setFrom(oFrom);
+ oMessage.setReplyTo(new Address[] { oFrom });
+ InternetAddress[] oaTo =
+ InternetAddress.parse(this.sendTo);
+
+ for (int i1 = 0; i1 < oaTo.length; i1++) {
+ oMessage.addRecipient(MimeMessage.RecipientType.TO, oaTo[i1]);
+ }
+
+ if (null != this.copyTo) {
+ oaTo = InternetAddress.parse(this.copyTo);
+ for (int i1 = 0; i1 < oaTo.length; i1++) {
+ oMessage.addRecipient(MimeMessage.RecipientType.CC, oaTo[i1]);
+ }
+ }
+ }
+
+ /**
+ * Add the message Subject to the message.
+ * @param p_oMessageParms <a href="p_oMessageParms">Message parameters.</a>.
+ * @param oMessage The message.
+ * @throws MessagingException
+ */
+ private void addMessageSubject(MimeMessage oMessage) throws MessagingException {
+ if (null != this.subject) {
+ oMessage.setSubject(this.subject);
+ }
+ }
+
+ /**
+ * Add the message content (body, attachments etc) to from the
+ * message parameters to the message.
+ * @param p_oMessageParms <a href="p_oMessageParms">Message parameters.</a>.
+ * @param oMessage The message.
+ * @throws MessagingException
+ */
+ private void addMessageContent(MimeMessage oMessage) throws MessagingException {
+ BodyPart oBodyP = new MimeBodyPart();
+ Multipart oMultiP = new MimeMultipart();
+
+ oMultiP.addBodyPart(oBodyP);
+ oMessage.setContent(oMultiP);
+ if (null == this.message) {
+ this.message = "";
+ }
+ oBodyP.setText(this.message + "\n");
+
+
+ if (null != attachments) {
+ for (int i1 = 0; i1 < this.attachments.length; i1++) {
+ oMultiP.addBodyPart(oBodyP = new MimeBodyPart());
+ String sFile = this.attachments[i1];
+ oBodyP.setDataHandler(new DataHandler(new FileDataSource(sFile)));
+ oBodyP.setFileName(sFile.substring(1 + sFile.lastIndexOf("\\")));
+ }
+ }
+ }
+
+ /**
+ * Initialise an authenticated {@link javax.mail.Session} with the mail server.
+ * @return The {@link javax.mail.Session}.
+ */
+ private Session initMailServerSession() {
+ Authenticator oAuth = null;
+ String sSmtpUser = Configuration.getSmtpUsername();
+
+ if (! Util.isNullString(sSmtpUser)) {
+ oAuth = new MyAuth(sSmtpUser, Configuration.getSmtpPassword());
+ }
+
+ Properties oMailP = new Properties();
+ oMailP.setProperty("mail.smtp.host", Configuration.getSmtpHost());
+ String sAuth = Configuration.getSmtpAuth();
+ if(sAuth != null) {
+ if(!sAuth.trim().equals("")) {
+ logger.warn("'" + Environment.SMTP_AUTH + "' set to an empty value.");
+ }
+ oMailP.setProperty("mail.smtp.auth", sAuth);
+ }
+
+ try {
+ String sPort = Configuration.getSmtpPort();
+ this.from = Configuration.getSmtpFrom();
+ Integer.parseInt(sPort);
+ oMailP.setProperty("mail.smtp.port", sPort);
+ }
+ catch (Exception e) { /* OK just leave standard port */ }
+
+ logger.info("Initialising mail server sesson. Properties: " + oMailP);
+ javax.mail.Session oMailSess = javax.mail.Session.getDefaultInstance(oMailP, oAuth);
+
+ return oMailSess;
+ }
+
+ /**
+ * Method parsing filename from a string containing a comma separated list of filenames
+ * @param attachments the string containing the comma separated list of filenames
+ * @return a String array containing an entry for every filename in the given comma separated list
+ */
+ @SuppressWarnings("unused")
+ private String[] getFileNamesAsArray(String attachments) {
+ if (attachments.indexOf(',') != -1){
+ StringTokenizer st = new StringTokenizer(attachments,",");
+ String[] attachmentFileNames = new String[st.countTokens()];
+ int index = 0;
+ while (st.hasMoreTokens()) {
+ attachmentFileNames[index] = st.nextToken();
+ index++;
+ }
+ return attachmentFileNames;
+ }
+ return new String[]{attachments};
+ }
+
+ private class MyAuth extends Authenticator {
+ private String m_sUser, m_sPwd;
+
+ private MyAuth(String p_sU, String p_sP) {
+ m_sUser = p_sU;
+ m_sPwd = p_sP;
+ }
+
+ protected PasswordAuthentication getPasswordAuthentication() {
+ return new PasswordAuthentication(m_sUser, m_sPwd);
+ } // ________________________________
+ } // ______________________________________________________
+
+} // ____________________________________________________________________________
+
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/Email.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/KeyValuePair.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/KeyValuePair.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/KeyValuePair.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,163 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.helpers;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class KeyValuePair implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ private String mKey, mVal;
+
+ public KeyValuePair(String pKey, String pVal) {
+ if(pKey == null || pKey.trim().equals("")) {
+ throw new IllegalArgumentException("null or empty 'pKey' arg in call.");
+ }
+
+ mKey = pKey;
+ mVal = pVal;
+ }
+
+ public String getKey() {
+ return mKey;
+ }
+
+ public String getValue() {
+ return mVal;
+ }
+
+ public String toString() {
+ return mVal;
+ }
+
+ public String dump() {
+ return "KVpair[" + mKey + "=" + mVal + "]";
+ }
+
+ /**
+ * Get the value associated with the specified key from the supplied list of Key Value Pairs.
+ * <p/>
+ * Returns the value from the first matching key.
+ * @param key The key to search for.
+ * @param list The list of KeyValuePairs to search.
+ * @return The value associated with the supplied key, or null if key not found.
+ */
+ public static String getValue(String key, List<KeyValuePair> list) {
+ if(key == null) {
+ throw new IllegalArgumentException("null 'key' arg in call.");
+ }
+ if(list == null) {
+ throw new IllegalArgumentException("null 'list' arg in call.");
+ }
+
+ for(KeyValuePair kvp : list) {
+ if(kvp.mKey.equals(key)) {
+ return kvp.mVal;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Get the value associated with the specified key from the supplied list of Key Value Pairs.
+ * <p/>
+ * Returns the value from the first matching key.
+ * @param key The key to search for.
+ * @param list The list of KeyValuePairs to search.
+ * @param defaultVal The default value to be returned where there's no value available for the specified key.
+ * @return The value associated with the supplied key, or null if key not found.
+ */
+ public static String getValue(String key, List<KeyValuePair> list, String defaultVal) {
+ String value = getValue(key, list);
+
+ if(value == null) {
+ return defaultVal;
+ }
+
+ return value;
+ }
+
+ /**
+ * Get the boolean equivalent value associated with the specified key
+ * from the supplied list of Key Value Pairs.
+ * <p/>
+ * Returns:
+ * <ul>
+ * <li><b><code>true</code></b>: If value equals "true" or "yes" or "y" (ignoring case).</li>
+ * <li><b><code>false</code></b>: If value equals "false" or "no" or "n" (ignoring case).</li>
+ * <li><b><i>defaultVal</i></b>: If none of the above hold true.</li>
+ * </ul>
+ * <p/>
+ * Returns the value from the first matching key.
+ * @param key The key to search for.
+ * @param list The list of KeyValuePairs to search.
+ * @param defaultVal The default value to be returned where the above listed conditions do not hold
+ * for the associated value, or the value is not specified.
+ * @return The boolean equivalent value associated with the specified key according to the above specified
+ * rules, otherwise the <b><i>defaultVal</i></b> is returned.
+ */
+ public static boolean getBooleanValue(String key, List<KeyValuePair> list, boolean defaultVal) {
+ String value = getValue(key, list);
+
+ if(value == null) {
+ return defaultVal;
+ }
+
+ if(value.equalsIgnoreCase("true") || value.equalsIgnoreCase("y") || value.equalsIgnoreCase("yes")) {
+ return true;
+ } else if(value.equalsIgnoreCase("false") || value.equalsIgnoreCase("n") || value.equalsIgnoreCase("no")) {
+ return false;
+ } else {
+ return defaultVal;
+ }
+ }
+
+ /**
+ * Get the numeric <code>double</code> equivalent value associated with the specified key
+ * from the supplied list of Key Value Pairs.
+ * <p/>
+ * Returns the value from the first matching key.
+ * @param key The key to search for.
+ * @param list The list of KeyValuePairs to search.
+ * @param defaultVal The default value to be returned where the value is not found or is non-numeric.
+ * @return The <code>double</code> equivalent value associated with the specified key if the value is found
+ * and is numeric, otherwise the <b><i>defaultVal</i></b> is returned.
+ */
+ public static double getDoubleValue(String key, List<KeyValuePair> list, double defaultVal) {
+ String value = getValue(key, list);
+
+ if(value == null) {
+ return defaultVal;
+ }
+
+ try {
+ return Double.parseDouble(value);
+ } catch(NumberFormatException e) {
+ // return the default...
+ }
+
+ return defaultVal;
+ }
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/KeyValuePair.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/JdbcCleanConn.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/JdbcCleanConn.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/JdbcCleanConn.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,177 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.helpers.persist;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.sql.DataSource;
+
+import org.apache.log4j.Logger;
+
+public class JdbcCleanConn {
+ private DataSource m_oDS = null;
+
+ private Connection m_conn = null;
+
+ protected List<PreparedStatement> m_olPrepSt = new ArrayList<PreparedStatement>();
+
+ protected Logger m_oLogger;
+
+ public JdbcCleanConn(DataSource p_oDS) throws Exception {
+ m_oDS = p_oDS;
+ m_oLogger = Logger.getLogger(this.getClass());
+ }
+
+ public void commit() throws Exception {
+ if (null != m_conn) {
+ m_conn.commit();
+ }
+ }
+
+ public void rollback() throws Exception {
+ if (null != m_conn) {
+ m_conn.rollback();
+ }
+ }
+
+ public void release() {
+ if (null != m_conn) {
+ try {
+ m_conn.rollback();
+ } catch (Exception eRoll) {
+ }
+
+ for (PreparedStatement PS : m_olPrepSt)
+ try {
+ PS.close();
+ } catch (Exception e) {
+ }
+ try {
+ m_conn.close();
+ } catch (Exception e1) {
+ }
+ }
+ m_olPrepSt.clear();
+ m_conn = null;
+ } // __________________________________
+
+ public PreparedStatement prepareStatement(String p_sSt, int p_i1, int p_i2)
+ throws Exception {
+ if (null == m_conn) {
+ connect();
+ }
+ PreparedStatement PS = m_conn.prepareStatement(p_sSt, p_i1, p_i2);
+ m_olPrepSt.add(PS);
+ return PS;
+ } // __________________________________
+
+ public PreparedStatement prepareStatement(String p_sSt) throws Exception {
+ if (null == m_conn) {
+ connect();
+ }
+
+ PreparedStatement PS = m_conn.prepareStatement(p_sSt);
+ m_olPrepSt.add(PS);
+ return PS;
+ } // __________________________________
+
+ public ResultSet execQueryWait(PreparedStatement p_PS, int p_iQtry) throws Exception {
+ if (null == m_conn) {
+ connect();
+ }
+
+ Exception eRet = null;
+ int iQtry = (p_iQtry < 1) ? 1 : (p_iQtry < 50) ? p_iQtry : 50;
+ for (int i1 = 0; i1 < iQtry; i1++) {
+ try {
+ return p_PS.executeQuery();
+ } catch (Exception e) {
+ if (null == eRet)
+ eRet = new Exception(e.getMessage());
+ // System.out.println("Retrying "+i1);
+ Thread.sleep(100 + (new Double(100 * Math.random()))
+ .longValue());
+ }
+ }
+ m_oLogger.error("execQueryWait() FAILED", eRet);
+ throw eRet;
+ } // __________________________________
+
+ public void execUpdWait(PreparedStatement p_PS, int p_iQtry) throws Exception {
+ if (null == m_conn) {
+ connect();
+ }
+
+ Exception eRet = null;
+ int iQtry = (p_iQtry < 1) ? 1 : (p_iQtry < 50) ? p_iQtry : 50;
+ for (int i1 = 0; i1 < iQtry; i1++) {
+ try {
+ p_PS.executeUpdate();
+ return;
+ } catch (Exception e) {
+ if (null == eRet)
+ eRet = e;
+ // System.out.println("Retrying "+i1);
+ Thread.sleep(100 + (new Double(100 * Math.random()))
+ .longValue());
+ }
+ }
+ m_oLogger.error("execUpdWait() FAILED", eRet);
+ throw eRet;
+ } // __________________________________
+
+ private void connect() throws Exception {
+ if(m_conn != null) {
+ return;
+ }
+
+ Exception eRet = null;
+ for (int i1 = 0; i1 < 5; i1++) {
+ try {
+ m_conn = m_oDS.getConnection();
+ eRet = null;
+ break;
+ } catch (Exception e) {
+ if (null == eRet)
+ eRet = e;
+ System.out.println("Connecting " + i1);
+ Thread.sleep(2000 + (new Double(100 * Math.random()))
+ .longValue());
+ }
+ }
+ if (null != eRet) {
+ m_oLogger.error("connect() FAILED", eRet);
+ throw eRet;
+ }
+ m_conn.setAutoCommit(false);
+ m_conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
+
+ m_olPrepSt.clear();
+
+ } // __________________________________
+
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/JdbcCleanConn.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SimpleDataSource.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SimpleDataSource.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SimpleDataSource.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,142 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.helpers.persist;
+
+import java.io.PrintWriter;
+import java.sql.Connection;
+import java.sql.DriverManager;
+
+import javax.sql.DataSource;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+/**
+ * <p>
+ * Obtain a connection that implements the DataSource interface
+ * </p>
+ * <p>
+ * Description: Enable compatible use of JdbcCleanConn from outside a J2EE app
+ * container
+ * </p>
+ *
+ * @version 1.0
+ * @see JdbcCleanConn
+ * @see ConfigTree
+ */
+public class SimpleDataSource implements DataSource {
+ private PrintWriter m_oPW = new PrintWriter(System.out);
+
+ private int m_iTO = 10;
+
+ private String m_sUrl, m_sUsr, m_sPwd;
+
+ private Connection m_oConn;
+
+ public static final String DRIVER = "driver-class";
+
+ public static final String URL = "connection-url";
+
+ public static final String USER = "user-name";
+
+ public static final String PASSWORD = "password";
+
+ private SimpleDataSource() {
+ }
+
+ /**
+ * Obtain a DataSource by providing connection parameters. ConfigTree
+ * argument must contain the following attributes
+ * <p>
+ * <li> driver-class</li>
+ * <li> connection-url</li>
+ * <li> user-name</li>
+ * <li> password</li>
+ * </p>
+ *
+ * @param p_oP
+ * ConfigTree - Parameter tree that contains the 4 attributes
+ * needed
+ * @throws Exception
+ * @see ConfigTree
+ * @see SimpleDataSource#SimpleDataSource(String,String,String,String)
+ * @see javax.sql.DataSource
+ */
+ public SimpleDataSource(ConfigTree p_oP) throws Exception {
+ this(p_oP.getAttribute(DRIVER), p_oP.getAttribute(URL), p_oP.getAttribute(USER), p_oP
+ .getAttribute(PASSWORD));
+ } // ________________________________
+
+ /**
+ * Obtain a connection to a DB using the provided arguments to call
+ *
+ * @param p_sDriver
+ * String - Java class of the JDBC driver to use (e.g.
+ * org.postgresql.Driver)
+ * @param p_sDbURL
+ * String - The URL of the database (e.g.
+ * jdbc:postgresql://chodedb1:5432/cq3)
+ * @param p_sUsr
+ * String - Username
+ * @param p_sPwd
+ * String - Password
+ * @throws Exception
+ * @see DriverManager#getConnection(String,String,String)
+ * @see javax.sql.DataSource
+ */
+ public SimpleDataSource(String p_sDriver, String p_sDbURL, String p_sUsr,
+ String p_sPwd) throws Exception {
+ Class.forName(p_sDriver);
+ m_sUrl = p_sDbURL;
+ getConnection(p_sUsr, p_sPwd);
+ } // ________________________________
+
+ public Connection getConnection() {
+ return m_oConn;
+ }
+
+ public Connection getConnection(String username, String password) {
+ m_sUsr = username;
+ m_sPwd = password;
+ try {
+ m_oConn = DriverManager.getConnection(m_sUrl, m_sUsr, m_sPwd);
+ } catch (Exception e) {
+ m_oConn = null;
+ }
+ return m_oConn;
+ } // ________________________________
+
+ public int getLoginTimeout() {
+ return m_iTO;
+ }
+
+ public PrintWriter getLogWriter() {
+ return m_oPW;
+ }
+
+ public void setLoginTimeout(int seconds) {
+ m_iTO = seconds;
+ }
+
+ public void setLogWriter(PrintWriter out) {
+ m_oPW = out;
+ }
+} // ______________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SimpleDataSource.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SqlDbTable.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SqlDbTable.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SqlDbTable.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,180 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.helpers.persist;
+
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
+import java.sql.SQLException;
+
+public abstract class SqlDbTable {
+ protected String m_sTableName;
+
+ protected SqlField[] m_oaFields;
+
+ protected PreparedStatement[] m_oaPS;
+
+ private JdbcCleanConn m_oConn;
+
+ public JdbcCleanConn getConn() {
+ return m_oConn;
+ }
+
+ public final String getTableName() {
+ return m_sTableName;
+ }
+
+ public final SqlField[] getAllFields() {
+ return m_oaFields;
+ }
+
+ private String m_sInsertSql, m_sUpdateSql, m_sDeleteSql;
+
+ protected String m_sSelectSql;
+
+ public SqlDbTable(JdbcCleanConn p_oC, String p_sTblNm) throws Exception {
+ m_oConn = p_oC;
+ m_sTableName = p_sTblNm;
+ initFields();
+ } // ________________________________
+
+ public abstract int setInsValues(PreparedStatement p_PS, Object bobj)
+ throws Exception;
+
+ public abstract Object getFromRS(ResultSet p_oRS) throws Exception;
+
+ protected abstract String getSelectFields();
+
+ public String getFldName(int p_i) {
+ return (null == m_oaFields) ? null : (p_i < 0) ? null
+ : (p_i >= m_oaFields.length) ? null : m_oaFields[p_i]
+ .getFieldName();
+ } // ________________________________
+
+ public String getSelectStatement() {
+ if (m_sSelectSql != null)
+ return m_sSelectSql;
+ StringBuffer sb = new StringBuffer("select ").append(getSelectFields());
+ m_sSelectSql = sb.append(" from ").append(getTableName()).toString();
+ return m_sSelectSql;
+ } // ________________________________
+
+ public String getInsertStatement() {
+ if (m_sInsertSql != null)
+ return m_sInsertSql;
+
+ StringBuffer sb = new StringBuffer(256);
+ sb.append("insert into ").append(getTableName());
+
+ sb.append(" values (");
+ for (int i = 0; i < m_oaFields.length; i++)
+ ((i < 1) ? sb : sb.append(",")).append('?');
+ sb.append(')');
+
+ return (m_sInsertSql = sb.toString());
+ } // ________________________________
+
+ public String getUpdateStatement() {
+ if (m_sUpdateSql != null)
+ return m_sUpdateSql;
+
+ StringBuffer sb = new StringBuffer(256);
+ sb.append("update ").append(getTableName()).append(" set ");
+
+ StringBuffer sbWhere = new StringBuffer(" where ");
+
+ int iVal = 0;
+ int iWh = 0;
+ for (int i = 0; i < m_oaFields.length; i++) {
+ SqlField oCurr = m_oaFields[i];
+ if (oCurr.isPrimaryKey())
+ ((iWh++ < 1) ? sbWhere : sbWhere.append(" and ")).append(
+ oCurr.getFieldName()).append(" = ?");
+ else
+ ((iVal++ < 1) ? sb : sb.append(",")).append(
+ oCurr.getFieldName()).append(" = ?");
+ }
+ sb.append(sbWhere);
+
+ return (m_sUpdateSql = sb.toString());
+ } // ________________________________
+
+ public String getDeleteStatement() {
+ if (m_sDeleteSql != null)
+ return m_sDeleteSql;
+
+ StringBuffer sb = new StringBuffer(256);
+ sb.append("delete from ").append(getTableName()).append(" where ");
+
+ int iWh = 0;
+ for (int i = 0; i < m_oaFields.length; i++) {
+ SqlField oCurr = m_oaFields[i];
+ if (!oCurr.isPrimaryKey())
+ continue;
+ ((iWh++ < 1) ? sb : sb.append(" and "))
+ .append(oCurr.getFieldName()).append(" = ?");
+ }
+
+ return (m_sDeleteSql = sb.toString());
+ } // ________________________________
+
+ public void setObject(PreparedStatement p_PS, int p_iFld, Object p_sFldVal)
+ throws SQLException {
+ if (null != p_sFldVal)
+ if (p_sFldVal instanceof String) {
+ String sTr = ((String) p_sFldVal).trim();
+ p_sFldVal = (sTr.length() > 0) ? sTr : null;
+ }
+ ;
+ int iSqlIdx = 1 + p_iFld;
+ if (null == p_sFldVal)
+ p_PS.setNull(iSqlIdx, m_oaFields[p_iFld].getSqlType());
+ else
+ p_PS.setObject(iSqlIdx, p_sFldVal);
+ } // ________________________________
+
+ public void setLong(PreparedStatement p_PS, int p_iFld, long p_lVal)
+ throws SQLException {
+ p_PS.setLong(1 + p_iFld, p_lVal);
+ } // ________________________________
+
+ public void setInt(PreparedStatement p_PS, int p_iFld, int p_iVal)
+ throws SQLException {
+ p_PS.setInt(1 + p_iFld, p_iVal);
+ } // ________________________________
+
+ private void initFields() throws Exception {
+ PreparedStatement PS = m_oConn.prepareStatement(getSelectStatement());
+
+ ResultSetMetaData MD = m_oConn.execQueryWait(PS, 3).getMetaData();
+ m_oaFields = new SqlField[MD.getColumnCount()];
+ for (int i1 = 0; i1 < m_oaFields.length; i1++) {
+ int iCol = 1 + i1;
+ String sFN = MD.getColumnName(iCol);
+ Class oCL = Class.forName(MD.getColumnClassName(iCol));
+ int iTP = MD.getColumnType(iCol);
+ int iSZ = MD.getColumnDisplaySize(iCol);
+ m_oaFields[i1] = new SqlField(sFN, oCL, iTP, iSZ, false);
+ }
+ PS.close();
+ } // ________________________________
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SqlDbTable.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SqlField.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SqlField.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SqlField.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,83 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.helpers.persist;
+
+public class SqlField {
+ private int m_sqlType;
+
+ private Class m_javaType;
+
+ private int m_sqlLength;
+
+ private String m_fieldName;
+
+ private boolean m_primaryKey;
+
+ public SqlField(String pFldName, Class pJavaType, int pSqlType,
+ int pFieldLength, boolean pk) {
+ m_fieldName = pFldName;
+ m_javaType = pJavaType;
+ m_sqlType = pSqlType;
+ m_sqlLength = pFieldLength;
+ m_primaryKey = pk;
+ }
+
+ public int getSqlType() {
+ return m_sqlType;
+ }
+
+ public Class getJavaType() {
+ return m_javaType;
+ }
+
+ public int getSqlLength() {
+ return this.m_sqlLength;
+ }
+
+ public String getFieldName() {
+ return this.m_fieldName;
+ }
+
+ public boolean isPrimaryKey() {
+ return this.m_primaryKey;
+ }
+
+ public void setSqlType(int pSqlType) {
+ m_sqlType = pSqlType;
+ }
+
+ public void setJavaType(Class pJavaType) {
+ m_javaType = pJavaType;
+ }
+
+ public void setSqlLength(int pSqlLength) {
+ m_sqlLength = pSqlLength;
+ }
+
+ public void setFieldName(String pFieldName) {
+ m_fieldName = pFieldName;
+ }
+
+ public void setPrimaryKey(boolean pPrimaryKey) {
+ m_primaryKey = pPrimaryKey;
+ }
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SqlField.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Attachment.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Attachment.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Attachment.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,110 @@
+package org.jboss.soa.esb.message;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/**
+ * Messages may contain attachments that do not appear in the main payload body.
+ * For example, binary document formats, zip files etc.
+ * <br/>Handles both 'named' attachment and a list of 'unnamed' attachments
+ *
+ * @author Mark Little
+ */
+
+public interface Attachment
+{
+ /**
+ * Returns the attachment to which this object maps the specified key.
+ * Returns null if the there's no value mapped for this key.
+ * @param name String - The name of the attachment to get
+ * @return Object - the value mapped to arg0 or <null> if none
+ */
+ Object get(String name);
+ /**
+ * Associates the specified value with the specified name
+ * If there was already a mapping for this name, the old value is replaced by
+ * arg1
+ * @param name String - the name for the object to be stored
+ * @param value Object - the object to be associated with the name (arg0)
+ * @return Object - previous value associated with specified name,
+ * or null if there was none
+ */
+ Object put(String name, Object value);
+ /**
+ * Removes the mapping for this name if it was present
+ * @param name String - the name of the object to be removed
+ * @return the value previously associated the name, or null if there was none
+ */
+ Object remove(String name);
+ /**
+ * @return String[] - the list of names of the named Objects
+ */
+ String[] getNames();
+
+ /**
+ * get the item at the specified position in the list of unnamed objects
+ * @param index int - index of element to return
+ * @return Object the element at the specified position in the list of unnamed objects
+ * @throws IndexOutOfBoundsException - if the index is out of range
+ */
+ Object itemAt (int index) throws IndexOutOfBoundsException;
+ /**
+ * Removes the element at the specified position in the list of unnamed objects
+ * Shifts any subsequent elements to the left
+ * @param index int - index of element to remove
+ * @return Object - the element that was removed from the list
+ * @throws IndexOutOfBoundsException - if the index is out of range
+ */
+ Object removeItemAt (int index) throws IndexOutOfBoundsException;
+ /**
+ * Replaces the element at the specified position in the list of unnamed objects
+ * with the value supplied
+ * @param index int - index of element to be replaced
+ * @param value Object - the object to replace the one previously stored at that index
+ * @return Object - previous value at that index
+ * @throws IndexOutOfBoundsException - if the index is out of range
+ */
+ Object replaceItemAt(int index, Object value) throws IndexOutOfBoundsException;
+ /**
+ * Appends the specified element to the end of the list of unnamed objects
+ * <br/>null values are allowed
+ * @param value Object - the object to be appended
+ */
+ void addItem (Object value);
+ /**
+ * Replaces the element at the specified position in the list of unnamed objects
+ * <br/> allows null values
+ * @param index int - index where to insert the value - Shifts any subsequent elements to the right
+ * @param value Object - value to be stored at the specified position
+ * @throws IndexOutOfBoundsException
+ */
+ void addItemAt (int index, Object value) throws IndexOutOfBoundsException;
+ /**
+ * getUnnamedCount()
+ * @return the count of unnamed objects
+ */
+ int getUnnamedCount();
+ /**
+ * getNamedCount()
+ * @return the count of named objects
+ */
+ public int getNamedCount();
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Body.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Body.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Body.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,102 @@
+package org.jboss.soa.esb.message;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/**
+ * The message body holds arbitrary information which represents the
+ * payload as far as clients and services are concerned. A body may contain:
+ *
+ * (i) a byte array for arbitrary data. How that array is interpreted by the
+ * service is implementation specific and outside the scope of the ESB to
+ * enforce.
+ *
+ * (ii) a list of Objects of arbitrary types. How these objects are serialized
+ * to/from the message body when it is transmitted is up to the specific
+ * Object type. The plan is to add support for various TYPES of Object and the message
+ * implementation will use external adapters to externalize/internalize the Objects.
+ * Currently we only support Serializable objects.
+ */
+
+public interface Body
+{
+ // TODO error handling exceptions
+
+ /**
+ * Add the specified Object to the body.
+ *
+ * @param name the name of the object. MUST be unique within this body.
+ * @param value the Object to add.
+ */
+
+ public void add (String name, Object value);
+
+ /**
+ * Get the specified Object, or <code>null</code> if not present.
+ *
+ * @param name the name of the Object to retrieve.
+ * @return the Object.
+ */
+
+ public Object get (String name);
+
+ /**
+ * Remove the specified Object and return it, or <code>null</code> if not present.
+ *
+ * @param name the name of the Object to remove.
+ * @return the Object removed.
+ */
+
+ public Object remove (String name);
+
+ /**
+ * Set the byte content of the body.
+ *
+ * @param content the message bytes
+ */
+
+ public void setContents (byte[] content);
+
+ /**
+ * @return the byte content of the body.
+ */
+
+ public byte[] getContents ();
+
+ /**
+ * Replace this body instance with the one given.
+ *
+ * @param b the body to be replaced with.
+ */
+
+ public void replace (Body b);
+
+ /**
+ * Merge two bodies.
+ *
+ * @param b the body to be merged with.
+ */
+
+ public void merge (Body b);
+
+ // TODO replace an entry in the body
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Context.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Context.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Context.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,33 @@
+package org.jboss.soa.esb.message;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/**
+ * The context is the section of the message containing information such as session
+ * management, transaction information, security data etc. Entries in the context
+ * may be ordered.
+ */
+
+public interface Context
+{
+ // TODO add some methods!
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Fault.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Fault.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Fault.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,61 @@
+package org.jboss.soa.esb.message;
+
+import java.net.URI;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/**
+ * Faults may be returned from a service in response to receiving and acting upon messages.
+ * A fault consists of a unique code (MANDATORY) and a reason string (OPTIONAL).
+ */
+
+public interface Fault
+{
+ /**
+ * @return the unique code representing this fault.
+ */
+
+ public URI getCode ();
+
+ /**
+ * Set the unique code for this fault.
+ *
+ * @param code the code.
+ */
+
+ public void setCode (URI code);
+
+ /**
+ * @return a String representing the reason for the fault. Typically used for
+ * logging purposes.
+ */
+
+ public String getReason ();
+
+ /**
+ * Set the optional reason for this fault.
+ *
+ * @param reason the reason for the fault.
+ */
+
+ public void setReason (String reason);
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Header.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Header.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Header.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,45 @@
+package org.jboss.soa.esb.message;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+import org.jboss.soa.esb.addressing.Call;
+
+/**
+ * The message header. Contains such things as routing information.
+ */
+
+public interface Header
+{
+ /**
+ * @return get the Call information for this message.
+ */
+
+ public Call getCall ();
+
+ /**
+ * Set the call information for this message.
+ *
+ * @param call the information.
+ */
+
+ public void setCall (Call call);
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Message.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Message.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Message.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,92 @@
+package org.jboss.soa.esb.message;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+import java.net.URI;
+
+/**
+ * This is the basic internal core message abstraction. A message consists of the following
+ * components:
+ *
+ * Header: the header information contains information such as the destination EPR, the
+ * sender EPR, where the reply goes etc, i.e., general message-level functional information.
+ * Context: additional information to contextualise the message; for example, transaction or
+ * security data, the identity of the ultimate receiver, or HTTP-cookie like information.
+ * Body: the actual payload of the message.
+ * Fault: any fault information associated with the message.
+ * Attachment: any attachments associated with the message.
+ * Properties: any message specific properties.
+ *
+ * Each message, once created, has a corresponding element for these 5 components. That element
+ * may be empty (<b>NOT NULL</b>). The object representing the element can then be used to act
+ * on the corresponding data item in the message.
+ *
+ * @author Mark Little
+ *
+ */
+
+public interface Message
+{
+ /**
+ * @return get the header component of the message.
+ */
+
+ public Header getHeader ();
+
+ /**
+ * @return get the context component of the message.
+ */
+
+ public Context getContext ();
+
+ /**
+ * @return get the body component of the message.
+ */
+
+ public Body getBody ();
+
+ /**
+ * @return get any faults associated with the message. These should not
+ * be application level faults, but comms level.
+ */
+
+ public Fault getFault ();
+
+ /**
+ * @return get any message attachments.
+ */
+
+ public Attachment getAttachment ();
+
+ /**
+ * @return the type of this message.
+ */
+
+ public URI getType ();
+
+ /**
+ * @return Properties - any message properties.
+ */
+
+ public Properties getProperties ();
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Properties.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Properties.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/Properties.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,88 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author schifest at heuristica.com.ar
+ */
+
+package org.jboss.soa.esb.message;
+
+/**
+ * The message properties hold arbitrary information in the form of
+ * <String,Object> pairs
+ *
+ */
+
+public interface Properties
+{
+ /**
+ * getProperty(name)
+ *
+ * @param name
+ * String - name of property
+ * @return Object - the value stored under the specified name
+ */
+ public Object getProperty(String name);
+
+ /**
+ * getProperty(name,defaultVal)
+ *
+ * @param name
+ * String - name of property
+ * @param defaultVal
+ * Object - value to return if no value found
+ * @return Object - the value stored under the specified name
+ */
+ public Object getProperty(String name, Object defaultVal);
+
+ /**
+ * setProperty(name,value)
+ *
+ * @param name
+ * String - name of property to store
+ * @param value
+ * Object - value of property to store under specified name
+ * @return Object - the previous value of the specified name, or null if it
+ * did not have one
+ */
+ public Object setProperty(String name, Object value);
+
+ /**
+ * remove(name)
+ *
+ * @param name
+ * String - name of property to remove
+ * @return Object - the previous value of the specified name, or null if it
+ * did not have one
+ */
+ public Object remove(String name);
+
+ /**
+ * size()
+ *
+ * @return int - Returns the number of properties in this object
+ */
+ public int size();
+
+ /**
+ * getNames()
+ *
+ * @return String[] - containing the names of all properties
+ */
+ public String[] getNames();
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/format/MessageFactory.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/format/MessageFactory.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/format/MessageFactory.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,76 @@
+package org.jboss.soa.esb.message.format;
+
+import java.net.URI;
+
+import org.jboss.internal.soa.esb.message.format.MessageFactoryImpl;
+import org.jboss.soa.esb.message.Message;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/**
+ * You get a message of a specific type when you need it. Obviously that type may not be
+ * suitable for the service (hopefully you've got that contractual information a priori, but
+ * maybe not) and in which case some translation/transformation may be necessary.
+ *
+ * @author Mark Little
+ *
+ */
+
+public abstract class MessageFactory
+{
+ /**
+ * @return some default implementation.
+ */
+
+ public abstract Message getMessage ();
+
+ /**
+ * @param type the unique identifier representing the type of this message.
+ * @return the message, or <code>null</code> if no suitable plugin is available.
+ */
+
+ public abstract Message getMessage (URI type);
+
+ /**
+ * @param msg the message to convert.
+ * @param type the type of the message we want to convert to.
+ * @return a translated message, or <code>null</code> if no suitable plugin is available.
+ */
+
+ public abstract Message getMessage (Message msg, URI type);
+
+ /**
+ * Reload the plugins.
+ */
+
+ public abstract void reset ();
+
+ // TODO setters/getters for the plugin programmatically too.
+
+ public static MessageFactory getInstance ()
+ {
+ return theFactory;
+ }
+
+ private static final MessageFactory theFactory = new MessageFactoryImpl();
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/format/MessagePlugin.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/format/MessagePlugin.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/format/MessagePlugin.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,52 @@
+package org.jboss.soa.esb.message.format;
+
+import java.net.URI;
+
+import org.jboss.soa.esb.message.Message;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/**
+ * Used to plug in new message formats dynamically. Each plugin is responsible for
+ * returning a message implementation that knows how to serialize its state in a
+ * specific manner, e.g., XML or ASN.1.
+ *
+ * @author Mark Little
+ *
+ */
+
+public interface MessagePlugin
+{
+ public static final String MESSAGE_PLUGIN = "org.jboss.soa.esb.message.format.plugin";
+
+ /**
+ * @return the message instance.
+ */
+
+ public Message getMessage ();
+
+ /**
+ * @return the unique identifier for this message plugin.
+ */
+
+ public URI getType ();
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/format/MessageType.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/format/MessageType.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/message/format/MessageType.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,62 @@
+package org.jboss.soa.esb.message.format;
+
+import java.net.URI;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/**
+ * You get a message of a specific type when you need it. Obviously that type may not be
+ * suitable for the service (hopefully you've got that contractual information a priori, but
+ * maybe not) and in which case some translation/transformation may be necessary.
+ *
+ * @author Mark Little
+ *
+ */
+
+public abstract class MessageType
+{
+ /*
+ * DO NOT reorder this list. New types may be added as required.
+ */
+
+ public static URI JBOSS_XML = null;
+ public static URI JAVA_SERIALIZED = null;
+
+ public static URI DEFAULT_TYPE = null;
+
+ static
+ {
+ try
+ {
+ JBOSS_XML = new URI("urn:jboss:esb:message:type:JBOSS_XML");
+ JAVA_SERIALIZED = new URI("urn:jboss:esb:message:type:JAVA_SERIALIZED");
+
+ DEFAULT_TYPE = JBOSS_XML;
+ }
+ catch (Exception ex)
+ {
+ throw new ExceptionInInitializerError(ex.toString());
+ }
+
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotificationList.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotificationList.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotificationList.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,139 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.notification;
+
+import java.io.Serializable;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+/**
+ * Holds lists of NotificationTarget objects so that the
+ * NotificationHandler EJB behaviour can be controlled at runtime by
+ * client applications
+ * <p>
+ * Description: Objects of this class will hold a list of objects that extend
+ * the NotificationTarget base class. It's main purpose is to allow Rosetta
+ * users to configure lists of recipients of specific events, and request the
+ * NotificationHandler EJB to take care of triggering the events to each
+ * object specified as a child "target" element
+ * </p>
+ * <p>
+ * Author: Heuristica - Buenos Aires - Argentina
+ * </p>
+ *
+ * @version 1.0
+ */
+public class NotificationList extends ConfigTree {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Mnemonic name for the XML element name for the serialized form of objects
+ * of this class
+ */
+ public static final String ELEMENT = "NotificationList";
+
+ public static final String TYPE = "type";
+
+ public static final String CHILD_TGT = "target";
+
+ private String m_sType;
+
+ /**
+ * Instantiate an object according to the contents of <arg 1>
+ *
+ * @param p_oP
+ * ConfigTree - Parameter object containing the information
+ * needed to instantiate this object, including child elements
+ * named "target" that represent each individual
+ * NotificationTarget object
+ * @throws Exception -
+ * the getMessage() of the Exception explains the problem
+ */
+ public NotificationList(ConfigTree p_oP){
+ super(p_oP);
+ m_sType = p_oP.getAttribute(TYPE);
+ if (null != m_sType)
+ m_sType = m_sType.toLowerCase();
+ } // __________________________________
+
+ private NotificationTarget[] getTargets() throws Exception {
+ ConfigTree[] oaTgts = super.getChildren(CHILD_TGT);
+ NotificationTarget[] oaRet = new NotificationTarget[oaTgts.length];
+
+ for (int i1 = 0; i1 < oaRet.length; i1++) {
+ oaRet[i1] = NotificationTarget.fromParams(oaTgts[i1]);
+ }
+
+ return oaRet;
+ } // __________________________________
+
+ /**
+ * Invoke the sendNotification() method for all targets in the list. The
+ * method iterates along it's NotificationTarget child nodes and invokes the
+ * sendNotification() method with the same object to all of them
+ *
+ * @param p_o
+ * Object - The event to notify to all targets
+ * @throws Exception -
+ * use Exception.getMessage() at runtime
+ */
+ public void sendNotification(Serializable p_o) throws Exception {
+ NotificationTarget[] oaTgt = getTargets();
+
+ for (int i1 = 0; i1 < oaTgt.length; i1++) {
+ oaTgt[i1].sendNotification(p_o);
+ }
+ } // __________________________________
+
+ /**
+ * Is this an OK (success) NotificationList ?
+ *
+ * @return boolean - Yes, Attribute "type" of constructor parameters starts
+ * with "ok", OR there was no "type" attribute in the constructor
+ * <li>A NotificationList can be both OK and Error if no "type"
+ * attribute was specified at constructor time in the ConfigTree
+ * argument</li>
+ * @see ConfigTree#getAttr(String)
+ */
+ public boolean isOK() {
+ return (null == m_sType) ? true : m_sType.startsWith("ok");
+ }
+
+ /**
+ * Is this an Error (failure) NotificationList ?
+ *
+ * @return boolean - Yes, Attribute "type" of constructor parameters starts
+ * with "err", OR there was no "type" attribute in the constructor
+ * <li>A NotificationList can be both OK and Error if no "type"
+ * attribute was specified at constructor time in the ConfigTree
+ * argument</li>
+ * @see ConfigTree#getAttr(String)
+ */
+ public boolean isErr() {
+ return (null == m_sType) ? true : m_sType.startsWith("err");
+ }
+
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotificationList.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotificationTarget.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotificationTarget.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotificationTarget.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,107 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.notification;
+
+import java.lang.reflect.Constructor;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+/**
+ * Abstract class to define expected behaviour of all NotificationTargets and
+ * provide some common functionality to all of them
+ * <p>Description: </p>
+ * <p>Heuristica - Buenos Aires - Argentina</p>
+ * @version 1.0
+ */
+public abstract class NotificationTarget
+{
+ /**
+ * Derived classes must implement this method to do what has to be done to
+ * trigger that specific type of notification event
+ * @param p_o Object - The toString() method of this object will be the actual
+ * notification content
+ * @throws Exception - invoke Exception.getMessage() at runtime for this object
+ * @see ConfigTree
+ */
+ public abstract void sendNotification(java.io.Serializable p_o) throws Exception;
+
+ private static final String NOTIF_PFX = NotificationTarget.class.getPackage().getName();
+
+ public static final String PRM_NOTIF_CLASS = "class";
+
+ /**
+ * Common object to hold details of object's information - Each derived class
+ * will hold it's own needs
+ */
+ protected ConfigTree m_oParms;
+ /**
+ * Instantiate an empty NotificationTarget object
+ */
+ protected NotificationTarget() {}
+ /**
+ * Instantiate a NotificationTarget object with the information contained
+ * in <arg 1>
+ * @param p_oP ConfigTree - Holds details to instantiate this object
+ */
+ protected NotificationTarget (ConfigTree p_oP)
+ { m_oParms = p_oP;
+ } //__________________________________
+
+ /**
+ * A typical Factory.getInstance() method
+ * @param p_oP ConfigTree - Contents of this argument will determine the
+ * type (derived class) of NotificationTarget returned
+ * @throws Exception - Arg 1 does not contain a valid structure for currently
+ * implemented NotificationTarget subclasses - invoke Exception.getMessage() at
+ * runtime for details
+ * @return NotificationTarget - An object that instantiates the NotificationTarget
+ * abstract class
+ */
+ public static NotificationTarget fromParams (ConfigTree p_oP) throws Exception
+ { String sClass = p_oP.getAttribute(PRM_NOTIF_CLASS);
+ if (null==sClass) throw new Exception("Missing '"+PRM_NOTIF_CLASS
+ +"' attribute in parameters");
+ Class oCls = null;
+ try { oCls = Class.forName(NOTIF_PFX+"."+sClass); }
+ catch (Exception e)
+ { try { oCls = Class.forName(sClass); }
+ catch (Exception e1) {/* oCls will be null */}
+ }
+ if (null==oCls)
+ throw new Exception("Invalid class <"+sClass+">, or missing library");
+
+ Constructor oCons = null;
+ try { oCons = oCls.getConstructor(new Class[] {ConfigTree.class}); }
+ catch (Exception e) {}
+ if (null==oCons)
+ throw new Exception("No valid constructor "+sClass+"(ConfigTree)");
+
+ Object oRet = null;
+ try { oRet = oCons.newInstance(new Object[] {p_oP}); }
+ catch (Exception e) { e.printStackTrace();}
+ if (null==oRet || (! (oRet instanceof NotificationTarget)))
+ throw new Exception(sClass+" does not extend NotificationTarget");
+
+ return (NotificationTarget) oRet;
+ } //__________________________________
+} //____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotificationTarget.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyEmail.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyEmail.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyEmail.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,114 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.notification;
+
+import java.io.Serializable;
+
+import javax.mail.MessagingException;
+import javax.mail.internet.AddressException;
+import javax.mail.internet.InternetAddress;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.helpers.Email;
+import org.jboss.soa.esb.util.Util;
+
+/**
+ * This class will send an e-mail using the Email class
+ * <p>
+ * Description:
+ * </p>
+ * <p>
+ * Author: Heuristica - Buenos Aires - Argentina
+ * </p>
+ *
+ * @version 1.0
+ */
+public class NotifyEmail extends NotificationTarget {
+ /**
+ * Instantiate a NotifyEmail object using the information contained in
+ * <arg 1>
+ *
+ * @param p_oP
+ * ConfigTree - See attributes and structure needed for the
+ * Email() constructor - The MESSAGE attribute will
+ * be filled in at sendNotification(Serializable) time
+ * @throws Exception
+ * @see NotifyEmail#sendNotification(Serializable)
+ */
+ public NotifyEmail(ConfigTree p_oP) throws Exception {
+ super(p_oP);
+
+ String sAtt = (String) m_oParms.getAttribute(Email.FROM);
+ if (null != sAtt)
+ InternetAddress.parse(sAtt);
+
+ InternetAddress.parse(m_oParms.getAttribute(Email.SENDTO));
+
+ sAtt = (String) m_oParms.getAttribute(Email.COPYTO);
+ if (null != sAtt)
+ InternetAddress.parse(sAtt);
+ } // __________________________________
+
+ /**
+ * Send an Email using Email() using p_o.toString() to fill in the
+ * message text
+ *
+ * @param p_o
+ * Object - This object's toString() method will supply contents
+ * of mail message
+ */
+ public void sendNotification(Serializable p_o) {
+ try {
+ ConfigTree oP = m_oParms.cloneObj();
+ String sMsg = oP.getAttribute(Email.MESSAGE);
+ sMsg = ((null == sMsg) ? p_o.toString() : sMsg + "\n") + p_o.toString();
+ oP.setAttribute(Email.MESSAGE, sMsg);
+ sendEmailNotification(oP);
+ } catch (Exception e) {
+ Util.getDefaultLogger(this.getClass()).error("Send Mail Failed",
+ e);
+ e.printStackTrace();
+ }
+ } // __________________________________
+
+ /**
+ * Send an email notification based on the supplied parameters.
+ * <p/>
+ * This method allows overriding for test purposes.
+ * @param messageParams Message parameters.
+ */
+ protected void sendEmailNotification(ConfigTree messageParams) throws AddressException, MessagingException {
+
+ Email esbMail = new Email();
+ esbMail.setSendTo(messageParams.getAttribute(Email.SENDTO));
+ esbMail.setFrom(messageParams.getAttribute(Email.FROM));
+ esbMail.setCopyTo(messageParams.getAttribute(Email.COPYTO));
+ esbMail.setSubject(messageParams.getAttribute(Email.SUBJECT));
+
+ esbMail.setAttachments(messageParams.getTextChildren(Email.ATTACH));
+ esbMail.setMessage(messageParams.getAttribute(Email.MESSAGE));
+
+ esbMail.sendMessage();
+ }
+
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyEmail.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyFiles.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyFiles.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyFiles.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,197 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.notification;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.net.URI;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+/**
+ * Write the notification contents into a list of files specified in the
+ * constructor time parameters.
+ * <p>
+ * Description: The constructor searches for all child elements of the
+ * ConfigTree argument having "file" as element name, that will be used to store
+ * (or append) the contents of the argument to the sendNotification(Object)
+ * method, to each and every one of the files contained in the list
+ * </p>
+ * <p>
+ * Author: Heuristica - Buenos Aires - Argentina
+ * </p>
+ *
+ * @version 1.0
+ */
+public class NotifyFiles extends NotificationTarget {
+ /**
+ * Mnemonic for the child element name that hold the files to write ("file")
+ */
+ public static final String CHILD_FILE = "file";
+
+ /**
+ * Attribute name that will be interpreted as the URI of the file to write
+ * to
+ */
+ public static final String ATT_URI = "URI";
+
+ /**
+ * Attribute name of indicator to append to an existing file
+ *
+ * @see Boolean#valueOf(String)
+ */
+ public static final String ATT_APPEND = "append";
+
+ /**
+ * The NotificationFile[] that holds the output file list.
+ */
+ protected NotificationFile[] m_oaOutF;
+
+ /**
+ * Instantiate a NotifyFiles object according to contents of <arg 1>
+ *
+ * @param p_oP
+ * ConfigTree - Should contain a nonempty set of child elements
+ * with elementName="file". Each child element must have a "URI"
+ * attribute and optionally a "append" element
+ * @throws Exception
+ */
+ public NotifyFiles(ConfigTree p_oP) throws Exception {
+ super(p_oP);
+ setFiles(p_oP.getChildren(CHILD_FILE));
+
+ } // __________________________________
+
+ /**
+ * Sets the value of m_oaOutF[] and m_baAppend[] to contents of each element
+ * of the input argument
+ *
+ * @param p_oaP
+ * ConfigTree[] - Each entry must have a "URI" attribute, and can
+ * have an optional "append" attribute
+ * @throws Exception -
+ * invoke Exception.getMessage() at runtime for details
+ * @see ConfigTree#getAttr(String)
+ */
+ protected void setFiles(ConfigTree[] p_oaP) throws Exception {
+ m_oaOutF = new NotificationFile[p_oaP.length];
+
+ for (int i = 0; i < p_oaP.length; i++) {
+ String fileURI = p_oaP[i].getAttribute(ATT_URI);
+ String append = p_oaP[i].getAttribute(ATT_APPEND);
+
+ if (null == fileURI) {
+ throw new IllegalArgumentException("Bad File Notification Configuration: Missing file URI attribute.");
+ }
+
+ try {
+ m_oaOutF[i] = new NotificationFile(new URI(fileURI), Boolean.valueOf(append));
+ } catch(Exception e) {
+ m_oaOutF[i] = new NotificationFile(fileURI, Boolean.valueOf(append));
+ }
+
+ // Make sure the parent folder exists...
+ if(!m_oaOutF[i].getParentFile().exists()) {
+ throw new IllegalArgumentException("Bad File Notification Configuration: Parent folder for file [" + m_oaOutF[i].getAbsolutePath() + "] doesn't exist.");
+ }
+ }
+ } // __________________________________
+
+ /**
+ * Writes the result of p_o into each one of the File objects contained in
+ * the m_oaOutF array
+ *
+ * @param p_o
+ * Object - This object's toString() results will be written to
+ * (appended to) each one of the files in m_oaOutF
+ * @see NotifyFiles#setFiles(ConfigTree[])
+ * @see NotifyFiles#m_oaOutF
+ */
+ public void sendNotification(Serializable p_o) {
+ FileOutputStream fileOutStream = null;
+ for (NotificationFile notificationFile : m_oaOutF) {
+ try {
+ fileOutStream = new FileOutputStream(notificationFile, notificationFile.append);
+ if (p_o instanceof String) {
+ stringNotification(fileOutStream, (String) p_o);
+ } else {
+ objectNotification(fileOutStream, p_o);
+ }
+ } catch (Exception e) { /* We do nothing here for the time being */
+ } finally {
+ try {
+ fileOutStream.close();
+ } catch (Exception eCl) {/*
+ * Unable to Close - What could we
+ * do
+ */
+ }
+ }
+ }
+ } // __________________________________
+
+ private void stringNotification(FileOutputStream p_oF, String p_s) {
+ try {
+ p_oF.write(p_s.getBytes());
+ if (!p_s.endsWith("\n"))
+ p_oF.write("\n".getBytes());
+ } catch (Exception e) { /* We do nothing here for the time being */
+ }
+ } // __________________________________
+
+ private void objectNotification(FileOutputStream p_oF, Object p_o) {
+ try {
+ ObjectOutputStream OS = new ObjectOutputStream(p_oF);
+ OS.writeObject(p_o);
+ } catch (Exception e) { /* We do nothing here for the time being */
+ }
+ } // __________________________________
+
+ /**
+ * Notification File.
+ * <p/>
+ * Simply adds the "append" property to the file.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ private class NotificationFile extends File {
+
+ private static final long serialVersionUID = 1L;
+ private boolean append = false;
+
+ private NotificationFile(URI fileURI, boolean append) {
+ super(fileURI);
+ this.append = append;
+ }
+
+ /**
+ * @param file
+ * @param append2
+ */
+ public NotificationFile(String file, boolean append) {
+ super(file);
+ this.append = append;
+ }
+ }
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyFiles.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyJMS.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyJMS.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyJMS.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,186 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.notification;
+
+import java.io.Serializable;
+import java.util.Iterator;
+import java.util.Properties;
+
+import javax.jms.Connection;
+import javax.jms.Message;
+import javax.jms.MessageProducer;
+import javax.jms.Session;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+/**
+ * Abstract class that defines the behaviour of NotifyQueues and NotifyTopics
+ * (and in fact any other javax.jms.Destination object), and provides common
+ * methods to derived classes
+ * <p>
+ * Description:
+ * </p>
+ * <p>
+ * Author: Heuristica - Buenos Aires - Argentina
+ * </p>
+ *
+ * @version 1.0
+ */
+public abstract class NotifyJMS extends NotificationTarget {
+ /**
+ * Abstract method - All classes that extend NotifyJMS must implement it
+ * according to their own javax.jms.Destination needs (Queue/Topic)
+ *
+ * @param p_oMsg
+ * Message
+ */
+ protected abstract void sendToAll(Message p_oMsg);
+
+ /**
+ * Element name mnemonic to search for child elements in the ConfigTree at
+ * constructor time, that will hold a "name" "value" pair to be included in
+ * the JMS message header
+ */
+ public static final String CHILD_MSG_PROP = "messageProp";
+
+ /**
+ * Attribute name mnemonic for the name of the message property to fill with
+ * contents of the "value" aattribute
+ */
+ public static final String ATT_PROP_NAME = "name";
+
+ /**
+ * Attribute name mnemonic for the value to assign to the corresponding
+ * message property
+ */
+ public static final String ATT_PROP_VALUE = "value";
+
+ /**
+ * Attribute name mnemonic for the att that will hold the JNDI name of the
+ * destination javax.jms.Destination object
+ */
+ public static final String ATT_DEST_NAME = "jndiName";
+
+ /**
+ * This object holds the JNDI naming context that will be used to obtain a
+ * JMS destination (javax.jms.Destination) to send/publish the notification
+ * at sendNotification() time
+ */
+ protected Context m_oCtx;
+
+ private Properties m_oProps = new Properties();
+
+ /**
+ * The javax.jms.Connection instance used to talk to JMS
+ */
+ protected Connection m_oConn;
+
+ /**
+ * The javax.jms.Session instance used to talk to JMS
+ */
+ protected Session m_oSess;
+
+ /**
+ * Array with an instance of javax.jms.MessageProducer on each entry that
+ * will be used to send the notification at sendNotification() time
+ */
+ protected MessageProducer[] m_oaMssProd;
+
+ /**
+ * Constructor that will be called by child classes to perform
+ * initialization tasks that are common to all derived classes
+ *
+ * @param p_oP
+ * ConfigTree
+ * <p>
+ * Will contain a variable number of "messageProp" child elements
+ * that will be added to messages sent to
+ * </p>
+ * @throws Exception
+ */
+ protected NotifyJMS(ConfigTree p_oP) throws Exception {
+ super(p_oP);
+
+ ConfigTree[] oaMsgP = p_oP.getChildren(CHILD_MSG_PROP);
+ for (int i1 = 0; i1 < oaMsgP.length; i1++) {
+ String sKey = oaMsgP[i1].getAttribute(ATT_PROP_NAME);
+ if (null == sKey)
+ continue;
+ String sVal = oaMsgP[i1].getAttribute(ATT_PROP_VALUE);
+ if (null == sVal)
+ continue;
+
+ m_oProps.setProperty(sKey.trim(), sVal);
+ }
+
+ m_oCtx = new InitialContext();
+
+ } // __________________________________
+
+ /**
+ * Performs an orderly release of all JMS resources utilized - Well behaved
+ * developers should always call this method before unreferencing this
+ * object
+ */
+ public void release() {
+ if (null != m_oSess)
+ try {
+ m_oSess.close();
+ } catch (Exception e1) {
+ }
+ if (null != m_oConn)
+ try {
+ m_oConn.close();
+ } catch (Exception e2) {
+ }
+ } // __________________________________
+
+ /**
+ * Send a JMS message using p_o to fill in the message content and the list
+ * of message properties that will be added to the JMS message header fields
+ *
+ * @param p_o
+ * Object - This object or thie object's toString() method will
+ * supply contents of JMS message
+ * @see NotifyJMS#CHILD_MSG_PROP
+ */
+ public void sendNotification(Serializable p_o) throws Exception {
+ Message oMsg = null;
+
+ if (p_o instanceof String) {
+ oMsg = m_oSess.createTextMessage(p_o.toString());
+ } else {
+ oMsg = m_oSess.createObjectMessage((Serializable) p_o);
+ }
+
+ for (Iterator II = m_oProps.keySet().iterator(); II.hasNext();) {
+ String sKey = (String) II.next();
+ String sVal = m_oProps.getProperty(sKey);
+ oMsg.setStringProperty(sKey, sVal);
+ }
+ sendToAll(oMsg);
+ } // __________________________________
+
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyJMS.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyQueues.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyQueues.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyQueues.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,110 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.notification;
+
+import javax.jms.Message;
+import javax.jms.MessageProducer;
+import javax.jms.Queue;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueSender;
+import javax.jms.QueueSession;
+import javax.naming.NamingException;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+;
+
+/**
+ * This class that implements abstract methods defined in it's superclass
+ * <p>
+ * Description:
+ * </p>
+ * <p>
+ * Author: Heuristica - Buenos Aires - Argentina
+ * </p>
+ *
+ * @version 1.0
+ */
+public class NotifyQueues extends NotifyJMS {
+ /**
+ * Connection Factory JNDI name.
+ */
+ public static final String CONNECTION_FACTORY = "ConnectionFactory";
+ /**
+ * Element name mnemonic to search for child elements in the ConfigTree at
+ * constructor time, that will hold a "jndiName" attribute specifying the
+ * value to look up in the JNDI context in order to obtain a queue
+ *
+ * @see NotifyJMS#ATT_DEST_NAME
+ */
+ public static final String CHILD_QUEUE = "queue";
+
+ public NotifyQueues(ConfigTree p_oP) throws Exception {
+ super(p_oP);
+ setQueues(p_oP.getChildren(CHILD_QUEUE));
+ } // __________________________________
+
+ protected void setQueues(ConfigTree[] p_oaP) throws Exception {
+ QueueConnectionFactory qcf = lookupQueueConnectionFactory();
+ QueueConnection oQconn = qcf.createQueueConnection();
+ QueueSession oQsess = oQconn.createQueueSession(false,
+ QueueSession.AUTO_ACKNOWLEDGE);
+
+ m_oaMssProd = new MessageProducer[p_oaP.length];
+ for (int i1 = 0; i1 < p_oaP.length; i1++) {
+ String sAtt = p_oaP[i1].getAttribute(ATT_DEST_NAME);
+ if (null == sAtt)
+ throw new Exception("Missing queue jndiName");
+ Queue oQ = (Queue) m_oCtx.lookup(sAtt);
+ m_oaMssProd[i1] = oQsess.createSender(oQ);
+ }
+
+ m_oConn = oQconn;
+ m_oSess = oQsess;
+ // m_oConn.start(); Only for incoming messages ???
+ } // __________________________________
+
+ /**
+ * Get the {@link QueueConnectionFactory} to be used for this instance.
+ * <p/>
+ * Can be overridden for testing.
+ * @return The QueueConnectionFactory fro the JNDI context.
+ * @throws NamingException
+ */
+ protected QueueConnectionFactory lookupQueueConnectionFactory() throws NamingException {
+ // REVIEW: The connection factory name is hardcoded and is the same as that of the topic connection factory.
+ return (QueueConnectionFactory) m_oCtx.lookup(CONNECTION_FACTORY);
+ }
+
+ protected void sendToAll(Message p_oMsg) {
+ for (int i1 = 0; i1 < m_oaMssProd.length; i1++) {
+ QueueSender oCurr = (QueueSender) m_oaMssProd[i1];
+ try {
+ oCurr.send(p_oMsg);
+ } catch (Exception e) {
+ }
+ }
+ } // __________________________________
+
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyQueues.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifySqlTable.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifySqlTable.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifySqlTable.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,124 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.notification;
+
+import java.sql.PreparedStatement;
+import java.util.Properties;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.helpers.persist.JdbcCleanConn;
+import org.jboss.soa.esb.helpers.persist.SimpleDataSource;
+
+public class NotifySqlTable extends NotificationTarget {
+ public static final String CHILD_COLUMN = "column";
+
+ public static final String ATT_TABLE = "table";
+
+ public static final String ATT_DATA = "dataColumn";
+
+ public static final String ATT_NAME = "name";
+
+ public static final String ATT_VALUE = "value";
+
+ protected String m_sDriver, m_sURL, m_sUser, m_sPwd, m_sTable, m_sDataCol;
+
+ protected Properties m_oCols;
+
+ public NotifySqlTable(ConfigTree p_oP) throws Exception {
+ super(p_oP);
+ m_sDriver = getAttr(SimpleDataSource.DRIVER);
+ m_sURL = getAttr(SimpleDataSource.URL);
+ m_sUser = getAttr(SimpleDataSource.USER);
+ m_sPwd = getAttr(SimpleDataSource.PASSWORD);
+ m_sTable = getAttr(ATT_TABLE);
+ m_sDataCol = getAttr(ATT_DATA);
+
+ m_oCols = new Properties();
+ ConfigTree[] oaP = p_oP.getChildren(CHILD_COLUMN);
+ for (int i1 = 0; i1 < oaP.length; i1++) {
+ ConfigTree oCurr = oaP[i1];
+ String sCol = oCurr.getAttribute(ATT_NAME);
+ if (null == sCol) {
+ continue;
+ }
+ sCol = sCol.trim();
+ if (sCol.length() < 1) {
+ continue;
+ }
+ String sVal = oCurr.getAttribute(ATT_VALUE);
+ if (null == sVal) {
+ sVal = "";
+ }
+ m_oCols.setProperty(sCol, sVal);
+ }
+ } // __________________________________
+
+ private String getAttr(String p_sAtt) throws Exception {
+ String sRet = m_oParms.getAttribute(p_sAtt);
+ if (null == sRet) {
+ throw new Exception("Missing " + p_sAtt + " attribute");
+ }
+ sRet = sRet.trim();
+ if (p_sAtt.equals(SimpleDataSource.PASSWORD)) {
+ return sRet;
+ }
+ if (sRet.length() < 1) {
+ throw new Exception("Empty " + p_sAtt + " attribute");
+ }
+ return sRet;
+ } // __________________________________
+
+ public String getInsertStmt() {
+ String[] saCols = new String[m_oCols.size()];
+ m_oCols.keySet().toArray(saCols);
+
+ StringBuffer sbCol = new StringBuffer("insert into ").append(m_sTable).append(" ");
+ StringBuffer sbPrm = new StringBuffer(" values ");
+ for (int i1 = 0; i1 < saCols.length; i1++) {
+ String sIn = (i1 == 0) ? "(" : ",";
+ String sCurrCol = saCols[i1];
+ sbCol.append(sIn).append("\"").append(sCurrCol).append("\"");
+ sbPrm.append(sIn).append("'").append(m_oCols.getProperty(sCurrCol)).append("'");
+ // REVIEW: Does the value being inserted not need to be escaped e.g. what if it has a quote in its value??
+ }
+ return sbCol.append(")").append(sbPrm).append(")").toString();
+ } // __________________________________
+
+ public void sendNotification(java.io.Serializable p_o) {
+ m_oCols.setProperty(m_sDataCol, p_o.toString());
+ JdbcCleanConn oConn = null;
+ try {
+ oConn = new JdbcCleanConn(new SimpleDataSource(m_sDriver, m_sURL, m_sUser, m_sPwd));
+ PreparedStatement PS = oConn.prepareStatement(getInsertStmt());
+ oConn.execUpdWait(PS, 3);
+ oConn.commit();
+ } catch (Exception e) {
+ e.printStackTrace(System.err);
+ } finally {
+ if (null != oConn) {
+ oConn.release();
+ }
+ }
+ } // __________________________________
+
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifySqlTable.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyTopics.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyTopics.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyTopics.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,78 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.notification;
+
+import javax.jms.Message;
+import javax.jms.MessageProducer;
+import javax.jms.Topic;
+import javax.jms.TopicConnection;
+import javax.jms.TopicConnectionFactory;
+import javax.jms.TopicPublisher;
+import javax.jms.TopicSession;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+public class NotifyTopics extends NotifyJMS {
+
+ public static final String CONNECTION_FACTORY = "ConnectionFactory";
+ public static final String CHILD_TOPIC = "topic";
+
+ public NotifyTopics(ConfigTree p_oP) throws Exception {
+ super(p_oP);
+
+ setTopics(p_oP.getChildren(CHILD_TOPIC));
+ } // __________________________________
+
+ protected void setTopics(ConfigTree[] p_oaP) throws Exception {
+ // REVIEW: The connection factory name is hardcoded and is the same as that of the queue connection factory.
+ TopicConnectionFactory qcf = (TopicConnectionFactory) m_oCtx.lookup(CONNECTION_FACTORY);
+ TopicConnection oTconn = qcf.createTopicConnection();
+ TopicSession oTsess = oTconn.createTopicSession(false,
+ TopicSession.AUTO_ACKNOWLEDGE);
+
+ m_oaMssProd = new MessageProducer[p_oaP.length];
+ for (int i1 = 0; i1 < p_oaP.length; i1++) {
+ String sAtt = p_oaP[i1].getAttribute(ATT_DEST_NAME);
+ if (null == sAtt)
+ throw new Exception("Missing topic jndiName");
+ Topic oT = (Topic) m_oCtx.lookup(sAtt);
+ m_oaMssProd[i1] = oTsess.createPublisher(oT);
+ }
+
+ m_oConn = oTconn;
+ m_oSess = oTsess;
+ // m_oConn.start(); Only for incoming messages ???
+
+ } // __________________________________
+
+ protected void sendToAll(Message p_oMsg) {
+ for (int i1 = 0; i1 < m_oaMssProd.length; i1++) {
+ TopicPublisher oCurr = (TopicPublisher) m_oaMssProd[i1];
+ try {
+ oCurr.publish(p_oMsg);
+ } catch (Exception e) {
+ }
+ }
+ } // __________________________________
+
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyTopics.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyUtil.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyUtil.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyUtil.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,87 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.notification;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.io.Serializable;
+import java.util.Map;
+
+import org.jboss.internal.soa.esb.notification.MacroExpander;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.services.NotificationManager;
+
+public class NotifyUtil {
+
+ public static void notifyOK(NotificationManager p_oNH,
+ ConfigTree p_oParent, Serializable p_o, Map p_oCtx) {
+ try {
+ ConfigTree[] oaP = p_oParent.getChildren(NotificationList.ELEMENT);
+ for (int i1 = 0; i1 < oaP.length; i1++) {
+ NotificationList oCurr = new NotificationList(oaP[i1]);
+ if (!oCurr.isOK())
+ continue;
+ ConfigTree oCpy = oaP[i1].cloneObj();
+ MacroExpander.replaceMacros(oCpy, p_oCtx);
+ p_oNH.sendNotifications(oCpy, p_o);
+ }
+ } catch (Exception e) {
+ e.printStackTrace(System.out);
+ }
+ } // __________________________________
+
+ public static void notifyError(NotificationManager p_oNH,
+ ConfigTree p_oParent, Object p_o, Map p_oCtx, Exception p_e) {
+ ByteArrayOutputStream oBO = new ByteArrayOutputStream();
+ PrintStream oPS = new PrintStream(oBO);
+ try {
+ oPS.println(p_o.toString());
+ if (null != p_e) {
+ p_e.printStackTrace(oPS);
+ }
+ oPS.close();
+
+ String sMsg = oBO.toString();
+ ConfigTree[] oaP = p_oParent.getChildren(NotificationList.ELEMENT);
+ // if (oaP.length<1) // Uncomment this line to send only to the list
+
+ // REVIEW: What's going on here? What's the difference between sending an
+ // error notification and sending a regular notification apart from there being an
+ // error message? What's the difference between how the InotificationHandler
+ // interface is used on the notifyOK and notifyError methods?
+
+ p_oNH.sendNotifications(sMsg);
+ for (int i1 = 0; i1 < oaP.length; i1++) {
+ NotificationList oCurr = new NotificationList(oaP[i1]);
+ if (!oCurr.isErr()) {
+ continue;
+ }
+ MacroExpander.replaceMacros(oaP[i1], p_oCtx);
+ p_oNH.sendNotifications(oaP[i1], sMsg);
+ }
+ } catch (Exception e) {
+ e.printStackTrace(System.out);
+ }
+ } // __________________________________
+
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/notification/NotifyUtil.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/parameters/ParamRepository.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/parameters/ParamRepository.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/parameters/ParamRepository.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,71 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.parameters;
+
+
+/**
+ * Parameter Repository Definition.
+ * <p/>
+ * A ParamRepository implementation allows persistence, retrieval and removal of
+ * parameter values.
+ * <p/>
+ * Note that it is assumed that implementations are Thread Safe.
+ *
+ * @author <a href="mailto:schifest at gmail.com">Esteban Shifman</a>
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public interface ParamRepository {
+
+ // byte[] versions of the add and get methods might be needed on this.
+ // In fact, if this is done - rename the existing add and get methods
+ // to addString and getString and add the new byte[] methods as add/get.
+
+ /**
+ * Store a parameter value in the repository.
+ * @param name The parameter name. Must not be <code>null</code>.
+ * @param value The parameter value. Must not be <code>null</code>.
+ * @throws ParamRepositoryException Failed to store the specified parameter value.
+ */
+ public void add(String name, String value) throws ParamRepositoryException;
+
+ /**
+ * Get the value associated with the named parameter.
+ * @param name The parameter name. Must not be <code>null</code>.
+ * @return The parameter value, or null if the parameter is not available in
+ * the repository.
+ * @throws ParamRepositoryException The parameter exists, but an error has occured
+ * while readingit.
+ */
+ public String get(String name) throws ParamRepositoryException;
+
+ /**
+ * Remove a parameter, or a hierarchy of parameters.
+ * <p/>
+ * Because the repository is hierarchical in nature, parameters can be addressed
+ * explicitly or as a group using a hierarchical name.
+ * @param name The parameter name. Must not be <code>null</code>.
+ * @throws ParamRepositoryException Failed to remove the parameter, or hierarchy of parameters,
+ * from the repository..
+ */
+ public void remove(String name) throws ParamRepositoryException;
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/parameters/ParamRepository.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/parameters/ParamRepositoryException.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/parameters/ParamRepositoryException.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/parameters/ParamRepositoryException.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,29 @@
+package org.jboss.soa.esb.parameters;
+
+import org.jboss.soa.esb.BaseException;
+
+/**
+ * {@link org.jboss.soa.esb.parameters.ParamRepository} access Exception.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class ParamRepositoryException extends BaseException {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Public Constructor.
+ * @param message Exception message.
+ */
+ public ParamRepositoryException(String message) {
+ super(message);
+ }
+
+ /**
+ * Public Constructor.
+ * @param message Exception message.
+ * @param cause Exception cause.
+ */
+ public ParamRepositoryException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/parameters/ParamRepositoryFactory.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/parameters/ParamRepositoryFactory.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/parameters/ParamRepositoryFactory.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,119 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.parameters;
+
+import org.jboss.internal.soa.esb.parameters.ParamFileRepository;
+import org.jboss.soa.esb.common.Configuration;
+
+/**
+ * Factory class for Singleton {@link ParamRepository} creation. <p/> Uses the
+ * "org.jboss.soa.esb.paramsRepository.class" system property to determine the
+ * {@link ParamRepository} implementation to be created. If not specified, the
+ * default implementation is the
+ * {@link org.jboss.internal.soa.esb.parameters.ParamFileRepository}.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public abstract class ParamRepositoryFactory
+{
+
+ /**
+ * Singleton instance of the repository.
+ */
+ private static ParamRepository instance;
+
+ /**
+ * Factory method for creating the Singleton {@link ParamRepository}
+ * instance for the system.
+ *
+ * @return The ParamRepository instance for the system.
+ */
+ public static ParamRepository getInstance()
+ {
+ if (instance == null)
+ {
+ // Hasn't been created yet - lets created it in a synchronized
+ // fashion...
+ instance = synchedGetInstance();
+ }
+
+ return instance;
+ }
+
+ /**
+ * Synchronizes creation of the Singleton instance.
+ *
+ * @return The Singleton ParamRepository instance.
+ */
+ private static ParamRepository synchedGetInstance()
+ {
+ synchronized (ParamRepositoryFactory.class)
+ {
+ // The following check ensures that multithreads won't create
+ // multiple instances of the singleton. Threads that are blocked
+ // waiting
+ // at the start of this synch block will simply fall through and
+ // return the
+ // instance created by the thread that got in ahead of them.
+ if (instance == null)
+ {
+ String runtimeClassName = Configuration
+ .getParamRepositoryImplClass();
+
+ if (runtimeClassName == null)
+ {
+ // If there's no repository name configured, return the
+ // default file-based repository...
+ instance = new ParamFileRepository();
+ } else
+ {
+ try
+ {
+ Class<?> runtimeClass = Class.forName(runtimeClassName);
+ instance = (ParamRepository) runtimeClass.newInstance();
+ } catch (Exception e)
+ {
+ new IllegalStateException(
+ "System Configuration Exception: Unable to create system "
+ + ParamRepository.class.getSimpleName()
+ + " instance from runtime class name ["
+ + runtimeClassName + "]", e);
+ }
+ }
+ }
+ }
+
+ return instance;
+ }
+
+ /**
+ * Resets the factory, allowing creation of a new Singleton instance. <p/>
+ * Should only need to be used for testing purposes.
+ */
+ protected static void reset()
+ {
+ synchronized (ParamRepositoryFactory.class)
+ {
+ instance = null;
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/BatchManager.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/BatchManager.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/BatchManager.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,35 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services;
+
+import org.jboss.soa.esb.common.bizclasses.BatchProcess;
+
+public interface BatchManager
+{
+ public long newBatch () throws Exception;
+ public int addToBatch (String p_s) throws Exception;
+ public void finish () throws Exception;
+ public void commitBatch(BatchProcess p_oBP) throws Exception;
+} //____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/BatchManager.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/DefaultEncryptionFactory.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/DefaultEncryptionFactory.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/DefaultEncryptionFactory.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.services;
+
+public class DefaultEncryptionFactory
+{
+ public static Encryption getEncrypter()
+ {
+ return new DummyEncrypter();
+
+ } //________________________________
+
+ public static Encryption getEncrypter(Object p_o)
+ {
+ return new DummyEncrypter();
+
+ } //________________________________
+
+ /**
+ * This is a dummy class to provide dummy
+ * encrypt/decrypt methods for a byte[]
+ *
+ */
+ private static class DummyEncrypter implements Encryption
+ {
+// private static Cipher s_oCC;
+// static
+// { try { s_oCC = Cipher.getInstance("DES"); }
+// catch (Exception e) { e.printStackTrace(); }
+// }
+ public byte [] encrypt (byte [] p_ba, Object p_oParms)
+ throws Exception
+ {
+ return p_ba;
+ } //__________________________________
+
+ public byte [] decrypt (byte [] p_ba, Object p_oParms)
+ throws Exception
+ {
+ return p_ba;
+ } //__________________________________
+ } //___________________________________________________
+
+} //____________________________________________________________________________
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/Encryption.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/Encryption.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/Encryption.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,28 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services;
+
+public interface Encryption
+{
+ public byte [] encrypt (byte [] p_ba, Object p_oParms) throws Exception;
+ public byte [] decrypt (byte [] p_ba, Object p_oParms) throws Exception;
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/NotificationManager.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/NotificationManager.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/NotificationManager.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.services;
+
+import java.io.Serializable;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+/**
+ * Use this interface to group all methods that can be useful to
+ * trigger events that can be caught by listeners, within or outside of
+ * the Rosetta framework
+ *
+ * @author Esteban
+ *
+ */
+public interface NotificationManager {
+
+ // REVIEW: Add some Javadoc for this interface!!!
+/**
+ * public void sendNotifications(ConfigTree p_oP, Serializable p_o)
+ *
+ * @param p_oP ConfigTree - A serialized NotificationList object (as a ConfigTree)
+ * @param p_o The Serializable object that will be sent to all the
+ * NotificationTarget objects contained in the NotificationList
+ *
+ * <p/>Implementations of this interface will be responsible of sending
+ * the Serializable (arg 1) to destinations determined by each
+ * NotificationTarget contained in the NotificationList represented by
+ * arg 0.
+ * <p/>Please see org.jboss.soa.esb.notification package for existing
+ * classes that extend NotificationTarget (Files, Queues, Topics, SqlTable...)
+ *
+ * <p/> Invoking processes are responsible to provide dynamic content
+ * of notification
+ * <p/> The NotificationTarget objects can define 'static' content for
+ * (suc as contents of certain columns in SQL, or message properties for
+ * JMS notification targets, etc.
+ */
+ public void sendNotifications(ConfigTree p_oP, Serializable p_o) throws Exception;
+
+ public void sendNotifications(Serializable p_o) throws Exception;
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/NotificationManager.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/PersistManager.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/PersistManager.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/PersistManager.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,40 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services;
+
+import java.util.Properties;
+
+import org.jboss.soa.esb.util.BaseBusinessObject;
+import org.jboss.soa.esb.util.ObjLocator;
+
+public interface PersistManager
+{
+ public long getUidChunk(int p_iHowMany) throws Exception;
+ public ObjLocator[] getLocatorList(Class p_oCls,Properties p_oProp) throws Exception;
+
+ public long addObject(BaseBusinessObject p_oQ) throws Exception;
+ public BaseBusinessObject getObject(Class p_oCls,long p_lUid) throws Exception;
+ public void rplObject(BaseBusinessObject p_o) throws Exception;
+ public void rmvObject(Class p_oCls,long p_lUid) throws Exception;
+} //____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/PersistManager.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStore.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStore.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStore.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,15 @@
+package org.jboss.soa.esb.services.persistence;
+
+
+import java.net.URI;
+
+import org.jboss.soa.esb.message.Message;
+
+
+
+public interface MessageStore {
+
+ public URI addMessage(Message message);
+ public Message getMessage(URI uid) throws Exception;
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStoreFactory.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStoreFactory.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStoreFactory.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,59 @@
+package org.jboss.soa.esb.services.persistence;
+
+
+
+import java.lang.reflect.Constructor;
+import java.net.URI;
+
+
+
+
+ at SuppressWarnings("unchecked")
+public abstract class MessageStoreFactory {
+
+ private static MessageStoreFactory theFactory;
+
+ static
+ {
+
+ try {
+ Class cls = Class.forName("org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl");
+ Constructor<MessageStoreFactory> c = cls.getConstructor(new Class[]{});
+ theFactory = c.newInstance(new Object[]{});
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+
+ }
+
+
+ /**
+ * @return a default implementation.
+ */
+
+ public abstract MessageStore getMessageStore ();
+
+ /**
+ * @param type the unique identifier representing the type of this MessageStore.
+ * @return the MessageStore, or <code>null</code> if no suitable store is available.
+ */
+
+ public abstract MessageStore getMessageStore (URI type);
+
+
+ public static MessageStoreFactory getInstance ()
+ {
+ return theFactory;
+ }
+
+ /**
+ * Reload the plugins.
+ */
+
+ public abstract void reset ();
+
+
+
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/transform/TransformationException.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/transform/TransformationException.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/transform/TransformationException.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,60 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.services.transform;
+
+import org.jboss.soa.esb.BaseException;
+
+/**
+ * Transformation Service Exception.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class TransformationException extends BaseException {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Public constructor.
+ * @param message Exception message.
+ */
+ public TransformationException(String message) {
+ super(message);
+ }
+
+ /**
+ * Public constructor.
+ * @param message Exception message.
+ * @param cause Exception cause.
+ */
+ public TransformationException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ /**
+ * Public constructor.
+ * @param cause Exception cause.
+ */
+ public TransformationException(Throwable cause) {
+ super(cause);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/transform/TransformationService.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/transform/TransformationService.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/services/transform/TransformationService.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.services.transform;
+
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * Transformation Service interface.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public interface TransformationService {
+
+ /**
+ * Transform the supplied message object and return the transformation result.
+ * @param message The message to be transformed.
+ * @return The transformed message.
+ * @throws TransformationException An Exception occured during the transformation process.
+ */
+ public Message transform(Message message) throws TransformationException;
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/BaseBusinessObject.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/BaseBusinessObject.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/BaseBusinessObject.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,298 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.util;
+
+import java.lang.reflect.Constructor;
+import java.util.ArrayList;
+import java.util.EnumMap;
+import java.util.List;
+
+public abstract class BaseBusinessObject {
+
+ public BobjStdDTO toDTO() throws Exception {
+ String sClass = getClass().getSimpleName();
+ BobjStdDTO oRet = new BobjStdDTO(sClass, getElemNm(), null);
+ if (hasUid())
+ try {
+ oRet.addAttr(HIDDEN.uid.toString(), Long.toString(m_lUid));
+ } catch (Exception e) {
+ }
+ putStdAtts(oRet);
+ return oRet;
+ }
+
+ public String toString() {
+ try {
+ return this.toDTO().toXml();
+ } catch (Exception e) {
+ return null;
+ }
+ } // __________________________________
+
+ public String[] locator() {
+ return new String[] {};
+ }
+
+ /**
+ * Get all locators for a given BaseBusinessObject
+ * <p />
+ * Override this method in your class if you have more than 1 locator array
+ *
+ * @return An array of String arrays containing all locators
+ */
+ public String[][] allLocators() {
+ return new String[][] { locator() };
+ }
+
+ private enum ATTRIB {
+ elem, rol
+ };
+
+ enum HIDDEN {
+ uid, stamp, type, snap, dtSnap, batch
+ };
+
+ private EnumMap<ATTRIB, String> m_oData;
+
+ private String setField(ATTRIB pKey, String pVal) {
+ if (null == pKey)
+ return null;
+ String sRet = (null == m_oData) ? null : m_oData.remove(pKey);
+ if (!Util.isNullString(pVal)) {
+ if (null == m_oData)
+ m_oData = new EnumMap<ATTRIB, String>(ATTRIB.class);
+ m_oData.put(pKey, pVal);
+ }
+ return sRet;
+ } // __________________________________
+
+ private String getField(ATTRIB pKey) {
+ if (null == pKey)
+ return null;
+ if (null == m_oData)
+ return null;
+ return m_oData.get(pKey);
+ } // __________________________________
+
+ private long m_lStamp = -1;
+
+ private long m_lUid = -1;
+
+ private long m_lLastSnap = 0;
+
+ private long m_lBatch = 0;
+
+ private String m_sDtSnap = null;
+
+ private String m_sPkg = null;
+
+ public boolean hasUid() {
+ return m_lUid > 0;
+ }
+
+ public void setElemNm(String p_s) {
+ setField(ATTRIB.elem, p_s);
+ }
+
+ public void setRole(String p_s) {
+ setField(ATTRIB.rol, p_s);
+ }
+
+ public void setStamp(long p_l) {
+ m_lStamp = p_l;
+ }
+
+ public void setUid(long p_l) {
+ m_lUid = p_l;
+ }
+
+ public void setSnap(long p_l) {
+ m_lLastSnap = p_l;
+ }
+
+ public void setBatchNum(long p_l) {
+ m_lBatch = p_l;
+ }
+
+ public void setSnapDate(String p_s) {
+ m_sDtSnap = p_s;
+ }
+
+ public void setPackage() {
+ m_sPkg = this.getClass().getPackage().getName();
+ }
+
+ public String getElemNm() {
+ return getField(ATTRIB.elem);
+ }
+
+ public String getRole() {
+ return getField(ATTRIB.rol);
+ }
+
+ public long getStamp() {
+ return m_lStamp;
+ }
+
+ public long getUid() {
+ return m_lUid;
+ }
+
+ public long getSnap() {
+ return m_lLastSnap;
+ }
+
+ public long getBatchNum() {
+ return m_lBatch;
+ }
+
+ public String getSnapDate() {
+ return m_sDtSnap;
+ }
+
+ public BaseBusinessObject() {
+ this((String) null);
+ }
+
+ protected BaseBusinessObject(String p_sElem) {
+ this(p_sElem, -1);
+ }
+
+ protected BaseBusinessObject(String p_sElem, long p_lUid) {
+ setField(ATTRIB.elem, p_sElem);
+ m_lUid = p_lUid;
+
+ if (null != getElemNm()) {
+ return;
+ }
+
+ String sClass = getClass().getSimpleName();
+
+ if (null == p_sElem) {
+ setField(ATTRIB.elem, sClass);
+ }
+ } // ________________________________
+
+ protected BaseBusinessObject(BobjStdDTO p_oDto) throws Exception {
+ this(p_oDto.elementNm());
+ if (p_oDto.isList())
+ return;
+ commonFieldsFromDTO(this, p_oDto);
+ } // ________________________________
+
+ private static final void commonFieldsFromDTO(BaseBusinessObject p_obj,
+ BobjStdDTO p_oDto) throws Exception {
+ for (ATTRIB oCurr : ATTRIB.values())
+ p_obj.setField(oCurr, p_oDto.getAttr(oCurr.toString()));
+
+ String sAux = p_oDto.getAttr(HIDDEN.uid.toString());
+ if (null != sAux)
+ p_obj.m_lUid = Long.parseLong(sAux);
+
+ sAux = p_oDto.getAttr(HIDDEN.stamp.toString());
+ if (null != sAux)
+ p_obj.m_lStamp = Long.parseLong(sAux);
+
+ sAux = p_oDto.getAttr(HIDDEN.snap.toString());
+ if (null != sAux)
+ p_obj.m_lLastSnap = Long.parseLong(sAux);
+
+ sAux = p_oDto.getAttr(HIDDEN.batch.toString());
+ p_obj.setBatchNum((null != sAux) ? Long.parseLong(sAux) : 0);
+
+ // Special treatment for package - only needed for root BaseBusinessObj
+ // this is so only to make XML more compact
+ p_obj.m_sPkg = p_oDto.getAttr(BobjStdDTO.BOBJ_PACKAGE);
+ } // ________________________________
+
+ public static final BaseBusinessObject getFromDTO(BobjStdDTO p_oDto)
+ throws Exception {
+ return BaseBusinessObject.fromDTO(p_oDto);
+ } // ________________________________
+
+ private static BaseBusinessObject fromDTO(BobjStdDTO p_oDto) throws Exception {
+ if (null == p_oDto)
+ return null;
+
+ Class oClass = Class.forName(p_oDto.fullClassName());
+ Constructor CC = oClass
+ .getConstructor(new Class[] { BobjStdDTO.class });
+ BaseBusinessObject oRet = (BaseBusinessObject) CC
+ .newInstance(new Object[] { p_oDto });
+
+ commonFieldsFromDTO(oRet, p_oDto);
+ return oRet;
+ } // ________________________________
+
+ private void putStdAtts(BobjStdDTO p_oRet) {
+ try {
+ p_oRet.addAttr(ATTRIB.rol.toString(), getRole());
+ // if (this instanceof XtfStorable)
+ // p_oRet.addAttr(HIDDEN.type.toString(),((XtfStorable)this).getSnapType());
+ if (m_lStamp > 0)
+ p_oRet
+ .addAttr(HIDDEN.stamp.toString(), Long
+ .toString(m_lStamp));
+ if (m_lLastSnap > 0)
+ p_oRet.addAttr(HIDDEN.snap.toString(), Long
+ .toString(m_lLastSnap));
+ if (!Util.isNullString(m_sDtSnap))
+ p_oRet.addAttr(HIDDEN.dtSnap.toString(), m_sDtSnap);
+ if (getBatchNum() > 0)
+ p_oRet.addAttr(HIDDEN.batch.toString(), Long
+ .toString(getBatchNum()));
+ if (!Util.isNullString(m_sPkg))
+ p_oRet.addAttr(BobjStdDTO.BOBJ_PACKAGE, m_sPkg);
+ } catch (Exception e1) {
+ }
+ } // ________________________________
+
+ public static final BobjStdDTO getDtoList(Class p_Class,
+ List<? extends BaseBusinessObject> p_oBobList) throws Exception {
+
+ if (null == p_oBobList || p_oBobList.isEmpty()) {
+ return null;
+ }
+
+ // Create a list of DTOs from the BaseBusinessObject list...
+ List<BobjStdDTO> dtoList = new ArrayList<BobjStdDTO>();
+ for (BaseBusinessObject oCurr : p_oBobList) {
+ dtoList.add(oCurr.toDTO());
+ }
+
+ // Package up the DTO list in a parent DTO and return ...
+ return new BobjStdDTO(p_Class.getSimpleName(), null, dtoList);
+ } // __________________________________
+
+ public static BaseBusinessObject getRoleFromList(String p_sRole,
+ List<? extends BaseBusinessObject> p_oL) {
+ if (null == p_sRole)
+ return null;
+ if (null == p_oL)
+ return null;
+ for (BaseBusinessObject oCurr : p_oL)
+ if (p_sRole.equals(oCurr.getRole()))
+ return oCurr;
+ return null;
+ } // __________________________________
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/BaseBusinessObject.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/BobjStdDTO.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/BobjStdDTO.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/BobjStdDTO.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,533 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.OutputStream;
+import java.io.Serializable;
+import java.lang.reflect.Constructor;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.EnumMap;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * {@link org.jboss.soa.esb.util.BaseBusinessObject} Data Transfer Object.
+ * <p/>
+ * {@link org.jboss.soa.esb.util.BaseBusinessObject} implementations use this
+ * class to create a serialized XML representation of their data. They do this
+ * in their {@link org.jboss.soa.esb.util.BaseBusinessObject#toDTO()} method
+ * implementation.
+ * <p/>
+ * This serialized XML form is used for object persistense. The DTO is also
+ * decorated with the following properties to aid lookup and processing
+ * of their persisted form:
+ * <ul>
+ * <li><b>{@link #getUid() UID}</b> //TODO: Define!!</li>
+ * <li><b>{@link #getStamp()() Stamp}</b> //TODO: Define!!</li>
+ * <li><b>{@link #getSnap()() Snap}</b> //TODO: Define!!</li>
+ * <li><b>{@link #getSnapType()()() SnapType}</b> //TODO: Define!!</li>
+ * <li><b>{@link #getSnapDate()()()() SnapDate}</b> //TODO: Define!!</li>
+ * <li><b>{@link #getBatch()()() Batch}</b> //TODO: Define!!</li>
+ * </ul>
+ *
+ * @see #getFromXml(String)
+ * @author <a href="mailto:schifest at gmail.com">Esteban Shifman</a>
+ */
+
+ at SuppressWarnings("serial")
+public class BobjStdDTO implements Serializable {
+ private static final transient String s_sCharset = "ISO-8859-1";
+
+ public static String getCharset() {
+ return s_sCharset;
+ }
+
+ private static final transient String s_sEncoding = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
+
+ // Some attribute names for the toXML() and fromXML()
+ public final static String BOBJ_PACKAGE = "__BobjPkg";
+
+ public final static String BOBJ_CLASS = "__Class";
+
+ protected String m_sClassNm;
+
+ protected String m_sElemNm;
+
+ protected Map<String, Object> m_oAtts;
+
+ protected List<BobjStdDTO> m_oChild;
+
+ protected String[][] m_saaLocators;
+
+ public void setLocators(String[][] p_saa) {
+ m_saaLocators = p_saa;
+ }
+
+ public String[][] getLocators() {
+ return m_saaLocators;
+ }
+
+ // Getters
+ public String classNm() {
+ return m_sClassNm;
+ }
+
+ public String elementNm() {
+ return m_sElemNm;
+ }
+
+ public boolean isList() {
+ return null != m_oChild;
+ }
+
+ public boolean isEmpty() {
+ return (isList()) ? (m_oChild).isEmpty() : m_oAtts.isEmpty();
+ }
+
+ protected BobjStdDTO(String p_sClassNm, String p_sElemNm,
+ List<BobjStdDTO> p_oList) {
+ initialize(p_sClassNm, p_sElemNm, p_oList);
+ }
+
+ private void initialize(String p_sClassNm, String p_sElemNm,
+ List<BobjStdDTO> p_oList) {
+ m_sClassNm = p_sClassNm;
+ m_sElemNm = (null != p_sElemNm) ? p_sElemNm : m_sClassNm
+ .substring(1 + m_sClassNm.lastIndexOf("."));
+ m_oChild = p_oList;
+ if (null == m_oChild)
+ m_oAtts = new HashMap<String, Object>();
+ } // __________________________________
+
+ private BobjStdDTO(Element p_n) throws Exception {
+ String sElem = p_n.getNodeName();
+
+ String sClass = null;
+ try {
+ sClass = p_n.getAttribute(BOBJ_CLASS);
+ } catch (Exception eC) {
+ }
+ sClass = (null == sClass) ? sElem : ("".equals(sClass)) ? sElem
+ : sClass;
+ p_n.removeAttribute(BOBJ_CLASS);
+
+ String sList = null;
+ try {
+ sList = p_n.getAttribute("List");
+ } catch (Exception eL) {
+ }
+ boolean m_bList = (null == sList) ? false : ("".equals(sList)) ? false
+ : true;
+ p_n.removeAttribute("List");
+
+ NodeList NL = p_n.getChildNodes();
+ int iQch = NL.getLength();
+ if (m_bList) {
+ List<BobjStdDTO> olCh = new ArrayList<BobjStdDTO>();
+ for (int i1 = 0; i1 < iQch; i1++) {
+ Node oCurr = NL.item(i1);
+ if (Node.ELEMENT_NODE != oCurr.getNodeType())
+ continue;
+ BobjStdDTO oThisCh = new BobjStdDTO((Element) NL.item(i1));
+ oThisCh.m_sElemNm = oThisCh.m_sClassNm = sClass;
+ olCh.add(oThisCh);
+ }
+ initialize(sClass, sElem, olCh);
+ return;
+ }
+
+ initialize(sClass, sElem, null);
+ this.addMap(mapFromAtts(p_n.getAttributes()));
+
+ for (int i1 = 0; i1 < iQch; i1++) {
+ Node oCurr = NL.item(i1);
+ if (Node.ELEMENT_NODE != oCurr.getNodeType())
+ continue;
+ this.addDto(((Element) oCurr).getNodeName(), new BobjStdDTO(
+ ((Element) oCurr)));
+ }
+ } // __________________________________
+
+ private void setLongAttr(String p_s, long pL) {
+ try {
+ addAttr(p_s, Long.toString(pL));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } // __________________________________
+
+ private void setStringAttr(String p_s, String pVal) {
+ try {
+ addAttr(p_s, pVal);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } // __________________________________
+
+ private long attrAsLong(String p_s) {
+ try {
+ String sVal = getAttr(p_s);
+ if (!Util.isNullString(sVal))
+ return Long.parseLong(sVal);
+ } catch (Exception e) {/* OK just fall through and return default */
+ }
+ return 0;
+ } // __________________________________
+
+ private String attrAsString(String p_s) {
+ try {
+ return getAttr(p_s);
+ } catch (Exception e) {/* OK just fall through and return default */
+ }
+ return null;
+ } // __________________________________
+
+ public long getStamp() {
+ return attrAsLong(BaseBusinessObject.HIDDEN.stamp.toString());
+ }
+
+ public long getUid() {
+ return attrAsLong(BaseBusinessObject.HIDDEN.uid.toString());
+ }
+
+ public long getSnap() {
+ return attrAsLong(BaseBusinessObject.HIDDEN.snap.toString());
+ }
+
+ public long getBatch() {
+ return attrAsLong(BaseBusinessObject.HIDDEN.batch.toString());
+ }
+
+ public String getSnapType() {
+ return attrAsString(BaseBusinessObject.HIDDEN.type.toString());
+ }
+
+ public String getSnapDate() {
+ return attrAsString(BaseBusinessObject.HIDDEN.dtSnap.toString());
+ }
+
+ public void setStamp(long pL) {
+ setLongAttr(BaseBusinessObject.HIDDEN.stamp.toString(), pL);
+ }
+
+ public void setUid(long pL) {
+ setLongAttr(BaseBusinessObject.HIDDEN.uid.toString(), pL);
+ }
+
+ public void setSnap(long pL) {
+ setLongAttr(BaseBusinessObject.HIDDEN.snap.toString(), pL);
+ }
+
+ public void setBatch(long pL) {
+ setLongAttr(BaseBusinessObject.HIDDEN.batch.toString(), pL);
+ }
+
+ public void setSnapType(String pS) {
+ setStringAttr(BaseBusinessObject.HIDDEN.type.toString(), pS);
+ }
+
+ public void setSnapDate(String pS) {
+ setStringAttr(BaseBusinessObject.HIDDEN.dtSnap.toString(), pS);
+ }
+
+ public String fullClassName() {
+ String sPkg = "";
+ try {
+ sPkg = getAttr(BobjStdDTO.BOBJ_PACKAGE);
+ } catch (Exception e) {/* just leave it empty */
+ }
+ String sConstrPkg = (sPkg.endsWith(".")) ? sPkg : sPkg + ".";
+ return sConstrPkg + classNm();
+ } // __________________________________
+
+ public List<? extends BaseBusinessObject> getChildObjList(String p_sElem,
+ Class pCls) throws Exception {
+ BobjStdDTO oChDto = this.getDTO(p_sElem);
+ if (null == oChDto)
+ return null;
+ if (!oChDto.isList())
+ throw new Exception("Child DTO is not List");
+ return oChDto.listDtoToList(pCls);
+ } // __________________________________
+
+ private List<BaseBusinessObject> listDtoToList(Class pCls) throws Exception {
+ if (!isList())
+ throw new Exception("BObjStdDTO is not a List");
+ Class[] oaCls = { BobjStdDTO.class };
+ Constructor CC = pCls.getConstructor(oaCls);
+ List<BaseBusinessObject> LL = new ArrayList<BaseBusinessObject>();
+ Object[] oaParms = new BobjStdDTO[1];
+ for (BobjStdDTO oCurr : m_oChild) {
+ oaParms[0] = oCurr;
+ LL.add((BaseBusinessObject) CC.newInstance(oaParms));
+ }
+ return (LL.size() > 0) ? LL : null;
+ } // __________________________________
+
+ public Map<String, Object> getAttrMap() throws Exception {
+ return m_oAtts;
+ } // __________________________________
+
+ public BobjStdDTO getDTO(String p_sKey) throws Exception {
+ if (isList())
+ throw new Exception("BObjStdDTO is a List");
+ Object oRet = m_oAtts.get(p_sKey);
+ if (null == oRet)
+ return null;
+ if (oRet instanceof BobjStdDTO)
+ return (BobjStdDTO) oRet;
+ throw new Exception("Value is not BObjStdDTO");
+ } // __________________________________
+
+ public String getAttr(String p_sAttrName) throws Exception {
+ if (isList()) {
+ throw new UnsupportedOperationException("BObjStdDTO is a List. Cannot call getAttr method. Use isList to check!");
+ }
+ Object oRet = m_oAtts.get(p_sAttrName);
+ if (null == oRet) {
+ return null;
+ }
+ if (oRet instanceof String) {
+ return (String) oRet;
+ }
+ throw new IllegalArgumentException("p_sAttrName is not an attribute");
+ } // __________________________________
+
+ @SuppressWarnings("unchecked")
+ public void addAttr(String p_sKey, String p_sAtt) throws Exception {
+ if (isList())
+ throw new Exception("BObjStdDTO is a List");
+ if (null == p_sKey)
+ return;
+ m_oAtts.remove(p_sKey);
+ if (null != p_sAtt)
+ if (p_sAtt.trim().length() > 0)
+ m_oAtts.put(p_sKey, p_sAtt.trim());
+ } // __________________________________
+
+ @SuppressWarnings("unchecked")
+ public void addDto(String p_sKey, BobjStdDTO p_oDto) throws Exception {
+ if (isList())
+ throw new Exception("BObjStdDTO is a List");
+ if (null == p_sKey)
+ return;
+ m_oAtts.remove(p_sKey);
+ if (null == p_oDto)
+ return;
+ if (p_oDto.isEmpty())
+ return;
+ p_oDto.m_sElemNm = p_sKey;
+ m_oAtts.put(p_sKey, p_oDto);
+ } // __________________________________
+
+ @SuppressWarnings("unchecked")
+ private void addMap(Map<String, Object> p_oM) throws Exception {
+ if (isList())
+ throw new Exception("BObjStdDTO is a List");
+ if (null == p_oM)
+ return;
+ for (Map.Entry<String, Object> oCurr : p_oM.entrySet())
+ m_oAtts.put(oCurr.getKey(), oCurr.getValue());
+ } // __________________________________
+
+ public String toXml() throws Exception {
+ return toXml(false);
+ }
+
+ public String toXml(boolean p_bDecl) throws Exception {
+ Document oDoc = toDoc();
+ oDoc.normalize();
+ DOMSource src = new DOMSource(oDoc);
+
+ OutputStream oStrm = new ByteArrayOutputStream(1000);
+ StreamResult res = new StreamResult(oStrm);
+
+ Transformer oTf = TransformerFactory.newInstance().newTransformer();
+ oTf.setOutputProperty(OutputKeys.INDENT, "no");
+ oTf.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, (p_bDecl) ? "no"
+ : "yes");
+
+ oTf.setOutputProperty(OutputKeys.ENCODING, s_sCharset);
+ oTf.transform(src, res);
+ return oStrm.toString();
+ } // __________________________________
+
+ public Document toDoc() {
+ DocumentBuilder oDB = null;
+ try {
+ oDB = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ } catch (Exception e) {
+ }
+ Document oDoc = oDB.newDocument();
+ oDoc.appendChild(toElement(oDoc));
+ return oDoc;
+ } // __________________________________
+
+ public Node toElement(Document p_oDoc) {
+ return (isList()) ? listToElement(p_oDoc) : mapToElement(p_oDoc);
+ } // __________________________________
+
+ private Node mapToElement(Document p_oDoc) {
+ if (null == m_oAtts)
+ return null;
+ Element onRet = p_oDoc.createElement(m_sElemNm);
+ for (Map.Entry<String, Object> oCurr : m_oAtts.entrySet()) {
+ if (oCurr.getValue() instanceof BobjStdDTO) {
+ onRet.appendChild(((BobjStdDTO) oCurr.getValue())
+ .toElement(p_oDoc));
+ continue;
+ } else
+ // System.out.println("Elem<"+sKey+">
+ // Val<"+oVal.toString()+">");
+ onRet.setAttribute(oCurr.getKey(), oCurr.getValue().toString());
+ }
+
+ boolean bPutClass = (null != m_sClassNm)
+ && (!m_sElemNm.equals(m_sClassNm));
+ if (bPutClass)
+ onRet.setAttribute(BOBJ_CLASS, m_sClassNm);
+ else
+ onRet.removeAttribute(BOBJ_CLASS);
+
+ return onRet;
+ } // __________________________________
+
+ private Node listToElement(Document p_oDoc) {
+ if (null == m_oChild)
+ return null;
+ if (m_oChild.isEmpty())
+ return null;
+
+ Element onRet = p_oDoc.createElement(m_sElemNm);
+ onRet.setAttribute("List", "yes");
+ if (!m_sElemNm.equals(m_sClassNm))
+ onRet.setAttribute(BOBJ_CLASS, m_sClassNm);
+
+ for (BobjStdDTO oCurr : m_oChild) {
+ oCurr.m_sClassNm = null;
+ oCurr.m_sElemNm = "it";
+ onRet.appendChild(oCurr.toElement(p_oDoc));
+ }
+ return onRet;
+ } // __________________________________
+
+ public static synchronized BobjStdDTO getFromXml(String xmlBob)
+ throws Exception {
+
+ if(Util.isNullString(xmlBob)) {
+ throw new IllegalArgumentException("null or empty 'xmlBob' arg in call.");
+ }
+
+ StringBuffer sb = new StringBuffer(s_sEncoding).append("\n")
+ .append(xmlBob);
+ DocumentBuilder oDB = DocumentBuilderFactory.newInstance()
+ .newDocumentBuilder();
+ Document oDoc = oDB.parse(new ByteArrayInputStream(sb.toString()
+ .getBytes(s_sCharset)));
+ return new BobjStdDTO(oDoc.getDocumentElement());
+ } // __________________________________
+
+ private static synchronized Map<String, Object> mapFromAtts(
+ NamedNodeMap p_oNnm) {
+ if (null == p_oNnm)
+ return null;
+ int iQatt = p_oNnm.getLength();
+ if (iQatt < 1)
+ return null;
+ Map<String, Object> omAtts = new HashMap<String, Object>();
+ for (int i2 = 0; i2 < iQatt; i2++) {
+ Node nAtt = p_oNnm.item(i2);
+ omAtts.put(nAtt.getNodeName(), nAtt.getNodeValue());
+ }
+ return omAtts;
+ } // __________________________________
+
+ public void Dump(String p_sTitle) throws Exception {
+ System.out.println(p_sTitle);
+ Dump(0);
+ } // __________________________________
+
+ public void Dump(int p_iLev) throws Exception {
+ byte[] ba = new byte[3 * p_iLev];
+ Arrays.fill(ba, (byte) ' ');
+ String sTab = new String(ba);
+ System.out.print(sTab + "Elem " + m_sElemNm + " Class " + m_sClassNm);
+ if (isList()) {
+ System.out.println(" LIST");
+ for (BobjStdDTO oCurr : m_oChild)
+ oCurr.Dump(1 + p_iLev);
+ return;
+ }
+ System.out.print("\n" + sTab);
+
+ for (EnumMap.Entry<String, Object> oCurr : m_oAtts.entrySet()) {
+ if (oCurr.getValue() instanceof String)
+ System.out.print(" " + oCurr.getKey() + "<"
+ + oCurr.getValue() + ">");
+ }
+ System.out.println();
+ for (EnumMap.Entry<String, Object> oCurr : m_oAtts.entrySet()) {
+ if (oCurr.getValue() instanceof BobjStdDTO)
+ ((BobjStdDTO) oCurr.getValue()).Dump(1 + p_iLev);
+ }
+ } // __________________________________
+
+ public BaseBusinessObject getBobj(String p_sObj)
+ { if (null == p_sObj) return null;
+ try
+ { BobjStdDTO oDto = this.getDTO(p_sObj);
+ return BaseBusinessObject.getFromDTO(oDto);
+ }
+ catch (Exception e) {return null; }
+ } //__________________________________
+
+ @SuppressWarnings("unchecked")
+ public void addBobj(String p_sKey, BaseBusinessObject p_oBob) throws Exception
+ { if (isList()) throw new Exception("BObjStdDTO is a List");
+ if (null == p_sKey) return;
+ m_oAtts.remove(p_sKey);
+ if (null == p_oBob) return;
+ BobjStdDTO oDto = p_oBob.toDTO();
+ if (oDto.isEmpty()) return;
+ oDto.m_sElemNm=p_sKey;
+ m_oAtts.put(p_sKey,oDto);
+ } //__________________________________
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/BobjStdDTO.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/FtpClientUtil.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/FtpClientUtil.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/FtpClientUtil.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,297 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.util;
+
+import java.io.File;
+import java.util.List;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+
+import com.enterprisedt.net.ftp.FTPClient;
+import com.enterprisedt.net.ftp.FTPConnectMode;
+import com.enterprisedt.net.ftp.FTPTransferType;
+
+/**
+ * Simplified FTP transfers
+ * <p>Description: Implements a simple set of FTP functionality
+ * Parameters to establish the FTP connection are provided at construction time
+ * and cannot change during the lifetime of the object
+ * <br/>Hides low level details. Current implementation is based on the
+ * "Entreprise Distributed Technology edtFTPj" library
+ * but this can be changed with no impact to existing code, just by changing
+ * this class without modifying the signature of it's public methods
+ * </p>
+ */
+
+public class FtpClientUtil
+{
+ public static final String PARMS_FTP_SERVER = "ftpServer";
+ public static final String PARMS_USER = "ftpUser";
+ public static final String PARMS_PASSWD = "ftpPassword";
+ public static final String PARMS_PORT = "ftpPort";
+ public static final String PARMS_REMOTE_DIR = "ftpRemoteDir";
+ public static final String PARMS_LOCAL_DIR = "ftpLocalDir";
+ public static final String PARMS_ASCII = "ftpAscii";
+ public static final String PARMS_PASSIVE = "ftpPassive";
+
+ private static final String TMP_SUFFIX = ".rosettaPart";
+
+ public enum XFER_TYPE
+ {ascii
+ ,binary
+ };
+
+ private ConfigTree m_oParms;
+ private String m_sFtpServer ,m_sUser ,m_sPasswd;
+ private String m_sRemoteDir ,m_sLocalDir;
+ private int m_iPort;
+ private boolean m_bPassive;
+ public String getRemoteDir() { return m_sRemoteDir; }
+
+ private FTPClient m_oConn = new FTPClient();
+ private FTPTransferType m_oXferType = FTPTransferType.BINARY;
+
+ /**
+ * Checks validity and completeness of parameters, and keeps the info internally
+ * for subsequent FTP requests
+ * @param p_oP ConfigTree
+ * @throws Exception : if parameters are invalid or incomplete
+ * <li>Parameters: (XML attributes at the root level) </li>
+ * <li> ftpServer = name or IP of FTP server </li>
+ * <li> ftpUser = login ID for server </li>
+ * <li> ftpPassword </li>
+ * <li> localDirURI = absolute path in the local filesystem </li>
+ * <li> remoteDirURI = remote path is relative to ftp user home in remote
+ * computer </li>
+ */
+
+ public FtpClientUtil (ConfigTree p_oP, boolean p_bConnect) throws Exception
+ { m_oParms = p_oP;
+ initialize(p_bConnect);
+ } //_________________________________
+
+ public FtpClientUtil (List<KeyValuePair> attribs, boolean connect) throws Exception
+ {
+ m_oParms = new ConfigTree("fromProps");
+ for (KeyValuePair oCurr : attribs)
+ m_oParms.setAttribute(oCurr.getKey(),oCurr.getValue());
+ initialize(connect);
+ } //__________________________________
+
+ private void initialize(boolean bConnect) throws Exception
+ {
+ checkParms();
+ if (bConnect)
+ {
+ m_oConn.setRemoteHost (m_sFtpServer);
+ m_oConn.setRemotePort(m_iPort);
+ m_oConn.connect();
+ for (int i1=0; i1<10 && ! m_oConn.connected(); i1++)
+ Thread.sleep(200);
+ if (! m_oConn.connected())
+ throw new Exception("Can't connect to FTP server");
+ m_oConn.user (m_sUser);
+ m_oConn.password (m_sPasswd);
+ m_oConn.setConnectMode ((m_bPassive) ? FTPConnectMode.PASV : FTPConnectMode.ACTIVE);
+ }
+ } //__________________________________
+ /**
+ * Terminates ftp session and frees resources
+ * <li>Well behaved programs should make sure to call this method </li>
+ */
+ public void quit ()
+ { if (null != m_oConn)
+ try { m_oConn.quit(); }
+ catch (Exception e) {}
+ } //_________________________________
+
+ /**
+ * Deletes specified file in remote directory
+ * @param p_sFile String : filename to delete. Method will attempt to delete
+ * file with rightmost node of argument within remote directory specified in 'remoteDirURI'
+ * @throws Exception : if ftp connection cannot be established, or file
+ * cannot be deleted in remote directory
+ */
+ public void deleteRemoteFile (String p_sFile) throws Exception
+ { m_oConn.delete(getRemoteDir()+"/"+new File(p_sFile).getName());
+ } //_________________________________
+
+ public void remoteDelete (File p_oFile) throws Exception
+ { m_oConn.delete(fileToFtpString(p_oFile));
+ } //_________________________________
+
+ /**
+ * Gets the list of files in the remote directory that end with arg0
+ * @param p_sSuffix String : retrieve only files that end with that suffix - all files if null
+ * @throws Exception : if ftp connection cannot be established, or problems encountered
+ */
+ public String[] getFileListFromRemoteDir (String p_sSuffix) throws Exception
+ {
+ String sSuffix = (null==p_sSuffix)?"*":"*"+p_sSuffix;
+ return m_oConn.dir(sSuffix);
+ } //_________________________________
+
+ /**
+ * Change remote directory
+ * @param p_sDir String : directory to set
+ * @throws Exception : if ftp connection cannot be established, or problems encountered
+ */
+ public void setRemoteDir (String p_sDir) throws Exception
+ {
+ m_oConn.chdir(p_sDir);
+ } //_________________________________
+
+ /**
+ * Renames specified file in remote directory to specified new name
+ * @param p_sFrom String : filename to rename
+ * @param p_sTo String : new filename
+ * @throws Exception : if ftp connection cannot be established, or file
+ * cannot be renamed to new name in remote directory
+ * <li>Method will attempt to rename file with rightmost node of argument
+ * within remote directory specified in 'remoteDirURI', to new name inside
+ * the SAME remote directory
+ */
+ public void renameInRemoteDir (String p_sFrom, String p_sTo) throws Exception
+ {
+ String sRmtFrom = new File(p_sFrom).getName();
+ String sRmtTo = new File(p_sTo).getName();
+
+ try { m_oConn.rename (getRemoteDir()+"/"+sRmtFrom,getRemoteDir()+"/"+sRmtTo); }
+ catch (Exception e)
+ { String sMess = this.getClass().getSimpleName()
+ +" can't rename in remote directory <"
+ +e.getMessage()+">"
+ ;
+ throw new Exception(sMess);
+ }
+ } //_________________________________
+
+ public void remoteRename(File p_oFrom, File p_oTo) throws Exception
+ {
+ try { m_oConn.rename (fileToFtpString(p_oFrom),fileToFtpString(p_oTo)); }
+ catch (Exception e)
+ { String sMess = this.getClass().getSimpleName()
+ +" can't rename in remote directory <"
+ +e.getMessage()+">"
+ ;
+ throw new Exception(sMess);
+ }
+ } //_________________________________
+
+ /**
+ * Uploads specified file from local directory (localDirURI) to remote
+ * directory (remoteDirURI)
+ * @param p_sFile String : filename to upload
+ * @throws Exception : if ftp connection cannot be established, or file
+ * cannot be uploaded
+ * <li> local file will be renamed during transfer ('.xferNotReady' appended
+ * to name)</li>
+ * <li> upon successful completion. the suffix '.xferDone' will be appended
+ * to the original filename </li>
+ */
+ public void uploadFile (File p_oFile, String p_sRemoteName) throws Exception
+ {
+ String sRemoteOK = getRemoteDir() + "/" + p_sRemoteName;
+ String sRemoteTmp = sRemoteOK+TMP_SUFFIX;
+ m_oConn.setType(m_oXferType);
+ m_oConn.put(fileToFtpString(p_oFile),sRemoteTmp);
+ m_oConn.rename(sRemoteTmp,sRemoteOK);
+ } //_________________________________
+
+ /**
+ * Downloads specified file from remote directory (remoteDirURI) to local
+ * directory (localDirURI)
+ * @param p_sFile String : filename to download
+ * @throws Exception : if ftp connection cannot be established, or file
+ * cannot be downloaded
+ * <li> local file is assigned a temporary name during transfer </li>
+ * <li> upon successful completion, local temporary file will be renamed to
+ * name specified in argument, and suffix '.xferDone' will be appended
+ * to the original filename in the remote directory </li>
+ */
+ public void downloadFile (String p_sFile, String p_sFinalName) throws Exception
+ {
+ File oLocalDir = new File(m_sLocalDir);
+ File oLclFile= File.createTempFile("Rosetta_",TMP_SUFFIX,oLocalDir);
+
+ try { oLclFile.delete(); }
+ catch (Exception e) {}
+ m_oConn.setType(m_oXferType);
+ m_oConn.get(fileToFtpString(oLclFile),p_sFile);
+
+ File oNew = new File(oLocalDir,p_sFinalName);
+ if (oNew.exists()) oNew.delete();
+ oLclFile.renameTo(oNew);
+ } //_________________________________
+
+ // Beware !!! The logic here seems wrong, but it works
+ // It appears that there's some kind of bug in the edtftpj.jar library
+ // The !XFER_TYPE.ascii.equals(p_oMode) should NOT be negated
+ // But it works when negated (newlines from Unix to DOS)
+ private void setXferType (XFER_TYPE p_oMode)
+ { m_oXferType = !XFER_TYPE.ascii.equals(p_oMode)
+ ? FTPTransferType.ASCII : FTPTransferType.BINARY;
+ } //_________________________________
+
+ private void checkParms() throws Exception
+ {
+ m_sFtpServer = m_oParms.getAttribute(PARMS_FTP_SERVER);
+ if (null==m_sFtpServer) throw new Exception ("No FTP server specified");
+
+ m_sUser = m_oParms.getAttribute(PARMS_USER);
+ if (null==m_sUser) throw new Exception ("No username specified for FTP");
+
+ m_sPasswd = m_oParms.getAttribute(PARMS_PASSWD);
+ if (null==m_sPasswd) throw new Exception ("No password specified for FTP");
+
+ m_sRemoteDir = m_oParms.getAttribute(PARMS_REMOTE_DIR);
+ if (null==m_sRemoteDir)
+ m_sRemoteDir = "";
+
+ m_sLocalDir = m_oParms.getAttribute(PARMS_LOCAL_DIR);
+ if (null==m_sLocalDir)
+ m_sLocalDir = ".";
+
+ String sAux = m_oParms.getAttribute(PARMS_PORT);
+ m_iPort = (null==sAux) ? 21 : Integer.parseInt(sAux);
+
+ boolean bAscii = false;
+ sAux = m_oParms.getAttribute(PARMS_ASCII);
+ if (null!=sAux)
+ bAscii = Boolean.parseBoolean(sAux);
+ setXferType((bAscii)?XFER_TYPE.ascii:XFER_TYPE.binary);
+
+ m_bPassive = false;
+ sAux = m_oParms.getAttribute(PARMS_PASSIVE);
+ m_bPassive = (null!=sAux) && Boolean.parseBoolean(sAux);
+
+ return;
+ } //__________________________________
+
+ public static String fileToFtpString(File p_oF)
+ {
+ return(null==p_oF) ? null
+ : p_oF.toString().replace("\\","/");
+ } //________________________________
+
+} //____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/NagiosStandaloneHeartbeat.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/NagiosStandaloneHeartbeat.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/NagiosStandaloneHeartbeat.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,38 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.util;
+
+public class NagiosStandaloneHeartbeat
+{
+ public NagiosStandaloneHeartbeat
+ (String pNagiosServer
+ ,int pPort
+ ,String pService
+ ,String pDescription
+ )
+ {
+
+ }
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/NagiosStandaloneHeartbeat.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/ObjLocator.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/ObjLocator.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/ObjLocator.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,93 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.util;
+
+import java.io.Serializable;
+
+ at SuppressWarnings("serial")
+public class ObjLocator implements Serializable
+{
+ private long m_lUid;
+ private Object [] m_oaLocs;
+
+ public long getUid() { return m_lUid; }
+ public String [] getStrings() { return (String []) m_oaLocs; }
+ public int getColumnCount()
+ { return (null == m_oaLocs) ? 0 : m_oaLocs.length;
+ } //__________________________________
+
+ public ObjLocator(long p_lUid, Object [] p_sa)
+ { m_lUid = p_lUid;
+ m_oaLocs = (null == p_sa) ? new Object [0] : p_sa;
+ for (int i1=0; i1<m_oaLocs.length;i1++)
+ if (null == m_oaLocs[i1]) m_oaLocs[i1]="";
+ } //__________________________________
+
+ public Object get(int p_iCol)
+ { return (null == m_oaLocs) ? ""
+ :(p_iCol < 0 || p_iCol >= m_oaLocs.length) ? ""
+ : m_oaLocs[p_iCol];
+ } //__________________________________
+
+ public void set(int p_iCol, Object p_o)
+ { if (null == m_oaLocs) return;
+ if (p_iCol < 0 || p_iCol >= m_oaLocs.length) return;
+ m_oaLocs[p_iCol] = p_o;
+ } //__________________________________
+
+ public boolean equals(Object p_o)
+ { return (p_o instanceof ObjLocator)
+ ? m_lUid == ((ObjLocator)p_o).getUid()
+ : false;
+ } //__________________________________
+
+ public static ObjLocator find(long p_l, ObjLocator[] p_ola)
+ { ObjLocator oRet;
+ if (null != p_ola)
+ for (int i1=0; i1<p_ola.length;i1++)
+ if (p_l == (oRet = p_ola[i1]).getUid()) return oRet;
+ return null;
+ } //__________________________________
+
+ public String toString()
+ { StringBuffer sb = new StringBuffer(200);
+ sb.append("ObjLocator: ").append(m_lUid).append(" <");
+ for (int i1=0; i1<m_oaLocs.length;i1++)
+ { if (i1 > 0) sb.append(" ");
+ sb.append(m_oaLocs[i1].toString());
+ }
+ sb.append(">");
+ return sb.toString();
+ } //__________________________________
+
+ public static long [] getUids(ObjLocator[] p_ola)
+ { long [] laRet = new long [] {};
+ if (null == p_ola) return laRet;
+ if (p_ola.length<1) return laRet;
+ laRet = new long[p_ola.length];
+ for (int i1=0; i1<laRet.length; i1++)
+ laRet[i1] = p_ola[i1].getUid();
+
+ return laRet;
+ } //__________________________________
+
+} //____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/ObjLocator.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/ObjLocatorSorter.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/ObjLocatorSorter.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/ObjLocatorSorter.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,87 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.util;
+
+import java.util.Arrays;
+import java.util.Comparator;
+
+public class ObjLocatorSorter
+{
+ private java.util.List<ObjLocator> m_olRows;
+ private int m_iQcols;
+ private char[] m_caSrt;
+
+ public ObjLocatorSorter(ObjLocator[] p_oa)
+ { m_iQcols = (null==p_oa) ? 0
+ : p_oa.length<1 ? 0
+ : p_oa[0].getColumnCount();
+ m_olRows = Arrays.asList(p_oa);
+ } //________________________________
+
+ public ObjLocator[] sort (int p_iCol)
+ { if (null == m_caSrt)
+ { m_caSrt = new char[m_iQcols];
+ for (int i1=0; i1<m_caSrt.length; i1++) m_caSrt[i1]='d';
+ }
+ ObjLocator [] oaLoc = new ObjLocator[m_olRows.size()];
+ m_olRows.toArray(oaLoc);
+ Arrays.sort(oaLoc,new RowCmp(p_iCol,ascOrDesc(oaLoc,p_iCol)));
+ m_olRows = Arrays.asList(oaLoc);
+ return oaLoc;
+ } //________________________________
+ private static char ascOrDesc(ObjLocator[] p_oa, int p_iCol)
+ {
+ String sMin = "";
+ for (int i1=0; i1<p_oa.length;i1++)
+ { Object oCurr = p_oa[i1].get(p_iCol);
+ if (! (oCurr instanceof String)) continue;
+ if (sMin.compareToIgnoreCase((String)oCurr) > 0)
+ return 'a';
+ sMin = (String) oCurr;
+ }
+ return 'd';
+ } //________________________________
+
+ // ---------------------------------------------------------
+ // Comparator for Table Columns
+ // ---------------------------------------------------------
+ private class RowCmp implements Comparator<ObjLocator>
+ {
+ int m_iCol;
+ boolean m_bAsc;
+
+ RowCmp(int p_i, char p_c)
+ {
+ m_iCol = p_i;
+ m_bAsc = 'a'==Character.toLowerCase(p_c);
+ } //______________________________
+
+ public int compare(ObjLocator o1, ObjLocator o2)
+ {
+ String s1 = (String) o1.get(m_iCol);
+ String s2 = (String) o2.get(m_iCol);
+ int iCmp = s1.compareToIgnoreCase(s2);
+ return (m_bAsc) ? iCmp : -iCmp;
+ } //______________________________
+ } //_______________________________________________
+} //______________________________________________________
+
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/ObjLocatorSorter.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/Util.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/Util.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/Util.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,197 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintStream;
+import java.io.Serializable;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.log4j.Appender;
+import org.apache.log4j.ConsoleAppender;
+import org.apache.log4j.Logger;
+import org.apache.log4j.TTCCLayout;
+import org.apache.xml.serialize.OutputFormat;
+import org.apache.xml.serialize.XMLSerializer;
+import org.jboss.internal.soa.esb.message.format.serialized.MessageImpl;
+import org.jboss.soa.esb.common.ModulePropertyManager;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+
+public class Util
+{
+ private Util()
+ {
+ }
+
+ public static void dumpSysProps(PrintStream p_OS)
+ {
+ String[] sa = new String[ModulePropertyManager.getPropertyManager(ModulePropertyManager.TRANSPORTS_MODULE)
+ .getProperties().size()];
+ ModulePropertyManager.getPropertyManager(ModulePropertyManager.TRANSPORTS_MODULE).getProperties().keySet().toArray(sa);
+ Arrays.sort(sa);
+ for (String sCurr : sa)
+ p_OS.println(sCurr + "="
+ + ModulePropertyManager.getPropertyManager(ModulePropertyManager.TRANSPORTS_MODULE).getProperty(sCurr));
+ } // __________________________________
+
+ public static boolean isNullString(String p_s)
+ {
+ return (null == p_s) ? true : p_s.trim().length() < 1;
+ } // __________________________________
+
+ public static boolean isLong(String p_s)
+ {
+ if (isNullString(p_s))
+ return false;
+ try
+ {
+ Long.parseLong(p_s);
+ return true;
+ } catch (Exception e)
+ {
+ return false;
+ }
+ } // __________________________________
+
+ public static boolean isPositiveLong(String p_s)
+ {
+ if (isNullString(p_s))
+ return false;
+ try
+ {
+ long lBk = Long.parseLong(p_s);
+ return lBk > 0;
+ } catch (Exception e)
+ {
+ return false;
+ }
+ } // __________________________________
+
+ public static int parseInt(String s)
+ {
+ if (s == null)
+ return 0;
+ String sVal = s.trim();
+ if (sVal.length() < 1)
+ return 0;
+ else
+ try
+ {
+ return Integer.parseInt(s);
+ } catch (NumberFormatException ex)
+ {
+ return 0;
+ }
+ } // __________________________________
+
+ public static long parseLong(String s)
+ {
+ if (s == null)
+ return 0;
+ String sVal = s.trim();
+ if (sVal.length() < 1)
+ return 0;
+ else
+ try
+ {
+ return Long.parseLong(s);
+ } catch (NumberFormatException ex)
+ {
+ return 0;
+ }
+ } // __________________________________
+
+ public static Logger getDefaultLogger(Class p_oCls)
+ {
+ Logger oRet = Logger.getLogger(p_oCls.getName());
+ Appender oApp = new ConsoleAppender(new TTCCLayout("ISO8601"));
+ oRet.addAppender(oApp);
+ return oRet;
+ } // __________________________________
+
+ public static Serializable serialize(Message message)
+ throws ParserConfigurationException, IOException
+ {
+ if (message.getType().equals(org.jboss.soa.esb.message.format.MessageType.JAVA_SERIALIZED))
+ return (Serializable)message;
+ Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
+ ((org.jboss.internal.soa.esb.message.format.xml.MessageImpl)message).toXML(doc);
+ StringWriter sWriter = new StringWriter();
+ OutputFormat format = new OutputFormat();
+ format.setIndenting(true);
+ XMLSerializer xmlS = new XMLSerializer(sWriter, format);
+ xmlS.asDOMSerializer();
+ xmlS.serialize(doc);
+ return sWriter.toString();
+ } //________________________________
+
+ public static Message deserialize(Serializable serial)
+ throws ParserConfigurationException,SAXException,IOException
+ {
+ if (serial instanceof MessageImpl) //MessageType.JAVA_SERIALIZED
+ return (Message)serial;
+
+ //MessageType.JBOSS_XML
+ InputStream inStream = new ByteArrayInputStream(((String)serial).getBytes());
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.parse(inStream);
+
+ org.jboss.internal.soa.esb.message.format.xml.MessageImpl message =
+ new org.jboss.internal.soa.esb.message.format.xml.MessageImpl();
+ message.fromXML(doc);
+ return message;
+ } //________________________________
+
+ public static List<KeyValuePair> propertiesFromSelector(String selector) throws Exception
+ {
+ // No problem if selector is null - everything in queue will be returned
+ List<KeyValuePair> oRet = new ArrayList<KeyValuePair>();
+ if (! Util.isNullString(selector))
+ for (String sCurr : selector.split(","))
+ {
+ String[] sa = sCurr.split("=");
+ if (sa.length!=2
+ || sa[1].charAt(0)!='\''
+ || sa[1].charAt(-1+sa[1].length())!='\'')
+ throw new Exception("Illegal message selector syntax <"+selector+">");
+ KeyValuePair oNew = new KeyValuePair
+ (sa[0],sa[1].substring(0,-1+sa[1].length()).substring(1));
+ oRet.add(oNew);
+ }
+ return oRet;
+ } //________________________________
+
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/rosetta/src/org/jboss/soa/esb/util/Util.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/build.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/build.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/build.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,128 @@
+<?xml version="1.0"?>
+<project name="build.rosetta.tests" default="org.jboss.esb.rosetta.tests.compile" basedir=".">
+
+ <property name="org.jboss.esb.internal.dest" value="${basedir}/../../../build"/>
+ <property name="org.jboss.esb.module.src.dir" value="../src"/>
+ <property name="org.jboss.esb.module.classes.dir" value="${org.jboss.esb.internal.dest}/classes/rosetta"/>
+ <property name="org.jboss.esb.module.tests.src.dir" value="${basedir}/src"/>
+ <property name="org.jboss.esb.tests.classes.dir" value="${org.jboss.esb.internal.dest}/tests"/>
+ <property name="org.jboss.esb.tests.report.dir" value="${org.jboss.esb.internal.dest}/tests/junit"/>
+ <property name="org.jboss.esb.root.dir" value="../.."/>
+ <property name="org.jboss.esb.module.tests.coverage.dir" value="${org.jboss.esb.internal.dest}/tests/coverage/rosetta"/>
+ <property name="org.jboss.esb.module.classes.instr.dir" value="${org.jboss.esb.module.tests.coverage.dir}/instr" />
+ <property environment="env"/>
+ <property name="org.jboss.esb.ejb3_embedded.lib.dir" value="${org.jboss.esb.root.dir}/../lib/ext/ejb3_embedded"/>
+ <property name="org.jboss.esb.ext.lib.dir" value="${org.jboss.esb.root.dir}/lib/ext"/>
+ <!-- Set deployment properties filename -->
+ <property name="org.jboss.esb.deployment.properties" value="../../../install/deployment.properties"/>
+ <!-- Load deployment properties File -->
+ <property file="${org.jboss.esb.deployment.properties}"/>
+
+ <condition property="org.jboss.esb.ext.lib.dir" value="{org.jboss.esb.jboss.home}/client">
+ <equals arg1="${org.jboss.esb.frominstall}" arg2="yes"/>
+ </condition>
+
+ <path id="org.jboss.esb.tests.base.classpath">
+ <fileset dir="../${org.jboss.esb.ext.lib.dir}" includes="*.jar"/>
+ <pathelement location="${org.jboss.esb.root.dir}/rosetta/tests/resources/etc"/>
+ <pathelement location="${org.jboss.esb.module.classes.dir}"/>
+ <pathelement location="${org.jboss.esb.ejb3_conf.tests.src.dir}"/>
+ <fileset dir="${org.jboss.esb.ejb3_embedded.lib.dir}" includes="jboss-ejb3-all.jar hibernate-all.jar thirdparty-all.jar"/>
+ </path>
+
+ <target name="org.jboss.esb.tests.init">
+ <tstamp>
+ <format property="TODAY" pattern="dd-MM-yy"/>
+ </tstamp>
+
+ <mkdir dir="${org.jboss.esb.tests.classes.dir}"/>
+ <mkdir dir="${org.jboss.esb.tests.report.dir}"/>
+ </target>
+
+ <target name="clean"/>
+
+ <target name="purge" depends="clean">
+ <delete dir="${org.jboss.esb.tests.classes.dir}"/>
+ </target>
+
+ <target name="org.jboss.esb.rosetta.tests.compile" if="org.jboss.esb.buildtests" depends="org.jboss.esb.tests.init">
+
+ <javac
+ destdir="${org.jboss.esb.tests.classes.dir}"
+ classpathref="org.jboss.esb.tests.base.classpath"
+ debug="${org.jboss.esb.debug}"
+ optimize="${org.jboss.esb.optimize}"
+ >
+ <src path="${org.jboss.esb.module.tests.src.dir}"/>
+ </javac>
+
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- T E S T -->
+ <!-- ====================================================================== -->
+ <target name="org.jboss.esb.rosetta.internal.test">
+ <!-- Instrument the code for code coverage - using emma... -->
+ <delete dir="${org.jboss.esb.module.tests.coverage.dir}" />
+ <mkdir dir="${org.jboss.esb.module.classes.instr.dir}" />
+ <emma>
+ <instr instrpath="${org.jboss.esb.module.classes.dir}"
+ destdir="${org.jboss.esb.module.classes.instr.dir}"
+ metadatafile="${org.jboss.esb.module.tests.coverage.dir}/coverage.emma" />
+ </emma>
+
+ <!-- Run the tests -->
+ <antcall target="org.jboss.esb.services.internal.test.exec"/>
+
+ <!-- Generate the coverage report -->
+ <emma>
+ <report sourcepath="${org.jboss.esb.module.src.dir}" sort="+block,+name,+method,+class" metrics="method:70,block:80,line:80,class:100">
+ <fileset dir="${org.jboss.esb.module.tests.coverage.dir}" >
+ <include name="*.emma" />
+ </fileset>
+ <html outfile="${org.jboss.esb.module.tests.coverage.dir}/index.html" depth="method" columns="name,line,class,method,block"/>
+ </report>
+ </emma>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- U N I T A N D F U N C T I O N A L T E S T S -->
+ <!-- ====================================================================== -->
+ <target name="org.jboss.esb.services.internal.test.exec">
+ <echo message="Running tests for module"/>
+ <junit printsummary="yes" haltonerror="yes" haltonfailure="yes" showoutput="no" fork="true">
+ <formatter type="plain" usefile="false"/>
+ <formatter type="xml"/>
+ <batchtest todir="${org.jboss.esb.tests.report.dir}">
+ <fileset dir="${org.jboss.esb.module.tests.src.dir}">
+ <include name="**/**UnitTest.java"/>
+ <include name="**/**FuncTest.java"/>
+ </fileset>
+ </batchtest>
+ <classpath>
+ <!-- using instrumented code for code coverage -->
+ <pathelement location="${org.jboss.esb.module.classes.instr.dir}"/>
+ <pathelement location="${org.jboss.esb.tests.classes.dir}"/>
+ <!-- Need the tests src folder because there may be non-compiled test resources -->
+ <pathelement location="${org.jboss.esb.module.tests.src.dir}"/>
+ <path refid="org.jboss.esb.tests.base.classpath"/>
+ </classpath>
+ <!-- emma jvm args -->
+ <jvmarg value="-Demma.coverage.out.file=${org.jboss.esb.module.tests.coverage.dir}/coverage.emma" />
+ <jvmarg value="-Demma.coverage.out.merge=true" />
+
+ <sysproperty key="org.jboss.esb.test.db.driver" value="${org.jboss.esb.test.db.driver}"/>
+ <sysproperty key="org.jboss.esb.test.db.url" value="${org.jboss.esb.test.db.url}"/>
+ <sysproperty key="org.jboss.esb.test.db.user" value="${org.jboss.esb.test.db.user}"/>
+ <sysproperty key="org.jboss.esb.test.db.password" value="${org.jboss.esb.test.db.password}"/>
+ <sysproperty key="log4j.configuration" value="log4j.xml"/>
+ </junit>
+ <junitreport>
+ <fileset dir="${org.jboss.esb.tests.report.dir}">
+ <include name="*.xml"/>
+ </fileset>
+ <report format="frames" todir="${org.jboss.esb.tests.report.dir}"/>
+ <report format="noframes" todir="${org.jboss.esb.tests.report.dir}"/>
+ </junitreport>
+ </target>
+</project>
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/default.persistence.properties
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/default.persistence.properties 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/default.persistence.properties 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,17 @@
+hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup
+#hibernate.connection.release_mode=after_statement
+#hibernate.transaction.flush_before_completion=false
+#hibernate.transaction.auto_close_session=false
+#hibernate.query.factory_class=org.hibernate.hql.ast.ASTQueryTranslatorFactory
+#hibernate.hbm2ddl.auto=create-drop
+#hibernate.hbm2ddl.auto=create
+hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider
+# Clustered cache with TreeCache
+#hibernate.cache.provider_class=org.jboss.ejb3.entity.TreeCacheProviderHook
+#hibernate.treecache.mbean.object_name=jboss.cache:service=EJB3EntityTreeCache
+#hibernate.dialect=org.hibernate.dialect.HSQLDialect
+hibernate.jndi.java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+hibernate.jndi.java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
+hibernate.bytecode.use_reflection_optimizer=false
+# I don't think this is honored, but EJB3Deployer uses it
+hibernate.bytecode.provider=javassist
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/ejb3-deployment.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/ejb3-deployment.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/ejb3-deployment.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+ xmlns="urn:jboss:bean-deployer">
+
+ <bean name="EJBDeployment"
+ class="org.jboss.ejb3.embedded.EJB3StandaloneDeployer">
+ <property name="jndiProperties">
+ <inject bean="InitialContextProperties"/>
+ </property>
+ <property name="kernel">
+ <inject bean="jboss.kernel:service=Kernel"/>
+ </property>
+
+ </bean>
+
+</deployment>
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/ejb3-interceptors-aop.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/ejb3-interceptors-aop.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/ejb3-interceptors-aop.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,360 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE aop PUBLIC
+ "-//JBoss//DTD JBOSS AOP 1.0//EN"
+ "http://www.jboss.org/aop/dtd/jboss-aop_1_0.dtd">
+
+<aop>
+ <interceptor class="org.jboss.aspects.remoting.InvokeRemoteInterceptor" scope="PER_VM"/>
+ <interceptor class="org.jboss.aspects.security.SecurityClientInterceptor" scope="PER_VM"/>
+ <interceptor class="org.jboss.aspects.tx.ClientTxPropagationInterceptor" scope="PER_VM"/>
+ <interceptor class="org.jboss.ejb3.remoting.IsLocalInterceptor" scope="PER_VM"/>
+ <interceptor class="org.jboss.aspects.remoting.ClusterChooserInterceptor" scope="PER_VM"/>
+
+ <interceptor class="org.jboss.aspects.tx.TxPropagationInterceptor" scope="PER_VM"/>
+
+ <stack name="ServiceClientInterceptors">
+ <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
+ </stack>
+
+ <stack name="AsynchronousStatelessSessionClientInterceptors">
+ <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
+ </stack>
+
+ <stack name="AsynchronousStatefulSessionClientInterceptors">
+ <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
+ </stack>
+
+ <stack name="StatelessSessionClientInterceptors">
+ <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
+ </stack>
+
+ <stack name="StatefulSessionClientInterceptors">
+ <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
+ </stack>
+
+ <stack name="ClusteredStatelessSessionClientInterceptors">
+ <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.remoting.ClusterChooserInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
+ </stack>
+
+ <stack name="ClusteredStatefulSessionClientInterceptors">
+ <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.remoting.ClusterChooserInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
+ </stack>
+
+ <interceptor class="org.jboss.ejb3.asynchronous.AsynchronousInterceptor" scope="PER_CLASS"/>
+ <interceptor class="org.jboss.ejb3.ENCPropagationInterceptor" scope="PER_VM"/>
+ <interceptor name="Basic Authorization" factory="org.jboss.ejb3.security.RoleBasedAuthorizationInterceptorFactory" scope="PER_CLASS"/>
+ <interceptor name="JACC Authorization" factory="org.jboss.ejb3.security.JaccAuthorizationInterceptorFactory" scope="PER_CLASS"/>
+ <interceptor factory="org.jboss.ejb3.security.AuthenticationInterceptorFactory" scope="PER_CLASS"/>
+ <interceptor factory="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory" scope="PER_CLASS"/>
+ <interceptor class="org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor" scope="PER_VM"/>
+ <interceptor class="org.jboss.ejb3.stateless.StatelessInstanceInterceptor" scope="PER_VM"/>
+ <interceptor class="org.jboss.ejb3.stateful.StatefulInstanceInterceptor" scope="PER_VM"/>
+ <interceptor class="org.jboss.ejb3.stateful.SessionSynchronizationInterceptor" scope="PER_VM"/>
+ <interceptor class="org.jboss.ejb3.service.ServiceSingletonInterceptor" scope="PER_VM"/>
+ <interceptor class="org.jboss.ejb3.cache.StatefulReplicationInterceptor" scope="PER_VM"/>
+ <interceptor factory="org.jboss.ejb3.stateful.StatefulRemoveFactory" scope="PER_CLASS_JOINPOINT"/>
+ <interceptor factory="org.jboss.ejb3.tx.TxInterceptorFactory" scope="PER_CLASS_JOINPOINT"/>
+ <interceptor factory="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory" scope="PER_CLASS_JOINPOINT"/>
+ <interceptor factory="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory" scope="PER_CLASS"/>
+ <interceptor class="org.jboss.ejb3.AllowedOperationsInterceptor" scope="PER_VM"/>
+ <interceptor factory="org.jboss.ejb3.mdb.CurrentMessageInjectorInterceptorFactory" scope="PER_CLASS"/>
+ <interceptor class="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor" scope="PER_VM"/>
+
+ <domain name="Stateless Bean">
+ <bind pointcut="execution(public * *->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
+ <interceptor-ref name="Basic Authorization"/>
+ </bind>
+ <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * *->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+ <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+ </bind>
+ <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
+ @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
+ </annotation>
+ </domain>
+
+ <domain name="JACC Stateless Bean">
+ <bind pointcut="execution(public * *->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
+ <interceptor-ref name="JACC Authorization"/>
+ </bind>
+ <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * *->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+ <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+ </bind>
+ <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
+ @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
+ </annotation>
+ </domain>
+
+ <domain name="Base Stateful Bean">
+ <bind pointcut="execution(public * *->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
+ <interceptor-ref name="Basic Authorization"/>
+ </bind>
+ <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * *->@javax.ejb.Remove(..))">
+ <interceptor-ref name="org.jboss.ejb3.stateful.StatefulRemoveFactory"/>
+ </bind>
+ <bind pointcut="execution(public * *->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.stateful.StatefulInstanceInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+ <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
+ </bind>
+ <bind pointcut="execution(public * $instanceof{javax.ejb.SessionSynchronization}->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.stateful.SessionSynchronizationInterceptor"/>
+ </bind>
+ <bind pointcut="execution(public * *->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+ </bind>
+
+ <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..)) AND !execution(public * *->@javax.ejb.Remove(..))">
+ <interceptor-ref name="org.jboss.ejb3.cache.StatefulReplicationInterceptor"/>
+ </bind>
+ <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
+ @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
+ </annotation>
+ </domain>
+
+ <domain name="Stateful Bean" extends="Base Stateful Bean" inheritBindings="true">
+ <!-- NON Clustered cache configuration -->
+ <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache) AND !class(@org.jboss.annotation.ejb.Clustered)">
+ @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.simple.SimpleStatefulCache.class)
+ </annotation>
+ <annotation expr="!class(@org.jboss.annotation.ejb.cache.simple.PersistenceManager) AND !class(@org.jboss.annotation.ejb.Clustered)">
+ @org.jboss.annotation.ejb.cache.simple.PersistenceManager (org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager.class)
+ </annotation>
+ <annotation expr="!class(@org.jboss.annotation.ejb.cache.simple.CacheConfig) AND !class(@org.jboss.annotation.ejb.Clustered)">
+ @org.jboss.annotation.ejb.cache.simple.CacheConfig (maxSize=100000, idleTimeoutSeconds=300)
+ </annotation>
+
+ <!-- Clustered cache configuration -->
+ <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache) AND class(@org.jboss.annotation.ejb.Clustered)">
+ @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.tree.StatefulTreeCache.class)
+ </annotation>
+ <annotation expr="!class(@org.jboss.annotation.ejb.cache.tree.CacheConfig) AND class(@org.jboss.annotation.ejb.Clustered)">
+ @org.jboss.annotation.ejb.cache.tree.CacheConfig (name="jboss.cache:service=EJB3SFSBClusteredCache", maxSize=100000, idleTimeoutSeconds=300)
+ </annotation>
+ </domain>
+
+ <domain name="JACC Stateful Bean">
+ <bind pointcut="execution(public * *->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
+ <interceptor-ref name="JACC Authorization"/>
+ </bind>
+ <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * *->@javax.ejb.Remove(..))">
+ <interceptor-ref name="org.jboss.ejb3.stateful.StatefulRemoveFactory"/>
+ </bind>
+ <bind pointcut="execution(public * *->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.stateful.StatefulInstanceInterceptor"/>
+ <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+ <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
+ </bind>
+ <bind pointcut="execution(public * $instanceof{javax.ejb.SessionSynchronization}->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.stateful.SessionSynchronizationInterceptor"/>
+ </bind>
+ <bind pointcut="execution(public * *->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+ </bind>
+
+ <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..)) AND !execution(public * *->@javax.ejb.Remove(..))">
+ <interceptor-ref name="org.jboss.ejb3.cache.StatefulReplicationInterceptor"/>
+ </bind>
+ <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
+ @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
+ </annotation>
+
+ <!-- NON Clustered cache configuration -->
+ <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache) AND !class(@org.jboss.annotation.ejb.Clustered)">
+ @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.simple.SimpleStatefulCache.class)
+ </annotation>
+ <annotation expr="!class(@org.jboss.annotation.ejb.cache.simple.PersistenceManager) AND !class(@org.jboss.annotation.ejb.Clustered)">
+ @org.jboss.annotation.ejb.cache.simple.PersistenceManager (org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager.class)
+ </annotation>
+ <annotation expr="!class(@org.jboss.annotation.ejb.cache.simple.CacheConfig) AND !class(@org.jboss.annotation.ejb.Clustered)">
+ @org.jboss.annotation.ejb.cache.simple.CacheConfig (maxSize=100000, idleTimeoutSeconds=300)
+ </annotation>
+
+ <!-- Clustered cache configuration -->
+ <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache) AND class(@org.jboss.annotation.ejb.Clustered)">
+ @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.tree.StatefulTreeCache.class)
+ </annotation>
+ <annotation expr="!class(@org.jboss.annotation.ejb.cache.tree.CacheConfig) AND class(@org.jboss.annotation.ejb.Clustered)">
+ @org.jboss.annotation.ejb.cache.tree.CacheConfig (name="jboss.cache:service=EJB3SFSBClusteredCache", maxSize=100000, idleTimeoutSeconds=300)
+ </annotation>
+ </domain>
+
+ <domain name="Embedded Stateful Bean" extends="Base Stateful Bean" inheritBindings="true">
+ <!-- NON Clustered cache configuration -->
+ <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache)">
+ @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.NoPassivationCache.class)
+ </annotation>
+
+ </domain>
+
+ <domain name="Message Driven Bean">
+ <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * *->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+ <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+ </bind>
+ <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
+ @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=30, timeout=10000)
+ </annotation>
+ </domain>
+
+ <domain name="Consumer Bean">
+ <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * *->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+ <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
+ </bind>
+ <bind pointcut="execution(public * *->*(..)) AND (has(* *->@org.jboss.annotation.ejb.CurrentMessage(..)) OR hasfield(* *->@org.jboss.annotation.ejb.CurrentMessage))">
+ <interceptor-ref name="org.jboss.ejb3.mdb.CurrentMessageInjectorInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * *->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+ </bind>
+ <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
+ @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=30, timeout=10000)
+ </annotation>
+ </domain>
+
+ <domain name="Service Bean">
+ <bind pointcut="execution(public * *->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
+ </bind>
+ <bind pointcut="!execution(* *->create()) AND !execution(* *->start()) AND !execution(*->new(..))">
+ <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
+ <interceptor-ref name="Basic Authorization"/>
+ </bind>
+ <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * *->*(..))">
+ <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+ <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
+ </bind>
+ <bind pointcut="execution(public * *->*(..)) AND !execution(* *->create()) AND !execution(* *->start())">
+ <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+ </bind>
+ </domain>
+
+ <domain name="JACC Service Bean">
+ <bind pointcut="execution(public * *->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
+ </bind>
+ <bind pointcut="!execution(* *->create()) AND !execution(* *->start()) AND !execution(*->new(..))">
+ <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
+ <interceptor-ref name="Basic Authorization"/>
+ </bind>
+ <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+ <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
+ </bind>
+ <bind pointcut="execution(public * *->*(..))">
+ <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+ <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
+ <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
+ </bind>
+ <bind pointcut="execution(public * *->*(..)) AND !execution(* *->create()) AND !execution(* *->start())">
+ <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+ </bind>
+ </domain>
+
+
+</aop>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/embedded-jboss-beans.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/embedded-jboss-beans.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/embedded-jboss-beans.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+ xmlns="urn:jboss:bean-deployer">
+ <bean name="Naming" class="org.jnp.server.SingletonNamingServer"/>
+
+ <bean name="InitialContextProperties" class="java.util.Hashtable">
+ <constructor>
+ <parameter class="java.util.Map">
+ <map keyClass="java.lang.String" valueClass="java.lang.String">
+ <entry>
+ <key>java.naming.factory.initial</key>
+ <value>org.jnp.interfaces.LocalOnlyContextFactory</value>
+ </entry>
+ <entry>
+ <key>java.naming.factory.url.pkgs</key>
+ <value>org.jboss.naming:org.jnp.interfaces</value>
+ </entry>
+ </map>
+ </parameter>
+ </constructor>
+ </bean>
+
+ <bean name="java:comp/Initializer" class="org.jboss.ejb3.embedded.JavaCompInitializer">
+ <property name="jndiProperties"><inject bean="InitialContextProperties"/></property>
+ </bean>
+
+ <bean name="XidFactory" class="org.jboss.tm.XidFactoryImpl"/>
+
+ <bean name="XidFactoryMBean" class="org.jboss.ejb3.embedded.XidFactoryMBean">
+ <constructor>
+ <parameter class="org.jboss.tm.XidFactoryBase">
+ <inject bean="XidFactory"/>
+ </parameter>
+ </constructor>
+ </bean>
+
+ <bean name="TransactionManagerInitializer" class="org.jboss.tm.TransactionManagerInitializer">
+ <property name="xidFactory"><inject bean="XidFactory"/></property>
+ <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property>
+ </bean>
+
+ <bean name="UserTransaction" class="org.jboss.ejb3.embedded.UserTransactionImpl">
+ <demand>TransactionManagerInitializer</demand>
+ </bean>
+
+ <bean name="UserTransactionBinding" class="org.jboss.ejb3.embedded.JndiBinder">
+ <property name="jndiProperties"><inject bean="InitialContextProperties"/></property>
+ <property name="target"><inject bean="UserTransaction"/></property>
+ <property name="bindTo">UserTransaction</property>
+ <property name="serializable">false</property>
+ </bean>
+
+
+ <bean name="TransactionManager" class="java.lang.Object">
+ <constructor factoryMethod="getTransactionManager">
+ <factory bean="TransactionManagerInitializer"/>
+ </constructor>
+ </bean>
+ <bean name="CachedConnectionManager" class="org.jboss.resource.connectionmanager.CachedConnectionManagerReference">
+ <property name="transactionManager"><inject bean="TransactionManager"/></property>
+ </bean>
+
+ <!--
+ <bean class="org.jboss.jdbc.HypersonicDatabase"
+ name="jboss:service=Hypersonic,database=localDB">
+ <property name="database">localDB</property>
+ <property name="inProcessMode">true</property>
+ <property name="dbDataDir">.</property>
+ </bean>
+ -->
+
+ <bean name="DefaultDSBootstrap" class="org.jboss.resource.adapter.jdbc.local.LocalTxDataSource">
+ <property name="driverClass">org.hsqldb.jdbcDriver</property>
+ <property name="connectionURL">jdbc:hsqldb:.</property>
+ <!-- <property name="connectionURL">jdbc:hsqldb:./hypersonic/localDB</property> -->
+ <property name="userName">sa</property>
+ <property name="jndiName">java:/DefaultDS</property>
+ <property name="minSize">0</property>
+ <property name="maxSize">10</property>
+ <property name="blockingTimeout">1000</property>
+ <property name="idleTimeout">100000</property>
+ <property name="transactionManager"><inject bean="TransactionManager"/></property>
+ <property name="cachedConnectionManager"><inject bean="CachedConnectionManager"/></property>
+ <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property>
+ </bean>
+
+ <bean name="DefaultDS" class="java.lang.Object">
+ <constructor factoryMethod="getDatasource">
+ <factory bean="DefaultDSBootstrap"/>
+ </constructor>
+ </bean>
+
+ <!--
+ <bean name="TimerServiceFactory" class="org.jboss.ejb3.timerservice.quartz.QuartzTimerServiceFactory">
+ <property name="properties">
+ org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreCMT
+ org.quartz.jobStore.nonManagedTXDataSource=myDS
+ org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.HSQLDBDelegate
+ org.quartz.jobStore.tablePrefix=QRTZ_
+ org.quartz.jobStore.dataSource=myDS
+
+ # To get it to work with hypersonic
+ # FIXME: this doesn't lock the row
+ org.quartz.jobStore.selectWithLockSQL=SELECT * FROM qrtz_locks WHERE lock_name = ?
+
+ # from quartz.properties
+ org.quartz.scheduler.instanceName=JBossEJB3QuartzScheduler
+ org.quartz.scheduler.rmi.export=false
+ org.quartz.scheduler.rmi.proxy=false
+ org.quartz.scheduler.wrapJobExecutionInUserTransaction=false
+
+ org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
+ org.quartz.threadPool.threadCount=10
+ org.quartz.threadPool.threadPriority=5
+ org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
+
+ org.quartz.jobStore.misfireThreshold=60000
+ </property>
+ <property name="dataSource">java:/DefaultDS</property>
+ <property name="sqlProperties">
+ CREATE_DB_ON_STARTUP = TRUE
+
+ CREATE_TABLE_JOB_DETAILS = CREATE TABLE qrtz_job_details(JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, \
+ DESCRIPTION VARCHAR(120) NULL, JOB_CLASS_NAME VARCHAR(128) NOT NULL, IS_DURABLE VARCHAR(1) NOT NULL, \
+ IS_VOLATILE VARCHAR(1) NOT NULL, IS_STATEFUL VARCHAR(1) NOT NULL, REQUESTS_RECOVERY VARCHAR(1) NOT NULL, \
+ JOB_DATA BINARY NULL, PRIMARY KEY (JOB_NAME,JOB_GROUP))
+ CREATE_TABLE_JOB_LISTENERS = CREATE TABLE qrtz_job_listeners(JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, \
+ JOB_LISTENER VARCHAR(80) NOT NULL, PRIMARY KEY (JOB_NAME,JOB_GROUP,JOB_LISTENER), FOREIGN KEY (JOB_NAME,JOB_GROUP) \
+ REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP))
+ CREATE_TABLE_TRIGGERS = CREATE TABLE qrtz_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, TRIGGER_GROUP VARCHAR(80) NOT NULL, \
+ JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, IS_VOLATILE VARCHAR(1) NOT NULL, DESCRIPTION VARCHAR(120) NULL, \
+ NEXT_FIRE_TIME NUMERIC(13) NULL, PREV_FIRE_TIME NUMERIC(13) NULL, TRIGGER_STATE VARCHAR(16) NOT NULL, \
+ TRIGGER_TYPE VARCHAR(8) NOT NULL, START_TIME NUMERIC(13) NOT NULL, END_TIME NUMERIC(13) NULL, CALENDAR_NAME VARCHAR(80) NULL, \
+ MISFIRE_INSTR NUMERIC(2) NULL, JOB_DATA BINARY NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (JOB_NAME,JOB_GROUP) \
+ REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP))
+ CREATE_TABLE_SIMPLE_TRIGGERS = CREATE TABLE qrtz_simple_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, \
+ TRIGGER_GROUP VARCHAR(80) NOT NULL, REPEAT_COUNT NUMERIC(7) NOT NULL, REPEAT_INTERVAL NUMERIC(12) NOT NULL, \
+ TIMES_TRIGGERED NUMERIC(7) NOT NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \
+ REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
+ CREATE_TABLE_CRON_TRIGGERS = CREATE TABLE qrtz_cron_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, \
+ TRIGGER_GROUP VARCHAR(80) NOT NULL, CRON_EXPRESSION VARCHAR(80) NOT NULL, TIME_ZONE_ID VARCHAR(80), \
+ PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \
+ REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
+ CREATE_TABLE_BLOB_TRIGGERS = CREATE TABLE qrtz_blob_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, \
+ TRIGGER_GROUP VARCHAR(80) NOT NULL, BLOB_DATA BINARY NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), \
+ FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
+ CREATE_TABLE_TRIGGER_LISTENERS = CREATE TABLE qrtz_trigger_listeners(TRIGGER_NAME VARCHAR(80) NOT NULL, \
+ TRIGGER_GROUP VARCHAR(80) NOT NULL, TRIGGER_LISTENER VARCHAR(80) NOT NULL, \
+ PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_LISTENER), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \
+ REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
+ CREATE_TABLE_CALENDARS = CREATE TABLE qrtz_calendars(CALENDAR_NAME VARCHAR(80) NOT NULL, CALENDAR BINARY NOT NULL, \
+ PRIMARY KEY (CALENDAR_NAME))
+ CREATE_TABLE_PAUSED_TRIGGER_GRPS = CREATE TABLE qrtz_paused_trigger_grps(TRIGGER_GROUP VARCHAR(80) NOT NULL, \
+ PRIMARY KEY (TRIGGER_GROUP))
+ CREATE_TABLE_FIRED_TRIGGERS = CREATE TABLE qrtz_fired_triggers(ENTRY_ID VARCHAR(95) NOT NULL, TRIGGER_NAME VARCHAR(80) NOT NULL, \
+ TRIGGER_GROUP VARCHAR(80) NOT NULL, IS_VOLATILE VARCHAR(1) NOT NULL, INSTANCE_NAME VARCHAR(80) NOT NULL, \
+ FIRED_TIME NUMERIC(13) NOT NULL, STATE VARCHAR(16) NOT NULL, JOB_NAME VARCHAR(80) NULL, JOB_GROUP VARCHAR(80) NULL, \
+ IS_STATEFUL VARCHAR(1) NULL, REQUESTS_RECOVERY VARCHAR(1) NULL, PRIMARY KEY (ENTRY_ID))
+ CREATE_TABLE_SCHEDULER_STATE = CREATE TABLE qrtz_scheduler_state(INSTANCE_NAME VARCHAR(80) NOT NULL, \
+ LAST_CHECKIN_TIME NUMERIC(13) NOT NULL, CHECKIN_INTERVAL NUMERIC(13) NOT NULL, RECOVERER VARCHAR(80) NULL, \
+ PRIMARY KEY (INSTANCE_NAME))
+ CREATE_TABLE_LOCKS = CREATE TABLE qrtz_locks(LOCK_NAME VARCHAR(40) NOT NULL, PRIMARY KEY (LOCK_NAME))
+ INSERT_TRIGGER_ACCESS = INSERT INTO qrtz_locks values('TRIGGER_ACCESS')
+ INSERT_JOB_ACCESS = INSERT INTO qrtz_locks values('JOB_ACCESS')
+ INSERT_CALENDAR_ACCESS = INSERT INTO qrtz_locks values('CALENDAR_ACCESS')
+ INSERT_STATE_ACCESS = INSERT INTO qrtz_locks values('STATE_ACCESS')
+ INSERT_MISFIRE_ACCESS = INSERT INTO qrtz_locks values('MISFIRE_ACCESS')
+ </property>
+ </bean>
+
+ -->
+
+</deployment>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/jboss-jms-beans.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/jboss-jms-beans.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/jboss-jms-beans.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+ xmlns="urn:jboss:bean-deployer">
+ <bean name="jboss.mq:service=JMSProviderLoader,name=JMSProvider" class="org.jboss.jms.jndi.JNDIProviderAdapter">
+ <property name="factoryRef">java:/XAConnectionFactory</property>
+ <property name="queueFactoryRef">java:/XAConnectionFactory</property>
+ <property name="topicFactoryRef">java:/XAConnectionFactory</property>
+ <property name="properties" class="java.util.Properties">
+ <map keyClass="java.lang.String" valueClass="java.lang.String">
+ <entry>
+ <key>java.naming.factory.initial</key>
+ <value>org.jnp.interfaces.LocalOnlyContextFactory</value>
+ </entry>
+ <entry>
+ <key>java.naming.factory.url.pkgs</key>
+ <value>org.jboss.naming:org.jnp.interfaces</value>
+ </entry>
+ </map>
+ </property>
+ </bean>
+
+ <bean name="b1" class="org.jboss.ejb3.embedded.JndiBinder">
+ <property name="jndiProperties"><inject bean="InitialContextProperties"/></property>
+ <property name="target"><inject bean="jboss.mq:service=JMSProviderLoader,name=JMSProvider"/></property>
+ <property name="bindTo">java:/DefaultJMSProvider</property>
+ <property name="serializable">true</property>
+ </bean>
+
+ <bean name="jboss.mq:service=ServerSessionPoolMBean,name=StdJMSPool" class="org.jboss.jms.asf.StdServerSessionPoolFactory">
+ <property name="name">StdJMSPool</property>
+ <property name="xidFactory"><inject bean="XidFactoryMBean"/></property>
+ <property name="transactionManager"><inject bean="TransactionManager"/></property>
+ </bean>
+
+ <bean name="b2" class="org.jboss.ejb3.embedded.JndiBinder">
+ <property name="jndiProperties"><inject bean="InitialContextProperties"/></property>
+ <property name="target"><inject bean="jboss.mq:service=ServerSessionPoolMBean,name=StdJMSPool"/></property>
+ <property name="bindTo">java:/StdJMSPool</property>
+ <property name="serializable">false</property>
+ </bean>
+
+
+ <bean name="jboss.mq:service=PersistenceManager" class="org.jboss.mq.kernel.JDBC2PersistenceManager">
+ <property name="transactionManager">
+ <inject bean="TransactionManager"/>
+ </property>
+ <property name="datasource">
+ <inject bean="DefaultDS"/>
+ </property>
+ <property name="sqlProperties">
+
+ BLOB_TYPE=OBJECT_BLOB
+ INSERT_TX = INSERT INTO JMS_TRANSACTIONS (TXID) values(?)
+ INSERT_MESSAGE = INSERT INTO JMS_MESSAGES (MESSAGEID, DESTINATION, MESSAGEBLOB, TXID, TXOP) VALUES(?,?,?,?,?)
+ SELECT_ALL_UNCOMMITED_TXS = SELECT TXID FROM JMS_TRANSACTIONS
+ SELECT_MAX_TX = SELECT MAX(TXID) FROM JMS_MESSAGES
+ SELECT_MESSAGES_IN_DEST = SELECT MESSAGEID, MESSAGEBLOB FROM JMS_MESSAGES WHERE DESTINATION=?
+ SELECT_MESSAGE = SELECT MESSAGEID, MESSAGEBLOB FROM JMS_MESSAGES WHERE MESSAGEID=? AND DESTINATION=?
+ MARK_MESSAGE = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE MESSAGEID=? AND DESTINATION=?
+ UPDATE_MESSAGE = UPDATE JMS_MESSAGES SET MESSAGEBLOB=? WHERE MESSAGEID=? AND DESTINATION=?
+ UPDATE_MARKED_MESSAGES = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE TXOP=?
+ UPDATE_MARKED_MESSAGES_WITH_TX = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE TXOP=? AND TXID=?
+ DELETE_MARKED_MESSAGES_WITH_TX = DELETE FROM JMS_MESSAGES WHERE TXOP=? AND JMS_MESSAGES.TXID IN (SELECT TXID FROM JMS_TRANSACTIONS)
+ DELETE_TX = DELETE FROM JMS_TRANSACTIONS WHERE TXID = ?
+ DELETE_MARKED_MESSAGES = DELETE FROM JMS_MESSAGES WHERE TXID=? AND TXOP=?
+ DELETE_MESSAGE = DELETE FROM JMS_MESSAGES WHERE MESSAGEID=? AND DESTINATION=?
+ CREATE_MESSAGE_TABLE = CREATE CACHED TABLE JMS_MESSAGES ( MESSAGEID INTEGER NOT NULL, \
+ DESTINATION VARCHAR(255) NOT NULL, TXID INTEGER, TXOP CHAR(1), \
+ MESSAGEBLOB OBJECT, PRIMARY KEY (MESSAGEID, DESTINATION) )
+ CREATE_IDX_MESSAGE_TXOP_TXID = CREATE INDEX JMS_MESSAGES_TXOP_TXID ON JMS_MESSAGES (TXOP, TXID)
+ CREATE_IDX_MESSAGE_DESTINATION = CREATE INDEX JMS_MESSAGES_DESTINATION ON JMS_MESSAGES (DESTINATION)
+ CREATE_TX_TABLE = CREATE CACHED TABLE JMS_TRANSACTIONS ( TXID INTEGER, PRIMARY KEY (TXID) )
+ CREATE_TABLES_ON_STARTUP = TRUE
+ DELETE_TEMPORARY_MESSAGES = DELETE FROM JMS_MESSAGES WHERE TXOP='T'
+
+ </property>
+ </bean>
+
+ <bean name="jboss.mq:service=MessageCache" class="org.jboss.mq.kernel.MessageCache">
+ <property name="persistenceManager"><inject bean="jboss.mq:service=PersistenceManager"/></property>
+ <property name="highMemoryMark">50</property>
+ <property name="maxMemoryMark">60</property>
+ </bean>
+
+ <bean name="jms-rar-WorkManager" class="org.jboss.ejb3.embedded.resource.JBossWorkManager">
+ </bean>
+
+ <bean name="jms-rar-DeploymentInfo" class="org.jboss.ejb3.embedded.resource.Ejb3DeploymentInfo">
+ <constructor>
+ <parameter class="java.lang.String">jms-ra.rar</parameter>
+ <parameter class="java.lang.String">javax.jms.MessageListener</parameter>
+ <parameter class="java.lang.String">org.jboss.resource.adapter.jms.inflow.JmsActivationSpec</parameter>
+ </constructor>
+ </bean>
+
+ <bean name="jboss.jca:name='jms-ra.rar',service=RARDeployment" class="org.jboss.ejb3.embedded.resource.RARDeployment">
+ <constructor>
+ <parameter class="org.jboss.deployment.DeploymentInfo">
+ <inject bean="jms-rar-DeploymentInfo"/>
+ </parameter>
+ </constructor>
+ <property name="workManager"><inject bean="jms-rar-WorkManager"/></property>
+ </bean>
+
+ <bean name="jboss.mq:service=StateManager" class="org.jboss.mq.kernel.JDBCStateManager">
+ <property name="transactionManager">
+ <inject bean="TransactionManager"/>
+ </property>
+ <property name="datasource">
+ <inject bean="DefaultDS"/>
+ </property>
+ <property name="sqlProperties">
+
+ CREATE_TABLES_ON_STARTUP = TRUE
+ CREATE_USER_TABLE = CREATE TABLE JMS_USERS (USERID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, \
+ CLIENTID VARCHAR(128), PRIMARY KEY(USERID))
+ CREATE_ROLE_TABLE = CREATE TABLE JMS_ROLES (ROLEID VARCHAR(32) NOT NULL, USERID VARCHAR(32) NOT NULL, \
+ PRIMARY KEY(USERID, ROLEID))
+ CREATE_SUBSCRIPTION_TABLE = CREATE TABLE JMS_SUBSCRIPTIONS (CLIENTID VARCHAR(128) NOT NULL, \
+ SUBNAME VARCHAR(128) NOT NULL, TOPIC VARCHAR(255) NOT NULL, \
+ SELECTOR VARCHAR(255), PRIMARY KEY(CLIENTID, SUBNAME))
+ GET_SUBSCRIPTION = SELECT TOPIC, SELECTOR FROM JMS_SUBSCRIPTIONS WHERE CLIENTID=? AND SUBNAME=?
+ LOCK_SUBSCRIPTION = SELECT TOPIC, SELECTOR FROM JMS_SUBSCRIPTIONS WHERE CLIENTID=? AND SUBNAME=?
+ GET_SUBSCRIPTIONS_FOR_TOPIC = SELECT CLIENTID, SUBNAME, SELECTOR FROM JMS_SUBSCRIPTIONS WHERE TOPIC=?
+ INSERT_SUBSCRIPTION = INSERT INTO JMS_SUBSCRIPTIONS (CLIENTID, SUBNAME, TOPIC, SELECTOR) VALUES(?,?,?,?)
+ UPDATE_SUBSCRIPTION = UPDATE JMS_SUBSCRIPTIONS SET TOPIC=?, SELECTOR=? WHERE CLIENTID=? AND SUBNAME=?
+ REMOVE_SUBSCRIPTION = DELETE FROM JMS_SUBSCRIPTIONS WHERE CLIENTID=? AND SUBNAME=?
+ GET_USER_BY_CLIENTID = SELECT USERID, PASSWD, CLIENTID FROM JMS_USERS WHERE CLIENTID=?
+ GET_USER = SELECT PASSWD, CLIENTID FROM JMS_USERS WHERE USERID=?
+ POPULATE.TABLES.01 = INSERT INTO JMS_USERS (USERID, PASSWD) VALUES ('guest', 'guest')
+ POPULATE.TABLES.02 = INSERT INTO JMS_USERS (USERID, PASSWD) VALUES ('j2ee', 'j2ee')
+ POPULATE.TABLES.03 = INSERT INTO JMS_USERS (USERID, PASSWD, CLIENTID) VALUES ('john', 'needle', 'DurableSubscriberExample')
+ POPULATE.TABLES.04 = INSERT INTO JMS_USERS (USERID, PASSWD) VALUES ('nobody', 'nobody')
+ POPULATE.TABLES.05 = INSERT INTO JMS_USERS (USERID, PASSWD) VALUES ('dynsub', 'dynsub')
+ POPULATE.TABLES.06 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('guest','guest')
+ POPULATE.TABLES.07 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('j2ee','guest')
+ POPULATE.TABLES.08 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('john','guest')
+ POPULATE.TABLES.09 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('subscriber','john')
+ POPULATE.TABLES.10 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('publisher','john')
+ POPULATE.TABLES.11 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('publisher','dynsub')
+ POPULATE.TABLES.12 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('durpublisher','john')
+ POPULATE.TABLES.13 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('durpublisher','dynsub')
+ POPULATE.TABLES.14 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('noacc','nobody')
+
+ </property>
+ </bean>
+
+
+ <bean name="BasicQueueParameters" class="org.jboss.mq.server.BasicQueueParameters"/>
+
+ <bean name="jboss.mq:service=ThreadPool" class="org.jboss.util.threadpool.BasicThreadPool">
+ <property name="name">JMSThread</property>
+ <property name="threadGroupName">JBossMQ Server Threads</property>
+ <!-- The max number of threads in the pool -->
+ <property name="maximumPoolSize">10</property>
+ <!-- The max number of tasks before the queue is full -->
+ <property name="maximumQueueSize">1000</property>
+ <!-- The behavior of the pool when a task is added and the queue is full.
+ abort - a RuntimeException is thrown
+ run - the calling thread executes the task
+ wait - the calling thread blocks until the queue has room
+ discard - the task is silently discarded without being run
+ discardOldest - check to see if a task is about to complete and enque
+ the new task if possible, else run the task in the calling thread
+ -->
+ <property name="blockingModeString">run</property>
+ </bean>
+
+ <bean name="jboss.mq:service=DestinationManager" class="org.jboss.mq.server.JMSDestinationManager">
+ <constructor>
+ <parameter class="org.jboss.mq.server.BasicQueueParameters">
+ <inject bean="BasicQueueParameters"/>
+ </parameter>
+ </constructor>
+ <property name="persistenceManager"><inject bean="jboss.mq:service=PersistenceManager"/></property>
+ <property name="messageCache"><inject bean="jboss.mq:service=MessageCache"/></property>
+ <property name="stateManager"><inject bean="jboss.mq:service=StateManager"/></property>
+ <property name="threadPool"><inject bean="jboss.mq:service=ThreadPool"/></property>
+ <property name="threadGroup"><inject bean="jboss.mq:service=ThreadPool" property="threadGroup"/></property>
+ <start method="startServer"/>
+ <stop method="stopServer"/>
+ </bean>
+
+ <bean name="jboss.mq.destination:service=Queue,name=DLQ" class="org.jboss.mq.kernel.Queue">
+ <property name="destinationManagerPojo"><inject bean="jboss.mq:service=DestinationManager"/></property>
+ <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property>
+ <property name="destinationName">DLQ</property>
+ </bean>
+
+ <bean name="jboss.mq:service=Invoker" class="org.jboss.mq.server.JMSServerInvoker">
+ <property name="next"><inject bean="jboss.mq:service=DestinationManager"/></property>
+ </bean>
+
+ <bean name="jboss.mq:service=invocationlayer,type=JVM" class="org.jboss.mq.kernel.JVMIL">
+ <property name="jmsInvoker"><inject bean="jboss.mq:service=Invoker"/></property>
+ <property name="connectionFactoryJNDIRef">java:/ConnectionFactory</property>
+ <property name="XAConnectionFactoryJNDIRef">java:/XAConnectionFactory</property>
+ <property name="pingPeriod">0</property>
+ <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property>
+ </bean>
+
+</deployment>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/jndi.properties
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/jndi.properties 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/jndi.properties 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,2 @@
+java.naming.factory.initial=org.jnp.interfaces.LocalOnlyContextFactory
+java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/log4j.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/log4j.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/log4j.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml 39945 2006-01-12 02:44:07Z bill $ -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Target" value="System.out"/>
+ <param name="Threshold" value="WARN"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Messagen -->
+ <!--
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+ -->
+ <param name="ConversionPattern" value="%-5p %d{dd-MM HH:mm:ss,SSS} (%F:%M:%L) -%m%n"/>
+ </layout>
+</appender>
+
+ <root>
+ <appender-ref ref="CONSOLE"/>
+ </root>
+
+</log4j:configuration>
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/login-config.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/login-config.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/login-config.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,63 @@
+<?xml version='1.0'?>
+
+<!DOCTYPE policy PUBLIC
+ "-//JBoss//DTD JBOSS Security Config 3.0//EN"
+ "http://www.jboss.org/j2ee/dtd/security_config.dtd">
+
+<!-- The XML based JAAS login configuration read by the
+org.jboss.security.auth.login.XMLLoginConfig mbean. Add
+an application-policy element for each security domain.
+
+The outline of the application-policy is:
+<application-policy name="security-domain-name">
+ <authentication>
+ <login-module code="login.module1.class.name" flag="control_flag">
+ <module-option name = "option1-name">option1-value</module-option>
+ <module-option name = "option2-name">option2-value</module-option>
+ ...
+ </login-module>
+
+ <login-module code="login.module2.class.name" flag="control_flag">
+ ...
+ </login-module>
+ ...
+ </authentication>
+</application-policy>
+
+$Revision: 42748 $
+-->
+
+<policy>
+ <!-- Used by clients within the application server VM such as
+ mbeans and servlets that access EJBs.
+ -->
+ <application-policy name="client-login">
+ <authentication>
+ <login-module code="org.jboss.security.ClientLoginModule"
+ flag="required">
+ <!-- Any existing security context will be restored on logout -->
+ <module-option name="restore-login-identity">true</module-option>
+ </login-module>
+ </authentication>
+ </application-policy>
+
+ <application-policy name="other">
+ <!-- A simple server login module, which can be used when the number
+ of users is relatively small. It uses two properties files:
+ users.properties, which holds users (key) and their password (value).
+ roles.properties, which holds users (key) and a comma-separated list of
+ their roles (value).
+ The unauthenticatedIdentity property defines the name of the principal
+ that will be used when a null username and password are presented as is
+ the case for an unuathenticated web client or MDB. If you want to
+ allow such users to be authenticated add the property, e.g.,
+ unauthenticatedIdentity="nobody"
+ -->
+ <authentication>
+ <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"
+ flag="required"/>
+ </authentication>
+ </application-policy>
+
+</policy>
+
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/security-beans.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/security-beans.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/conf/security-beans.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+ xmlns="urn:jboss:bean-deployer">
+
+ <bean class="org.jboss.ejb3.embedded.JaasSecurityManagerService"
+ name="jboss.security:service=JaasSecurityManager">
+ <property name="initialContextProperties">
+ <inject bean="InitialContextProperties"/>
+ </property>
+ </bean>
+</deployment>
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/device-profile.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/device-profile.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/device-profile.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!DOCTYPE device-profiles PUBLIC "-//MILYN//DTD TINAK 1.0//EN" "http://www.milyn.org/dtd/device-profile-1.0.dtd">
+
+<device-profiles>
+ <device-profile name="type:Acme-Order-XML" list="profile1,profile2"/>
+ <device-profile name="from:Acme" list="profile23,profile24"/>
+ <device-profile name="to:AcmePartner" list="profile55,profile56"/>
+
+ <device-profile name="profile1" list="A"/>
+ <device-profile name="profile2" list="B"/>
+ <device-profile name="profile23" list="C"/>
+ <device-profile name="profile24" list="D"/>
+ <device-profile name="profile55" list="E"/>
+ <device-profile name="profile56" list="E"/>
+</device-profiles>
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/etc/jbossesb-test-properties.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/etc/jbossesb-test-properties.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/resources/etc/jbossesb-test-properties.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2006, JBoss Inc., and others contributors as indicated
+ by the @authors tag. All rights reserved.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ 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,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2005-2006,
+ @author JBoss Inc.
+-->
+<!-- $Id: default-jbossesb-properties.xml $ -->
+<!--
+ These options are described in the JBossESB manual.
+ Defaults are provided here for convenience only.
+
+ Please read through this file prior to using the system, and consider
+ updating the specified entries.
+-->
+<esb
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+ <properties name="core">
+ <property name="org.jboss.soa.esb.jndi.server.type" value="foobar"/>
+ <property name="org.jboss.soa.esb.objStore.configFile" value="file:config.xml"/>
+ </properties>
+ <properties name="transports" depends="core">
+ <property name="org.jboss.soa.esb.mail.smtp.host" value="thishost"/>
+ </properties>
+</esb>
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/StreamUtils.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/StreamUtils.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/StreamUtils.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import junit.framework.TestCase;
+
+/**
+ * Stream handling utilities for testing.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class StreamUtils {
+
+ /**
+ * Read the supplied InputStream and return as an array of bytes.
+ * @param stream The stream to read.
+ * @return The stream contents in an array of bytes.
+ */
+ public static byte[] readStream(InputStream stream) {
+ ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();
+ byte[] buffer = new byte[256];
+ int readCount = 0;
+
+ try {
+ while((readCount = stream.read(buffer)) != -1) {
+ outBuffer.write(buffer, 0, readCount);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ TestCase.fail("Error reading input stream - See above stack trace.");
+ }
+
+ return outBuffer.toByteArray();
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/StringUtils.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/StringUtils.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/StringUtils.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,70 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb;
+
+/**
+ * Utility methods for string manipulation and testing.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class StringUtils {
+
+ /**
+ * Compare the supplied strings, ignoring line break characters.
+ * @param string1 The 1st string.
+ * @param string2 The 2nd string.
+ * @param ignorecase True if a case insensitive comparison is to
+ * be performed, otherwise false.
+ * @return True if the strings are equal, otherwise false.
+ */
+ public static boolean equalsIgnoreLinebreaks(String string1, String string2, boolean ignorecase) {
+ string1 = removeChar(string1, '\r');
+ string1 = removeChar(string1, '\n');
+ string2 = removeChar(string2, '\r');
+ string2 = removeChar(string2, '\n');
+
+ if(ignorecase) {
+ return string1.equalsIgnoreCase(string2);
+ } else {
+ return string1.equals(string2);
+ }
+ }
+
+ /**
+ * Delete all instances of the specified character from the supplied string.
+ * @param string The string to be opperated on.
+ * @param character The character to be removed.
+ */
+ public static String removeChar(String string, char character) {
+ StringBuffer stringBuf = new StringBuffer(string);
+ int index = 0;
+
+ while(index < stringBuf.length()) {
+ if(stringBuf.charAt(index) == character) {
+ stringBuf.deleteCharAt(index);
+ } else {
+ index++;
+ }
+ }
+
+ return stringBuf.toString();
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/W3CDomUtils.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/W3CDomUtils.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/W3CDomUtils.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,35 @@
+package org.jboss.soa.esb;
+
+import java.io.ByteArrayOutputStream;
+
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import junit.framework.TestCase;
+
+import org.w3c.dom.Document;
+
+public abstract class W3CDomUtils {
+
+ public static String serialize(Document document) {
+ DOMSource src = new DOMSource(document);
+
+ ByteArrayOutputStream byteBuf = new ByteArrayOutputStream(5000);
+ StreamResult res = new StreamResult(byteBuf);
+
+ try {
+ Transformer transformer = TransformerFactory.newInstance().newTransformer();
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+ transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+ transformer.transform(src, res);
+ } catch (Exception e) {
+ e.printStackTrace();
+ TestCase.fail("Failed to serialise doc. See above stack trace.");
+ }
+
+ return byteBuf.toString();
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/EmailUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/EmailUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/EmailUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,68 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.addressing.helpers.tests;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.addressing.helpers.EmailEpr;
+
+/**
+ * Unit tests for the EPR class.
+ *
+ * @author Mark Little
+ */
+
+public class EmailUnitTest extends TestCase
+{
+
+ public void testConstructor ()
+ {
+ try
+ {
+ new EmailEpr(EmailEpr.SMTP_PROTOCOL, "myhost", "25", "foo", "bar");
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testSetGet ()
+ {
+ try
+ {
+ EmailEpr em = new EmailEpr(EmailEpr.SMTP_PROTOCOL, "myhost", "25", "foo", "bar");
+
+ assertEquals(em.getHost(), "myhost");
+ assertEquals(em.getProtocol(), EmailEpr.SMTP_PROTOCOL);
+ assertEquals(em.getPort(), 25);
+ assertEquals(em.getUserName(), "foo");
+ assertEquals(em.getPassword(), "bar");
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/FTPUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/FTPUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/FTPUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,72 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.addressing.helpers.tests;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.addressing.helpers.FTPEpr;
+
+/**
+ * Unit tests for the EPR class.
+ *
+ * @author Mark Little
+ */
+
+public class FTPUnitTest extends TestCase
+{
+
+ public void testConstructor ()
+ {
+ try
+ {
+ new FTPEpr("ftp://foo.com");
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testSetGet ()
+ {
+ try
+ {
+ FTPEpr ftp = new FTPEpr("ftp://foo.com");
+
+ assertEquals(ftp.getURL().toString(), "ftp://foo.com");
+ assertEquals(ftp.getURL().getHost(), "foo.com");
+ assertEquals(ftp.getURL().getProtocol(), "ftp");
+
+ ftp.setPassword("foobar");
+ assertEquals(ftp.getPassword(), "foobar");
+
+ ftp.setUserName("barfoo");
+ assertEquals(ftp.getUserName(), "barfoo");
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/HTTPUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/HTTPUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/HTTPUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,73 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.addressing.helpers.tests;
+
+import java.net.URL;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.addressing.helpers.HTTPEpr;
+
+/**
+ * Unit tests for the EPR class.
+ *
+ * @author Mark Little
+ */
+
+public class HTTPUnitTest extends TestCase
+{
+
+ public void testConstructor ()
+ {
+ try
+ {
+ String url1 = "http://www.local.bar:8080";
+ new HTTPEpr(url1);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testSetGet ()
+ {
+ try
+ {
+ String url1 = "http://www.local.bar:8080";
+ HTTPEpr epr = new HTTPEpr(url1);
+
+ assertEquals(epr.getURL().toString(), url1);
+
+ String url2 = "http://foo.com";
+ epr.setURL(new URL(url2));
+
+ assertEquals(epr.getURL().toString(), url2);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/JDBCUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/JDBCUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/JDBCUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,91 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.addressing.helpers.tests;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.addressing.helpers.JDBCEpr;
+
+/**
+ * Unit tests for the EPR class.
+ *
+ * @author Mark Little
+ */
+
+public class JDBCUnitTest extends TestCase
+{
+
+ public void testConstructor ()
+ {
+ try
+ {
+ new JDBCEpr("jdbc:arjuna:oracle:thin", "CREATE TABLE foo");
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testSetGet ()
+ {
+ try
+ {
+ JDBCEpr em = new JDBCEpr("jdbc:arjuna:oracle:thin", "CREATE TABLE foo");
+
+ assertEquals(em.getURL(), "jdbc:arjuna:oracle:thin");
+ assertEquals(em.getSQL(), "CREATE TABLE foo");
+
+ em.setURL("jdbc:arjuna:oracle:thin");
+ assertEquals(em.getURL(), "jdbc:arjuna:oracle:thin");
+
+ em.setUserName("me");
+ assertEquals(em.getUserName(), "me");
+
+ em.setPassword("foobar");
+ assertEquals(em.getPassword(), "foobar");
+
+ try
+ {
+ em.setSQL("INVALID");
+
+ fail();
+ }
+ catch (IllegalStateException ex)
+ {
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+
+ em.setDriver("cloudscape");
+ assertEquals(em.getDriver(), "cloudscape");
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/JMSUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/JMSUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/JMSUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,67 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.addressing.helpers.tests;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.addressing.helpers.JMSEpr;
+
+/**
+ * Unit tests for the EPR class.
+ *
+ * @author Mark Little
+ */
+
+public class JMSUnitTest extends TestCase
+{
+
+ public void testConstructor ()
+ {
+ try
+ {
+ new JMSEpr(JMSEpr.ONE_ONE_PROTOCOL, JMSEpr.QUEUE_TYPE, "bar", "foobar",null,null,null);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testSetGet ()
+ {
+ try
+ {
+ JMSEpr jms = new JMSEpr(JMSEpr.ONE_ONE_PROTOCOL, JMSEpr.QUEUE_TYPE, "bar", "foobar",null,null,null);
+
+ assertEquals(jms.getVersion(), JMSEpr.ONE_ONE_PROTOCOL);
+ assertEquals(jms.getConnectionFactory(), "foobar");
+ assertEquals(jms.getDestinationType(), JMSEpr.QUEUE_TYPE);
+ assertEquals(jms.getDestinationName(), "bar");
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/tests/CallUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/tests/CallUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/tests/CallUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,195 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.addressing.tests;
+
+import java.net.URI;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.addressing.Call;
+import org.jboss.soa.esb.addressing.EPR;
+
+/**
+ * Unit tests for the Class class.
+ *
+ * @author Mark Little
+ */
+
+public class CallUnitTest extends TestCase
+{
+ public void testConstructor ()
+ {
+ Call call = new Call();
+
+ try
+ {
+ assertEquals((call.getTo() == null), true);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testEPRConstructor ()
+ {
+ try
+ {
+ EPR epr = new EPR(new URI("http://localhost"));
+ Call call = new Call(epr);
+
+ assertEquals(call.getTo().equals(epr), true);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testSetGetTo ()
+ {
+ Call call = new Call();
+
+ try
+ {
+ EPR epr = new EPR(new URI("http://localhost"));
+
+ call.setTo(epr);
+
+ assertEquals(call.getTo().equals(epr), true);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testSetGetFrom ()
+ {
+ Call call = new Call();
+
+ try
+ {
+ EPR epr = new EPR(new URI("http://localhost"));
+
+ call.setFrom(epr);
+
+ assertEquals(call.getFrom().equals(epr), true);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testSetGetReplyTo ()
+ {
+ Call call = new Call();
+
+ try
+ {
+ EPR epr = new EPR(new URI("http://localhost"));
+
+ call.setReplyTo(epr);
+
+ assertEquals(call.getReplyTo().equals(epr), true);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testSetGetFaultTo ()
+ {
+ Call call = new Call();
+
+ try
+ {
+ EPR epr = new EPR(new URI("http://localhost"));
+
+ call.setFaultTo(epr);
+
+ assertEquals(call.getFaultTo().equals(epr), true);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testSetGetRelatesTo ()
+ {
+ Call call = new Call();
+
+ try
+ {
+ URI uri = new URI("urn:1234");
+
+ call.setRelatesTo(uri);
+
+ assertEquals(call.getRelatesTo().equals(uri), true);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testSetGetAction ()
+ {
+ Call call = new Call();
+
+ try
+ {
+ URI uri = new URI("urn:1234");
+
+ call.setAction(uri);
+
+ assertEquals(call.getAction().equals(uri), true);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testSetGetMessageID ()
+ {
+ Call call = new Call();
+
+ try
+ {
+ URI uri = new URI("urn:1234");
+
+ call.setMessageID(uri);
+
+ assertEquals(call.getMessageID().equals(uri), true);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/tests/EPRUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/tests/EPRUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/tests/EPRUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,115 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.addressing.tests;
+
+import java.net.URI;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.PortReference;
+
+/**
+ * Unit tests for the EPR class.
+ *
+ * @author Mark Little
+ */
+
+public class EPRUnitTest extends TestCase
+{
+
+ public void testConstructor ()
+ {
+ EPR epr = new EPR();
+
+ System.err.println("Default EPR: "+epr);
+ }
+
+ public void testPortReferenceConstructor ()
+ {
+ EPR epr = new EPR(new PortReference("http://localhost:8080"));
+
+ assertEquals(epr.toString(), "EPR: PortReference < http://localhost:8080 >");
+ }
+
+ public void testURIConstructor ()
+ {
+ try
+ {
+ EPR epr = new EPR(new URI("urn:foo:bar"));
+
+ assertEquals(epr.toString(), "EPR: PortReference < urn:foo:bar >");
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testGetAddr ()
+ {
+ try
+ {
+ EPR epr = new EPR(new URI("urn:foo:bar"));
+
+ assertEquals(epr.getAddr().getAddress(), "urn:foo:bar");
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testSetAddr ()
+ {
+ EPR epr = new EPR();
+
+ epr.setAddr(new PortReference("http://localhost"));
+
+ try
+ {
+ assertEquals(epr.getAddr().getAddress(), "http://localhost");
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testEquals ()
+ {
+ try
+ {
+ EPR epr1 = new EPR(new URI("http://localhost"));
+ EPR epr2 = new EPR(new URI("http://localhost"));
+ EPR epr3 = new EPR(new URI("http://localhost:8080"));
+
+ assertEquals(epr1.equals(epr2), true);
+ assertEquals(epr1.equals(epr3), false);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/util/tests/EPRManagerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/util/tests/EPRManagerUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/addressing/util/tests/EPRManagerUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,77 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.addressing.util.tests;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.addressing.helpers.EmailEpr;
+import org.jboss.soa.esb.addressing.util.EPRManager;
+
+/**
+ * Unit tests for the Class class.
+ *
+ * @author Mark Little
+ */
+
+public class EPRManagerUnitTest extends TestCase
+{
+
+ public void testCreate ()
+ {
+ EPRManager manager1 = EPRManager.getInstance(null);
+ EPRManager manager2 = EPRManager.getInstance("");
+ EPRManager manager3 = EPRManager.getInstance("/tmp");
+
+ assertEquals(manager1.equals(manager2), true);
+ assertEquals(manager1.equals(manager3), false);
+ }
+
+ public void testInputOutput ()
+ {
+ EmailEpr email = new EmailEpr(EmailEpr.SMTP_PROTOCOL, "foobar", "25", "me", "letmein");
+
+ String tmpDir = "/tmp";
+ String os = System.getProperty("os.name").toLowerCase();
+ if (os.indexOf("windows")>=0) {
+ tmpDir="/Temp";
+ }
+ EPRManager manager = EPRManager.getInstance(tmpDir);
+
+ try
+ {
+ manager.saveEPR("MyEmail", email);
+
+ EmailEpr loaded = new EmailEpr(manager.loadEPR("MyEmail"));
+
+ assertEquals(loaded.getHost().equals("foobar"), true);
+ assertEquals(loaded.getPassword().equals("letmein"), true);
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+
+ fail(ex.toString());
+ }
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/command/InMemoryCommandQueueUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/command/InMemoryCommandQueueUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/command/InMemoryCommandQueueUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,124 @@
+package org.jboss.soa.esb.command;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.jboss.internal.soa.esb.command.CommandQueue;
+import org.jboss.internal.soa.esb.command.CommandQueueException;
+import org.jboss.internal.soa.esb.command.InMemoryCommandQueue;
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+public class InMemoryCommandQueueUnitTest extends TestCase {
+
+ public void test_args() throws CommandQueueException {
+ InMemoryCommandQueue commandQueue = new InMemoryCommandQueue();
+
+ try {
+ commandQueue.open(null);
+ fail("Expected IllegalArgumentException.");
+ } catch (IllegalArgumentException e) {
+ // OK
+ }
+
+ ConfigTree config = new ConfigTree("config");
+ try {
+ commandQueue.open(config);
+ fail("Expected CommandQueueException.");
+ } catch (CommandQueueException e) {
+ // OK
+ }
+ }
+
+ public void test_queue_open_close() throws CommandQueueException {
+ ConfigTree config = new ConfigTree("config");
+ InMemoryCommandQueue commandQueue = new InMemoryCommandQueue();
+
+ config.setAttribute(InMemoryCommandQueue.COMMAND_QUEUE_NAME, "test-queue");
+ assertEquals(null, InMemoryCommandQueue.getQueue("test-queue"));
+ commandQueue.open(config);
+ assertEquals(commandQueue, InMemoryCommandQueue.getQueue("test-queue"));
+ commandQueue.close();
+ assertEquals(null, InMemoryCommandQueue.getQueue("test-queue"));
+ }
+
+ public void test_queue_receive() throws CommandQueueException, InterruptedException {
+ ConfigTree config = new ConfigTree("config");
+ InMemoryCommandQueue commandQueue = new InMemoryCommandQueue();
+
+ // receive should fail if the queue hasn't been opened yet...
+ try {
+ commandQueue.receiveCommand(0);
+ fail("Expected CommandQueueException.");
+ } catch (CommandQueueException e) {
+ // OK
+ }
+
+ config.setAttribute(InMemoryCommandQueue.COMMAND_QUEUE_NAME, "test-queue");
+ commandQueue.open(config);
+
+ // Start the consumer thread - it will receive the commands from the queue.
+ CommandConsumerThread consumerThread = new CommandConsumerThread(commandQueue);
+ consumerThread.start();
+
+ // Make sure the thread is running.
+ assertTrue(consumerThread.isRunning);
+
+ commandQueue.addCommand("command1");
+ assertCommandReceived(consumerThread, "command1", 0);
+ commandQueue.addCommand("command2");
+ assertCommandReceived(consumerThread, "command2", 1);
+ commandQueue.addCommand("command3");
+ assertCommandReceived(consumerThread, "command3", 2);
+
+ // Stop the queue thread...
+ commandQueue.addCommand("stop");
+ Thread.sleep(50);
+ assertTrue(!consumerThread.isRunning); // this flag being reset proves the stop command was consumed and so the queue is really working
+ assertEquals(4, consumerThread.unblockCount); // Should have unblocked 4 times - once for each command.
+
+ // receive should fail if the queue has been closed...
+ commandQueue.close();
+ try {
+ commandQueue.receiveCommand(0);
+ fail("Expected CommandQueueException.");
+ } catch (CommandQueueException e) {
+ // OK
+ }
+ }
+
+ private void assertCommandReceived(CommandConsumerThread consumerThread, String expected, int index) throws InterruptedException {
+ Thread.sleep(50);
+ assertEquals("Received commands queue is not the expected length.", index + 1, consumerThread.commandsReceived.size());
+ assertEquals("Command not found as last added command.", expected, consumerThread.commandsReceived.get(index));
+ }
+
+ private class CommandConsumerThread extends Thread {
+
+ private List<String> commandsReceived = new ArrayList<String>();
+ private CommandQueue commandQueue;
+ private boolean isRunning = true;
+ private int unblockCount = 0;
+
+ private CommandConsumerThread(CommandQueue commandQueue) {
+ this.commandQueue = commandQueue;
+ }
+
+ @Override
+ public void run() {
+ String command = null;
+
+ while(!"stop".equals(command)) {
+ try {
+ command = commandQueue.receiveCommand(0);
+ commandsReceived.add(command);
+ } catch (CommandQueueException e) {
+ fail("CommandQueue Exception: " + e.getMessage());
+ }
+ unblockCount++;
+ }
+ isRunning = false;
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/bizclasses/BatchProcessUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/bizclasses/BatchProcessUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/bizclasses/BatchProcessUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.common.bizclasses;
+
+import junit.framework.TestCase;
+
+/**
+ * BatchProcess unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class BatchProcessUnitTest extends TestCase {
+
+ public void test_BatchProcess() {
+
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/BaseTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/BaseTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/BaseTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,187 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.common.tests;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.util.HashMap;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.common.ModulePropertyManager;
+
+/**
+ * Base test class for esb test classes, uses jboss logging.
+ *
+ * @author <a href="mailto:arvinder.singh at indigo-logic.com">Arvinder Singh</a>
+ * @version <tt>$Revision:$</tt> $Id:$
+ */
+
+/*
+ * This should probably use its own property file.
+ */
+
+public class BaseTest extends TestCase
+{
+
+ /** The Database driver used for unit tests */
+ public static String DB_DRIVER = "org.jboss.esb.test.db.driver";
+
+ /** The Database connection url used for unit tests */
+ public static String DB_URL = "org.jboss.esb.test.db.url";
+
+ /** The Database user name used for unit tests */
+ public static String DB_USERNAME = "org.jboss.esb.test.db.user";
+
+ /** The Database password used for unit tests */
+ public static String DB_PASSWORD = "org.jboss.esb.test.db.password";
+
+ /** The Logger. */
+ protected Logger log = Logger.getLogger(getClass());
+
+ /** Contains user and or deployment specific paramater */
+ public static HashMap<String, String> SYSTEM_PARAMETERS;
+
+ /**
+ * Default class constructor.
+ */
+ public BaseTest()
+ {
+ SYSTEM_PARAMETERS = readSystemParameters();
+ }
+
+ /**
+ * Utility constructor.
+ *
+ * @param name
+ * The test name.
+ */
+ public BaseTest(String name)
+ {
+ super(name);
+ SYSTEM_PARAMETERS = readSystemParameters();
+ }
+
+ /**
+ * Reading system parameter that are set by the ant build when invoking the
+ * junit call. The parameter values should be set in the
+ * deployment.properties file. If the particular parameter is not found it
+ * will receive a default value.
+ */
+ private HashMap<String, String> readSystemParameters()
+ {
+ // Reading system parameter
+ String dbDriver = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE)
+ .getProperty(DB_DRIVER, "org.hsqldb.jdbcDriver");
+ String dbUrl = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE)
+ .getProperty(DB_URL, "jdbc:hsqldb:.");
+ String dbUsername = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE)
+ .getProperty(DB_USERNAME, "sa");
+ String dbPassword = ModulePropertyManager.getPropertyManager(ModulePropertyManager.CONNECTION_MODULE)
+ .getProperty(DB_PASSWORD, "");
+
+ // Setting the paremeters in the HashMap
+ HashMap<String, String> systemParameters = new HashMap<String, String>();
+ systemParameters.put(DB_DRIVER, dbDriver);
+ systemParameters.put(DB_URL, dbUrl);
+ systemParameters.put(DB_USERNAME, dbUsername);
+ systemParameters.put(DB_PASSWORD, dbPassword);
+
+ log.log(Priority.INFO, "DB parameters:");
+ log.log(Priority.INFO, "Driver=" + dbDriver);
+ log.log(Priority.INFO, "url=" + dbUrl);
+ log.log(Priority.INFO, "username=" + dbUsername);
+ log.log(Priority.INFO, "password=" + dbPassword);
+
+ return systemParameters;
+ }
+
+ protected String getDbUrl()
+ {
+ return SYSTEM_PARAMETERS.get(DB_URL);
+ }
+
+ protected String getDbUser()
+ {
+ return SYSTEM_PARAMETERS.get(DB_USERNAME);
+ }
+
+ protected String getDbPassword()
+ {
+ return SYSTEM_PARAMETERS.get(DB_PASSWORD);
+ }
+
+ protected String getDbDriver()
+ {
+ return SYSTEM_PARAMETERS.get(DB_DRIVER);
+ }
+
+ public Connection getDbConnection() throws SQLException
+ {
+ registerJdbcDriver();
+ return DriverManager.getConnection(getDbUrl(), getDbUser(),
+ getDbPassword());
+ }
+
+ public Connection getDbConnection(String username, String password)
+ throws SQLException
+ {
+ registerJdbcDriver();
+ return DriverManager.getConnection(getDbUrl(), username, password);
+ }
+
+ /**
+ * Set the test ObjStoreConfigFile location in the classpath/filesystem.
+ *
+ * @param filePath
+ * Classpath/filesystem location.
+ */
+ public void setObjStoreConfigFile(String filePath)
+ {
+ if (filePath == null)
+ {
+ ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperties()
+ .remove(Environment.OBJECT_STORE_CONFIG_FILE);
+ } else
+ {
+ ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).setProperty(
+ Environment.OBJECT_STORE_CONFIG_FILE, filePath);
+ }
+ }
+
+ private void registerJdbcDriver()
+ {
+ try
+ {
+ Class.forName(getDbDriver()).newInstance();
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ fail("JDBC Driver [" + getDbDriver()
+ + "] not available in classpath.");
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/EJBContainerSetup.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/EJBContainerSetup.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/EJBContainerSetup.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,156 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.common.tests;
+
+/**
+ * Special Setup class to invoke the JBoss microcontainer for testing ejb
+ * code. Based a class provided by John Gilbert.
+ *
+ * @author kstam
+ */
+import java.util.Properties;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NameClassPair;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+
+import org.apache.log4j.Logger;
+import org.jboss.ejb3.embedded.EJB3StandaloneBootstrap;
+import org.jboss.soa.esb.common.ModulePropertyManager;
+
+public class EJBContainerSetup extends TestSetup {
+
+ private static final Logger log = Logger.getLogger(EJBContainerSetup.class);
+
+ private static InitialContext initialContext;
+
+ private static boolean initialized = false;
+
+ public EJBContainerSetup(Test test) {
+ super(test);
+ }
+
+ protected void setUp() {
+ startupEmbeddedJboss();
+ }
+
+ protected void tearDown() {
+ // shutdownEmbeddedJboss();
+ }
+
+ public static void shutdownEmbeddedJboss() {
+ EJB3StandaloneBootstrap.shutdown();
+ }
+
+ public static void startupEmbeddedJboss() {
+ try {
+ if (initialized)
+ return;
+
+ // Boot the JBoss Microcontainer with EJB3 settings, loads
+ // ejb3-interceptors-aop.xml
+ EJB3StandaloneBootstrap.boot(null);
+
+ log.info("scanClasspath: "
+ + ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).getProperty("java.class.path"));
+ EJB3StandaloneBootstrap.scanClasspath();
+
+ // Create InitialContext from jndi.properties
+ System.setProperty("java.naming.factory.initial",
+ "org.jnp.interfaces.LocalOnlyContextFactory");
+ System.setProperty("java.naming.factory.url.pkgs",
+ "org.jboss.naming:org.jnp.interfaces");
+ initialContext = new InitialContext();
+
+ //printJndiTree();
+
+ initialized = true;
+
+ } catch (Exception ex) {
+ log.error("EJB3 Container Startup Error", ex);
+ throw new RuntimeException(ex);
+ }
+ }
+
+ @SuppressWarnings("unused")
+ static private void printJndiTree() throws Exception {
+
+ log.info("JNDI Tree");
+ NamingEnumeration e = initialContext.list("");
+ while (e.hasMore()) {
+ NameClassPair element = (NameClassPair) e.next();
+ print(element, "");
+ }
+ e = initialContext.list("java:");
+ while (e.hasMore()) {
+ NameClassPair element = (NameClassPair) e.next();
+ print(element, "");
+ }
+ }
+
+ static private void print(NameClassPair ctx, String tab) {
+ log.info(tab + ctx);
+ try {
+ NamingEnumeration e = initialContext.list(ctx.getName());
+ while (e.hasMore()) {
+ NameClassPair element = (NameClassPair) e.next();
+ print(element, tab + "--> ");
+ }
+ } catch (NamingException e1) {
+ }
+ }
+
+ public static Object lookup(String beanName) {
+ try {
+ return initialContext.lookup(beanName);
+ } catch (NamingException ex) {
+ throw new RuntimeException("Couldn't lookup: " + beanName, ex);
+ }
+ }
+
+ public static Object lookup(String beanName, String user, String password) {
+ InitialContext ctx = null;
+ try {
+ Properties env = new Properties();
+ env.setProperty(Context.SECURITY_PRINCIPAL, user);
+ env.setProperty(Context.SECURITY_CREDENTIALS, password);
+ env.setProperty(Context.INITIAL_CONTEXT_FACTORY,
+ "org.jboss.security.jndi.JndiLoginInitialContextFactory");
+ ctx = new InitialContext(env);
+
+ return ctx.lookup(beanName);
+ } catch (NamingException ex) {
+ throw new RuntimeException("Couldn't lookup: " + beanName, ex);
+ } finally {
+ try {
+ ctx.close();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/HsqldbUtil.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/HsqldbUtil.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/HsqldbUtil.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,64 @@
+package org.jboss.soa.esb.common.tests;
+
+import java.sql.DriverManager;
+import java.sql.Statement;
+
+import org.hsqldb.Server;
+/**
+ * Utility to start and stop a hsql Database.
+ *
+ * @author <a href="mailto:kurt.stam at jboss.com">Kurt Stam</a>
+ *
+ */
+public class HsqldbUtil
+{
+ final private static String THREAD_NAME = "hypersonic-unittest";
+ /**
+ * Starts the hsql database in it's own thread.
+ * Don't forget to shut it down when you're done.
+ *
+ * @param databaseFile - i.e. build/hsqltestdb
+ * @param databaseName - i.e. jbossesb
+ * @throws Exception
+ */
+ public static void startHsqldb(final String databaseFile,
+ final String databaseName) throws Exception
+ {
+ // Start DB in new thread, or else it will block us
+ Thread serverThread = new Thread(THREAD_NAME) {
+ public void run() {
+ try {
+ // Create startup arguments
+ String[] args = new String[4];
+ args[0] = "-database.0";
+ args[1] = databaseFile;
+ args[2] = "-dbname.0";
+ args[3] = databaseName;
+
+ // Start server
+ Server.main(args);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ //log.error("Failed to start database", e);
+ }
+ };
+ serverThread.run();
+ }
+ /**
+ *
+ * @param url
+ * @param username
+ * @param password
+ * @throws Exception
+ */
+ public static void stopHsqldb(String url, String username, String password) throws Exception {
+ java.sql.Connection connection = DriverManager.getConnection(
+ url, username, password);
+ Statement statement = connection.createStatement();
+ String shutdownCommand = "SHUTDOWN COMPACT";
+ statement.executeQuery(shutdownCommand);
+ }
+
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/MockDataSource.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/MockDataSource.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/MockDataSource.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,94 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.common.tests;
+
+import java.io.PrintWriter;
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import javax.sql.DataSource;
+
+
+/**
+ * Mock {@link javax.sql.DataSource} implementation.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class MockDataSource implements DataSource {
+
+ private BaseTest testClass;
+ private int loginTimeout;
+ private PrintWriter printWriter;
+
+ /**
+ * Construct from a BaseTest
+ */
+ public MockDataSource(BaseTest testClass) {
+ if(testClass == null) {
+ throw new IllegalArgumentException("null 'testClass' arg.");
+ }
+ this.testClass = testClass;
+ printWriter = new PrintWriter(System.out);
+ }
+
+ /* (non-Javadoc)
+ * @see javax.sql.DataSource#getConnection()
+ */
+ public Connection getConnection() throws SQLException {
+ return testClass.getDbConnection();
+ }
+
+ /* (non-Javadoc)
+ * @see javax.sql.DataSource#getConnection(java.lang.String, java.lang.String)
+ */
+ public Connection getConnection(String username, String password) throws SQLException {
+ return testClass.getDbConnection(username, password);
+ }
+
+ /* (non-Javadoc)
+ * @see javax.sql.DataSource#getLogWriter()
+ */
+ public PrintWriter getLogWriter() throws SQLException {
+ return printWriter;
+ }
+
+ /* (non-Javadoc)
+ * @see javax.sql.DataSource#setLogWriter(java.io.PrintWriter)
+ */
+ public void setLogWriter(PrintWriter printWriter) throws SQLException {
+ this.printWriter = printWriter;
+ }
+
+ /* (non-Javadoc)
+ * @see javax.sql.DataSource#getLoginTimeout()
+ */
+ public int getLoginTimeout() throws SQLException {
+ return loginTimeout;
+ }
+
+ /* (non-Javadoc)
+ * @see javax.sql.DataSource#setLoginTimeout(int)
+ */
+ public void setLoginTimeout(int loginTimeout) throws SQLException {
+ this.loginTimeout = loginTimeout;
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/TestUtil.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/TestUtil.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/TestUtil.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,36 @@
+package org.jboss.soa.esb.common.tests;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
+
+public class TestUtil
+{
+ private static Logger log = Logger.getLogger(TestUtil.class);
+ private static String _prefix=null;
+ /**
+ * When performing file system interaction, the user.dir may differ (i.e. running the
+ * tests from within eclipse).
+ */
+ public static String getPrefix()
+ {
+ if (_prefix==null) {
+ _prefix="";
+ String baseDir = System.getProperty("user.dir");
+ log.log(Priority.INFO, baseDir);
+ if (!baseDir.endsWith("product")) {
+ _prefix = "product/";
+ }
+ }
+ return _prefix;
+ }
+ /**
+ * Sets the jbossesb-properties.xml to use for test
+ */
+ public static void setESBPropertiesFileToUse()
+ {
+ //Set the jbossesb properties file in System, so we can pick up the one for testing
+ String jbossesbPropertiesFile = getPrefix() + "etc/test/resources/jbossesb-unittest-properties.xml";
+ System.setProperty("org.jboss.soa.esb.propertyFile", jbossesbPropertiesFile);
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/bizclasses/AddressUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/bizclasses/AddressUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/bizclasses/AddressUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,124 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.common.tests.bizclasses;
+
+import org.jboss.soa.esb.common.bizclasses.Address;
+import org.jboss.soa.esb.common.bizclasses.Telephone;
+import org.jboss.soa.esb.common.tests.BaseTest;
+import org.jboss.soa.esb.util.BaseBusinessObject;
+import org.jboss.soa.esb.util.BobjStdDTO;
+
+/**
+ * Unit test for the address class.
+ *
+ * @author <a href="mailto:schifest at gmail.com">Esteban Shifman</a>
+ * @author <a href="mailto:arvinder.singh at indigo-logic.com">Arvinder Singh</a>
+ * @version <tt>$Revision:$</tt>
+ * $Id:$
+ */
+public class AddressUnitTest extends BaseTest {
+
+
+ public void testAddress() throws Exception {
+ Address address = getAddress();
+ assertTrue("Expecting Address.strNum to be 50. Actual was " +
+ address.getField(Address.ATTRIB.strNum), address.getField(Address.ATTRIB.strNum).equals("50"));
+ assertTrue("Expecting Address.strLine1 to be Balcarce. Actual was " +
+ address.getField(Address.ATTRIB.strLine1), address.getField(Address.ATTRIB.strLine1).equals("Balcarce"));
+ assertTrue("Expecting Address.twnCty1 to be San Isidro. Actual was " +
+ address.getField(Address.ATTRIB.twnCty1), address.getField(Address.ATTRIB.twnCty1).equals("San Isidro"));
+ assertTrue("Expecting Address.postalZip to be 1642. Actual was " +
+ address.getField(Address.ATTRIB.postalZip), address.getField(Address.ATTRIB.postalZip).equals("1642"));
+ assertTrue("Expecting Address.provSt to be Buenos Aires. Actual was " +
+ address.getField(Address.ATTRIB.provSt), address.getField(Address.ATTRIB.provSt).equals("Buenos Aires"));
+ assertTrue("Expecting Address.cntry to be Argentina. Actual was " +
+ address.getField(Address.ATTRIB.cntry), address.getField(Address.ATTRIB.cntry).equals("Argentina"));
+
+ // Phone
+ assertTrue("Expecting Address.phone[0].role to be torIP. Actual was " +
+ address.getPhoneAt(0).getRole(), address.getPhoneAt(0).getRole().equals("torIP"));
+ assertTrue("Expecting Address.phone[0].country to be null. Actual was " +
+ address.getPhoneAt(0).getField(Telephone.ATTRIB.cntry), address.getPhoneAt(0).getField(Telephone.ATTRIB.cntry) == null);
+ assertTrue("Expecting Address.phone[0].city to be 416. Actual was " +
+ address.getPhoneAt(0).getField(Telephone.ATTRIB.city), address.getPhoneAt(0).getField(Telephone.ATTRIB.city).equals("416"));
+ assertTrue("Expecting Address.phone[0].num to be 555-1212. Actual was " +
+ address.getPhoneAt(0).getField(Telephone.ATTRIB.num), address.getPhoneAt(0).getField(Telephone.ATTRIB.num).equals("555-1212"));
+ assertTrue("Expecting Address.phone[0].ext to be null. Actual was " +
+ address.getPhoneAt(0).getField(Telephone.ATTRIB.ext), address.getPhoneAt(0).getField(Telephone.ATTRIB.ext) == null);
+
+ assertTrue("Expecting Address.phone[1].role to be home. Actual was " +
+ address.getPhoneAt(1).getRole(), address.getPhoneAt(1).getRole().equals("home"));
+ assertTrue("Expecting Address.phone[1].country to be 54. Actual was " +
+ address.getPhoneAt(1).getField(Telephone.ATTRIB.cntry), address.getPhoneAt(1).getField(Telephone.ATTRIB.cntry).equals("54"));
+ assertTrue("Expecting Address.phone[1].city to be 11. Actual was " +
+ address.getPhoneAt(1).getField(Telephone.ATTRIB.city), address.getPhoneAt(1).getField(Telephone.ATTRIB.city).equals("11"));
+ assertTrue("Expecting Address.phone[1].num to be 4555-1111. Actual was " +
+ address.getPhoneAt(1).getField(Telephone.ATTRIB.num), address.getPhoneAt(1).getField(Telephone.ATTRIB.num).equals("4555-1111"));
+ assertTrue("Expecting Address.phone[1].ext to be 7. Actual was " +
+ address.getPhoneAt(1).getField(Telephone.ATTRIB.ext), address.getPhoneAt(1).getField(Telephone.ATTRIB.ext).equals("7"));
+
+ }
+
+
+ public void testToDTO() throws Exception {
+ BaseBusinessObject addressA = getAddress();
+ addressA.setPackage();
+
+ BobjStdDTO oDto = addressA.toDTO();
+ System.out.println(oDto.toXml());
+
+ Address addressB = (Address) BaseBusinessObject.getFromDTO(oDto);
+ System.out.println(addressB.toDTO().toXml());
+
+ assertTrue("Expecting AddressA == AddressB", addressA.toDTO().toXml().equals(addressB.toDTO().toXml()));
+ }
+
+
+ static Address getAddress() throws Exception {
+ Address oP = new Address((String) null);
+ oP.setField(Address.ATTRIB.strNum, "50");
+ oP.setField(Address.ATTRIB.strLine1, "Balcarce");
+ oP.setField(Address.ATTRIB.twnCty1, "San Isidro");
+ oP.setField(Address.ATTRIB.postalZip, "1642");
+ oP.setField(Address.ATTRIB.provSt, "Buenos Aires");
+ oP.setField(Address.ATTRIB.cntry, "Argentina");
+
+ oP.addPhone(newPhone("torIP", null, "416", "555-1212", null));
+ oP.addPhone(newPhone("home", "54", "11", "4555-1111", "7"));
+
+ return oP;
+ }
+
+ public static Telephone newPhone(String p_sRole, String p_sCtry, String p_sCity,
+ String p_sNum, String p_sExt) {
+ Telephone oP = new Telephone((String) null);
+ oP.setRole(p_sRole);
+ oP.setField(Telephone.ATTRIB.cntry, p_sCtry);
+ oP.setField(Telephone.ATTRIB.city, p_sCity);
+ oP.setField(Telephone.ATTRIB.num, p_sNum);
+ oP.setField(Telephone.ATTRIB.ext, p_sExt);
+
+ return oP;
+ }
+
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/bizclasses/PersonUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/bizclasses/PersonUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/bizclasses/PersonUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,204 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.common.tests.bizclasses;
+
+import org.jboss.soa.esb.common.bizclasses.Address;
+import org.jboss.soa.esb.common.bizclasses.OneValue;
+import org.jboss.soa.esb.common.bizclasses.Person;
+import org.jboss.soa.esb.common.bizclasses.Telephone;
+import org.jboss.soa.esb.common.tests.BaseTest;
+import org.jboss.soa.esb.util.BaseBusinessObject;
+import org.jboss.soa.esb.util.BobjStdDTO;
+
+/**
+ * Unit test for the person class.
+ *
+ * @author <a href="mailto:schifest at gmail.com">Esteban Shifman</a>
+ * @author <a href="mailto:arvinder.singh at indigo-logic.com">Arvinder Singh</a>
+ * @version <tt>$Revision:$</tt>
+ * $Id:$
+ */
+public class PersonUnitTest extends BaseTest {
+
+
+ public void testPerson() throws Exception {
+
+ Person person = getPerson();
+
+ assertTrue("Expecting Person.pfx to be Mr. Actual was " +
+ person.getField(Person.ATTRIB.pfx), person.getField(Person.ATTRIB.pfx).equals("Mr."));
+ assertTrue("Expecting Person.fmlyN to be Brum. Actual was " +
+ person.getField(Person.ATTRIB.fmlyN), person.getField(Person.ATTRIB.fmlyN).equals("Brum"));
+ assertTrue("Expecting Person.givN to be Daniel. Actual was " +
+ person.getField(Person.ATTRIB.givN), person.getField(Person.ATTRIB.givN).equals("Daniel"));
+ assertTrue("Expecting Person.sfx to be the 1st.. Actual was " +
+ person.getField(Person.ATTRIB.sfx), person.getField(Person.ATTRIB.sfx).equals("the 1st."));
+
+ }
+
+ public void testPersonEmail() throws Exception {
+
+ Person person = getPerson();
+
+ String expectedEmail0 = "<OneValue rol=\"home\" v=\"myaddr at gmail.com\"/>";
+ assertTrue("Expecting Person.email[0] to be Actual was " +
+ person.getEmailAt(0).toString(), person.getEmailAt(0).toString().equals(expectedEmail0));
+
+ String expectedEmail1 = "<OneValue rol=\"work\" v=\"john.smith at jboss.com\"/>";
+ assertTrue("Expecting Person.email[0] to be Actual was " +
+ person.getEmailAt(1).toString(), person.getEmailAt(1).toString().equals(expectedEmail1));
+ }
+
+ public void testPersonTelephone() throws Exception {
+
+ Person person = getPerson();
+
+ assertTrue("Expecting Person.phone[0].role to be basement. Actual was " +
+ person.getPhoneAt(0).getRole(), person.getPhoneAt(0).getRole().equals("basement"));
+ assertTrue("Expecting Person.phone[0].country to be 1. Actual was " +
+ person.getPhoneAt(0).getField(Telephone.ATTRIB.cntry), person.getPhoneAt(0).getField(Telephone.ATTRIB.cntry).equals("1"));
+ assertTrue("Expecting Person.phone[0].city to be 416. Actual was " +
+ person.getPhoneAt(0).getField(Telephone.ATTRIB.city), person.getPhoneAt(0).getField(Telephone.ATTRIB.city).equals("416"));
+ assertTrue("Expecting Person.phone[0].num to be 555-1212. Actual was " +
+ person.getPhoneAt(0).getField(Telephone.ATTRIB.num), person.getPhoneAt(0).getField(Telephone.ATTRIB.num).equals("555-1212"));
+ assertTrue("Expecting Person.phone[0].ext to be null. Actual was " +
+ person.getPhoneAt(0).getField(Telephone.ATTRIB.ext), person.getPhoneAt(0).getField(Telephone.ATTRIB.ext) == null);
+
+ assertTrue("Expecting Person.phone[1].role to be basement. Actual was " +
+ person.getPhoneAt(1).getRole(), person.getPhoneAt(1).getRole().equals("cell"));
+ assertTrue("Expecting Person.phone[1].country to be null. Actual was " +
+ person.getPhoneAt(1).getField(Telephone.ATTRIB.cntry), person.getPhoneAt(1).getField(Telephone.ATTRIB.cntry) == null);
+ assertTrue("Expecting Person.phone[1].city to be 416. Actual was " +
+ person.getPhoneAt(1).getField(Telephone.ATTRIB.city), person.getPhoneAt(1).getField(Telephone.ATTRIB.city).equals("416"));
+ assertTrue("Expecting Person.phone[1].num to be 666-4444. Actual was " +
+ person.getPhoneAt(1).getField(Telephone.ATTRIB.num), person.getPhoneAt(1).getField(Telephone.ATTRIB.num).equals("666-4444"));
+ assertTrue("Expecting Person.phone[1].ext to be null. Actual was " +
+ person.getPhoneAt(1).getField(Telephone.ATTRIB.ext), person.getPhoneAt(1).getField(Telephone.ATTRIB.ext) == null);
+
+ }
+
+ public void testPersonAddress() throws Exception {
+
+ Address address = getPerson().getAddressAt(0);
+ assertTrue("Expecting Address.strNum to be 50. Actual was " +
+ address.getField(Address.ATTRIB.strNum), address.getField(Address.ATTRIB.strNum).equals("50"));
+ assertTrue("Expecting Address.strLine1 to be Balcarce. Actual was " +
+ address.getField(Address.ATTRIB.strLine1), address.getField(Address.ATTRIB.strLine1).equals("Balcarce"));
+ assertTrue("Expecting Address.twnCty1 to be San Isidro. Actual was " +
+ address.getField(Address.ATTRIB.twnCty1), address.getField(Address.ATTRIB.twnCty1).equals("San Isidro"));
+ assertTrue("Expecting Address.postalZip to be 1642. Actual was " +
+ address.getField(Address.ATTRIB.postalZip), address.getField(Address.ATTRIB.postalZip).equals("1642"));
+ assertTrue("Expecting Address.provSt to be Buenos Aires. Actual was " +
+ address.getField(Address.ATTRIB.provSt), address.getField(Address.ATTRIB.provSt).equals("Buenos Aires"));
+ assertTrue("Expecting Address.cntry to be Argentina. Actual was " +
+ address.getField(Address.ATTRIB.cntry), address.getField(Address.ATTRIB.cntry).equals("Argentina"));
+
+ // Phone
+ assertTrue("Expecting Address.phone[0].role to be torIP. Actual was " +
+ address.getPhoneAt(0).getRole(), address.getPhoneAt(0).getRole().equals("torIP"));
+ assertTrue("Expecting Address.phone[0].country to be null. Actual was " +
+ address.getPhoneAt(0).getField(Telephone.ATTRIB.cntry), address.getPhoneAt(0).getField(Telephone.ATTRIB.cntry) == null);
+ assertTrue("Expecting Address.phone[0].city to be 416. Actual was " +
+ address.getPhoneAt(0).getField(Telephone.ATTRIB.city), address.getPhoneAt(0).getField(Telephone.ATTRIB.city).equals("416"));
+ assertTrue("Expecting Address.phone[0].num to be 555-1212. Actual was " +
+ address.getPhoneAt(0).getField(Telephone.ATTRIB.num), address.getPhoneAt(0).getField(Telephone.ATTRIB.num).equals("555-1212"));
+ assertTrue("Expecting Address.phone[0].ext to be null. Actual was " +
+ address.getPhoneAt(0).getField(Telephone.ATTRIB.ext), address.getPhoneAt(0).getField(Telephone.ATTRIB.ext) == null);
+
+ assertTrue("Expecting Address.phone[1].role to be home. Actual was " +
+ address.getPhoneAt(1).getRole(), address.getPhoneAt(1).getRole().equals("home"));
+ assertTrue("Expecting Address.phone[1].country to be 54. Actual was " +
+ address.getPhoneAt(1).getField(Telephone.ATTRIB.cntry), address.getPhoneAt(1).getField(Telephone.ATTRIB.cntry).equals("54"));
+ assertTrue("Expecting Address.phone[1].city to be 11. Actual was " +
+ address.getPhoneAt(1).getField(Telephone.ATTRIB.city), address.getPhoneAt(1).getField(Telephone.ATTRIB.city).equals("11"));
+ assertTrue("Expecting Address.phone[1].num to be 4555-1111. Actual was " +
+ address.getPhoneAt(1).getField(Telephone.ATTRIB.num), address.getPhoneAt(1).getField(Telephone.ATTRIB.num).equals("4555-1111"));
+ assertTrue("Expecting Address.phone[1].ext to be 7. Actual was " +
+ address.getPhoneAt(1).getField(Telephone.ATTRIB.ext), address.getPhoneAt(1).getField(Telephone.ATTRIB.ext).equals("7"));
+
+
+ }
+
+
+
+
+
+ public void testToDTO() throws Exception {
+ BaseBusinessObject personA = getPerson();
+ personA.setPackage();
+
+ BobjStdDTO oDto = personA.toDTO();
+ System.out.println(oDto.toXml());
+
+ Person personB = (Person) BaseBusinessObject.getFromDTO(oDto);
+ System.out.println(personB.toDTO().toXml());
+
+ assertTrue("Expecting PersonA == PersonB", personA.toDTO().toXml().equals(personB.toDTO().toXml()));
+ }
+
+
+ public static Person getPerson() throws Exception {
+ Person oP = new Person((String) null);
+ oP.setField(Person.ATTRIB.pfx, "Mr.");
+ oP.setField(Person.ATTRIB.fmlyN, "Brum");
+ oP.setField(Person.ATTRIB.givN, "Daniel");
+ oP.setField(Person.ATTRIB.sfx, "the 1st.");
+
+ oP.addAddress(getAddress());
+
+ oP.addEmail(OneValue.getStringValue("myaddr at gmail.com", "home"));
+ oP.addEmail(OneValue.getStringValue("john.smith at jboss.com", "work"));
+
+ oP.addPhone(newPhone("basement", "1", "416", "555-1212", null));
+ oP.addPhone(newPhone("cell", null, "416", "666-4444", null));
+
+ return oP;
+ }
+
+ public static Address getAddress() throws Exception {
+ Address oP = new Address((String) null);
+ oP.setField(Address.ATTRIB.strNum, "50");
+ oP.setField(Address.ATTRIB.strLine1, "Balcarce");
+ oP.setField(Address.ATTRIB.twnCty1, "San Isidro");
+ oP.setField(Address.ATTRIB.postalZip, "1642");
+ oP.setField(Address.ATTRIB.provSt, "Buenos Aires");
+ oP.setField(Address.ATTRIB.cntry, "Argentina");
+
+ oP.addPhone(newPhone("torIP", null, "416", "555-1212", null));
+ oP.addPhone(newPhone("home", "54", "11", "4555-1111", "7"));
+
+ return oP;
+ }
+
+ public static Telephone newPhone(String p_sRole,
+ String p_sCtry, String p_sCity, String p_sNum, String p_sExt) {
+ Telephone oP = new Telephone((String) null);
+ oP.setRole(p_sRole);
+ oP.setField(Telephone.ATTRIB.cntry, p_sCtry);
+ oP.setField(Telephone.ATTRIB.city, p_sCity);
+ oP.setField(Telephone.ATTRIB.num, p_sNum);
+ oP.setField(Telephone.ATTRIB.ext, p_sExt);
+
+ return oP;
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/propertymanager/PropertyManagerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/propertymanager/PropertyManagerUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/propertymanager/PropertyManagerUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,87 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.common.tests.propertymanager;
+
+import junit.framework.ComparisonFailure;
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.common.Environment;
+
+import com.arjuna.common.internal.util.propertyservice.plugins.io.XMLFilePlugin;
+import com.arjuna.common.util.propertyservice.PropertyManager;
+import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
+
+public class PropertyManagerUnitTest extends TestCase
+{
+
+ public void testPropertyManager ()
+ {
+ System.setProperty("com.arjuna.common.util.propertyservice.verbosePropertyManager", "ON");
+
+ PropertyManager corepm = PropertyManagerFactory.getPropertyManager("test.core", "core");
+
+ try
+ {
+ corepm.load(XMLFilePlugin.class.getName(), "jbossesb-test-properties.xml");
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+
+ fail(e.toString());
+ }
+
+ assertEquals(corepm.getProperty(Environment.JNDI_SERVER_TYPE), "foobar");
+ assertEquals(corepm.getProperty(Environment.OBJECT_STORE_CONFIG_FILE), "file:config.xml");
+
+ try
+ {
+ assertEquals(corepm.getProperty(Environment.SMTP_HOST), "thishost");
+
+ fail();
+ }
+ catch (ComparisonFailure ex)
+ {
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+
+ PropertyManager transportpm = PropertyManagerFactory.getPropertyManager("test.transports", "transports");
+
+ try
+ {
+ transportpm.load(XMLFilePlugin.class.getName(), "jbossesb-test-properties.xml");
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+
+ fail(e.toString());
+ }
+
+ assertEquals(transportpm.getProperty(Environment.JNDI_SERVER_TYPE), "foobar");
+ assertEquals(transportpm.getProperty(Environment.SMTP_HOST), "thishost");
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/utils/DrainQueuesAndTopics.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/utils/DrainQueuesAndTopics.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/common/tests/utils/DrainQueuesAndTopics.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,124 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.common.tests.utils;
+
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.Queue;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueReceiver;
+import javax.jms.QueueSession;
+import javax.jms.Topic;
+import javax.jms.TopicConnection;
+import javax.jms.TopicConnectionFactory;
+import javax.jms.TopicSession;
+import javax.jms.TopicSubscriber;
+import javax.naming.Context;
+
+import org.jboss.soa.esb.helpers.AppServerContext;
+
+public class DrainQueuesAndTopics
+{
+ private static final int MAX_TIMES_NOMSG = 10;
+ private static final String JNDI_URL = "localhost";
+ private static final String JNDI_TYPE
+ = AppServerContext.SERVER_TYPE.jboss.toString();
+
+ private Context m_oCtx;
+
+ public DrainQueuesAndTopics() throws Exception
+ {
+ purgeQueueTopic("queue/A");
+ purgeQueueTopic("queue/B");
+ purgeQueueTopic("topic/testTopic");
+ } //__________________________________
+
+ public int purgeQueueTopic(String p_sName) throws Exception
+ {
+ int iRet = 0;
+ m_oCtx = AppServerContext.getServerContext(JNDI_TYPE,JNDI_URL);
+
+ System.out.println(p_sName);
+ MessageConsumer oCns = null;
+ switch(p_sName.toLowerCase().charAt(0))
+ { case 't' : oCns = getTopic(p_sName); break;
+ case 'q' : oCns = getQueue(p_sName); break;
+ }
+ if (null==oCns)
+ return 0;
+
+ for (int iNoRcv=0; iNoRcv < MAX_TIMES_NOMSG; )
+ { Message oMsg = oCns.receive(200);
+ if (null==oMsg)
+ { iNoRcv++;
+ System.out.print(".");
+ continue;
+ }
+ iRet++;
+ dumpMessage(oMsg);
+ iNoRcv = 0;
+ }
+ System.out.println();
+ return iRet;
+ } //__________________________________
+
+ void dumpMessage(Message pM)
+ {
+ System.out.println(pM);
+ } //__________________________________
+
+ QueueReceiver getQueue(String p_sJndi) throws Exception
+ {
+ QueueConnection oQconn = null;
+ QueueSession oQsess = null;
+ QueueConnectionFactory qcf = (QueueConnectionFactory) m_oCtx
+ .lookup("ConnectionFactory");
+
+ oQconn = qcf.createQueueConnection();
+ oQsess = oQconn.createQueueSession(false
+ ,QueueSession.AUTO_ACKNOWLEDGE);
+ Queue oQueue
+ = (Queue) m_oCtx.lookup(p_sJndi);
+
+ QueueReceiver oRcv = oQsess.createReceiver(oQueue);
+ oQconn.start();
+ return oRcv;
+ } //__________________________________
+
+ TopicSubscriber getTopic(String p_sJndi) throws Exception
+ {
+ TopicConnection oTconn = null;
+ TopicSession oTsess = null;
+ TopicConnectionFactory qcf = (TopicConnectionFactory) m_oCtx
+ .lookup("ConnectionFactory");
+
+ oTconn = qcf.createTopicConnection();
+ oTsess = oTconn.createTopicSession(false
+ ,QueueSession.AUTO_ACKNOWLEDGE);
+ Topic oT = (Topic) m_oCtx.lookup(p_sJndi);
+
+ TopicSubscriber oRcv = oTsess.createSubscriber(oT);
+ oTconn.start();
+ return oRcv;
+ } //__________________________________
+} //____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/connection/AbandonedConnectionFuncTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/connection/AbandonedConnectionFuncTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/connection/AbandonedConnectionFuncTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,72 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.connection;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.Properties;
+
+import org.jboss.soa.esb.common.tests.BaseTest;
+
+/**
+ * This class tests for abandoned connections. Abandoned connections are connections which are requested from the pool, never used and
+ * never returned back to the pool by calling connection#close() method. This test gets a connection from pool and then sleeps for a elongated
+ * period of time and then fires methods on connection which is cleaned up the pool. This leads to SQLException.
+ * User: MohitK
+ * Date: Aug 3, 2006
+ */
+public class AbandonedConnectionFuncTest extends BaseTest {
+
+ Properties properties = new Properties();
+
+ protected void setUp() throws Exception {
+
+ properties.put(ConnectionProperties.DRIVER_CLASSNAME, SYSTEM_PARAMETERS.get(DB_DRIVER));
+ properties.put(ConnectionProperties.CONNECTION_URL, SYSTEM_PARAMETERS.get(DB_URL));
+ properties.put(ConnectionProperties.USERNAME, SYSTEM_PARAMETERS.get(DB_USERNAME));
+ properties.put(ConnectionProperties.PASSWORD, SYSTEM_PARAMETERS.get(DB_PASSWORD));
+ properties.put(ConnectionProperties.ABANDONED_CONNECTION_TIMEOUT, "2000");
+ properties.put(ConnectionProperties.ABANDONED_CONNECTION_CHECK_INTERVAL, "3000");
+ }
+
+
+ public void testAbandonedConnections() {
+ PoolDataSource ds = new PoolDataSource();
+ ds.setConnectionProperties(properties);
+ Connection con1 = null;
+ //Connection con2 = null;
+ //Connection con3 = null;
+ try {
+ con1 = ds.getConnection();
+ try {
+ Thread.sleep(4000);
+ } catch (InterruptedException e) {
+ //Do nothing
+ }
+ con1.createStatement();
+ } catch (SQLException e) {
+ //e.printStackTrace();
+ assertTrue(true);
+ }
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/connection/ConnectionPoolFuncTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/connection/ConnectionPoolFuncTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/connection/ConnectionPoolFuncTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,84 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.connection;
+
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.Properties;
+
+import org.jboss.soa.esb.common.tests.BaseTest;
+
+/**
+ * TODO
+ * @author MohitK
+ * Date: Jul 22, 2006
+ */
+public class ConnectionPoolFuncTest extends BaseTest {
+
+ Properties properties = new Properties();
+
+ protected void setUp() throws Exception {
+ properties.put(ConnectionProperties.DRIVER_CLASSNAME, SYSTEM_PARAMETERS.get(DB_DRIVER));
+ properties.put(ConnectionProperties.CONNECTION_URL, SYSTEM_PARAMETERS.get(DB_URL));
+ properties.put(ConnectionProperties.USERNAME, SYSTEM_PARAMETERS.get(DB_USERNAME));
+ properties.put(ConnectionProperties.PASSWORD, SYSTEM_PARAMETERS.get(DB_PASSWORD));
+ }
+
+
+ public void testConnectionPool() {
+ PoolDataSource ds = new PoolDataSource();
+ ds.setConnectionProperties(properties);
+ Connection con = null;
+ Statement stat = null;
+ try {
+ con = ds.getConnection();
+ stat = con.createStatement();
+ stat.execute("CREATE TABLE uid_table (uid integer NOT NULL)");
+ ResultSet rs = stat.executeQuery("SELECT count(*) FROM uid_table");
+ while (rs.next()) {
+ int count = rs.getInt(1);
+ System.out.println("count = " + count);
+ }
+
+ } catch (SQLException e) {
+ e.printStackTrace();
+ fail();
+ }finally{
+ try {
+ if (stat != null) {
+ stat.close();
+ }
+ if(con!=null){
+ con.close();
+ }
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/connection/PasswordDecoderFuncTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/connection/PasswordDecoderFuncTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/connection/PasswordDecoderFuncTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,88 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.connection;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.Properties;
+
+import org.jboss.soa.esb.common.tests.BaseTest;
+
+/**
+ * TODO
+ *
+ * @author MohitK
+ * Date: Aug 1, 2006
+ */
+public class PasswordDecoderFuncTest extends BaseTest {
+
+ Properties properties = new Properties();
+
+ protected void setUp() throws Exception {
+ properties.put(ConnectionProperties.DRIVER_CLASSNAME, SYSTEM_PARAMETERS.get(DB_DRIVER));
+ properties.put(ConnectionProperties.CONNECTION_URL, SYSTEM_PARAMETERS.get(DB_URL));
+ properties.put(ConnectionProperties.USERNAME, SYSTEM_PARAMETERS.get(DB_USERNAME));
+ properties.setProperty(ConnectionProperties.PASSWORD_DECODER, PasswordDecoderTestImpl.class.getName());
+ }
+
+ public void testPasswordDecoder() {
+
+ PoolDataSource ds = new PoolDataSource();
+ ds.setConnectionProperties(properties);
+ Connection con1 = null;
+ Statement stat = null;
+ try {
+ con1 = ds.getConnection();
+ stat = con1.createStatement();
+ stat.execute("CREATE TABLE uid_table (uid integer NOT NULL)");
+ ResultSet rs = stat.executeQuery("SELECT count(*) FROM uid_table");
+ while (rs.next()) {
+ int count = rs.getInt(1);
+ System.out.println("count = " + count);
+ }
+
+
+ } catch (SQLException e) {
+ e.printStackTrace();
+ fail();
+ } finally {
+ if (stat != null) {
+ try {
+ stat.close();
+ } catch (SQLException e) {
+ e.printStackTrace();
+ fail();
+ }
+ }
+ if (con1 != null) {
+ try {
+ con1.close();
+ } catch (SQLException e) {
+ e.printStackTrace();
+ fail();
+ }
+ }
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/connection/PasswordDecoderTestImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/connection/PasswordDecoderTestImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/connection/PasswordDecoderTestImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,35 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.connection;
+
+
+/**
+ * TODO
+ * @author MohitK
+ * Date: Aug 1, 2006
+ */
+public class PasswordDecoderTestImpl implements PasswordDecoder {
+
+ public String decode(String encodedPassword) {
+ return "";
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/AppServerContextUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/AppServerContextUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/AppServerContextUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.helpers;
+
+import java.util.Hashtable;
+
+import javax.naming.Context;
+import javax.naming.NamingException;
+
+import junit.framework.TestCase;
+
+/**
+ * AppServerContex unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class AppServerContextUnitTest extends TestCase {
+
+ public void test_AppServerContext() throws NamingException {
+ Context ctx = AppServerContext.getServerContext("jboss", "http://localhost:1234");
+
+ Hashtable props = ctx.getEnvironment();
+ System.out.println(props);
+ assertEquals("org.jnp.interfaces.NamingContextFactory", props.get(Context.INITIAL_CONTEXT_FACTORY));
+ assertEquals("http://localhost:1234", props.get(Context.PROVIDER_URL));
+ assertEquals("org.jboss.naming:org.jnp.interfaces", props.get("java.naming.factory.url.pkgs"));
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/ConfigTreeUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/ConfigTreeUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/ConfigTreeUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,260 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.helpers;
+
+import java.io.*;
+import java.util.*;
+
+import org.jboss.internal.soa.esb.util.StreamUtils;
+import org.jboss.soa.esb.StringUtils;
+import org.jboss.soa.esb.common.tests.BaseTest;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+/**
+ * Unit tests for the ConfigTree class.
+ * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
+ */
+public class ConfigTreeUnitTest extends BaseTest {
+
+ public void test_fromInputStream_args() throws SAXException, IOException {
+ try {
+ ConfigTree.fromInputStream(null);
+ fail("Expected IllegalArgumentException on null stream.");
+ } catch(IllegalArgumentException e) {
+ // Expected
+ }
+ }
+
+ private InputStream getStream(String sName)
+ {
+ InputStream oRet =getClass().getResourceAsStream(sName);
+ if (null==oRet)
+ try { oRet = new FileInputStream(sName); }
+ catch(IOException e) { /* OK Just fall through */}
+ return oRet;
+ }
+
+ public void test_fromInputStream_and_toXML() throws SAXException, IOException
+ {
+ ConfigTree confTree = ConfigTree.fromInputStream(getStream("testfile1.xml"));
+ byte[] expected = StreamUtils.readStream(getStream("expected_01.xml"));
+
+ // Create the ConfigTree from a Stream. Then...
+ // Dump the XML to a buffer and compare it with the expected - checking that the
+ // Created ConfigTree DOM is the same as what was supplied in the stream. Also
+ // tests the toXML method. If this fails, either fromInputStream is not working correctly
+ // or the toXML method is not serialising correctly.
+ String output = null;
+ try { output = confTree.toXml(); }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ assertTrue("ConfigTree creation from a stream failed, or, ConfigTree toXML failed - failed to produce the same XML.",
+ StringUtils.equalsIgnoreLinebreaks(new String(expected), output, false));
+ }
+
+ public void test_fromXML_args() throws SAXException, IOException
+ {
+ try {
+ ConfigTree.fromXml(null);
+ fail("Expected IllegalArgumentException on null String.");
+ } catch(IllegalArgumentException e) {
+ // Expected
+ }
+ try {
+ ConfigTree.fromXml(" ");
+ fail("Expected SAXParseException on null String.");
+ } catch(SAXParseException e) {
+ // Expected
+ }
+ }
+
+ public void test_fromXML_and_toXML() throws SAXException, IOException
+ {
+ byte[] source = StreamUtils.readStream(getStream("expected_01.xml"));
+ ConfigTree confTree = ConfigTree.fromXml(new String(source));
+ byte[] expected = source;
+
+ // Create the ConfigTree from a String. Then...
+ // Dump the XML to a buffer and compare it with the expected - checking that the
+ // Created ConfigTree DOM is the same as what was supplied in the stream. Also
+ // tests the toXML method. If this fails, either fromInputStream is not working correctly
+ // or the toXML method is not serialising correctly.
+ String output = confTree.toXml();
+ assertTrue("ConfigTree creation from a String failed, or, ConfigTree toXML failed - failed to produce the same XML.",
+ StringUtils.equalsIgnoreLinebreaks(new String(expected), output, false));
+ }
+
+ public void test_Constructor_Clone() throws SAXException, IOException {
+ ConfigTree conf1 = ConfigTree.fromInputStream(getStream("testfile1.xml"));
+// ByteArrayOutputStream output;
+ byte[] expected = StreamUtils.readStream(getStream("expected_01.xml"));
+ // Create a new ConfigTree from an existing one and compare it with the expected.
+ ConfigTree conf2 = conf1.cloneObj();
+ assertTrue("ConfigTree creation from a stream failed, or, cloneObj failed - failed to produce the same XML.",
+ StringUtils.equalsIgnoreLinebreaks(new String(expected), conf2.toXml(), false));
+ }
+
+ public void test_Constructor_String_withoutparent() throws SAXException, IOException {
+ // Create a new ConfigTree from without a parent ConfigTree.
+ ConfigTree confTree = new ConfigTree("newConfigTree",null);
+
+ assertEquals("New ConfigTree invalid.", "<newConfigTree/>" , confTree.toXml());
+ }
+
+ public void test_getName() {
+ ConfigTree confTree = new ConfigTree("newConfigTree",null);
+ assertEquals("getName returned invalid data.", "newConfigTree", confTree.getName());
+ }
+
+ public void test_getAttrKeys_hasnokeys() throws SAXException, IOException {
+ ConfigTree confTree = new ConfigTree("newConfigTree",null);
+ assertTrue("invalid attribute name list", confTree.attributeCount()== 0);
+ }
+
+ public void test_getAttrKeys_haskeys() throws SAXException, IOException {
+ ConfigTree confTree = ConfigTree.fromInputStream(getStream("testfile2.xml"));
+ String[] expected = new String[] {"attrib1", "attrib2", "attrib3"};
+ Arrays.sort(expected);
+ String[] actual = confTree.getAttributeNames().toArray(new String[confTree.attributeCount()]);
+ Arrays.sort(actual);
+
+ assertTrue("invalid attribute name list", Arrays.equals(expected, actual));
+ }
+
+ public void test_getAttr() throws SAXException, IOException {
+ ConfigTree confTree = ConfigTree.fromInputStream(getStream("testfile2.xml"));
+
+ assertEquals("invalid attribute value", "value2", confTree.getAttribute("attrib2"));
+ assertEquals("invalid attribute value", null, confTree.getAttribute("attribXX"));
+ }
+
+ public void test_getTextChildren() throws SAXException, IOException {
+ // This test also tests the static method getTextValue.
+ ConfigTree confTree = ConfigTree.fromInputStream(getStream("testfile3.xml"));
+
+ // REVIEW: These tests capture the current behavior of the getTextChildren method. I'm not convinced this behavior is correct!!
+ // I think perhaps this method should not be depending on getTextValue because getTextValue
+ // concatentates the child text nodes.
+ assertTrue("invalid Text Children list",
+ "Some root text... and some more root text...".equals(confTree.getWholeText()));
+ assertTrue("invalid Text Children list",
+ Arrays.equals(new String[] {"", "Some nested text..."}, confTree.getTextChildren("el")));
+ }
+
+ public void test_getElementChildren() throws SAXException, IOException {
+ ConfigTree confTree = ConfigTree.fromInputStream(getStream("testfile3.xml"));
+ ConfigTree[] confTrees;
+
+ String expected = new String(StreamUtils.readStream(getStream("expected_03.xml"))).trim();
+ assertEquals("Wrong ConfigTree ElementChild value.", expected, confTree.toString().trim());
+
+ // Test the nested <el> elements - of which there are 2...
+ confTrees = confTree.getChildren("el");
+ assertEquals("Wrong number of ConfigTree ElementChildren.", 2, confTrees.length);
+ assertEquals("Wrong ConfigTree ElementChild value.", "<el index=\"1\"/>", confTrees[0].toString().trim());
+ assertEquals("Wrong ConfigTree ElementChild value.", "<el index=\"2\">Some nested text...</el>", confTrees[1].toString().trim());
+
+ // Test for a non-existant element...
+ confTrees = confTree.getChildren("xxxx");
+ assertEquals("Wrong number of ConfigTree ElementChildren.", 0, confTrees.length);
+ }
+
+ public void test_getFirstElementChild() throws SAXException, IOException {
+ ConfigTree confTree = ConfigTree.fromInputStream(getStream("testfile3.xml"));
+
+ String expected = new String(StreamUtils.readStream(getStream("expected_03.xml"))).trim();
+ assertEquals("Wrong ConfigTree ElementChild value.", expected, confTree.toString().trim());
+
+ // Test the nested <el> elements - of which there are 2...
+ confTree = confTree.getFirstChild("el");
+ assertEquals("Wrong ConfigTree ElementChild value.", "<el index=\"1\"/>", confTree.toString().trim());
+
+ // Test for a non-existant element...
+ confTree = confTree.getFirstChild("xxxx");
+ assertEquals("Expected null ConfigTree ElementChildren for non-existant element.", null, confTree);
+ }
+
+ public void test_getAllElemChildren() throws SAXException, IOException {
+ ConfigTree confTree = ConfigTree.fromInputStream(getStream("testfile3.xml"));
+ ConfigTree[] confTrees;
+
+ confTrees = confTree.getAllChildren();
+ assertEquals("Wrong number of ConfigTree ElementChildren.", 2, confTrees.length);
+ assertEquals("Wrong ConfigTree ElementChild value.", "<el index=\"1\"/>", confTrees[0].toString().trim());
+ assertEquals("Wrong ConfigTree ElementChild value.", "<el index=\"2\">Some nested text...</el>", confTrees[1].toString().trim());
+
+ // REVIEW: Note, this method only returns ConfigTree instances for the child elements
+ // of the document root node. Comparing this to the behaviour of getFirstElementChild
+ // would seem to demonstrate an inconsitency??? To be consistent, I would expect this method
+ // to return a list of 3 ConfigTree instances - the <root> and 2 <el> elements.
+ }
+
+ public void test_setAttr() throws SAXException, IOException {
+ ConfigTree confTree = new ConfigTree("newConfigTree");
+
+ confTree.setAttribute("attrib1", "value1");
+ assertEquals("value1", confTree.getAttribute("attrib1"));
+
+ // A null value removes the attribute.
+ confTree.setAttribute("attrib1", null);
+ assertEquals(null, confTree.getAttribute("attrib1"));
+
+ try { confTree.setAttribute(null, null); }
+ catch (IllegalArgumentException e) {/* OK we expect this */}
+ catch (Exception e2) {fail(e2.getMessage());}
+ }
+
+ public void test_addElemChild() throws SAXException, IOException {
+ ConfigTree ConfigTree1 = new ConfigTree("newConfigTree");
+ ConfigTree ConfigTreeX = new ConfigTree("X",ConfigTree1);
+ new ConfigTree("Y1",ConfigTree1);
+ new ConfigTree("Y2",ConfigTreeX);
+
+ assertEquals("<newConfigTree><X><Y2/></X><Y1/></newConfigTree>", ConfigTree1.toString().trim());
+ }
+
+ public void test_rmvChildsByName() throws SAXException, IOException {
+ ConfigTree ConfigTree1 = new ConfigTree("newConfigTree");
+ ConfigTree ConfigTreeX = new ConfigTree("X",ConfigTree1);
+ new ConfigTree("Y1",ConfigTree1);
+ new ConfigTree("Y2",ConfigTreeX);
+
+ assertEquals("<newConfigTree><X><Y2/></X><Y1/></newConfigTree>", ConfigTree1.toString().trim());
+ ConfigTree1.removeChildrenByName("Y1");
+ assertEquals("<newConfigTree><X><Y2/></X></newConfigTree>", ConfigTree1.toString().trim());
+ }
+
+ public void test_cloneObj() throws SAXException, IOException {
+ ConfigTree ConfigTree1 = new ConfigTree("newConfigTree");
+ new ConfigTree("X",ConfigTree1);
+ new ConfigTree("Y",ConfigTree1);
+
+ ConfigTree clone = ConfigTree1.cloneObj();
+
+ assertTrue("Clone should produce a completely different object", (ConfigTree1 != clone));
+ assertEquals("Clone should produce the same XML", ConfigTree1.toString(), clone.toString());
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/EmailUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/EmailUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/EmailUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,94 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.helpers;
+
+import java.io.IOException;
+
+import javax.mail.Address;
+import javax.mail.MessagingException;
+import javax.mail.internet.AddressException;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMultipart;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests for the EsbEmail class.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class EmailUnitTest extends TestCase {
+
+ private ConfigTree mailParams;
+
+ @Override
+ protected void setUp() throws Exception {
+ mailParams = ConfigTree.fromInputStream(getClass().getResourceAsStream("testfile4.xml"));
+ }
+
+ public void test_Email() throws AddressException, MessagingException, IOException {
+ // Look at the source message in testfile4.xml before reading this test.
+
+ Email esbMail = new Email();
+ esbMail.setSendTo(mailParams.getAttribute(Email.SENDTO));
+ esbMail.setFrom(mailParams.getAttribute(Email.FROM));
+ esbMail.setCopyTo(mailParams.getAttribute(Email.COPYTO));
+ esbMail.setSubject(mailParams.getAttribute(Email.SUBJECT));
+
+ esbMail.setAttachments(mailParams.getTextChildren(Email.ATTACH));
+ esbMail.setMessage(mailParams.getAttribute(Email.MESSAGE));
+ MimeMessage message = esbMail.getMailMessage();
+ Address[] addresses;
+
+ // Check the "from" address details...
+ addresses = message.getFrom();
+ assertEquals(1, addresses.length);
+ assertEquals("x.x at x.com", addresses[0].toString());
+
+ // Check the "to" address details...
+ addresses = message.getRecipients(MimeMessage.RecipientType.TO);
+ assertEquals(2, addresses.length);
+ assertEquals("b.b at b.com", addresses[0].toString());
+ assertEquals("c.c at c.com", addresses[1].toString());
+
+ // Check the "cc" address details...
+ addresses = message.getRecipients(MimeMessage.RecipientType.CC);
+ assertEquals(2, addresses.length);
+ assertEquals("d.d at c.com", addresses[0].toString());
+ assertEquals("e.e at e.com", addresses[1].toString());
+
+ // Check the "subject"...
+ assertEquals("Unit Test - Subject", message.getSubject());
+
+ // Check the message body, including attachments...
+ MimeMultipart content = (MimeMultipart) message.getContent(); // expect a cast exception if it's not the expected type!
+ assertEquals(3, content.getCount()); // the message and the 2 attachments - see testfile4.xml
+ MimeBodyPart part = (MimeBodyPart) content.getBodyPart(0); // the message
+ assertEquals("Unit Test - Message", ((String)part.getContent()).trim());
+ part = (MimeBodyPart) content.getBodyPart(1); // attachement 1
+ assertEquals("attachment1.txt", ((String)part.getFileName()).trim());
+ part = (MimeBodyPart) content.getBodyPart(2); // attachement 2
+ assertEquals("attachment2.txt", ((String)part.getFileName()).trim());
+ }
+
+ // TODO: Add some negative tests!!!
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/KeyValuePairUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/KeyValuePairUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/KeyValuePairUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.helpers;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+/**
+ * Unit tests for the KeyValuePair class.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class KeyValuePairUnitTest extends TestCase {
+
+ public void test_Constructor_args() {
+ try {
+ new KeyValuePair(null, "aaa");
+ fail("Expected IllegalArgumentException");
+ } catch(IllegalArgumentException e) {
+ // expected
+ }
+ try {
+ new KeyValuePair(" ", "aaa");
+ fail("Expected IllegalArgumentException");
+ } catch(IllegalArgumentException e) {
+ // expected
+ }
+ new KeyValuePair("a", "aaa");
+ new KeyValuePair("a", null);
+ new KeyValuePair("a", "");
+ }
+
+ public void test_methods() {
+ KeyValuePair kvp = new KeyValuePair("key", "value");
+
+ assertEquals("key", kvp.getKey());
+ assertEquals("value", kvp.getValue());
+ assertEquals("value", kvp.toString());
+ assertEquals("KVpair[key=value]", kvp.dump());
+ }
+
+ public void test_list() {
+ List<KeyValuePair> list = new ArrayList<KeyValuePair>();
+
+ list.add(new KeyValuePair("key1", "value1"));
+ list.add(new KeyValuePair("key2", "true"));
+ list.add(new KeyValuePair("key3", "false"));
+ list.add(new KeyValuePair("key4", "2"));
+ list.add(new KeyValuePair("key5", "10.8"));
+
+ assertEquals("value1", KeyValuePair.getValue("key1", list));
+ assertEquals("true", KeyValuePair.getValue("key2", list));
+ assertEquals("false", KeyValuePair.getValue("key3", list));
+ assertEquals("2", KeyValuePair.getValue("key4", list));
+
+ assertEquals(true, KeyValuePair.getBooleanValue("key2", list, false));
+ assertEquals(false, KeyValuePair.getBooleanValue("key3", list, true));
+ assertEquals(true, KeyValuePair.getBooleanValue("key1", list, true));
+
+ assertEquals(2.0, KeyValuePair.getDoubleValue("key4", list, 10.0));
+ assertEquals(10.8, KeyValuePair.getDoubleValue("key5", list, 2.0));
+ assertEquals(100.0, KeyValuePair.getDoubleValue("key1", list, 100.0));
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/expected_01.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/expected_01.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/expected_01.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,7 @@
+<test>
+ <el index="1"/>
+ <el index="2">
+ <el index="2.1"/>
+ And some text...
+ </el>
+</test>
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/expected_02.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/expected_02.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/expected_02.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1 @@
+<test> <el index="1"/> <el index="2"> <el index="2.1"/> And some text... </el> </test>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/expected_03.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/expected_03.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/expected_03.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1 @@
+<root><el index="1"/>Some root text...<el index="2">Some nested text...</el> and some more root text...</root>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/testfile1.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/testfile1.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/testfile1.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,7 @@
+<test>
+ <el index="1"/>
+ <el index="2">
+ <el index="2.1"/>
+ And some text...
+ </el>
+</test>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/testfile2.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/testfile2.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/testfile2.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1 @@
+<test attrib1="value1" attrib2="value2" attrib3="valu3" />
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/testfile3.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/testfile3.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/testfile3.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1 @@
+<root><el index="1"/>Some root text...<el index="2">Some nested text...</el> and some more root text...</root>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/testfile4.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/testfile4.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/helpers/testfile4.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,9 @@
+<mailParams from="x.x at x.com"
+ sendTo="b.b at b.com,c.c at c.com"
+ ccTo="d.d at c.com,e.e at e.com"
+ subject="Unit Test - Subject" message="Unit Test - Message">
+
+ <attachment>attachment1.txt</attachment>
+ <attachment>attachment2.txt</attachment>
+
+</mailParams>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/format/tests/ExampleMessageImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/format/tests/ExampleMessageImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/format/tests/ExampleMessageImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,117 @@
+package org.jboss.soa.esb.message.format.tests;
+
+import java.net.URI;
+
+import org.jboss.soa.esb.message.Attachment;
+import org.jboss.soa.esb.message.Body;
+import org.jboss.soa.esb.message.Context;
+import org.jboss.soa.esb.message.Fault;
+import org.jboss.soa.esb.message.Header;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.Properties;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/**
+ * Used to plug in new message formats dynamically. Each plugin is responsible for
+ * returning a message implementation that knows how to serialize its state in a
+ * specific manner, e.g., XML or ASN.1.
+ *
+ * @author Mark Little
+ *
+ */
+
+public class ExampleMessageImpl implements Message
+{
+
+ /**
+ * @return get the header component of the message.
+ */
+
+ public Header getHeader ()
+ {
+ return null;
+ }
+
+ /**
+ * @return get the context component of the message.
+ */
+
+ public Context getContext ()
+ {
+ return null;
+ }
+
+ /**
+ * @return get the body component of the message.
+ */
+
+ public Body getBody ()
+ {
+ return null;
+ }
+
+ /**
+ * @return get any faults associated with the message. These should not
+ * be application level faults, but comms level.
+ */
+
+ public Fault getFault ()
+ {
+ return null;
+ }
+
+ /**
+ * @return get any message attachments.
+ */
+
+ public Attachment getAttachment ()
+ {
+ return null;
+ }
+ /**
+ * @return get any message properties
+ */
+ public Properties getProperties()
+ {
+ return null;
+ }
+
+ /**
+ * @return the type of this message.
+ */
+
+ public URI getType ()
+ {
+ try
+ {
+ return new URI(ExampleMessagePlugin.URN);
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+
+ return null;
+ }
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/format/tests/ExampleMessagePlugin.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/format/tests/ExampleMessagePlugin.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/format/tests/ExampleMessagePlugin.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,69 @@
+package org.jboss.soa.esb.message.format.tests;
+
+import java.net.URI;
+
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessagePlugin;
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author mark.little at jboss.com
+ */
+
+/**
+ * Used to plug in new message formats dynamically. Each plugin is responsible for
+ * returning a message implementation that knows how to serialize its state in a
+ * specific manner, e.g., XML or ASN.1.
+ *
+ * @author Mark Little
+ *
+ */
+
+public class ExampleMessagePlugin implements MessagePlugin
+{
+
+ public static final String URN = "foobar";
+
+ /**
+ * @return the message instance.
+ */
+
+ public Message getMessage ()
+ {
+ return new ExampleMessageImpl();
+ }
+
+ /**
+ * @return the unique identifier for this message plugin.
+ */
+
+ public URI getType ()
+ {
+ try
+ {
+ return new URI(URN);
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+
+ return null;
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/format/tests/MessageFactoryUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/format/tests/MessageFactoryUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/format/tests/MessageFactoryUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,131 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.message.format.tests;
+
+import java.net.URI;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessagePlugin;
+import org.jboss.soa.esb.message.format.MessageType;
+
+/**
+ * Unit tests for the Class class.
+ *
+ * @author Mark Little
+ */
+
+public class MessageFactoryUnitTest extends TestCase
+{
+ public void testDefaultMessage ()
+ {
+ Message msg = MessageFactory.getInstance().getMessage();
+
+ assertEquals((msg != null), true);
+ }
+
+ public void testURIMessage ()
+ {
+ Message msg1 = MessageFactory.getInstance().getMessage(MessageType.DEFAULT_TYPE);
+ Message msg2 = MessageFactory.getInstance().getMessage();
+
+ assertEquals(msg1.getType().equals(msg2.getType()), true);
+
+ Message msg3 = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED);
+
+ assertEquals(msg1.getType().equals(msg3.getType()), false);
+ }
+
+ public void testInvalidURIMessage ()
+ {
+ try
+ {
+ Message msg = MessageFactory.getInstance().getMessage(new URI("urn:foo"));
+
+ assertEquals((msg == null), true);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testNullURIMessage ()
+ {
+ try
+ {
+ @SuppressWarnings("unused")
+ Message msg = MessageFactory.getInstance().getMessage(null);
+
+ fail();
+ }
+ catch (IllegalArgumentException ex)
+ {
+ // success
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testNullURIConvertMessage ()
+ {
+ try
+ {
+ @SuppressWarnings("unused")
+ Message msg = MessageFactory.getInstance().getMessage(null, null);
+
+ fail();
+ }
+ catch (IllegalArgumentException ex)
+ {
+ // success
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testPlugin ()
+ {
+ System.setProperty(MessagePlugin.MESSAGE_PLUGIN+"1", ExampleMessagePlugin.class.getName());
+
+ MessageFactory.getInstance().reset();
+
+ try
+ {
+ URI uri = new URI(ExampleMessagePlugin.URN);
+ Message msg = MessageFactory.getInstance().getMessage(uri);
+
+ assertEquals(msg.getType().equals(uri), true);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/AttachmentUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/AttachmentUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/AttachmentUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,207 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.message.tests;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.StringWriter;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import junit.framework.TestCase;
+
+import org.jboss.internal.soa.esb.message.format.serialized.MessageImpl;
+import org.jboss.soa.esb.message.Attachment;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.w3c.dom.Document;
+
+import com.sun.org.apache.xml.internal.serialize.OutputFormat;
+import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
+
+/**
+ * Unit tests for the Class class.
+ *
+ * @author Mark Little
+ */
+
+public class AttachmentUnitTest extends TestCase
+{
+
+ public void testSerializeAttachment()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JAVA_SERIALIZED);
+
+ assertEquals((msg != null), true);
+
+ Attachment at = msg.getAttachment();
+
+ assertEquals((msg != null), true);
+
+ at.addItem(new ExampleObject(0)); // un-named
+ at.addItemAt(0, new ExampleObject(0)); // un-named;
+
+ try
+ {
+ at.addItem(new Object());
+
+ fail();
+ }
+ catch (IllegalArgumentException ex)
+ {
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+
+ assertEquals(at.getUnnamedCount(), 2);
+
+ assertEquals(at.get("foo"), null);
+
+ at.put("foobar", new ExampleObject(1));
+
+ assertEquals(at.getNamedCount(), 1);
+
+ at.addItem(new ExampleObject(1));
+ at.addItem(new ExampleObject(2));
+
+ assertEquals((at.getNames() != null), true);
+
+ assertEquals((at.removeItemAt(0) != null), true);
+
+ at.replaceItemAt(0, new ExampleObject(2));
+
+ int count = at.getUnnamedCount();
+
+ try
+ {
+ ByteArrayOutputStream s = new ByteArrayOutputStream();
+ ObjectOutputStream o = new ObjectOutputStream(s);
+
+ o.writeObject(msg);
+ o.close();
+
+ ByteArrayInputStream is = new ByteArrayInputStream(s.toByteArray());
+ ObjectInputStream io = new ObjectInputStream(is);
+
+ MessageImpl nImpl = (MessageImpl) io.readObject();
+
+ assertEquals(nImpl.getAttachment().getUnnamedCount(), count);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testXMLAttachment()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JBOSS_XML);
+
+ assertEquals((msg != null), true);
+
+ Attachment at = msg.getAttachment();
+
+ assertEquals((msg != null), true);
+
+ at.addItem(new ExampleObject(0)); // un-named
+ at.addItemAt(0, new ExampleObject(0)); // un-named;
+
+ try
+ {
+ at.addItem(new Object());
+
+ fail();
+ }
+ catch (IllegalArgumentException ex)
+ {
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+
+ assertEquals(at.getUnnamedCount(), 2);
+
+ assertEquals(at.get("foo"), null);
+
+ at.put("foobar", new ExampleObject(1));
+
+ assertEquals(at.getNamedCount(), 1);
+
+ at.addItem(new ExampleObject(1));
+ at.addItem(new ExampleObject(2));
+
+ assertEquals((at.getNames() != null), true);
+
+ assertEquals((at.removeItemAt(0) != null), true);
+
+ at.replaceItemAt(0, new ExampleObject(2));
+
+ int count = at.getUnnamedCount();
+
+ try
+ {
+ DocumentBuilderFactory factory = DocumentBuilderFactory
+ .newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.newDocument();
+ org.jboss.internal.soa.esb.message.format.xml.MessageImpl theImpl = (org.jboss.internal.soa.esb.message.format.xml.MessageImpl) msg;
+
+ doc = theImpl.toXML(doc);
+
+ StringWriter sWriter = new StringWriter();
+ OutputFormat format = new OutputFormat();
+ format.setIndenting(true);
+
+ XMLSerializer xmlS = new XMLSerializer(sWriter, format);
+
+ xmlS.asDOMSerializer();
+ xmlS.serialize(doc);
+
+ String documentAsString = sWriter.toString();
+
+ System.err.println("Message looks like: " + documentAsString);
+
+ org.jboss.internal.soa.esb.message.format.xml.MessageImpl nImpl = new org.jboss.internal.soa.esb.message.format.xml.MessageImpl();
+
+ nImpl.fromXML(doc);
+
+ assertEquals(nImpl.getAttachment().getUnnamedCount(), count);
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+
+ fail(ex.toString());
+ }
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/ExampleObject.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/ExampleObject.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/ExampleObject.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.message.tests;
+
+import java.io.Serializable;
+
+/**
+ * Unit tests for the Class class.
+ *
+ * @author Mark Little
+ */
+
+public class ExampleObject implements Serializable
+{
+ private static final long serialVersionUID = 0x0;
+
+ public ExampleObject (long val)
+ {
+ value = val;
+ }
+
+ public long getValue ()
+ {
+ return value;
+ }
+
+ private long value;
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/FaultUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/FaultUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/FaultUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,143 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.message.tests;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.StringWriter;
+import java.net.URI;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import junit.framework.TestCase;
+
+import org.jboss.internal.soa.esb.message.format.serialized.MessageImpl;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.w3c.dom.Document;
+
+import com.sun.org.apache.xml.internal.serialize.OutputFormat;
+import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
+
+/**
+ * Unit tests for the Class class.
+ *
+ * @author Mark Little
+ */
+
+public class FaultUnitTest extends TestCase
+{
+
+ public void testSerializeFault ()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JAVA_SERIALIZED);
+
+ assertEquals((msg != null), true);
+
+ try
+ {
+ URI code = new URI("urn:code");
+
+ msg.getFault().setCode(code);
+ msg.getFault().setReason("because");
+
+ assertEquals(msg.getFault().getCode(), code);
+ assertEquals(msg.getFault().getReason(), "because");
+
+ ByteArrayOutputStream s = new ByteArrayOutputStream();
+ ObjectOutputStream o = new ObjectOutputStream(s);
+
+ o.writeObject(msg);
+ o.close();
+
+ ByteArrayInputStream is = new ByteArrayInputStream(s.toByteArray());
+ ObjectInputStream io = new ObjectInputStream(is);
+
+ MessageImpl nImpl = (MessageImpl) io.readObject();
+
+ assertEquals(nImpl.getFault().getReason(), "because");
+
+ o.close();
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testXMLFault ()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JBOSS_XML);
+
+ assertEquals((msg != null), true);
+
+ try
+ {
+ URI code = new URI("urn:code");
+
+ msg.getFault().setCode(code);
+ msg.getFault().setReason("because");
+
+ assertEquals(msg.getFault().getCode(), code);
+ assertEquals(msg.getFault().getReason(), "because");
+
+ DocumentBuilderFactory factory = DocumentBuilderFactory
+ .newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.newDocument();
+ org.jboss.internal.soa.esb.message.format.xml.MessageImpl theImpl = (org.jboss.internal.soa.esb.message.format.xml.MessageImpl) msg;
+
+ doc = theImpl.toXML(doc);
+
+ StringWriter sWriter = new StringWriter();
+ OutputFormat format = new OutputFormat();
+ format.setIndenting(true);
+
+ XMLSerializer xmlS = new XMLSerializer(sWriter, format);
+
+ xmlS.asDOMSerializer();
+ xmlS.serialize(doc);
+
+ String documentAsString = sWriter.toString();
+
+ System.err.println("Message looks like: " + documentAsString);
+
+ org.jboss.internal.soa.esb.message.format.xml.MessageImpl nImpl = new org.jboss.internal.soa.esb.message.format.xml.MessageImpl();
+
+ nImpl.fromXML(doc);
+
+ assertEquals(nImpl.getFault().getReason(), "because");
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/MessageUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/MessageUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/MessageUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,76 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.message.tests;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+
+/**
+ * Unit tests for the Class class.
+ *
+ * @author Mark Little
+ */
+
+public class MessageUnitTest extends TestCase
+{
+
+ public void testDefaultMessageFields ()
+ {
+ Message msg = MessageFactory.getInstance().getMessage();
+
+ assertEquals((msg.getBody() != null), true);
+ assertEquals((msg.getHeader() != null), true);
+ assertEquals((msg.getContext() != null), true);
+ assertEquals((msg.getAttachment() != null), true);
+ assertEquals((msg.getFault() != null), true);
+ assertEquals((msg.getProperties() != null), true);
+ }
+
+ public void testXMLMessageFields ()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(MessageType.JBOSS_XML);
+
+ assertEquals((msg.getBody() != null), true);
+ assertEquals((msg.getHeader() != null), true);
+ assertEquals((msg.getContext() != null), true);
+ assertEquals((msg.getAttachment() != null), true);
+ assertEquals((msg.getFault() != null), true);
+ assertEquals((msg.getProperties() != null), true);
+ }
+
+ public void testSerializedMessageFields ()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED);
+
+ assertEquals((msg.getBody() != null), true);
+ assertEquals((msg.getHeader() != null), true);
+ assertEquals((msg.getContext() != null), true);
+ assertEquals((msg.getAttachment() != null), true);
+ assertEquals((msg.getFault() != null), true);
+ assertEquals((msg.getProperties() != null), true);
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/PropertiesUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/PropertiesUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/PropertiesUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,161 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.message.tests;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import junit.framework.TestCase;
+
+import org.jboss.internal.soa.esb.message.format.serialized.MessageImpl;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.w3c.dom.Document;
+
+/**
+ * Unit tests for the Class class.
+ *
+ * @author Mark Little
+ */
+
+public class PropertiesUnitTest extends TestCase
+{
+
+ public void testSerializeProperties()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JAVA_SERIALIZED);
+
+ assertEquals((msg != null), true);
+
+ msg.getProperties().setProperty("foo", "bar");
+
+ assertEquals(msg.getProperties().getProperty("foo"), "bar");
+ assertEquals((msg.getProperties().getProperty("foobar") == null), true);
+
+ assertEquals(msg.getProperties().getProperty("foobar", "barfoo"),
+ "barfoo");
+
+ try
+ {
+ msg.getProperties().setProperty("1234", new Object());
+
+ fail();
+ }
+ catch (IllegalArgumentException ex)
+ {
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+
+ msg.getProperties().getNames();
+
+ try
+ {
+ ByteArrayOutputStream s = new ByteArrayOutputStream();
+ ObjectOutputStream o = new ObjectOutputStream(s);
+
+ o.writeObject(msg);
+ o.close();
+
+ ByteArrayInputStream is = new ByteArrayInputStream(s.toByteArray());
+ ObjectInputStream io = new ObjectInputStream(is);
+
+ MessageImpl nImpl = (MessageImpl) io.readObject();
+
+ assertEquals(nImpl.getProperties().getProperty("foo"), "bar");
+
+ o.close();
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+
+ assertEquals(msg.getProperties().remove("foo"), "bar");
+ }
+
+ public void testXMLProperties()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JBOSS_XML);
+
+ assertEquals((msg != null), true);
+
+ msg.getProperties().setProperty("foo", "bar");
+
+ assertEquals(msg.getProperties().getProperty("foo"), "bar");
+ assertEquals((msg.getProperties().getProperty("foobar") == null), true);
+
+ assertEquals(msg.getProperties().getProperty("foobar", "barfoo"),
+ "barfoo");
+
+ try
+ {
+ msg.getProperties().setProperty("1234", new Object());
+
+ fail();
+ }
+ catch (IllegalArgumentException ex)
+ {
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+
+ msg.getProperties().getNames();
+
+ try
+ {
+ DocumentBuilderFactory factory = DocumentBuilderFactory
+ .newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.newDocument();
+ org.jboss.internal.soa.esb.message.format.xml.MessageImpl theImpl = (org.jboss.internal.soa.esb.message.format.xml.MessageImpl) msg;
+
+ doc = theImpl.toXML(doc);
+
+ org.jboss.internal.soa.esb.message.format.xml.MessageImpl nImpl = new org.jboss.internal.soa.esb.message.format.xml.MessageImpl();
+
+ nImpl.fromXML(doc);
+
+ assertEquals(nImpl.getProperties().getProperty("foo"), "bar");
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+
+ assertEquals(msg.getProperties().remove("foo"), "bar");
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,336 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.message.tests;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import junit.framework.TestCase;
+
+import org.jboss.internal.soa.esb.message.format.serialized.MessageImpl;
+import org.jboss.soa.esb.addressing.Call;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+
+/**
+ * Unit tests for the Class class.
+ *
+ * @author Mark Little
+ */
+
+public class SerializedMessageUnitTest extends TestCase
+{
+
+ public void testSerialize()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JAVA_SERIALIZED);
+
+ assertEquals((msg != null), true);
+
+ try
+ {
+ ByteArrayOutputStream s = new ByteArrayOutputStream();
+ ObjectOutputStream o = new ObjectOutputStream(s);
+
+ o.writeObject(msg);
+ o.close();
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+
+ }
+
+ public void testDeserialize()
+ {
+ // get XML message
+
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JAVA_SERIALIZED);
+
+ assertEquals((msg != null), true);
+
+ try
+ {
+ ByteArrayOutputStream s = new ByteArrayOutputStream();
+ ObjectOutputStream o = new ObjectOutputStream(s);
+
+ o.writeObject(msg);
+ o.close();
+
+ ByteArrayInputStream is = new ByteArrayInputStream(s.toByteArray());
+ ObjectInputStream io = new ObjectInputStream(is);
+
+ @SuppressWarnings("unused")
+ MessageImpl nImpl = (MessageImpl) io.readObject();
+
+ o.close();
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testHeader ()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JAVA_SERIALIZED);
+
+ assertEquals((msg != null), true);
+
+ Call call = new Call();
+
+ msg.getHeader().setCall(call);
+
+ call = msg.getHeader().getCall();
+
+ assertEquals((call != null), true);
+
+ try
+ {
+ msg.getHeader().setCall(null);
+
+ fail();
+ }
+ catch (IllegalArgumentException ex)
+ {
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testInvalidAdd ()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JAVA_SERIALIZED);
+
+ assertEquals((msg != null), true);
+
+ try
+ {
+ msg.getBody().add(null, null);
+
+ fail();
+ }
+ catch (IllegalArgumentException ex)
+ {
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testAddBytes ()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JAVA_SERIALIZED);
+
+ assertEquals((msg != null), true);
+
+ String testString = "test";
+
+ msg.getBody().setContents(testString.getBytes());
+
+ try
+ {
+ ByteArrayOutputStream s = new ByteArrayOutputStream();
+ ObjectOutputStream o = new ObjectOutputStream(s);
+
+ o.writeObject(msg);
+ o.close();
+
+ ByteArrayInputStream is = new ByteArrayInputStream(s.toByteArray());
+ ObjectInputStream io = new ObjectInputStream(is);
+
+ MessageImpl nImpl = (MessageImpl) io.readObject();
+
+ o.close();
+
+ String val = new String(nImpl.getBody().getContents());
+
+ assertEquals(val, testString);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testReplace ()
+ {
+ Message msg1 = MessageFactory.getInstance().getMessage(
+ MessageType.JAVA_SERIALIZED);
+
+ assertEquals((msg1 != null), true);
+
+ String foo = "foo";
+
+ Message msg2 = MessageFactory.getInstance().getMessage(
+ MessageType.JAVA_SERIALIZED);
+
+ assertEquals((msg2 != null), true);
+
+ String bar = "bar";
+
+ msg1.getBody().setContents(foo.getBytes());
+ msg2.getBody().setContents(bar.getBytes());
+
+ msg1.getBody().replace(msg2.getBody());
+
+ String foobar = new String(msg1.getBody().getContents());
+
+ assertEquals(foobar.equals("bar"), true);
+ }
+
+ public void testMerge ()
+ {
+ Message msg1 = MessageFactory.getInstance().getMessage(
+ MessageType.JAVA_SERIALIZED);
+
+ assertEquals((msg1 != null), true);
+
+ String foo = "foo";
+
+ Message msg2 = MessageFactory.getInstance().getMessage(
+ MessageType.JAVA_SERIALIZED);
+
+ assertEquals((msg2 != null), true);
+
+ String bar = "bar";
+
+ msg1.getBody().setContents(foo.getBytes());
+ msg2.getBody().setContents(bar.getBytes());
+
+ msg1.getBody().merge(msg2.getBody());
+
+ String foobar = new String(msg1.getBody().getContents());
+
+ assertEquals(foobar, "foobar");
+ }
+
+ public void testAddObjects ()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JAVA_SERIALIZED);
+
+ assertEquals((msg != null), true);
+
+ ExampleObject value = new ExampleObject(1234);
+
+ msg.getBody().add("foo", value);
+
+ try
+ {
+ ByteArrayOutputStream s = new ByteArrayOutputStream();
+ ObjectOutputStream o = new ObjectOutputStream(s);
+
+ o.writeObject(msg);
+ o.close();
+
+ ByteArrayInputStream is = new ByteArrayInputStream(s.toByteArray());
+ ObjectInputStream io = new ObjectInputStream(is);
+
+ MessageImpl nImpl = (MessageImpl) io.readObject();
+
+ o.close();
+
+ ExampleObject foo = (ExampleObject) nImpl.getBody().get("foo");
+
+ assertEquals((foo.getValue() == value.getValue()), true);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testAddInvalidObject ()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JAVA_SERIALIZED);
+
+ assertEquals((msg != null), true);
+
+ try
+ {
+ msg.getBody().add("foo", new Object());
+
+ fail();
+ }
+ catch (IllegalArgumentException ex)
+ {
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testRemoveObjects ()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JAVA_SERIALIZED);
+
+ assertEquals((msg != null), true);
+
+ ExampleObject value = new ExampleObject(1234);
+
+ msg.getBody().add("bar", value);
+
+ msg.getBody().remove("bar");
+
+ try
+ {
+ ByteArrayOutputStream s = new ByteArrayOutputStream();
+ ObjectOutputStream o = new ObjectOutputStream(s);
+
+ o.writeObject(msg);
+ o.close();
+
+ ByteArrayInputStream is = new ByteArrayInputStream(s.toByteArray());
+ ObjectInputStream io = new ObjectInputStream(is);
+
+ MessageImpl nImpl = (MessageImpl) io.readObject();
+
+ o.close();
+
+ ExampleObject foo = (ExampleObject) nImpl.getBody().get("bar");
+
+ assertEquals((foo == null), true);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,368 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.message.tests;
+
+import java.io.StringWriter;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import junit.framework.TestCase;
+
+import org.jboss.internal.soa.esb.message.format.xml.MessageImpl;
+import org.jboss.soa.esb.addressing.Call;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.w3c.dom.Document;
+
+import com.sun.org.apache.xml.internal.serialize.OutputFormat;
+import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
+
+/**
+ * Unit tests for the Class class.
+ *
+ * @author Mark Little
+ */
+
+public class XMLMessageUnitTest extends TestCase
+{
+
+ public void testToXML()
+ {
+ // get XML message
+
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JBOSS_XML);
+
+ assertEquals((msg != null), true);
+
+ try
+ {
+ DocumentBuilderFactory factory = DocumentBuilderFactory
+ .newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.newDocument();
+ MessageImpl theImpl = (MessageImpl) msg;
+
+ doc = theImpl.toXML(doc);
+
+ StringWriter sWriter = new StringWriter();
+ OutputFormat format = new OutputFormat();
+ format.setIndenting(true);
+
+ XMLSerializer xmlS = new XMLSerializer(sWriter, format);
+
+ xmlS.asDOMSerializer();
+ xmlS.serialize(doc);
+
+ String documentAsString = sWriter.toString();
+
+ System.err.println("Message looks like: " + documentAsString);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testFromXML()
+ {
+ // get XML message
+
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JBOSS_XML);
+
+ assertEquals((msg != null), true);
+
+ try
+ {
+ DocumentBuilderFactory factory = DocumentBuilderFactory
+ .newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.newDocument();
+ MessageImpl theImpl = (MessageImpl) msg;
+
+ doc = theImpl.toXML(doc);
+
+ MessageImpl nImpl = new MessageImpl();
+
+ nImpl.fromXML(doc);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testHeader ()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JBOSS_XML);
+
+ assertEquals((msg != null), true);
+
+ Call call = new Call();
+
+ msg.getHeader().setCall(call);
+
+ call = msg.getHeader().getCall();
+
+ assertEquals((call != null), true);
+
+ try
+ {
+ msg.getHeader().setCall(null);
+
+ fail();
+ }
+ catch (IllegalArgumentException ex)
+ {
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testInvalidAdd ()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JBOSS_XML);
+
+ assertEquals((msg != null), true);
+
+ try
+ {
+ msg.getBody().add(null, null);
+
+ fail();
+ }
+ catch (IllegalArgumentException ex)
+ {
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testAddBytes ()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JBOSS_XML);
+
+ assertEquals((msg != null), true);
+
+ String testString = "test";
+
+ msg.getBody().setContents(testString.getBytes());
+
+ try
+ {
+ DocumentBuilderFactory factory = DocumentBuilderFactory
+ .newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.newDocument();
+ MessageImpl theImpl = (MessageImpl) msg;
+
+ doc = theImpl.toXML(doc);
+
+ StringWriter sWriter = new StringWriter();
+ OutputFormat format = new OutputFormat();
+ format.setIndenting(true);
+
+ XMLSerializer xmlS = new XMLSerializer(sWriter, format);
+
+ xmlS.asDOMSerializer();
+ xmlS.serialize(doc);
+
+ String documentAsString = sWriter.toString();
+
+ MessageImpl nImpl = new MessageImpl();
+
+ System.err.println("Document is "+documentAsString);
+
+ nImpl.fromXML(doc);
+
+ String val = new String(nImpl.getBody().getContents());
+
+ assertEquals(val, testString);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testReplace ()
+ {
+ Message msg1 = MessageFactory.getInstance().getMessage(
+ MessageType.JBOSS_XML);
+
+ assertEquals((msg1 != null), true);
+
+ String foo = "foo";
+
+ Message msg2 = MessageFactory.getInstance().getMessage(
+ MessageType.JBOSS_XML);
+
+ assertEquals((msg2 != null), true);
+
+ String bar = "bar";
+
+ msg1.getBody().setContents(foo.getBytes());
+ msg2.getBody().setContents(bar.getBytes());
+
+ msg1.getBody().replace(msg2.getBody());
+
+ String foobar = new String(msg1.getBody().getContents());
+
+ assertEquals(foobar.equals("bar"), true);
+ }
+
+ public void testMerge ()
+ {
+ Message msg1 = MessageFactory.getInstance().getMessage(
+ MessageType.JBOSS_XML);
+
+ assertEquals((msg1 != null), true);
+
+ String foo = "foo";
+
+ Message msg2 = MessageFactory.getInstance().getMessage(
+ MessageType.JBOSS_XML);
+
+ assertEquals((msg2 != null), true);
+
+ String bar = "bar";
+
+ msg1.getBody().setContents(foo.getBytes());
+ msg2.getBody().setContents(bar.getBytes());
+
+ msg1.getBody().merge(msg2.getBody());
+
+ String foobar = new String(msg1.getBody().getContents());
+
+ assertEquals(foobar, "foobar");
+ }
+
+ public void testAddObjects ()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JBOSS_XML);
+
+ assertEquals((msg != null), true);
+
+ ExampleObject value = new ExampleObject(1234);
+
+ msg.getBody().add("foo", value);
+
+ try
+ {
+ DocumentBuilderFactory factory = DocumentBuilderFactory
+ .newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.newDocument();
+ MessageImpl theImpl = (MessageImpl) msg;
+
+ doc = theImpl.toXML(doc);
+
+ StringWriter sWriter = new StringWriter();
+ OutputFormat format = new OutputFormat();
+ format.setIndenting(true);
+
+ XMLSerializer xmlS = new XMLSerializer(sWriter, format);
+
+ xmlS.asDOMSerializer();
+ xmlS.serialize(doc);
+
+ String documentAsString = sWriter.toString();
+
+ MessageImpl nImpl = new MessageImpl();
+
+ System.err.println("Document is "+documentAsString);
+
+ nImpl.fromXML(doc);
+
+ ExampleObject foo = (ExampleObject) nImpl.getBody().get("foo");
+
+ assertEquals((foo.getValue() == value.getValue()), true);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+ public void testRemoveObjects ()
+ {
+ Message msg = MessageFactory.getInstance().getMessage(
+ MessageType.JBOSS_XML);
+
+ assertEquals((msg != null), true);
+
+ ExampleObject value = new ExampleObject(1234);
+
+ msg.getBody().add("bar", value);
+
+ msg.getBody().remove("bar");
+
+ try
+ {
+ DocumentBuilderFactory factory = DocumentBuilderFactory
+ .newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.newDocument();
+ MessageImpl theImpl = (MessageImpl) msg;
+
+ doc = theImpl.toXML(doc);
+
+ StringWriter sWriter = new StringWriter();
+ OutputFormat format = new OutputFormat();
+ format.setIndenting(true);
+
+ XMLSerializer xmlS = new XMLSerializer(sWriter, format);
+
+ xmlS.asDOMSerializer();
+ xmlS.serialize(doc);
+
+ String documentAsString = sWriter.toString();
+
+ MessageImpl nImpl = new MessageImpl();
+
+ System.err.println("Document is "+documentAsString);
+
+ nImpl.fromXML(doc);
+
+ ExampleObject foo = (ExampleObject) nImpl.getBody().get("bar");
+
+ assertEquals((foo == null), true);
+ }
+ catch (Exception ex)
+ {
+ fail(ex.toString());
+ }
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/MacroExpanderUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/MacroExpanderUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/MacroExpanderUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,53 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.notification;
+
+import java.util.HashMap;
+
+import junit.framework.TestCase;
+
+import org.jboss.internal.soa.esb.notification.MacroExpander;
+import org.jboss.internal.soa.esb.util.StreamUtils;
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+/**
+ * MacroExpander unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class MacroExpanderUnitTest extends TestCase {
+
+ public void testReplaceMacros() {
+ ConfigTree rootDomEl = new ConfigTree("rootEl");
+ HashMap<String, String> map = new HashMap<String, String>();
+
+ ConfigTree childDomEl = new ConfigTree("childEl",rootDomEl);
+ rootDomEl.setAttribute("attrb1", "value1");
+ rootDomEl.setAttribute("attrb2", MacroExpander.CTX_BATCH_NUM + "BatchNumValue");
+ childDomEl.setAttribute("attrb1", MacroExpander.CTX_BATCH_UID + "UIDValue");
+ map.put(MacroExpander.CTX_BATCH_NUM, "ReplacementBNV!");
+ map.put(MacroExpander.CTX_BATCH_UID, "ReplacementUIDV!");
+
+ MacroExpander.replaceMacros(rootDomEl, map);
+ String expected = new String(StreamUtils.readStream(getClass().getResourceAsStream("MacroExpanderUnitTest_expected1.xml")));
+ assertEquals(expected.trim(), rootDomEl.toString().trim());
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/MacroExpanderUnitTest_expected1.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/MacroExpanderUnitTest_expected1.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/MacroExpanderUnitTest_expected1.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1 @@
+<rootEl attrb1="value1" attrb2="ReplacementBNV!BatchNumValue"><childEl attrb1="ReplacementUIDV!UIDValue"/></rootEl>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotificationListUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotificationListUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotificationListUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,75 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.notification;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+/**
+ * NotificationList unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class NotificationListUnitTest extends TestCase {
+
+ public void test_NotificationList() throws Exception {
+ ConfigTree domEl = ConfigTree.fromInputStream(getClass().getResourceAsStream("NotificationListUnitTest_testfile1.xml"));
+ NotificationList nList = new NotificationList(domEl);
+
+ List<String> messageList = new ArrayList<String>();
+ TestNotificationTarget1.messageList = messageList;
+ TestNotificationTarget2.messageList = messageList;
+
+ nList.sendNotification("tom");
+ assertEquals(4, messageList.size());
+ assertEquals("message 1-tom", messageList.get(0));
+ assertEquals("message 2-tom", messageList.get(1));
+ assertEquals("message 3-tom", messageList.get(2));
+ assertEquals("message 4-tom", messageList.get(3));
+ }
+
+ public void test_assertionMethods() throws Exception {
+ ConfigTree domEl;
+ NotificationList nList;
+
+ domEl = new ConfigTree("notif");
+ nList = new NotificationList(domEl);
+ assertTrue(nList.isOK());
+ assertTrue(nList.isErr());
+ // REVIEW: Is this behavior OK?? Can be OK and Err at the same time!!
+
+ domEl = new ConfigTree("notif");
+ domEl.setAttribute(NotificationList.TYPE, "ok");
+ nList = new NotificationList(domEl);
+ assertTrue(nList.isOK());
+ assertTrue(!nList.isErr());
+
+ domEl = new ConfigTree("notif");
+ domEl.setAttribute(NotificationList.TYPE, "err");
+ nList = new NotificationList(domEl);
+ assertTrue(!nList.isOK());
+ assertTrue(nList.isErr());
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotificationListUnitTest_testfile1.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotificationListUnitTest_testfile1.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotificationListUnitTest_testfile1.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,6 @@
+<notif type="ok">
+ <target class="TestNotificationTarget1" message="message 1" />
+ <target class="TestNotificationTarget1" message="message 2" />
+ <target class="TestNotificationTarget2" message="message 3" />
+ <target class="TestNotificationTarget2" message="message 4" />
+</notif>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyEmailUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyEmailUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyEmailUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.notification;
+
+import javax.mail.MessagingException;
+import javax.mail.internet.AddressException;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.helpers.Email;
+
+/**
+ * NotifyEmail unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class NotifyEmailUnitTest extends TestCase {
+
+ public void test_NotifyEmail() throws Exception {
+ ConfigTree emailMessageEl = new ConfigTree("email");
+
+ emailMessageEl.setAttribute(Email.FROM, "a.b at c.com");
+ emailMessageEl.setAttribute(Email.SENDTO, "d.e at f.com");
+ emailMessageEl.setAttribute(Email.COPYTO, "g.h at i.com");
+ emailMessageEl.setAttribute(Email.MESSAGE, "Hi there!!!");
+
+ NotifyEmail ne = new TestNotifyEmail(emailMessageEl);
+ ne.sendNotification("Hello");
+ }
+
+ private class TestNotifyEmail extends NotifyEmail {
+ public TestNotifyEmail(ConfigTree p_oP) throws Exception {
+ super(p_oP);
+ }
+ protected void sendEmailNotification(ConfigTree messageParams) throws AddressException, MessagingException {
+ assertEquals("Hi there!!!\nHello", messageParams.getAttribute(Email.MESSAGE));
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyFilesUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyFilesUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyFilesUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,124 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.notification;
+
+import java.io.File;
+import java.io.Serializable;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+/**
+ * NotifyFiles unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class NotifyFilesUnitTest extends TestCase {
+
+ public void test_BadFolderInfo() throws Exception {
+ ConfigTree rootEl = new ConfigTree("notif");
+ ConfigTree fileEl = new ConfigTree("file",rootEl);
+
+ // No file attribute defined on the ConfigTree
+ try {
+ new NotifyFiles(rootEl);
+ fail("Expected IllegalArgumentException");
+ } catch(IllegalArgumentException e) {
+ // Expected
+ }
+ // File attribute defined on the ConfigTree, but parent folder doesn't exist...
+ fileEl.setAttribute("URI", new File("./").toURI().toString() + "/xyzzyx/a.txt");
+ try {
+ new NotifyFiles(rootEl);
+ fail("Expected IllegalArgumentException");
+ } catch(IllegalArgumentException e) {
+ // Expected
+ }
+ }
+
+ public void test_StringObj() throws Exception {
+ sendNotification("Hello");
+ }
+
+ public void test_NonStringObj() throws Exception {
+ sendNotification(new Integer(1234));
+ }
+
+ public void sendNotification(Serializable obj) throws Exception {
+ ConfigTree rootEl = new ConfigTree("notif");
+ NotifyFiles notifyFiles;
+
+ // Add the file configs to the config DOM for 4 files...
+ addFileConfig(rootEl, "file1.notif", true);
+ addFileConfig(rootEl, "file2.notif", true);
+ addFileConfig(rootEl, "file3.notif", false);
+ addFileConfig(rootEl, "file4.notif", null);
+
+ // Create the class and call the sendNotification method twice...
+ notifyFiles = new NotifyFiles(rootEl);
+ notifyFiles.sendNotification(obj);
+ notifyFiles.sendNotification(obj);
+
+ // Test the files. Files 1 and 2 should be the same size. Files 3 and 4 should be the
+ // same size. Files 1 and 2 should be twice as big as files 3 and 4 because append was set
+ // "true" on 1 and 2 and sendNotification() was called twice...
+ File file1Obj = getFileObject("file1.notif");
+ File file2Obj = getFileObject("file2.notif");
+ File file3Obj = getFileObject("file3.notif");
+ File file4Obj = getFileObject("file4.notif");
+ assertEquals(file1Obj.length(), file2Obj.length());
+ assertEquals(file3Obj.length(), file4Obj.length());
+ assertEquals(file1Obj.length(), file3Obj.length() * 2);
+ }
+
+ private void addFileConfig(ConfigTree rootEl, String file, Boolean append) {
+ File fileObj = getFileObject(file);
+ ConfigTree fileEl = new ConfigTree("file",rootEl);
+
+ fileEl.setAttribute("URI", fileObj.toURI().toString());
+ fileEl.setAttribute("append", (append != null?append.toString():null));
+
+ // Also want to delete the file incase the tests are being rerun...
+ fileObj.delete();
+ }
+
+ private File getFileObject(String file) {
+ // TF: Excuse this hack!!! It's the safest way of calculating a
+ // relative URI within the test structure. It will prob cause
+ // Maven some issues i.e. getting it to work for both Ant and Maven :-(
+ // This code assumes that the working dir is the "product" folder.
+
+ File fileObj = new File("build/tests/" + getPKg() + "/" + file);
+ if(!fileObj.getParentFile().exists()) {
+ // The build folder may not exist e.g. if running this test from
+ // inside your IDE.
+ fileObj.getParentFile().mkdirs();
+ }
+
+ return fileObj;
+ }
+
+ private String getPKg() {
+ String javaPackage = NotifyFilesUnitTest.class.getPackage().getName();
+ return javaPackage.replace('.', '/');
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyQueuesUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyQueuesUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyQueuesUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,138 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.notification;
+
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.ObjectMessage;
+import javax.jms.TextMessage;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.mockejb.jms.MockQueue;
+import org.mockejb.jms.MockTopic;
+import org.mockejb.jms.QueueConnectionFactoryImpl;
+import org.mockejb.jndi.MockContextFactory;
+
+/**
+ * NotifyQueues unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class NotifyQueuesUnitTest extends TestCase {
+
+ private MockQueue mockQueue1;;
+ private MockQueue mockQueue2;
+ private NotifyQueues notifyQueues;
+
+ protected void setUp() throws Exception {
+ MockContextFactory.setAsInitial();
+ Context ctx = new InitialContext();
+ ctx.rebind(NotifyQueues.CONNECTION_FACTORY, new QueueConnectionFactoryImpl());
+
+ ConfigTree rootEl = new ConfigTree("rootEl");
+
+ addMessagePropertyConfigs(rootEl);
+ addQueueConfig(rootEl, "queue1");
+ addQueueConfig(rootEl, "queue2");
+ mockQueue1 = createAndBindQueue("queue1");
+ mockQueue2 = createAndBindQueue("queue2");
+
+ notifyQueues = new NotifyQueues(rootEl);
+ }
+
+ protected void tearDown() throws Exception {
+ notifyQueues.release();
+ MockContextFactory.revertSetAsInitial();
+ }
+
+ public void test_StringObj() throws Exception {
+ notifyQueues.sendNotification("Hello");
+
+ checkQueueTextMessage(mockQueue1, 0, "Hello");
+ checkQueueTextMessage(mockQueue2, 0, "Hello");
+ }
+
+ public void test_NonStringObj() throws Exception {
+ notifyQueues.sendNotification(new Integer(123));
+
+ checkQueueObjectMessage(mockQueue1, 0, new Integer(123));
+ checkQueueObjectMessage(mockQueue2, 0, new Integer(123));
+ }
+
+ private void checkQueueTextMessage(MockQueue mockQueue, int messageIdx, String expectedText) throws JMSException {
+ assertTrue(mockQueue.getMessages().size() > messageIdx);
+ Message message = mockQueue.getMessageAt(0);
+ assertTrue(message instanceof TextMessage);
+ assertEquals(expectedText, ((TextMessage)message).getText());
+ assertEquals("testpropvalue", message.getStringProperty("testpropname"));
+ }
+
+ private void checkQueueObjectMessage(MockQueue mockQueue, int messageIdx, Object expectedObj) throws JMSException {
+ assertTrue(mockQueue.getMessages().size() > messageIdx);
+ Message message = mockQueue.getMessageAt(0);
+ assertTrue(message instanceof ObjectMessage);
+ assertEquals(expectedObj, ((ObjectMessage)message).getObject());
+
+ // Note that the property bindings don't seem to work in this test i.e.
+ // it's returning null but should be returning the same as for a
+ // TextMessage (See above). This is most likely a mockejb lib issue
+ // and so we're ignoring it :-)
+ assertEquals(null, message.getStringProperty("testpropname"));
+ }
+
+ private void addMessagePropertyConfigs(ConfigTree rootEl) {
+
+ ConfigTree propEl = new ConfigTree(NotifyQueues.CHILD_MSG_PROP,rootEl);
+
+ propEl.setAttribute(NotifyJMS.ATT_PROP_NAME, "testpropname");
+ propEl.setAttribute(NotifyJMS.ATT_PROP_VALUE, "testpropvalue");
+ }
+
+ private void addQueueConfig(ConfigTree rootEl, String queueName) {
+ ConfigTree queueEl = new ConfigTree(NotifyQueues.CHILD_QUEUE,rootEl);
+
+ queueEl.setAttribute(NotifyJMS.ATT_DEST_NAME, queueName);
+ }
+
+ private MockQueue createAndBindQueue(String queueName) throws NamingException {
+ MockQueue mockQueue = new MockQueue(queueName);
+
+ Context ctx = new InitialContext();
+ ctx.rebind(queueName, mockQueue);
+
+ return mockQueue;
+ }
+
+ @SuppressWarnings("unused")
+ private MockTopic createAndBindTopic(String topicName) throws NamingException {
+ MockTopic mockTopic = new MockTopic(topicName);
+
+ Context ctx = new InitialContext();
+ ctx.rebind(topicName, mockTopic);
+
+ return mockTopic;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifySqlTableUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifySqlTableUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifySqlTableUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.notification;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+/**
+ * NotifySqlTable unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class NotifySqlTableUnitTest extends TestCase {
+
+ public void test_NotifySqlTable() throws Exception {
+ ConfigTree domEl = ConfigTree.fromInputStream(getClass().getResourceAsStream("NotifySqlTable_testfile1.xml"));
+ NotifySqlTable nst = new NotifySqlTable(domEl);
+
+ assertEquals("driver-class", nst.m_sDriver);
+ assertEquals("connection-url", nst.m_sURL);
+ assertEquals("user-name", nst.m_sUser);
+ assertEquals("password", nst.m_sPwd);
+ assertEquals("table", nst.m_sTable);
+ assertEquals("dataColumn", nst.m_sDataCol);
+
+ assertEquals(3, nst.m_oCols.size());
+ assertEquals("colvalue1", nst.m_oCols.getProperty("colname1"));
+ assertEquals("colvalue2", nst.m_oCols.getProperty("colname2"));
+ assertEquals("colvalue3", nst.m_oCols.getProperty("colname3"));
+
+ assertEquals("insert into table (\"colname3\",\"colname2\",\"colname1\") values ('colvalue3','colvalue2','colvalue1')", nst.getInsertStmt());
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifySqlTable_testfile1.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifySqlTable_testfile1.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifySqlTable_testfile1.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,12 @@
+<notif driver-class="driver-class"
+ connection-url="connection-url"
+ user-name="user-name"
+ password="password"
+ table="table"
+ dataColumn="dataColumn">
+
+ <column name="colname1" value="colvalue1"/>
+ <column name="colname2" value="colvalue2"/>
+ <column name="colname3" value="colvalue3"/>
+
+</notif>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyTopicsUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyTopicsUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyTopicsUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,126 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.notification;
+
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.ObjectMessage;
+import javax.jms.TextMessage;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.mockejb.jms.MockTopic;
+import org.mockejb.jms.TopicConnectionFactoryImpl;
+import org.mockejb.jndi.MockContextFactory;
+
+/**
+ * NotifyTopics unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class NotifyTopicsUnitTest extends TestCase {
+
+ private MockTopic mockTopic1;;
+ private MockTopic mockTopic2;
+ private NotifyTopics notifyTopics;
+
+ protected void setUp() throws Exception {
+ MockContextFactory.setAsInitial();
+ Context ctx = new InitialContext();
+ ctx.rebind(NotifyTopics.CONNECTION_FACTORY, new TopicConnectionFactoryImpl());
+
+ ConfigTree rootEl = new ConfigTree("rootEl");
+
+ addMessagePropertyConfigs(rootEl);
+ addTopicConfig(rootEl, "topic1");
+ addTopicConfig(rootEl, "topic2");
+ mockTopic1 = createAndBindTopic("topic1");
+ mockTopic2 = createAndBindTopic("topic2");
+
+ notifyTopics = new NotifyTopics(rootEl);
+ }
+
+ protected void tearDown() throws Exception {
+ notifyTopics.release();
+ MockContextFactory.revertSetAsInitial();
+ }
+
+ public void test_StringObj() throws Exception {
+ notifyTopics.sendNotification("Hello");
+
+ checkTopicTextMessage(mockTopic1, 0, "Hello");
+ checkTopicTextMessage(mockTopic2, 0, "Hello");
+ }
+
+ public void test_NonStringObj() throws Exception {
+ notifyTopics.sendNotification(new Integer(123));
+
+ checkTopicObjectMessage(mockTopic1, 0, new Integer(123));
+ checkTopicObjectMessage(mockTopic2, 0, new Integer(123));
+ }
+
+ private void checkTopicTextMessage(MockTopic mockTopic, int messageIdx, String expectedText) throws JMSException {
+ assertTrue(mockTopic.getMessages().size() > messageIdx);
+ Message message = mockTopic.getMessageAt(0);
+ assertTrue(message instanceof TextMessage);
+ assertEquals(expectedText, ((TextMessage)message).getText());
+ assertEquals("testpropvalue", message.getStringProperty("testpropname"));
+ }
+
+ private void checkTopicObjectMessage(MockTopic mockTopic, int messageIdx, Object expectedObj) throws JMSException {
+ assertTrue(mockTopic.getMessages().size() > messageIdx);
+ Message message = mockTopic.getMessageAt(0);
+ assertTrue(message instanceof ObjectMessage);
+ assertEquals(expectedObj, ((ObjectMessage)message).getObject());
+
+ // Note that the property bindings don't seem to work in this test i.e.
+ // it's returning null but should be returning the same as for a
+ // TextMessage (See above). This is most likely a mockejb lib issue
+ // and so we're ignoring it :-)
+ assertEquals(null, message.getStringProperty("testpropname"));
+ }
+
+ private void addMessagePropertyConfigs(ConfigTree rootEl) {
+ ConfigTree propEl = new ConfigTree(NotifyTopics.CHILD_MSG_PROP,rootEl);
+
+ propEl.setAttribute(NotifyJMS.ATT_PROP_NAME, "testpropname");
+ propEl.setAttribute(NotifyJMS.ATT_PROP_VALUE, "testpropvalue");
+ }
+
+ private void addTopicConfig(ConfigTree rootEl, String topicName) {
+ ConfigTree topicEl = new ConfigTree(NotifyTopics.CHILD_TOPIC,rootEl);
+
+ topicEl.setAttribute(NotifyJMS.ATT_DEST_NAME, topicName);
+ }
+
+ private MockTopic createAndBindTopic(String topicName) throws NamingException {
+ MockTopic mockTopic = new MockTopic(topicName);
+
+ Context ctx = new InitialContext();
+ ctx.rebind(topicName, mockTopic);
+
+ return mockTopic;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyUtilUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyUtilUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/NotifyUtilUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,78 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.notification;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.services.NotificationManager;
+
+/**
+ * NotifyUtil unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class NotifyUtilUnitTest extends TestCase {
+
+ public void test_NotifyUtil() {
+ ConfigTree rootEl = new ConfigTree("rootEl");
+
+ addNotificationConfig(rootEl, "message1", "ok");
+ addNotificationConfig(rootEl, "message2", "err");
+ addNotificationConfig(rootEl, "message3", "ok");
+ addNotificationConfig(rootEl, "message4", "err");
+
+ TestNotificationHandler handler = new TestNotificationHandler();
+ NotifyUtil.notifyOK(handler, rootEl, "somemessage", new HashMap());
+ assertEquals(2, handler.messages.size());
+ assertEquals("message1 - somemessage", handler.messages.get(0));
+ assertEquals("message3 - somemessage", handler.messages.get(1));
+
+ handler.messages.clear();
+ NotifyUtil.notifyError(handler, rootEl, "somemessage", new HashMap(), new Exception("test"));
+ assertEquals(3, handler.messages.size());
+ assertTrue(handler.messages.get(0).startsWith("somemessage"));
+ assertTrue(handler.messages.get(1).startsWith("message2 - somemessage"));
+ assertTrue(handler.messages.get(2).startsWith("message4 - somemessage"));
+ }
+
+ private void addNotificationConfig(ConfigTree rootEl, String message, String type) {
+ ConfigTree notifEl = new ConfigTree(NotificationList.ELEMENT,rootEl);
+ notifEl.setAttribute("message", message);
+ notifEl.setAttribute(NotificationList.TYPE, type);
+ }
+
+ private class TestNotificationHandler implements NotificationManager {
+ private List<String> messages = new ArrayList<String>();
+
+ public void sendNotifications(ConfigTree p_oP, Serializable p_o) throws Exception {
+ messages.add(p_oP.getAttribute("message") + " - " + p_o);
+ }
+ public void sendNotifications(Serializable p_o) throws Exception {
+ messages.add(p_o.toString());
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/TestNotificationTarget1.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/TestNotificationTarget1.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/TestNotificationTarget1.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,24 @@
+package org.jboss.soa.esb.notification;
+
+
+import java.io.Serializable;
+import java.util.List;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+public class TestNotificationTarget1 extends NotificationTarget {
+
+ private ConfigTree config;
+
+ public static List<String> messageList;
+
+ public TestNotificationTarget1(ConfigTree targetConf) {
+ super(targetConf);
+ config = targetConf;
+ }
+
+ @Override
+ public void sendNotification(Serializable obj) throws Exception {
+ messageList.add(config.getAttribute("message") + "-" + obj);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/TestNotificationTarget2.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/TestNotificationTarget2.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/notification/TestNotificationTarget2.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,10 @@
+package org.jboss.soa.esb.notification;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+
+public class TestNotificationTarget2 extends TestNotificationTarget1 {
+
+ public TestNotificationTarget2(ConfigTree targetConf) {
+ super(targetConf);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/parameters/ParamRepositoryFactoryUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/parameters/ParamRepositoryFactoryUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/parameters/ParamRepositoryFactoryUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,53 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.parameters;
+
+import junit.framework.TestCase;
+
+import org.jboss.internal.soa.esb.parameters.ParamFileRepository;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.common.ModulePropertyManager;
+
+/**
+ * ParamRepositoryFactory unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class ParamRepositoryFactoryUnitTest extends TestCase {
+
+ public void test_ParamRepositoryFactory() {
+ ParamRepository repo;
+
+ repo = ParamRepositoryFactory.getInstance();
+ assertTrue(repo instanceof ParamFileRepository);
+
+ ParamRepositoryFactory.reset();
+ ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).setProperty(Environment.PARAMS_REPOS_IMPL_CLASS, TestParamRepo.class.getName());
+ repo = ParamRepositoryFactory.getInstance();
+ assertTrue(repo instanceof TestParamRepo);
+ }
+
+ public void test_ParamRepositoryException() {
+ // for the coverage results ;-)
+ new ParamRepositoryException("message");
+ new ParamRepositoryException("message", new Exception());
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/parameters/ParamsFileRepositoryUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/parameters/ParamsFileRepositoryUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/parameters/ParamsFileRepositoryUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,142 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.parameters;
+
+import java.io.File;
+
+import junit.framework.TestCase;
+
+import org.jboss.internal.soa.esb.parameters.ParamFileRepository;
+import org.jboss.soa.esb.common.ModulePropertyManager;
+
+/**
+ * ParamFileRepository unit tests.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class ParamsFileRepositoryUnitTest extends TestCase
+{
+
+ public void test_ParamsFileRepository() throws Exception
+ {
+ File root;
+ ParamFileRepository fileRepo;
+
+ // Check it defaults to the working dir...
+ root = new File("./");
+ fileRepo = new ParamFileRepository();
+ assertEquals(root, fileRepo.getRoot());
+
+ // Check it can pick up from the System prop...
+ root = new File("build/tests/");
+ ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).setProperty(
+ ParamFileRepository.FILE_PARAMS_REPOS_ROOT, root.getPath());
+ fileRepo = new ParamFileRepository();
+ assertEquals(root, fileRepo.getRoot());
+
+ // Check for error on invalid System prop...
+ ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).setProperty(
+ ParamFileRepository.FILE_PARAMS_REPOS_ROOT, "blah/blah");
+ try
+ {
+ new ParamFileRepository();
+ fail("expected IllegalStateException");
+ } catch (IllegalStateException e)
+ {
+ // expected
+ }
+ }
+
+ public void test_add_get_remove_badargs() throws Exception
+ {
+ ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).setProperty(
+ ParamFileRepository.FILE_PARAMS_REPOS_ROOT, "build/tests/");
+ ParamFileRepository fileRepo = new ParamFileRepository();
+
+ test_add_badargs(fileRepo, null, "val");
+ test_add_badargs(fileRepo, "", "val");
+ test_add_badargs(fileRepo, "", "val");
+ test_add_badargs(fileRepo, "xxx/yyy", null);
+
+ test_get_badargs(fileRepo, null);
+ test_get_badargs(fileRepo, "");
+
+ test_remove_badargs(fileRepo, null);
+ test_remove_badargs(fileRepo, "");
+ }
+
+ private void test_add_badargs(ParamFileRepository fileRepo, String name,
+ String value) throws ParamRepositoryException
+ {
+ try
+ {
+ fileRepo.add(name, value);
+ fail("expected IllegalArgumentException");
+ } catch (IllegalArgumentException e)
+ {
+ // expected
+ }
+ }
+
+ private void test_get_badargs(ParamFileRepository fileRepo, String name)
+ throws ParamRepositoryException
+ {
+ try
+ {
+ fileRepo.get(name);
+ fail("expected IllegalArgumentException");
+ } catch (IllegalArgumentException e)
+ {
+ // expected
+ }
+ }
+
+ private void test_remove_badargs(ParamFileRepository fileRepo, String name)
+ {
+ try
+ {
+ fileRepo.remove(name);
+ fail("expected IllegalArgumentException");
+ } catch (IllegalArgumentException e)
+ {
+ // expected
+ }
+ }
+
+ public void test_add_get_remove() throws Exception
+ {
+ ModulePropertyManager.getPropertyManager(ModulePropertyManager.CORE_MODULE).setProperty(
+ ParamFileRepository.FILE_PARAMS_REPOS_ROOT, "build/tests/");
+ ParamFileRepository fileRepo = new ParamFileRepository();
+ String name = "repostests/jboss/testparam";
+
+ // Make sure the parameter doesn't already exist...
+ assertEquals(null, fileRepo.get(name));
+
+ // Now the tests...
+ assertEquals(null, fileRepo.get(name));
+ fileRepo.add(name, "tomtestvalue");
+ assertEquals("tomtestvalue", fileRepo.get(name));
+ fileRepo.remove(name);
+ assertEquals(null, fileRepo.get(name));
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/parameters/TestParamRepo.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/parameters/TestParamRepo.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/parameters/TestParamRepo.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,26 @@
+package org.jboss.soa.esb.parameters;
+
+public class TestParamRepo implements ParamRepository {
+
+ public TestParamRepo() {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ public void add(String name, String value)
+ throws ParamRepositoryException {
+ // TODO Auto-generated method stub
+
+ }
+
+ public String get(String name) throws ParamRepositoryException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void remove(String name) throws ParamRepositoryException {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/BaseBusinessObjectUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/BaseBusinessObjectUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/BaseBusinessObjectUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,113 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.jboss.internal.soa.esb.util.StreamUtils;
+
+/**
+ * BaseBusinessObject unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class BaseBusinessObjectUnitTest extends TestCase {
+
+ private TestBob bob;
+
+ protected void setUp() throws Exception {
+ bob = new TestBob("blah", 1234L);
+ // Set the base properties...
+ bob.setBatchNum(1234);
+ bob.setElemNm("whoosh");
+ bob.setPackage();
+ bob.setRole("sweeper");
+ bob.setSnap(1234);
+ bob.setSnapDate("12/12/2000");
+ bob.setStamp(1234);
+ bob.setUid(1234);
+ }
+
+ public void test_BaseBusinessObject() throws Exception {
+
+ // ToDTO the bob and back again...
+ BobjStdDTO dtoBefore = bob.toDTO();
+ bob = (TestBob) BaseBusinessObject.getFromDTO(dtoBefore);
+
+ // Check the base properties...
+ assertEquals(1234, bob.getBatchNum());
+ assertEquals(null, bob.getElemNm()); // REVIEW: What happened to "whoosh"
+ assertEquals("sweeper", bob.getRole());
+ assertEquals(1234, bob.getSnap());
+ assertEquals(null, bob.getSnapDate()); // REVIEW: WHat happened to the snap date of "12/12/2000"
+ assertEquals(1234, bob.getStamp());
+ assertEquals(1234, bob.getUid());
+
+ BobjStdDTO dtoAfter = bob.toDTO();
+ assertEquals(TestBob.MY_BOB_PROP_VAL, dtoAfter.getAttr(TestBob.MY_BOB_PROP));
+ assertNotSame(dtoBefore.toXml(), dtoAfter.toXml()); // REVIEW: Would have expected these to be the same!!
+
+ // Construct using the default constructor...
+ bob = new TestBob();
+ assertEquals("TestBob", bob.getElemNm());
+ }
+
+ public void test_getDtoList() throws Exception {
+ List<BaseBusinessObject> bobList = new ArrayList<BaseBusinessObject>();
+
+ bobList.add(new TestBob());
+ bobList.add(new TestBob());
+ bobList.add(new TestBob());
+
+ BobjStdDTO dto = BaseBusinessObject.getDtoList(TestBob.class, bobList);
+ String expected = new String(StreamUtils.readStream(getClass().getResourceAsStream("BaseBusinessObjectUnitTest_testfile1.xml")));
+ assertEquals(expected, dto.toXml());
+ }
+
+ public void test_getRoleFromList() throws Exception {
+ List<BaseBusinessObject> bobList = new ArrayList<BaseBusinessObject>();
+
+ bobList.add(new TestBob());
+ bobList.add(new TestBob());
+ bobList.add(new TestBob());
+
+ bobList.get(0).setRole("role0");
+ bobList.get(1).setRole("role1");
+ bobList.get(2).setRole("role2");
+
+ assertEquals(bobList.get(0), BaseBusinessObject.getRoleFromList("role0", bobList));
+ assertEquals(bobList.get(1), BaseBusinessObject.getRoleFromList("role1", bobList));
+ assertEquals(bobList.get(2), BaseBusinessObject.getRoleFromList("role2", bobList));
+
+ assertEquals(null, BaseBusinessObject.getRoleFromList(null, bobList));
+ assertEquals(null, BaseBusinessObject.getRoleFromList("blah", null));
+ }
+
+ public void test_misc() {
+ // Noddy methods - just touching to improve the coverage figures :-)
+ bob.toString();
+ bob.locator();
+ bob.allLocators();
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/BaseBusinessObjectUnitTest_testfile1.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/BaseBusinessObjectUnitTest_testfile1.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/BaseBusinessObjectUnitTest_testfile1.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1 @@
+<TestBob List="yes"><it myBobProp="myBobProp-hello"/><it myBobProp="myBobProp-hello"/><it myBobProp="myBobProp-hello"/></TestBob>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/BobjStdDTOUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/BobjStdDTOUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/BobjStdDTOUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,152 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.util;
+
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.jboss.internal.soa.esb.util.StreamUtils;
+import org.jboss.soa.esb.StringUtils;
+import org.jboss.soa.esb.W3CDomUtils;
+import org.jboss.soa.esb.common.bizclasses.Address;
+import org.w3c.dom.Document;
+
+/**
+ * BobjStdDTO unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class BobjStdDTOUnitTest extends TestCase {
+
+ public void test_getFromXml_String() throws Exception {
+ try {
+ BobjStdDTO.getFromXml(null);
+ fail("expected IllegalArgumentException");
+ } catch(IllegalArgumentException e) {
+ // expected
+ }
+ try {
+ BobjStdDTO.getFromXml(" ");
+ fail("expected IllegalArgumentException");
+ } catch(IllegalArgumentException e) {
+ // expected
+ }
+
+ String source = new String(StreamUtils.readStream(
+ getClass().getResourceAsStream("BobjStdDTOUnitTest_testfile1.xml")));
+ BobjStdDTO rootBob = BobjStdDTO.getFromXml(source);
+
+ // Check the attributes on the root element of the serialised object representation...
+ assertEquals("Brum", rootBob.getAttr("fmlyN"));
+ assertEquals("Daniel", rootBob.getAttr("givN"));
+ assertEquals("Mr.", rootBob.getAttr("pfx"));
+ assertEquals("the 1st.", rootBob.getAttr("sfx"));
+ assertTrue(!rootBob.isEmpty());
+ assertTrue(!rootBob.isList());
+
+ // Check the nested Address - this is a "List"....
+ BobjStdDTO childBob = rootBob.getDTO("Laddr");
+ assertNotNull(childBob);
+ assertTrue(!childBob.isEmpty());
+ assertTrue(childBob.isList());
+ // Address is a list type. Calling getAttr should result in an exception...
+ try {
+ childBob.getAttr("xx");
+ fail("expected UnsupportedOperationException");
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ assertEquals("Address", childBob.m_sClassNm);
+ assertEquals(null, childBob.m_oAtts);
+
+ // Run a few more checks...
+ childBob = rootBob.getDTO("Lpho");
+ assertNotNull(childBob);
+ childBob = rootBob.getDTO("Lemail");
+ assertNotNull(childBob);
+
+ // TODO: Add tests for the locator and batch "stuff"!
+ }
+
+ public void test_toDoc() throws Exception {
+ String source = new String(StreamUtils.readStream(
+ getClass().getResourceAsStream("BobjStdDTOUnitTest_testfile1.xml")));
+ BobjStdDTO bob = BobjStdDTO.getFromXml(source);
+
+ // Call toDoc on the Bob, serialise it and compare the serialised
+ // form to the original input. They should match...
+ Document doc = bob.toDoc();
+ String serialisedVer = W3CDomUtils.serialize(doc);
+ assertTrue(StringUtils.equalsIgnoreLinebreaks(source, serialisedVer, false));
+ }
+
+ public void test_getChildObjList() throws Exception {
+ String source = new String(StreamUtils.readStream(
+ getClass().getResourceAsStream("BobjStdDTOUnitTest_testfile1.xml")));
+ BobjStdDTO dto = BobjStdDTO.getFromXml(source);
+
+
+ List<? extends BaseBusinessObject> bobList = dto.getChildObjList("Laddr", Address.class);
+
+ assertEquals(1, bobList.size());
+ assertTrue(bobList.get(0) instanceof Address);
+ Address address = (Address) bobList.get(0);
+ assertEquals("Argentina", address.getField(Address.ATTRIB.cntry));
+ assertEquals("1642", address.getField(Address.ATTRIB.postalZip));
+ assertEquals("Buenos Aires", address.getField(Address.ATTRIB.provSt));
+ assertEquals("Balcarce", address.getField(Address.ATTRIB.strLine1));
+ assertEquals(null, address.getField(Address.ATTRIB.strLine2));
+ assertEquals("50", address.getField(Address.ATTRIB.strNum));
+ assertEquals(null, address.getField(Address.ATTRIB.suite));
+ assertEquals("San Isidro", address.getField(Address.ATTRIB.twnCty1));
+ assertEquals(null, address.getField(Address.ATTRIB.twnCty2));
+ assertEquals(2, address.getPhoneCount());
+ assertEquals("(416)555-1212", address.getPhoneAt(0).toString());
+ assertEquals("+54(11)4555-1111 Ext 7", address.getPhoneAt(1).toString());
+
+ }
+
+ public void test_MiscTests() throws Exception {
+ String source = new String(StreamUtils.readStream(
+ getClass().getResourceAsStream("BobjStdDTOUnitTest_testfile1.xml")));
+ BobjStdDTO bob = BobjStdDTO.getFromXml(source);
+
+ // Calling dump simply to improve the coverage figures - this is a dev utility method
+ // so testing this isn't so important...
+ bob.Dump(0);
+
+ // Check the setter and getter methods. This is a bit anal but makes a
+ // big diff on the coverage figures for this class...
+ bob.setUid(1234);
+ assertEquals(1234, bob.getUid());
+ bob.setBatch(1234);
+ assertEquals(1234, bob.getBatch());
+ bob.setSnap(1234);
+ assertEquals(1234, bob.getSnap());
+ bob.setStamp(1234);
+ assertEquals(1234, bob.getStamp());
+ bob.setSnapDate("30/12/1990");
+ assertEquals("30/12/1990", bob.getSnapDate());
+ bob.setSnapType("blah");
+ assertEquals("blah", bob.getSnapType());
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/BobjStdDTOUnitTest_testfile1.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/BobjStdDTOUnitTest_testfile1.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/BobjStdDTOUnitTest_testfile1.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,18 @@
+<Person fmlyN="Brum" givN="Daniel" pfx="Mr." sfx="the 1st.">
+<Laddr List="yes" __Class="Address">
+<it cntry="Argentina" postalZip="1642" provSt="Buenos Aires" strLine1="Balcarce" strNum="50" twnCty1="San Isidro">
+<Lpho List="yes" __Class="Telephone">
+<it city="416" num="555-1212" rol="torIP"/>
+<it city="11" cntry="54" ext="7" num="4555-1111" rol="home"/>
+</Lpho>
+</it>
+</Laddr>
+<Lpho List="yes" __Class="Telephone">
+<it city="416" cntry="1" num="555-1212" rol="basement"/>
+<it city="416" num="666-4444" rol="cell"/>
+</Lpho>
+<Lemail List="yes" __Class="OneValue">
+<it rol="home" v="myaddr at gmail.com"/>
+<it rol="work" v="john.smith at jboss.com"/>
+</Lemail>
+</Person>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/StreamUtilsUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/StreamUtilsUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/StreamUtilsUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.util;
+
+import java.io.ByteArrayInputStream;
+
+import junit.framework.TestCase;
+
+import org.jboss.internal.soa.esb.util.StreamUtils;
+
+/**
+ * StreamUtils unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class StreamUtilsUnitTest extends TestCase {
+
+ public void test_readStream_badargs() {
+ try {
+ StreamUtils.readStream(null);
+ fail("expected IllegalArgumentException");
+ } catch(IllegalArgumentException e) {
+ // expected
+ }
+ }
+
+ public void test_readStream() {
+ StringBuffer testBuf = new StringBuffer(500);
+ @SuppressWarnings("unused")
+ byte[] resStream;
+
+ while(testBuf.length() < 500) {
+ testBuf.append("12121212121212121212121212121212121212121212121212");
+ }
+
+ String testString = testBuf.toString();
+ String resString = new String(StreamUtils.readStream(new ByteArrayInputStream(testString.getBytes())));
+
+ assertEquals(testString, resString);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/TestBob.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/TestBob.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/TestBob.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,51 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.util;
+
+import junit.framework.TestCase;
+
+class TestBob extends BaseBusinessObject {
+
+ public static final String MY_BOB_PROP = "myBobProp";
+ public static final String MY_BOB_PROP_VAL = "myBobProp-hello";
+
+ public TestBob() {
+ super();
+ }
+
+ public TestBob(String elementName, long uid) {
+ super(elementName, uid);
+ }
+
+ public TestBob(BobjStdDTO dto) throws Exception {
+ super(dto);
+ TestCase.assertEquals(MY_BOB_PROP_VAL, dto.getAttr(MY_BOB_PROP));
+ }
+
+ public BobjStdDTO toDTO() throws Exception {
+ BobjStdDTO dto = super.toDTO();
+
+ dto.addAttr(MY_BOB_PROP, MY_BOB_PROP_VAL);
+
+ return dto;
+ }
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/UtilUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/UtilUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/rosetta/tests/src/org/jboss/soa/esb/util/UtilUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,113 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.Properties;
+
+import junit.framework.TestCase;
+
+/**
+ * Util unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class UtilUnitTest extends TestCase {
+
+ public void testDumpSysProps() throws IOException
+ {
+ ByteArrayOutputStream buf = new ByteArrayOutputStream();
+
+ Util.dumpSysProps(new PrintStream(buf));
+
+ Properties props = new Properties();
+ String env = buf.toString();
+ //escape backslashes to fix running under cygwin
+ env = env.replaceAll("\\\\", "\\\\\\\\");
+ props.load(new ByteArrayInputStream(env.getBytes()));
+
+ // Just make sure that something was dumped to the printstream
+ // by checking for a property we know will be in the System...
+ assertTrue(props.containsKey("file.separator"));
+ }
+
+ public void testIsNullString() {
+ assertTrue(Util.isNullString(null));
+ assertTrue(Util.isNullString(""));
+ assertTrue(Util.isNullString(" "));
+ assertTrue(!Util.isNullString("a"));
+ }
+
+ public void testIsLong() {
+ assertTrue(!Util.isLong(null));
+ assertTrue(!Util.isLong(""));
+ assertTrue(!Util.isLong(" "));
+ assertTrue(!Util.isLong("a"));
+ assertTrue(!Util.isLong(" 1"));
+ assertTrue(!Util.isLong("1 "));
+ assertTrue(!Util.isLong("1.1"));
+ assertTrue(Util.isLong("1"));
+ assertTrue(Util.isLong("-1"));
+ }
+
+ public void testIsPositiveLong() {
+ assertTrue(!Util.isPositiveLong(null));
+ assertTrue(!Util.isPositiveLong(""));
+ assertTrue(!Util.isPositiveLong(" "));
+ assertTrue(!Util.isPositiveLong("a"));
+ assertTrue(!Util.isPositiveLong(" 1"));
+ assertTrue(!Util.isPositiveLong("1 "));
+ assertTrue(!Util.isPositiveLong("1.1"));
+ assertTrue(Util.isPositiveLong("1"));
+ assertTrue(!Util.isPositiveLong("0"));
+ assertTrue(!Util.isPositiveLong("-1"));
+ }
+
+ public void testParseInt() {
+ assertEquals(0, Util.parseInt("a"));
+ assertEquals(0, Util.parseInt(""));
+ assertEquals(0, Util.parseInt(" "));
+ assertEquals(0, Util.parseInt(" 1"));
+ assertEquals(0, Util.parseInt("1 "));
+ assertEquals(0, Util.parseInt("0"));
+ assertEquals(1, Util.parseInt("1"));
+ assertEquals(-1, Util.parseInt("-1"));
+ }
+
+ public void testParseLong() {
+ assertEquals(0L, Util.parseLong("a"));
+ assertEquals(0L, Util.parseLong(""));
+ assertEquals(0L, Util.parseLong(" "));
+ assertEquals(0L, Util.parseLong(" 1"));
+ assertEquals(0L, Util.parseLong("1 "));
+ assertEquals(0L, Util.parseLong("0"));
+ assertEquals(1L, Util.parseLong("1"));
+ assertEquals(-1L, Util.parseLong("-1"));
+ }
+
+ public void testGetDefaultLogger() {
+ // Cheating here - just getting the coverage results up a little more :-)
+ Util.getDefaultLogger(Util.class);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/services/ant.bat
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/ant.bat 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/ant.bat 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,12 @@
+ at echo off
+set ANT_CMD_LINE_ARGS=%1
+if ""%1""=="""" goto doneStart
+shift
+:setupArgs
+if ""%1""=="""" goto doneStart
+set ANT_CMD_LINE_ARGS=%ANT_CMD_LINE_ARGS% %1
+shift
+goto setupArgs
+:doneStart
+%ANT_HOME%\bin\ant %ANT_CMD_LINE_ARGS%
+
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/ant.bat
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/build.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/build.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/build.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<project name="JbossEsbServices" default="org.jboss.esb.services.compile" basedir=".">
+
+ <property name="org.jboss.esb.internal.dest" value="${basedir}/../../build"/>
+
+ <property name="org.jboss.esb.services.name.jar" value="${ant.project.name}.jar"/>
+ <property name="org.jboss.esb.services.dist.dir" value="${org.jboss.esb.internal.dest}/dist"/>
+ <property name="org.jboss.esb.services.appl.dir" value="../.."/>
+ <property name="org.jboss.esb.services.metainf.dir" value="src/META-INF"/>
+
+ <property name="org.jboss.esb.services.classes.dir" value="${org.jboss.esb.internal.dest}/classes/services"/>
+ <property name="org.jboss.esb.services.src.dir" value="${basedir}/src"/>
+ <property name="org.jboss.esb.root.dir" value="../.."/>
+ <property environment="env"/>
+
+ <property name="org.jboss.esb.ext.serverlib.dir" value="${org.jboss.esb.root.dir}/lib/ext"/>
+ <condition property="org.jboss.esb.ext.serverlib.dir" value="{org.jboss.esb.jboss.home}/server/all/lib">
+ <equals arg1="${org.jboss.esb.frominstall}" arg2="yes"/>
+ </condition>
+
+ <property name="org.jboss.esb.ext.lib.dir" value="${org.jboss.esb.root.dir}/lib/ext"/>
+ <property name="org.jboss.esb.ejb3.lib.dir" value="${org.jboss.esb.root.dir}/lib/ext/ejb3"/>
+ <condition property="org.jboss.esb.ext.lib.dir" value="${org.jboss.esb.jboss.home}/lib">
+ <equals arg1="${org.jboss.esb.frominstall}" arg2="yes"/>
+ </condition>
+
+ <!-- =================================================================== -->
+ <!-- Define the class path -->
+ <!-- =================================================================== -->
+ <path id="org.jboss.esb.services.base.classpath">
+ <fileset dir="${org.jboss.esb.ext.lib.dir}" includes="*.jar" excludes="jbossall-client.jar"/>
+ <fileset dir="${org.jboss.esb.ejb3.lib.dir}" includes="*.jar,*.zip"/>
+ </path>
+
+ <!-- =================================================================== -->
+ <!-- Initialize -->
+ <!-- =================================================================== -->
+ <target name="org.jboss.esb.services.init">
+ <tstamp>
+ <format property="TODAY" pattern="dd-MM-yy"/>
+ </tstamp>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Prepares the directory structure -->
+ <!-- =================================================================== -->
+ <target name="org.jboss.esb.services.prepare" depends="org.jboss.esb.services.init">
+ <mkdir dir="${org.jboss.esb.services.classes.dir}"/>
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Compiles all the classes -->
+ <!-- =================================================================== -->
+
+
+ <target name="org.jboss.esb.services.compile">
+ <!-- Compile services -->
+ <antcall target="org.jboss.esb.services.internal.compile"/>
+ <!-- Compile services tests -->
+ <ant inheritAll="true" dir="tests" target="org.jboss.esb.services.tests.compile"/>
+ </target>
+
+
+ <target name="org.jboss.esb.services.internal.compile" depends="org.jboss.esb.services.prepare"
+ description="Compile all classes">
+
+ <javac
+ destdir="${org.jboss.esb.services.classes.dir}"
+ classpathref="org.jboss.esb.services.default.classpath"
+ debug="${org.jboss.esb.debug}"
+ optimize="${org.jboss.esb.optimize}"
+ >
+ <src path="${org.jboss.esb.services.src.dir}"/>
+ </javac>
+
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Recompiles all the classes -->
+ <!-- =================================================================== -->
+
+ <target name="recompile" depends="clean,org.jboss.esb.services.compile"
+ description="Clean and compile"/>
+
+ <!-- =================================================================== -->
+ <!-- Clean -->
+ <!-- =================================================================== -->
+ <target name="clean" description="Remove classes directory">
+ <delete dir="${org.jboss.esb.services.classes.dir}"/>
+ </target>
+
+ <target name="purge" depends="clean">
+ </target>
+
+ <!-- =================================================================== -->
+ <!-- Rebuild everything from scratch -->
+ <!-- =================================================================== -->
+ <target name="all" depends="recompile,jar" />
+
+ <path id="org.jboss.esb.services.default.classpath">
+ <path refid="org.jboss.esb.services.base.classpath"/>
+ <pathelement location="${org.jboss.esb.internal.dest}/classes/rosetta"/>
+ <pathelement location="${org.jboss.esb.internal.dest}/classes/listeners"/>
+ </path>
+
+
+ <!-- =================================================================== -->
+ <!-- Jar -->
+ <!-- =================================================================== -->
+ <target name="jar" description="Assemble jar files"
+ depends="org.jboss.esb.services.compile"
+ >
+ <jar destfile="${org.jboss.esb.services.dist.dir}/lib/jbossesb-services.jar"
+ basedir="${org.jboss.esb.services.classes.dir}"
+ includes="**/*.class"
+ />
+
+ <antcall target="-ear"/>
+ </target>
+
+ <target name="-ear">
+ <ear destfile="${org.jboss.esb.services.dist.dir}/lib/jbossesb-appl.ear"
+ appxml="${org.jboss.esb.services.metainf.dir}/application.xml">
+ <fileset dir="${org.jboss.esb.services.dist.dir}"
+ includes="jbossesb-rosetta.jar
+ ,CQ3ServicesClient.jar
+ ,CQ3Services.jar
+ "/>
+ </ear>
+
+ </target>
+
+
+ <!-- =================================================================== -->
+ <!-- Test -->
+ <!-- =================================================================== -->
+ <target name="org.jboss.esb.services.test" description="Run tests for this module">
+ <!-- Compile tests -->
+ <ant dir="tests" target="org.jboss.esb.services.internal.test"/>
+ </target>
+
+</project>
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/build.xml
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/META-INF/application.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/META-INF/application.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/META-INF/application.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<application version="1.4"
+ xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+ http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
+ <display-name>JbossEsb AppServer basic services</display-name>
+ <module>
+ <ejb>jbossesb-services.jar</ejb>
+ </module>
+ <module>
+ <java>jbossesb-listeners.jar</java>
+ </module>
+ <module>
+ <java>jbossesb-rosetta.jar</java>
+ </module>
+ <module>
+ <java>jbossts-common.jar</java>
+ </module>
+</application>
\ No newline at end of file
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/META-INF/application.xml
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/META-INF/manifest.server
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/META-INF/manifest.server 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/META-INF/manifest.server 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path: jbossesb-rosetta.jar jbossesb-services-client.jar
+
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/META-INF/manifest.server
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/BobjStore.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/BobjStore.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/BobjStore.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,351 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.internal.core.objectstore;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.services.beans.PersistHandler;
+import org.jboss.soa.esb.util.BaseBusinessObject;
+import org.jboss.soa.esb.util.BobjStdDTO;
+import org.jboss.soa.esb.util.Util;
+import org.xml.sax.SAXException;
+
+public class BobjStore {
+ protected static final String DATA_SOURCE_JNDI_NAME = "dataSourceJndiName";
+ protected static final String BATCH_TABLE = "batchTable";
+ protected static final String UID_TABLE = "uidTable";
+
+ protected static final String CLASS_TYPE_ATTR = "type";
+ protected static final String CLASS_TABLE_ATTR = "table";
+ protected static final String CLASS_ENCRYPT_ATTR = "encrypt";
+ protected static final String CLASS_NAME_ATTR = "name";
+ protected static final String CLASS_ELEMENT = "Class";
+
+ protected static final String INDEX_ELEMENT = "Index";
+ protected static final String INDEX_TABLE_ATTR = "table";
+
+ private static String DATASRC_JNDI_NAME;
+
+ public static void setDataSourceJndi(String p_s) {
+ DATASRC_JNDI_NAME = p_s;
+ }
+
+ public static String getDataSourceJndi() {
+ return DATASRC_JNDI_NAME;
+ }
+
+ private static String TBL_UIDS;
+
+ public static void setUidTableName(String p_s) {
+ TBL_UIDS = p_s;
+ }
+
+ public static String getUidTableName() {
+ return TBL_UIDS;
+ }
+
+ protected static void setStoreConfig(ConfigTree storeConfig) {
+ BobjStore.storeConfig = storeConfig;
+ }
+
+
+ private static String TBL_BATCHES;
+
+ private static ConfigTree storeConfig;
+
+ public static void setBatchTableName(String p_s) {
+ TBL_BATCHES = p_s;
+ }
+
+ public static String getBatchTableName() {
+ return TBL_BATCHES;
+ }
+
+ private static final Map<String, BobjStore> s_oStoreMap = new HashMap<String, BobjStore>();
+
+ static {
+ try {
+ configureStore();
+ } catch (Exception e) {
+ // REVIEW: Can we just carry on regardless here???
+ Util.getDefaultLogger(BobjStore.class).error(
+ "BobjStore configuration FAILED", e);
+ }
+ }
+
+ /**
+ * Configure/Reconfigure the BobjStore.
+ * <p/>
+ * The configuration is set either through a prior call to {@link #setStoreConfig(ConfigTree)}, or
+ * through a URI resource lookup configured by the "org.jboss.soa.esb.objStore.configfile" System property.
+ * @throws SAXException
+ * @throws IOException
+ * @throws MalformedURLException
+ */
+ protected static void configureStore() throws MalformedURLException, IOException, SAXException {
+ // storeConfig can be set for testing purposes - if already set, don't try reading from the configured URI.
+ if(storeConfig == null) {
+ storeConfig = readConfiguration();
+ }
+
+ if(storeConfig != null) {
+ setDataSourceJndi(storeConfig.getAttribute(DATA_SOURCE_JNDI_NAME));
+ setUidTableName(storeConfig.getAttribute(UID_TABLE));
+ setBatchTableName(storeConfig.getAttribute(BATCH_TABLE));
+
+ for (ConfigTree oCurr : storeConfig.getChildren(CLASS_ELEMENT)) {
+ String sClass = oCurr.getAttribute(CLASS_NAME_ATTR);
+ boolean bCrypt = "true".equalsIgnoreCase(oCurr
+ .getAttribute(CLASS_ENCRYPT_ATTR));
+
+ BobjStore oNew = new BobjStore(oCurr.getAttribute(CLASS_TYPE_ATTR),
+ oCurr.getAttribute(CLASS_TABLE_ATTR), null,
+ sClass.substring(1 + sClass.lastIndexOf(".")), bCrypt);
+
+ for (ConfigTree oIcurr : oCurr.getChildren(INDEX_ELEMENT)) {
+ oNew.addLocatorTable(oIcurr.getAttribute(INDEX_TABLE_ATTR));
+ }
+ s_oStoreMap.put(sClass, oNew);
+ }
+ }
+ }
+
+ /**
+ * Read the configuration.
+ * <p/>
+ * Tries reading it from the classpath. If that fails, tries reading it through a URI stream.
+ */
+ protected static ConfigTree readConfiguration() throws IOException, MalformedURLException, SAXException {
+ String configPath = Configuration.getObjStoreConfigFile();
+ URI configURI;
+ InputStream configStream = null;
+
+ if(configPath == null) {
+ throw new IllegalStateException("ObjStoreConfigFile location not configured (param name: " + Environment.OBJECT_STORE_CONFIG_FILE + ").");
+ }
+
+ configURI = URI.create(configPath);
+ if(!configURI.isAbsolute() || configURI.getPath() == null) {
+ throw new IllegalStateException("ObjStoreConfigFile location configuration error (" + Environment.OBJECT_STORE_CONFIG_FILE + "=" + configPath + "). Must be an absolute URI e.g. http://, file:/, classpath:/ etc.");
+ }
+
+ // Is it on the classpath...
+ if(configURI.getScheme().equals("classpath")) {
+ configStream = BobjStore.class.getResourceAsStream(configURI.getPath());
+ } else {
+ // OK, so can we load it through the URI stream...
+ try {
+ configStream = configURI.toURL().openStream();
+ } catch(IOException e) {
+ throw new IllegalStateException("Unable to locate and read ObjStoreConfigFile: " + configPath, e);
+ }
+ }
+
+ if(configStream == null) {
+ throw new IllegalStateException("Unable to locate and read ObjStoreConfigFile: " + configPath);
+ }
+
+ return ConfigTree.fromInputStream(configStream);
+ }
+
+ private String m_sSnapType, m_sSnapTbl, m_sClass;
+
+ private List<String> m_olLocators;
+
+ private boolean m_bEncrypt = false;
+
+ /**
+ * Snapshot type getter - The value assigned to this attribute will help if
+ * standard SQL queries are required to surf the Object Store's snapshot
+ * tables
+ *
+ * @return String - Value of snapshot type
+ * @see Istorable#getSnapType()
+ */
+ public String getSnapType() {
+ return m_sSnapType;
+ }
+
+ /**
+ * Snapshot tablename getter - The value assigned to this attribute is the
+ * name of the snapshot table for this object
+ *
+ * @return String - name of SQL table where snapshots of objects will be
+ * stored
+ * @see Istorable#getSnapTable()
+ */
+ public String getSnapTable() {
+ return m_sSnapTbl;
+ }
+
+ /**
+ * First locator tablename getter - Locator tables are also called index
+ * tables.
+ *
+ * @return String - name of SQL table where locators(0) will be stored
+ * @see Istorable#getLocatorTable()
+ * @see BusinessObject#getObjLocator()
+ */
+ public String getLocatorTable() {
+ return getLocatorTable(0);
+ }
+
+ /**
+ * Obtain Nth locator table
+ *
+ * @param p_n -
+ * Index for desired locator table
+ * @return String - name of Nth SQL table where for objects will be stored
+ * @see BaseBusinessObject#locator(p_i)
+ */
+ public String getLocatorTable(int p_n) {
+ return (null == m_olLocators) ? null
+ : (m_olLocators.size() <= p_n) ? null : m_olLocators.get(p_n);
+ }
+
+ /**
+ * Obtain all locator table names
+ *
+ * @return Names of all locator tables
+ */
+ public String[] allLocatorTables() {
+ return (null == m_olLocators) ? new String[] {} : m_olLocators
+ .toArray(new String[m_olLocators.size()]);
+ }
+
+ /**
+ * Class suffix getter - Deprecated - Left here for backwards compatibility
+ *
+ * @return String - Class suffix
+ * @see Istorable#getLocatorTable()
+ * @see BusinessObject#getObjLocator()
+ */
+ public String getClassSuffix() {
+ return m_sClass;
+ }
+
+ /**
+ * Encryption requirement getter
+ *
+ * @return boolean - true if Objects stored using this descriptor have to be
+ * encrypted - decrypted at storage/retrieval time
+ */
+ public boolean isEncrypted() {
+ return m_bEncrypt;
+ }
+
+ /**
+ * Constructor using all fields required by a BobjStore object
+ *
+ * @param p_sSnapType
+ * String - Snapshot type
+ * @param p_sSnapTbl
+ * String - Snapshot SQL tablename
+ * @param p_sLocTbl
+ * String - Locator SQL tablename (may be null - No locator
+ * table)
+ * @param p_sCls
+ * String - Class name excluding package prefix
+ * @param p_bCrypt
+ * boolean - Does data have to be encrypted in the snap table ?
+ * @see Istorable
+ * @see BusinessObject#classNm()
+ */
+ protected BobjStore(String p_sSnapType, String p_sSnapTbl,
+ String p_sLocTbl, String p_sCls, boolean p_bCrypt) {
+ m_sSnapType = p_sSnapType;
+ m_sSnapTbl = p_sSnapTbl;
+ addLocatorTable(p_sLocTbl);
+ m_sClass = p_sCls;
+ m_bEncrypt = p_bCrypt;
+ } // ________________________________
+
+ private void addLocatorTable(String p_s) {
+ if (Util.isNullString(p_s))
+ return;
+ if (null == m_olLocators)
+ m_olLocators = new ArrayList<String>();
+ m_olLocators.add(p_s);
+ } // ________________________________
+
+ /**
+ * Constructor for non encrypted BobjStore
+ *
+ * @param p_sSnapType
+ * String
+ * @param p_sSnapTbl
+ * String
+ * @param p_sLocTbl
+ * String
+ * @param p_sCls
+ * String
+ * @see BobjStore#BobjStore(String,String,String,String,boolean)
+ */
+ protected BobjStore(String p_sSnapType, String p_sSnapTbl,
+ String p_sLocTbl, String p_sCls) {
+ this(p_sSnapType, p_sSnapTbl, p_sLocTbl, p_sCls, false);
+ } // ________________________________
+
+ /**
+ * Get a BobjStore object that describes persistence details for objects of
+ * class <arg 1>
+ *
+ * @param p_sClassName
+ * Class to search for in descriptor table
+ * @return BobjStore - A descriptor that will provide persistence info
+ * @see PersistHandler
+ * @see BobjStore#getStore(BusinessObject)
+ */
+ public static BobjStore getStore(String p_sClassName) {
+ if (Util.isNullString(p_sClassName))
+ return null;
+ return s_oStoreMap.get(p_sClassName);
+ } // __________________________________
+
+ /**
+ * Get a BobjStore object that describes persistence details for BobjStdDTO
+ * <arg 1>
+ *
+ * @param p_sClassName
+ * BobjStdDTO for which we need an object store
+ * @return BobjStore - A descriptor that will provide persistence info
+ * @see PersistHandler
+ * @see BobjStore#getStore(String)
+ */
+ public static BobjStore getStore(BobjStdDTO p_oDto) {
+ if (null == p_oDto)
+ return null;
+ return getStore(p_oDto.fullClassName());
+ } // __________________________________
+
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/BobjStore.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoBatchTable.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoBatchTable.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoBatchTable.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,223 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.internal.core.objectstore;
+
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.helpers.persist.JdbcCleanConn;
+import org.jboss.soa.esb.helpers.persist.SqlDbTable;
+import org.jboss.soa.esb.util.BobjStdDTO;
+import org.jboss.soa.esb.util.Util;
+
+/**
+ * Data access object for the SQL table where batches are temporarily stored
+ * until they are committed
+ *
+ */
+public class DaoBatchTable extends SqlDbTable
+{
+ private Logger m_oLog;
+ private JdbcCleanConn m_oConn;
+
+ private DaoBatchTable() throws Exception {this(null,null); }
+ /**
+ * Instantiate a DaoBatchTable object using the javax.sql.DataSource object
+ * within <arg 1>, with table name held in <arg 2>
+ * @param p_oConn JdbcCleanConn - Connection to use for preparing and executing
+ * all SQL statements in this DAO
+ * @param p_sTblName String - SQL table name to use in the context of this
+ * DaoBatchTable object
+ * @throws Exception - pass through from invoked methods - see Exception.getMessage()
+ * at runtime for details
+ * @see JdbcCleanConn
+ */
+ public DaoBatchTable(JdbcCleanConn p_oConn,String p_sTblName) throws Exception
+ { super(p_oConn,p_sTblName);
+ m_oLog = Util.getDefaultLogger(this.getClass());
+ m_oConn = p_oConn;
+ m_oaPS = new PreparedStatement[PS_MAX];
+ } //________________________________
+ /**
+ * List of fields for select statement - provided only to avoid time
+ * consuming 'select *' statements
+ * @return String - a Comma separated list of fields
+ */
+ protected String getSelectFields()
+ { return "batch_num,seq,data";
+ } //________________________________
+
+ // -------------------------------------------------------------
+ // Column constants
+ // -------------------------------------------------------------
+ private static int s_iFld = 0;
+ /**
+ * Column index for field representing batch number
+ */
+ public static final int BATCH_NUM = s_iFld++;
+ /**
+ * Column index for field representing sequence number within batch number
+ */
+ public static final int BATCH_SEQ = s_iFld++;
+ /**
+ * XML string that will be used to instantiate the BusinessObject
+ * @see BusinessObject#BusinessObject(BobjStdDTO)
+ * @see BobjStdDTO#getFromXml(String)
+ */
+ public static final int STR_DATA = s_iFld++;
+
+ private static final int QFIELDS = s_iFld;
+
+ /**
+ * Set values for insert statement
+ * @param p_PS PreparedStatement - The prepared SQL statement for insert in this
+ * table
+ * <p>Must be the result of a previous call to this.getPS(PS_INS_BATCHROW)</p>
+ * @param p_o Object - Object to get values from
+ * <p>arg 2 is Object to comply with SqlDbTable abstract method setInsValues()
+ * <li>For this particular class, arg 2 MUST be an instance of RowBatch</li>
+ * </p>
+ * @throws Exception
+ * @return int
+ * @see DaoBatchTable#getPS(int)
+ * @see RowBatch
+ */
+ public int setInsValues(PreparedStatement p_PS,Object p_o)
+ throws Exception
+ { try
+ { if (! (p_o instanceof RowBatch)) throw
+ new Exception ("Parameter must be RowBatch");
+
+ p_PS.clearParameters();
+ RowBatch oBR = (RowBatch)p_o;
+ setLong (p_PS, BATCH_NUM ,oBR.m_lBatch); // Batch Number
+ setInt (p_PS, BATCH_SEQ ,oBR.m_iSeq); // Batch Sequence
+ setObject (p_PS ,STR_DATA ,oBR.m_sData); // Batch Data
+
+ return QFIELDS;
+ }
+ catch (Exception e)
+ { m_oLog.error("setInsValues() Failed",e);
+ throw e;
+ }
+ } //________________________________
+ /**
+ * Returns a RowBatch object containing data from the row in the current
+ * cursor position of the ResultSet object <arg 1>
+ * @param p_oRS ResultSet - The current ResultSet
+ * <p>Must be the result of a previous execution of
+ * JdbcCleanConn.execQueryWait() method on a 'select' prepared statement for
+ * this object</p>
+ * @throws Exception
+ * @return Object - A RowBatch object
+ * @see JdbcCleanConn#execQueryWait(PreparedStatement, int)
+ * @see DaoBatchTable#getPS(int)
+ * @see DaoBatchTable#PS_GET_BATCH_ROWS
+ * @see RowBatch
+ */
+ public Object getFromRS (ResultSet p_oRS) throws Exception
+ { try
+ { RowBatch oRet = new RowBatch();
+ oRet.m_lBatch = p_oRS.getLong(1+BATCH_NUM);
+ oRet.m_iSeq = p_oRS.getInt (1+BATCH_SEQ);
+ oRet.m_sData = p_oRS.getString(1+STR_DATA);
+ return oRet;
+ }
+ catch (Exception e)
+ { m_oLog.error("getFromRS() Failed",e);
+ throw e;
+ }
+ } //________________________________
+ /**
+ * Index of the 'insert' statement in the list of PreparedStatement objects
+ * for this DAO
+ */
+ public static final int PS_INS_BATCHROW = 0;
+ /**
+ * Index of the 'delete' statement in the list of PreparedStatement objects
+ * for this DAO
+ */
+ public static final int PS_DELETE_BATCH = 1;
+ /**
+ * Index of the 'select' statement in the list of PreparedStatement objects
+ * for this DAO (it has a where batch_num = ?)
+ */
+ public static final int PS_GET_BATCH_ROWS = 2;
+
+ private static final int PS_MAX = 10;
+
+ /**
+ * Obtain a prepared statement for this DAO from the list of available PStmts
+ * <p>Uses lazy instantiation of requested objects</p>
+ * @param p_i int - Index of PreparedStatement object to obtain
+ * @throws Exception - If an invalid index is passed or there are problems
+ * during the prepareStatement() invocation
+ * @return PreparedStatement
+ */
+ public PreparedStatement getPS (int p_i) throws Exception
+ { try
+ { switch (p_i)
+ { case PS_INS_BATCHROW: return getInsBatchRow (p_i);
+ case PS_DELETE_BATCH: return deleteBatch (p_i);
+ case PS_GET_BATCH_ROWS: return getBatchRows (p_i);
+ }
+ ;
+ throw new Exception("Invalid Index "+p_i);
+ }
+ catch (Exception e)
+ { m_oLog.error("Request for Prepared Statement Failed",e);
+ throw e;
+ }
+ } //__________________________________
+
+ private PreparedStatement getInsBatchRow(int p_i) throws Exception
+ { if (null == m_oaPS[p_i])
+ m_oaPS[p_i] = m_oConn.prepareStatement(getInsertStatement());
+ return m_oaPS[p_i];
+ } //__________________________________
+
+ private PreparedStatement deleteBatch(int p_i) throws Exception
+ { if (null == m_oaPS[p_i])
+ { StringBuffer sb = new StringBuffer("delete from ").append(m_sTableName)
+ .append(" where ")
+ .append(m_oaFields[BATCH_NUM].getFieldName()).append(" = ?")
+ ;
+ m_oaPS[p_i] = m_oConn.prepareStatement(sb.toString());
+ }
+ return m_oaPS[p_i];
+ } //__________________________________
+
+ private PreparedStatement getBatchRows(int p_i) throws Exception
+ { if (null == m_oaPS[p_i])
+ { StringBuffer sb = new StringBuffer(getSelectStatement())
+ .append(" where ")
+ .append(m_oaFields[BATCH_NUM].getFieldName()).append(" = ?")
+ .append(" order by 1,2")
+ ;
+ m_oaPS[p_i] = m_oConn.prepareStatement(sb.toString());
+ }
+ return m_oaPS[p_i];
+ } //__________________________________
+
+} //____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoBatchTable.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoIndexTable.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoIndexTable.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoIndexTable.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,317 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.internal.core.objectstore;
+
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.helpers.persist.JdbcCleanConn;
+import org.jboss.soa.esb.helpers.persist.SqlDbTable;
+import org.jboss.soa.esb.util.BobjStdDTO;
+import org.jboss.soa.esb.util.ObjLocator;
+import org.jboss.soa.esb.util.Util;
+
+/**
+ * Data access object for all SQL tables that the ROS (Rosetta Object Store)
+ * uses as locator tables
+ * <p>Number of actual columns in all of these tables equals 4 + the
+ * length of the String[] returned by the BusinessObject locator() method</p>
+ * <p>It is responsibility of rosetta core developers to ensure
+ * synchronization between these two, as well as to add a corresponding
+ * entry in the BobjStore static descriptor table</p>
+ *
+ * @see BobjStore
+ * @see BusinessObject#locator()
+ */
+public class DaoIndexTable extends SqlDbTable
+{
+
+ public static final String LOCATOR_TABLE_INDEX = "__whichLocator";
+
+ private Logger m_oLog;
+ private JdbcCleanConn m_oConn;
+
+ private DaoIndexTable() throws Exception {this(null,null); }
+ /**
+ * Instantiate a DaoIndexTable object using the javax.sql.DataSource object
+ * within <arg 1>, with table name held in <arg 2>
+ * @param p_oConn JdbcCleanConn - Connection to use for preparing and executing
+ * all SQL statements in this DAO
+ * @param p_sTblName String - SQL table name to use in the context of this
+ * DaoIndexTable object
+ * @throws Exception - pass through from invoked methods - see Exception.getMessage()
+ * at runtime for details
+ * @see JdbcCleanConn
+ */
+ public DaoIndexTable(JdbcCleanConn p_oConn,String p_sTbl) throws Exception
+ { super(p_oConn,p_sTbl);
+ m_oLog = Util.getDefaultLogger(this.getClass());
+ m_oConn = p_oConn;
+ if (null != m_oaFields)
+ { m_oaFields[OBJECT_UID].setPrimaryKey(true);
+ m_sSelectSql = null;
+ }
+ m_oaPS = new PreparedStatement[PS_MAX];
+ } //________________________________
+
+ /**
+ * List of fields for select statement - provided only to avoid time
+ * consuming 'select *' statements
+ * @return String - a Comma separated list of fields
+ */
+ protected String getSelectFields()
+ { if (null==m_oaFields) return "*";
+ StringBuffer sb = new StringBuffer(256);
+ for (int i1=0; i1<m_oaFields.length;i1++)
+ ((i1 < 1)?sb:sb.append(","))
+ .append(m_oaFields[i1].getFieldName());
+ return sb.toString();
+ } //________________________________
+
+ // -------------------------------------------------------------
+ // Column constants
+ // -------------------------------------------------------------
+ private static int s_iFld = 0;
+ /**
+ * Column index for the BusinessObject UID represented in the corresponding
+ * SQL table row
+ */
+ public static final int OBJECT_UID = s_iFld++;
+ /**
+ * Column index for the latest Object snapshot taken for the BusinessObject
+ */
+ public static final int TIMESTAMP = s_iFld++;
+ /**
+ * Column index for the latest snapshot's UID for the BusinessObject the row
+ * represents
+ */
+ public static final int UID_SNAP = s_iFld++;
+ /**
+ * Column index for the latest Object snapshot's date (yyyymmdd)
+ */
+ public static final int SNAP_DATE = s_iFld++;
+ /**
+ * Column index for the first field in the String array returned by the
+ * BusinessObject's locator() method - Subsequent fields in the array will
+ * have consecutive sequential indices
+ * @see BusinessObject#locator()
+ */
+ public static final int FIRST_FIELD = s_iFld++;
+
+ public int setInsValues(PreparedStatement p_PS,Object p_o)
+ throws Exception
+ { return setInsValues (p_PS,p_o,0); }
+ /**
+ * Set values for insert statement
+ * @param p_PS PreparedStatement - The prepared SQL statement for insert in this
+ * table
+ * <p>Must be the result of a previous call to this.getPS(PS_INS_INDEX)</p>
+ * @param p_o Object - Object to get values from
+ * <p>arg 2 is Object to comply with SqlDbTable abstract method setInsValues()
+ * <li>For this particular class, arg 2 MUST be an instance of BobjStdDTO</li>
+ * </p>
+ * @param p_iNum int - Index of which locator String[] should be used
+ * @throws Exception
+ * @return int
+ * @see DaoIndexTable#getPS(int)
+ * @see DaoIndexTable#PS_INS_INDEX
+ */
+ public int setInsValues(PreparedStatement p_PS,Object p_o, int p_iNum)
+ throws Exception
+ { try
+ { if (! (p_o instanceof BobjStdDTO)) throw
+ new Exception ("Parameter must be BobjStdDTO");
+
+ BobjStdDTO oDto = (BobjStdDTO)p_o;
+
+ p_PS.clearParameters();
+ setLong (p_PS, OBJECT_UID ,oDto.getUid()); // Object's UID
+ long lStamp = oDto.getStamp();
+ setLong (p_PS, TIMESTAMP ,lStamp); // Timestamp
+ setLong (p_PS, UID_SNAP ,oDto.getSnap()); // Snap UID
+ setObject(p_PS, SNAP_DATE ,oDto.getSnapDate()); // Snap Date
+
+ int iFld = FIRST_FIELD;
+ String[] sa = oDto.getLocators()[p_iNum];
+ for (int i1=0; i1<sa.length;i1++)
+ if (iFld < m_oaFields.length) setObject(p_PS,iFld++,sa[i1]);
+
+ return iFld;
+ }
+ catch (Exception e)
+ { m_oLog.error("setInsValues() Failed",e);
+ throw e;
+ }
+ } //________________________________
+
+ public void setUpdValues(PreparedStatement p_PS,Object p_o)
+ throws Exception
+ { setUpdValues(p_PS,p_o,0); }
+
+ /**
+ * Set values for update statement
+ * @param p_PS PreparedStatement - The prepared SQL statement for update in this
+ * table
+ * <p>Must be the result of a previous call to this.getPS(PS_UPD_INDEX)</p>
+ * @param p_o Object - Object to get values from
+ * <li>For this particular class, arg 2 MUST be an instance of BaseBusinessObject</li>
+ * </p>
+ * @param p_iNum int - Index of which locator String[] should be used
+ * @throws Exception
+ * @see DaoIndexTable#getPS(int)
+ * @see DaoIndexTable#PS_UPD_INDEX
+ */
+ public void setUpdValues(PreparedStatement p_PS,Object p_o, int p_iNum)
+ throws Exception
+ { try
+ { if (! (p_o instanceof BobjStdDTO)) throw
+ new Exception ("Parameter must be BobjStdDTO");
+
+ BobjStdDTO oDto = (BobjStdDTO)p_o;
+
+ int iFld = 0;
+ p_PS.clearParameters();
+ setLong (p_PS, iFld++ ,oDto.getStamp()); // Timestamp
+ setLong (p_PS, iFld++ ,oDto.getSnap()); // Snap UID
+ setObject(p_PS, iFld++ ,oDto.getSnapDate());
+
+ String[] sa = oDto.getLocators()[p_iNum];
+ for (int i1=0; i1<sa.length;i1++)
+ if (iFld < m_oaFields.length) setObject(p_PS,iFld++,sa[i1]);
+
+ setLong(p_PS, iFld++, oDto.getUid());
+ }
+ catch (Exception e)
+ { m_oLog.error("setUpdValues() Failed",e);
+ throw e;
+ }
+ } //________________________________
+
+ /**
+ * Returns an ObjLocator object containing data from the row in the current
+ * cursor position of the ResultSet object <arg 1>
+ * @param p_oRS ResultSet - The current ResultSet
+ * <p>Must be the result of a previous execution of
+ * JdbcCleanConn.execQueryWait() method on a 'select' prepared statement for
+ * this object</p>
+ * @throws Exception
+ * @return Object - An ObjLocator object
+ * @see JdbcCleanConn#execQueryWait(PreparedStatement, int)
+ * @see DaoIndexTable#getPS(int)
+ * @see DaoIndexTable#PS_SEL_INDEX
+ * @see ObjLocator
+ */
+ public Object getFromRS (ResultSet p_oRS) throws Exception
+ { try
+ {
+ long lUid = p_oRS.getLong(1+OBJECT_UID);
+ String[] sa = new String[m_oaFields.length-FIRST_FIELD];
+ int iFld = FIRST_FIELD;
+ for (int i1=0; i1<sa.length;i1++) sa[i1] = p_oRS.getString(++iFld);
+
+ return new ObjLocator(lUid,sa);
+ }
+ catch (Exception e)
+ { m_oLog.error("getFromRS() Failed",e);
+ throw e;
+ }
+ } //________________________________
+
+
+ /**
+ * Index of the 'insert' statement in the list of PreparedStatement objects
+ * for this DAO
+ */
+ public static final int PS_INS_INDEX = 0;
+ /**
+ * Index of the 'select' statement in the list of PreparedStatement objects
+ * for this DAO
+ */
+ public static final int PS_SEL_INDEX = 1;
+ /**
+ * Index of the 'delete' statement in the list of PreparedStatement objects
+ * for this DAO
+ */
+ public static final int PS_RMV_INDEX = 2;
+ /**
+ * Index of the 'update' statement in the list of PreparedStatement objects
+ * for this DAO
+ */
+ public static final int PS_UPD_INDEX = 3;
+
+ private static final int PS_MAX = 10;
+
+ /**
+ * Obtain a prepared statement for this DAO from the list of available PStmts
+ * <p>Uses lazy instantiation of requested objects</p>
+ * @param p_i int - Index of PreparedStatement object to obtain
+ * @throws Exception - If an invalid index is passed or there are problems
+ * during the prepareStatement() invocation
+ * @return PreparedStatement
+ */
+ public PreparedStatement getPS (int p_i) throws Exception
+ { try
+ { switch (p_i)
+ { case PS_INS_INDEX: return getInsIndex(p_i);
+ case PS_SEL_INDEX: return getSelIndex(p_i);
+ case PS_RMV_INDEX: return getRmvIndex(p_i);
+ case PS_UPD_INDEX: return getUpdIndex(p_i);
+ }
+ ;
+ throw new Exception("Invalid Index "+p_i);
+ }
+ catch (Exception e)
+ { m_oLog.error("Request for Prepared Statement Failed",e);
+ throw e;
+ }
+ } //__________________________________
+
+ private PreparedStatement getInsIndex(int p_i) throws Exception
+ { if (null == m_oaPS[p_i])
+ m_oaPS[p_i] = m_oConn.prepareStatement(getInsertStatement());
+ return m_oaPS[p_i];
+ } //__________________________________
+
+ private PreparedStatement getSelIndex(int p_i) throws Exception
+ { if (null == m_oaPS[p_i])
+ { StringBuffer sb = new StringBuffer(getSelectStatement())
+ .append(" where ").append(getFldName(OBJECT_UID)).append(" = ? ");
+ m_oaPS[p_i] = m_oConn.prepareStatement(sb.toString());
+ }
+ return m_oaPS[p_i];
+ } //__________________________________
+
+ private PreparedStatement getRmvIndex(int p_i) throws Exception
+ { if (null == m_oaPS[p_i])
+ m_oaPS[p_i] = m_oConn.prepareStatement(getDeleteStatement());
+ return m_oaPS[p_i];
+ } //__________________________________
+
+ private PreparedStatement getUpdIndex(int p_i) throws Exception
+ { if (null == m_oaPS[p_i])
+ m_oaPS[p_i] = m_oConn.prepareStatement(getUpdateStatement());
+ return m_oaPS[p_i];
+ } //__________________________________
+
+} //____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoIndexTable.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoSnapTable.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoSnapTable.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoSnapTable.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,401 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.internal.core.objectstore;
+
+import java.lang.reflect.Method;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.helpers.persist.JdbcCleanConn;
+import org.jboss.soa.esb.helpers.persist.SqlDbTable;
+import org.jboss.soa.esb.services.DefaultEncryptionFactory;
+import org.jboss.soa.esb.services.Encryption;
+import org.jboss.soa.esb.util.BobjStdDTO;
+import org.jboss.soa.esb.util.Util;
+
+
+/**
+ * Data access object for all SQL tables that the ROS (Rosetta Object Store)
+ * uses as snapshot tables
+ *
+ * @see BobjStore
+ */
+public class DaoSnapTable extends SqlDbTable
+{
+ private Logger m_oLogger;
+ private JdbcCleanConn m_oConn;
+ private BobjStore m_oST;
+
+ private DaoSnapTable() throws Exception {this(null,null); }
+ /**
+ * Instantiate a DaoSnapTable object using the javax.sql.DataSource object
+ * within <arg 1>, with table name held in <arg 2>
+ * @param p_oConn JdbcCleanConn - Connection to use for preparing and executing
+ * all SQL statements in this DAO
+ * @param p_oST BobjStore - Descriptor that holds information of what physical
+ * SQL tables to use both for the snapshot and the locator tables for
+ * BusinessObjects sent to this DAO
+ * @throws Exception - pass through from invoked methods - see Exception.getMessage()
+ * at runtime for details
+ * @see JdbcCleanConn
+ * @see BobjStore
+ * @see Istorable
+ */
+ public DaoSnapTable(JdbcCleanConn p_oConn,BobjStore p_oST) throws Exception
+ { super(p_oConn,p_oST.getSnapTable());
+ m_oLogger = Util.getDefaultLogger(this.getClass());
+ m_oConn = p_oConn;
+ m_oST = p_oST;
+ if (null != m_oaFields)m_oaFields[UID_SNAP].setPrimaryKey(true);
+ m_oaPS = new PreparedStatement[PS_MAX];
+ } //________________________________
+
+ /**
+ * List of fields for select statement - provided only to avoid time
+ * consuming 'select *' statements
+ * @return String - a Comma separated list of fields
+ */
+ protected String getSelectFields()
+ { return "uid,stamp,snap_type,object_uid,batch_num,xml_data";
+ } //________________________________
+
+ // -------------------------------------------------------------
+ // Column constants
+ // -------------------------------------------------------------
+ private static int s_iFld = 0;
+ /**
+ * Column index for the SQL table field representing snapshot's unique identifier
+ * <p>This would be the 'natural' primary key for all snapshot tables, and the
+ * number should only be assigned by the PersistHandler EJB at insert time</p>
+ * <p>There could potentially be several snapshots for the same
+ * BusinessObject - In that case, there would be several rows in the
+ * snapshot table with the same OBJECT_UID value and different UID_SNAP
+ * values
+ * </p>
+ * @see DaoSnapTable#OBJECT_UID
+ */
+ public static final int UID_SNAP = s_iFld++;
+ /**
+ * Column index for the SQL table field representing this snapshot's timestamp, expressed
+ * in milliseconds since the start of the 'epoch'
+ * @see java.util.Date
+ */
+ public static final int TIMESTAMP = s_iFld++;
+ /**
+ * Column index for the SQL table field representing this snapshot's
+ * underlying BusinessObject type - This is a Rosetta Core design level decision
+ * <p>Having this field as an SQL column will enable SQL 'visibility' and thus
+ * can be used in the 'where' clause of any SQL statement</p>
+ * <p>An example of when this field could potentially be used is if a
+ * decision is made by Rosetta Administrators to move all objects of a specific
+ * type to a different SQL snapshot table</p>
+ */
+ public static final int SNAP_TYPE = s_iFld++;
+ /**
+ * Column index for the SQL table field representing BusinessObject unique identifier
+ * <p>There could potentially be several snapshots for the same
+ * BusinessObject - In that case, there would be several rows in the
+ * snapshot table with the same OBJECT_UID value and different UID_SNAP
+ * values
+ * </p>
+ * @see DaoSnapTable#OBJECT_UID
+ */
+ public static final int OBJECT_UID = s_iFld++;
+ /**
+ * Column index for the SQL table field representing the batch number
+ * as a result of which this snapshot was added to the store
+ * <p>If this snapshot was not added as part of a batch process (meaning a
+ * group of BusinessObjects added using the BatchHandler EJB), then it
+ * will hold a null value</p>
+ */
+ public static final int BATCH_NUM = s_iFld++;
+ /**
+ * Column index for the SQL table field representing the XML representation
+ * of the BusinessObject stored in this SQL table
+ * <p>The contents of this field are going to be the result of invoking
+ * the BusinessObject.toDTO().toXml() method</p>
+ * @see BusinessObject#toDTO()
+ * @see BobjStdDTO#toXml()
+ * @see DaoSnapTable#setInsValues(PreparedStatement,Object)
+ */
+ public static final int XML_OBJECT = s_iFld++;
+
+ private static final int QFIELDS = s_iFld++;
+
+ /**
+ * Set values for insert statement
+ * @param p_PS PreparedStatement - The prepared SQL statement for insert in this
+ * table
+ * <p>Must be the result of a previous call to this.getPS(PS_INS_SNAP)</p>
+ * @param p_o Object - Object to get values from
+ * <p>arg 2 is Object to comply with SqlDbTable abstract method setInsValues()
+ * <li>For this particular class, arg 2 MUST be an instance of BusinessObject</li>
+ * </p>
+ * @throws Exception
+ * @return int
+ * @see DaoSnapTable#getPS(int)
+ * @see DaoSnapTable#PS_INS_SNAP
+ * @see BusinessObject
+ */
+ public int setInsValues(PreparedStatement p_PS,Object p_o)
+ throws Exception
+ { try
+ { if (! (p_o instanceof BobjStdDTO)) throw
+ new Exception ("Parameter must be BobjStdDTO");
+
+ BobjStdDTO oDto = (BobjStdDTO)p_o;
+ long lSnapUid = oDto.getSnap();
+
+ p_PS.clearParameters();
+ setLong (p_PS, UID_SNAP ,lSnapUid);
+ setLong (p_PS, TIMESTAMP ,oDto.getStamp()); // Timestamp
+ setObject(p_PS, SNAP_TYPE ,m_oST.getSnapType()); // Snap Type
+ setLong (p_PS, OBJECT_UID ,oDto.getUid()); // Object's UID
+ setLong (p_PS, BATCH_NUM ,oDto.getBatch()); // Batch Number
+ byte[] baXml = oDto.toXml().getBytes();
+ p_PS.setBytes(1+XML_OBJECT,seeCrypt(baXml,lSnapUid));
+
+ return QFIELDS;
+ }
+ catch (Exception e)
+ { m_oLogger.error("setInsValues() Failed",e);
+ throw e;
+ }
+ } //________________________________
+
+ /**
+ * Set values for update statement
+ * @param p_PS PreparedStatement - The prepared SQL statement for updates in this
+ * table
+ * <p>Must be the result of a previous call to this.getPS(PS_UPD_SNAP)</p>
+ * @param p_o Object - Object to get values from
+ * <li>For this particular class, arg 2 MUST be an instance of BobjStdDTO</li>
+ * </p>
+ * @throws Exception
+ * @see DaoSnapTable#getPS(int)
+ * @see DaoSnapTable#PS_UPD_SNAP
+ * @see BobjStdDTO
+ */
+ public void setUpdValues(PreparedStatement p_PS,Object p_o)
+ throws Exception
+ { try
+ { if (! (p_o instanceof BobjStdDTO)) throw
+ new Exception ("Parameter must be BobjStdDTO");
+
+ BobjStdDTO oDto = (BobjStdDTO)p_o;
+ long lSnapUid = oDto.getSnap();
+
+ p_PS.clearParameters();
+
+ int iFld = 0;
+ setLong (p_PS, iFld++ ,oDto.getStamp()); // Timestamp
+ setObject(p_PS, iFld++ ,m_oST.getSnapType()); // Snap Type
+ setLong (p_PS, iFld++ ,oDto.getUid()); // Object's UID
+ setLong (p_PS, iFld++ ,oDto.getBatch()); // Batch Number
+ byte[] baXml = oDto.toXml().getBytes();
+ p_PS.setBytes(1+iFld++ ,seeCrypt(baXml,lSnapUid));
+ setLong (p_PS, iFld++ ,lSnapUid);
+ }
+ catch (Exception e)
+ { m_oLogger.error("setInsValues() Failed",e);
+ throw e;
+ }
+ } //________________________________
+
+ private Encryption m_oMangler;
+ private static final Object s_oSync = new Integer(0);
+ private Encryption getMangler() throws Exception
+ { return getMangler(null); }
+ private Encryption getMangler(Object p_oFactParms) throws Exception
+ { if (null!=m_oMangler)
+ return m_oMangler;
+ synchronized(s_oSync)
+ { if (null!=m_oMangler)
+ return m_oMangler;
+
+ String sFactoryName = Configuration.getEncryptionFactoryClass();
+ Class oFactClass = DefaultEncryptionFactory.class;
+ if (null!=sFactoryName)
+ oFactClass = Class.forName(sFactoryName);
+ Method oMth = oFactClass.getMethod("getEncrypter"
+ ,new Class[] {Object.class});
+ m_oMangler = (Encryption) oMth.invoke(null,p_oFactParms);
+ }
+
+ return m_oMangler;
+ } //________________________________
+
+ /**
+ * Encrypt if you have to or just return your first argument
+ * <p />
+ * You'll probably override this method if you have your own Iencryption implementation
+ * @param p_ba the byte array to be encrypted (if the store so indicates)
+ * @param p_l an object for the encrypt method of the Iencryption object
+ * @return the value to be stored in the column
+ * @throws Exception
+ */
+
+ protected byte[] seeCrypt(byte[] p_ba,Object p_l) throws Exception
+ { if (! m_oST.isEncrypted()) return p_ba;
+ return getMangler().encrypt(p_ba,p_l);
+ } //________________________________
+
+ /**
+ * Decrypt if you have to or just return your first argument
+ * <p />
+ * You'll probably override this method if you have your own Iencryption implementation
+ * @param p_ba the byte array to be decrypted (if the store so indicates)
+ * @param p_l an object for the decrypt method of the Iencryption object
+ * @return the value to be used to construct the XML string
+ * @throws Exception
+ */
+ protected byte[] seeDecrypt(byte[] p_ba,Object p_l) throws Exception
+ { if (! m_oST.isEncrypted()) return p_ba;
+ return getMangler().decrypt(p_ba,p_l);
+ } //________________________________
+
+ /**
+ * Returns a BobjStdDTO containing data from the row in the current
+ * cursor position of the ResultSet object <arg 1>
+ * @param p_oRS ResultSet - The current ResultSet
+ * <p>Must be the result of a previous execution of
+ * JdbcCleanConn.execQueryWait() method on a 'select' prepared statement for
+ * this object</p>
+ * @throws Exception
+ * @return Object - A BobjStdDTO
+ * @see JdbcCleanConn#execQueryWait(PreparedStatement, int)
+ * @see DaoSnapTable#getPS(int)
+ * @see DaoSnapTable#PS_SEL_SNAP
+ * @see DaoSnapTable#PS_SEL_4UPD
+ * @see BobjStdDTO
+ */
+ public Object getFromRS (ResultSet p_oRS) throws Exception
+ { try
+ { long lUid = p_oRS.getLong(1+UID_SNAP);
+ String sXml = (m_oST.isEncrypted())
+ ? new String(seeDecrypt(p_oRS.getBytes(1+XML_OBJECT),lUid),"ISO-8859-1")
+ : p_oRS.getString(1+XML_OBJECT);
+ Object oRet = BobjStdDTO.getFromXml(sXml);
+ return oRet;
+ }
+ catch (Exception e)
+ { m_oLogger.error("getFromRS() Failed",e);
+ throw e;
+ }
+ } //________________________________
+
+
+ /**
+ * Index of the 'insert' statement in the list of PreparedStatement objects
+ * for this DAO
+ */
+ public static final int PS_INS_SNAP = 0;
+ /**
+ * Index of the 'select' statement in the list of PreparedStatement objects
+ * for this DAO
+ */
+ public static final int PS_SEL_SNAP = 1;
+ /**
+ * Index of the 'delete' statement in the list of PreparedStatement objects
+ * for this DAO
+ */
+ public static final int PS_RMV_SNAP = 2;
+ /**
+ * Index of the 'update' statement in the list of PreparedStatement objects
+ * for this DAO
+ */
+ public static final int PS_UPD_SNAP = 3;
+ /**
+ * Index of the 'select for update' statement in the list of PreparedStatement
+ * objects for this DAO
+ */
+ public static final int PS_SEL_4UPD = 4;
+
+ private static final int PS_MAX = 10;
+
+ /**
+ * Obtain a prepared statement for this DAO from the list of available PStmts
+ * <p>Uses lazy instantiation of requested objects</p>
+ * @param p_i int - Index of PreparedStatement object to obtain
+ * @throws Exception - If an invalid index is passed or there are problems
+ * during the prepareStatement() invocation
+ * @return PreparedStatement
+ */
+ public PreparedStatement getPS (int p_i) throws Exception
+ { try
+ { switch (p_i)
+ { case PS_INS_SNAP: return getInsSnap(p_i);
+ case PS_SEL_SNAP: return getSelSnap(p_i);
+ case PS_RMV_SNAP: return getRmvSnap(p_i);
+ case PS_UPD_SNAP: return getUpdSnap(p_i);
+ case PS_SEL_4UPD: return getSel4UpdSnap(p_i);
+ }
+ ;
+ throw new Exception("Invalid Index "+p_i);
+ }
+ catch (Exception e)
+ { m_oLogger.error("Request for Prepared Statement Failed",e);
+ throw e;
+ }
+ } //__________________________________
+
+ private PreparedStatement getInsSnap(int p_i) throws Exception
+ { if (null == m_oaPS[p_i])
+ m_oaPS[p_i] = m_oConn.prepareStatement(getInsertStatement());
+ return m_oaPS[p_i];
+ } //__________________________________
+
+ private PreparedStatement getSelSnap(int p_i) throws Exception
+ { if (null == m_oaPS[p_i])
+ { StringBuffer sb = new StringBuffer(getSelectStatement())
+ .append(" where ").append(getFldName(UID_SNAP)).append(" = ? ");
+ m_oaPS[p_i] = m_oConn.prepareStatement(sb.toString());
+ }
+ return m_oaPS[p_i];
+ } //__________________________________
+
+ private PreparedStatement getRmvSnap(int p_i) throws Exception
+ { if (null == m_oaPS[p_i])
+ m_oaPS[p_i] = m_oConn.prepareStatement(getDeleteStatement());
+ return m_oaPS[p_i];
+ } //__________________________________
+
+ private PreparedStatement getUpdSnap(int p_i) throws Exception
+ { if (null == m_oaPS[p_i])
+ m_oaPS[p_i] = m_oConn.prepareStatement(getUpdateStatement());
+ return m_oaPS[p_i];
+ } //__________________________________
+
+ private PreparedStatement getSel4UpdSnap(int p_i) throws Exception
+ { if (null == m_oaPS[p_i])
+ { StringBuffer sb = new StringBuffer(getSelectStatement())
+ .append(" where ").append(getFldName(UID_SNAP)).append(" = ? ")
+ .append(" for update");
+ m_oaPS[p_i] = m_oConn.prepareStatement(sb.toString());
+ }
+ return m_oaPS[p_i];
+ } //__________________________________
+
+} //____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoSnapTable.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoUidTable.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoUidTable.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoUidTable.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,275 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.internal.core.objectstore;
+
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.helpers.persist.JdbcCleanConn;
+import org.jboss.soa.esb.helpers.persist.SqlDbTable;
+import org.jboss.soa.esb.services.PersistManager;
+import org.jboss.soa.esb.util.Util;
+
+/**
+ * Data access object for the SQL table that the Object Store uses to assign
+ * Unique Identifiers (UID) to any object in the framework
+ *
+ * @see PersistManager#getUidChunk(int)
+ */
+public class DaoUidTable extends SqlDbTable {
+ /**
+ * Key value for the row in the UID table that holds UIDs for
+ * BusinessObjects "jbossEsb_objuid"
+ */
+ public static final String SEQUENCE_OBJ = "jbossEsb_objuid";
+
+ /**
+ * Key value for the row in the UID table that holds UIDs for BatchProcess
+ * "jbossEsb_batchuid"
+ */
+ public static final String SEQUENCE_BATCH = "jbossEsb_batchuid";
+
+ private Logger m_oLogger;
+
+ private DaoUidTable() throws Exception {
+ this(null, null);
+ }
+
+ /**
+ * Instantiate a DaoUidTable object using the javax.sql.DataSource object
+ * within <arg 1>, with table name held in <arg 2>
+ *
+ * @param p_oConn
+ * JdbcCleanConn - Connection to use for preparing and executing
+ * all SQL statements in this DAO
+ * @param p_sTblName
+ * String - SQL table name to use in the context of this
+ * DaoUidTable object
+ * @throws Exception -
+ * pass through from invoked methods - see
+ * Exception.getMessage() at runtime for details
+ * @see JdbcCleanConn
+ */
+ public DaoUidTable(JdbcCleanConn p_oConn, String p_sTblName)
+ throws Exception {
+ super(p_oConn, p_sTblName);
+ m_oLogger = Util.getDefaultLogger(this.getClass());
+ if (null != m_oaFields) {
+ m_oaFields[UID].setPrimaryKey(true);
+ }
+ m_oaPS = new PreparedStatement[PS_MAX];
+ } // ________________________________
+
+ /**
+ * List of fields for select statement - provided only to avoid time
+ * consuming 'select *' statements
+ *
+ * @return String - a Comma separated list of fields
+ */
+ protected String getSelectFields() {
+ return "uid,sequence_name,last_used_uid";
+ } // ________________________________
+
+ // -------------------------------------------------------------
+ // Column constants
+ // -------------------------------------------------------------
+ private static int s_iFld = 0;
+
+ /**
+ * Column index for field representing the UID of this table row
+ */
+ public static final int UID = s_iFld++;
+
+ /**
+ * Column index for field representing the sequence name of this row
+ *
+ * @see DoiUidTable#SEQUENCE_OBJ
+ * @see DoiUidTable#SEQUENCE_BATCH
+ */
+ public static final int SEQ_NAME = s_iFld++;
+
+ /**
+ * Column index for field representing the last used UID number for this
+ * particular sequence name
+ */
+ public static final int LAST_USED_UID = s_iFld++;
+
+ /**
+ * This method is supplied to comply with the parent class but it should
+ * NEVER be used
+ *
+ * @param p_PS
+ * PreparedStatement
+ * @param p_o
+ * Object
+ * @throws Exception -
+ * This will ALWAYS throw an Exception - Inserts to this table
+ * class should be handled ONLY by the Rosetta Administrator
+ * @return int - It will never return a value
+ */
+ public int setInsValues(PreparedStatement p_PS, Object p_o)
+ throws Exception {
+ String sErr = "No Inserts to UID table";
+ m_oLogger.error(sErr);
+ throw new Exception(sErr);
+ } // ________________________________
+
+ /**
+ * Provided for compatibility - Never used - Will always return null
+ *
+ * @param p_oRS
+ * ResultSet
+ * @throws Exception
+ * @return Object
+ */
+ public Object getFromRS(ResultSet p_oRS) throws Exception {
+ return null;
+ } // ________________________________
+
+ /**
+ * Index of the 'select for update' statement in the list of
+ * PreparedStatement objects for this DAO
+ */
+ public static final int PS_GET_SEQ_4_UPD = 0;
+
+ /**
+ * Index of the 'update' statement in the list of PreparedStatement objects
+ * for this DAO
+ */
+ public static final int PS_UPDATE_LAST_USED = 1;
+
+ private static final int PS_MAX = 10;
+
+ /**
+ * Obtain a prepared statement for this DAO from the list of available
+ * PStmts
+ * <p>
+ * Uses lazy instantiation of requested objects
+ * </p>
+ *
+ * @param p_i
+ * int - Index of PreparedStatement object to obtain
+ * @throws Exception -
+ * If an invalid index is passed or there are problems during
+ * the prepareStatement() invocation
+ * @return PreparedStatement
+ */
+ public PreparedStatement getPS(int p_i) throws Exception {
+ try {
+ switch (p_i) {
+ case PS_GET_SEQ_4_UPD:
+ return getSeq4Upd(p_i);
+ case PS_UPDATE_LAST_USED:
+ return updateLastUsed(p_i);
+ }
+ ;
+ throw new Exception("Invalid Index " + p_i);
+ } catch (Exception e) {
+ m_oLogger.error("Request for Prepared Statement Failed", e);
+ throw e;
+ }
+ } // __________________________________
+
+ private PreparedStatement getSeq4Upd(int p_i) throws Exception {
+ if (null == m_oaPS[p_i]) {
+ StringBuffer sb = new StringBuffer(getSelectStatement()).append(
+ " where ").append(getFldName(SEQ_NAME)).append(
+ " = ? for update");
+ m_oaPS[p_i] = getConn().prepareStatement(sb.toString());
+ }
+ return m_oaPS[p_i];
+ } // __________________________________
+
+ private PreparedStatement updateLastUsed(int p_i) throws Exception {
+ if (null == m_oaPS[p_i]) {
+ StringBuffer sb = new StringBuffer("update ").append(m_sTableName)
+ .append(" set ").append(getFldName(LAST_USED_UID)).append(
+ " = ?").append(" where ").append(
+ getFldName(SEQ_NAME)).append(" = ?");
+ m_oaPS[p_i] = getConn().prepareStatement(sb.toString());
+ }
+ return m_oaPS[p_i];
+ } // __________________________________
+
+ /**
+ * This is an exception to the standard behaviour of derived classes that
+ * extend the SqlDbTable abstract class
+ * <p>
+ * This method is called by the PersistHandler and BatchHandler EJBs and
+ * makes their life easier when they need to obtain UID chunks
+ * </p>
+ * <p>
+ * These EJBs rely on this table to ensure no duplicate UIDs across all of
+ * Rosetta
+ * </p>
+ * <p>
+ * It could also be invoked from a different context, provided that the
+ * Rosetta Administrators have added a row with a unique sequence name to
+ * the underlying SQL table that holds the last used UIDs for all numbering
+ * sequences
+ * </p>
+ *
+ * @param p_sSeqName
+ * String - Key to the sequence name to get the chunk from
+ * @param p_iQuids
+ * int - Number of UIDs to return
+ * @throws Exception
+ * @return long - First UID in the chunk assigned by this method
+ */
+ public long getUidChunk(String p_sSeqName, int p_iQuids) throws Exception {
+ try {
+ PreparedStatement PS = getPS(DaoUidTable.PS_GET_SEQ_4_UPD);
+ PS.setString(1, p_sSeqName);
+ ResultSet rs = getConn().execQueryWait(PS, 30);
+
+ boolean bOK = false;
+ try {
+ if (rs.next())
+ bOK = true;
+ } catch (Exception e1) {
+ getConn().rollback();
+ }
+ if (!bOK)
+ throw new Exception("Select FAILED jbossEsb.getChunk()");
+
+ int iSqlFld = 1 + DaoUidTable.LAST_USED_UID;
+ long lUid = rs.getLong(iSqlFld);
+ if (lUid < 1)
+ lUid = 1;
+ long lNewLast = lUid + p_iQuids;
+
+ PS = getPS(DaoUidTable.PS_UPDATE_LAST_USED);
+ PS.setLong(1, lNewLast);
+ PS.setString(2, p_sSeqName);
+ getConn().execUpdWait(PS, 10);
+
+ getConn().commit();
+
+ return lUid;
+ } catch (Exception e) {
+ m_oLogger.error(e.getMessage());
+ throw e;
+ }
+ } // __________________________________
+} // ____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/DaoUidTable.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/RowBatch.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/RowBatch.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/RowBatch.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,42 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.internal.core.objectstore;
+
+public class RowBatch
+{
+ public long m_lBatch;
+ public int m_iSeq;
+ public long m_lCommitTS;
+ public String m_sData;
+
+ public RowBatch()
+ { this(0,0,0,null);
+ } //__________________________________
+
+ public RowBatch (long p_lBatch, int p_iSeq, long p_lTS, String p_sData)
+ { m_lBatch = p_lBatch;
+ m_iSeq = p_iSeq;
+ m_lCommitTS = p_lTS;
+ m_sData = p_sData;
+ } //__________________________________
+} //____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/RowBatch.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/Storable.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/Storable.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/Storable.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,38 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.internal.core.objectstore;
+
+/**
+ * Provides methods to learn about how and where a BusinessObject will be stored
+ * and retrieved from a BobjStore
+ * @see BobjStore
+ */
+
+public interface Storable
+{
+ public String getSnapType ();
+ public String getSnapTable ();
+ public String getLocatorTable ();
+ public String getLocatorTable (int p_i);
+ public boolean isEncrypted ();
+} // ___________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/internal/core/objectstore/Storable.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/BatchHandlerBsDelegateLocal.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/BatchHandlerBsDelegateLocal.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/BatchHandlerBsDelegateLocal.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,58 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services;
+
+import javax.naming.Context;
+
+import org.jboss.soa.esb.common.bizclasses.BatchProcess;
+import org.jboss.soa.esb.services.beans.BatchHandler;
+
+public class BatchHandlerBsDelegateLocal implements BatchManager
+{
+ private BatchHandler m_oBatchH;
+
+ public BatchHandlerBsDelegateLocal(Context p_ctx) throws Exception
+ {
+ m_oBatchH = (BatchHandler) p_ctx.lookup("jbossesb-appl/NotificationHandlerBean/local");
+ m_oBatchH.create();
+ }
+
+ public long newBatch() throws Exception
+ {
+ return m_oBatchH.newBatch();
+ }
+
+ public int addToBatch(String p_s) throws Exception
+ {
+ return m_oBatchH.addToBatch(p_s);
+ }
+
+ public void finish() throws Exception
+ {
+ m_oBatchH.finish();
+ }
+
+ public void commitBatch(BatchProcess p_oBP) throws Exception
+ {
+ m_oBatchH.commitBatch(p_oBP.toDTO());
+ }
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/BatchHandlerBsDelegateLocal.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/BatchHandlerBsDelegateRemote.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/BatchHandlerBsDelegateRemote.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/BatchHandlerBsDelegateRemote.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,56 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services;
+
+import javax.naming.Context;
+
+import org.jboss.soa.esb.common.bizclasses.BatchProcess;
+import org.jboss.soa.esb.services.beans.BatchHandler;
+
+public class BatchHandlerBsDelegateRemote implements BatchManager
+{
+ private BatchHandler m_oBatchH;
+
+ public BatchHandlerBsDelegateRemote(Context p_ctx) throws Exception {
+ m_oBatchH = (BatchHandler) p_ctx
+ .lookup("jbossesb-appl/NotificationHandlerBean/remote");
+ m_oBatchH.create();
+ }
+
+ public long newBatch() throws Exception {
+ return m_oBatchH.newBatch();
+ }
+
+ public int addToBatch(String p_s) throws Exception {
+ return m_oBatchH.addToBatch(p_s);
+ }
+
+ public void finish() throws Exception {
+ m_oBatchH.finish();
+ }
+
+ public void commitBatch(BatchProcess p_oBP) throws Exception {
+ m_oBatchH.commitBatch(p_oBP.toDTO());
+ }
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/BatchHandlerBsDelegateRemote.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/BatchHandlerFactory.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/BatchHandlerFactory.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/BatchHandlerFactory.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,61 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services;
+
+import java.util.Arrays;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+import org.jboss.soa.esb.helpers.AppServerContext;
+
+public class BatchHandlerFactory
+{
+ private static final String [] s_saTypes = {"local","remote","mock"};
+ private final static int LCL=0;
+ private final static int REM=1;
+ private final static int MOK=2;
+
+ public static BatchManager getBatchHandler(String p_sLocRem,
+ String p_sJndiType, String p_sJndiServer) throws Exception
+ {
+ int iIndex = Arrays.binarySearch(s_saTypes, p_sLocRem.toLowerCase());
+ if (iIndex < 0)
+ return null;
+ switch (iIndex) {
+ case LCL:
+ return new BatchHandlerBsDelegateLocal(new InitialContext());
+ case REM:
+ return getBatchHandler(AppServerContext.getServerContext(
+ p_sJndiType, p_sJndiServer));
+ case MOK:
+ return null; //return new MockBatchHandler()
+ }
+ throw new Exception("Invalid Batch Handler Delegate <" + p_sLocRem + ">");
+ }
+
+ public static BatchManager getBatchHandler(Context p_oCtx)
+ throws Exception
+ {
+ return new BatchHandlerBsDelegateRemote(p_oCtx);
+ }
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/BatchHandlerFactory.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/NotifHandlerBsDelegateLocal.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/NotifHandlerBsDelegateLocal.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/NotifHandlerBsDelegateLocal.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,52 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services;
+
+import java.io.Serializable;
+
+import javax.naming.Context;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.services.beans.NotificationHandler;
+
+public class NotifHandlerBsDelegateLocal implements NotificationManager
+{
+ private NotificationHandler m_oNotifH;
+
+ public NotifHandlerBsDelegateLocal(Context p_ctx) throws Exception
+ {
+ m_oNotifH = (NotificationHandler) p_ctx.lookup("jbossesb-appl/NotificationHandlerBean/local");
+ m_oNotifH.create();
+ }
+
+ public void sendNotifications(ConfigTree p_oP, Serializable p_o)
+ throws Exception
+ {
+ m_oNotifH.sendNotifications(p_oP.toString(), p_o);
+ }
+
+ public void sendNotifications(Serializable p_o) throws Exception
+ {
+ m_oNotifH.sendNotifications(null, p_o);
+ }
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/NotifHandlerBsDelegateLocal.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/NotifHandlerBsDelegateRemote.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/NotifHandlerBsDelegateRemote.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/NotifHandlerBsDelegateRemote.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,53 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services;
+
+import java.io.Serializable;
+
+import javax.naming.Context;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.services.beans.NotificationHandler;
+
+public class NotifHandlerBsDelegateRemote implements NotificationManager
+{
+ private NotificationHandler m_oNotifH;
+
+ public NotifHandlerBsDelegateRemote(Context p_ctx) throws Exception
+ {
+ m_oNotifH = (NotificationHandler) p_ctx.lookup("jbossesb-appl/NotificationHandlerBean/remote");
+ m_oNotifH.create();
+ }
+
+ public void sendNotifications(ConfigTree p_oP, Serializable p_o)
+ throws Exception
+ {
+ m_oNotifH.sendNotifications(p_oP.toString(), p_o);
+ }
+
+ public void sendNotifications(Serializable p_o) throws Exception
+ {
+ m_oNotifH.sendNotifications(null, p_o);
+ }
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/NotifHandlerBsDelegateRemote.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/NotificationHandlerFactory.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/NotificationHandlerFactory.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/NotificationHandlerFactory.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,60 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services;
+
+import java.util.Arrays;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+import org.jboss.soa.esb.helpers.AppServerContext;
+
+
+public class NotificationHandlerFactory
+{
+ private static final String [] s_saTypes = {"local","remote","mock"};
+ private final static int LCL=0;
+ private final static int REM=1;
+ private final static int MOK=2;
+
+ public static NotificationManager getNotifHandler
+ (String p_sLocRem, String p_sJndiType, String p_sJndiServer) throws Exception
+ {
+ int iIndex = Arrays.binarySearch(s_saTypes,p_sLocRem.toLowerCase());
+ if (iIndex < 0) return null;
+ switch (iIndex)
+ {
+ case LCL: return new NotifHandlerBsDelegateLocal(new InitialContext());
+ case REM: return getNotifHandler
+ (AppServerContext.getServerContext(p_sJndiType,p_sJndiServer));
+ case MOK: return null; //return new MockNotificationHandler();
+ }
+ throw new Exception("Invalid Notification Handler Delegate <" + p_sLocRem + ">");
+ }
+
+ private static NotificationManager getNotifHandler(Context p_oCtx) throws Exception
+ {
+ return new NotifHandlerBsDelegateRemote(p_oCtx);
+ }
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/NotificationHandlerFactory.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/PersistHandlerBsDelegateLocal.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/PersistHandlerBsDelegateLocal.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/PersistHandlerBsDelegateLocal.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,80 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services;
+
+import java.util.Properties;
+
+import javax.naming.Context;
+
+import org.jboss.soa.esb.services.beans.PersistHandler;
+import org.jboss.soa.esb.util.BaseBusinessObject;
+import org.jboss.soa.esb.util.BobjStdDTO;
+import org.jboss.soa.esb.util.ObjLocator;
+
+
+public class PersistHandlerBsDelegateLocal implements PersistManager
+{
+ private PersistHandler m_oSnapH;
+
+ public PersistHandlerBsDelegateLocal(Context p_ctx) throws Exception {
+ m_oSnapH = (PersistHandler) p_ctx.lookup("jbossesb-appl/PersistHandlerBean/local");
+ m_oSnapH.create();
+ }
+
+ public long getUidChunk(int p_iQ) throws Exception {
+ return m_oSnapH.getUidChunk(p_iQ);
+ }
+
+ public long addObject(BobjStdDTO p_oDto) throws Exception {
+ return m_oSnapH.addDTO(p_oDto);
+ }
+
+ public long addObject(BaseBusinessObject p_oBo) throws Exception {
+ p_oBo.setPackage();
+ return m_oSnapH.addDTO(p_oBo.toDTO());
+ }
+
+ public BaseBusinessObject getObject(Class p_oCls, long p_lUid)
+ throws Exception {
+ BobjStdDTO oDto = m_oSnapH.getDTO(p_oCls.getName(), p_lUid);
+ return (null == oDto) ? null : BaseBusinessObject.getFromDTO(oDto);
+ }
+
+ public void rmvObject(Class p_oCls, long p_lUid) throws Exception {
+ m_oSnapH.rmvObject(p_oCls.getName(), p_lUid);
+ }
+
+ public void rplObject(BaseBusinessObject p_o) throws Exception {
+ p_o.setPackage();
+ m_oSnapH.rplDTO(p_o.toDTO());
+ }
+
+ public ObjLocator[] getLocatorList(Class p_oCls, Properties p_oProp) {
+ return null;
+ } //__________________________________
+
+ public ObjLocator[] getLocatorList(Class p_oCls, long[] p_laUids) {
+ return null;
+ } //__________________________________
+} //____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/PersistHandlerBsDelegateLocal.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/PersistHandlerBsDelegateRemote.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/PersistHandlerBsDelegateRemote.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/PersistHandlerBsDelegateRemote.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,88 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services;
+
+import java.util.Properties;
+
+import javax.naming.Context;
+
+import org.jboss.soa.esb.services.beans.PersistHandler;
+import org.jboss.soa.esb.util.BaseBusinessObject;
+import org.jboss.soa.esb.util.BobjStdDTO;
+import org.jboss.soa.esb.util.ObjLocator;
+
+
+public class PersistHandlerBsDelegateRemote implements PersistManager
+{
+ private PersistHandler m_oSnapH;
+
+ public PersistHandlerBsDelegateRemote(Context p_ctx) throws Exception
+ {
+ m_oSnapH = (PersistHandler) p_ctx.lookup("jbossesb-appl/PersistHandlerBean/remote");
+ m_oSnapH.create();
+ }
+
+ public long getUidChunk(int p_iQ) throws Exception
+ {
+ return m_oSnapH.getUidChunk(p_iQ);
+ }
+
+ public long addObject (BaseBusinessObject p_oBo) throws Exception
+ {
+ if (null==p_oBo) return -1;
+ p_oBo.setPackage();
+ BobjStdDTO oDto = p_oBo.toDTO();
+ oDto.setLocators(p_oBo.allLocators());
+ return m_oSnapH.addDTO(oDto);
+ }
+
+ public BaseBusinessObject getObject (Class p_oCls, long p_lUid) throws Exception
+ {
+ BobjStdDTO oDto = m_oSnapH.getDTO(p_oCls.getName(), p_lUid);
+ return (null==oDto)?null:BaseBusinessObject.getFromDTO(oDto);
+ }
+
+ public void rmvObject (Class p_oCls, long p_lUid) throws Exception
+ {
+ m_oSnapH.rmvObject(p_oCls.getName(), p_lUid);
+ }
+
+ public void rplObject (BaseBusinessObject p_oBo) throws Exception
+ { if (null==p_oBo) return;
+ p_oBo.setPackage();
+ BobjStdDTO oDto = p_oBo.toDTO();
+ oDto.setLocators(p_oBo.allLocators());
+ m_oSnapH.rplDTO(oDto);
+ }
+
+ public ObjLocator[] getLocatorList(Class p_oCls, Properties p_oProp)
+ {
+ return null;
+ } //__________________________________
+
+ public ObjLocator[] getLocatorList(Class p_oCls, long[] p_laUids)
+ {
+ return null;
+ } //__________________________________
+} //____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/PersistHandlerBsDelegateRemote.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/PersistHandlerFactory.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/PersistHandlerFactory.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/PersistHandlerFactory.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,59 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services;
+
+import java.util.Arrays;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+import org.jboss.soa.esb.helpers.AppServerContext;
+
+public class PersistHandlerFactory
+{
+ private static final String [] s_saTypes = {"local","remote","mock"};
+ private final static int LCL=0;
+ private final static int REM=1;
+ private final static int MOK=2;
+
+ public static PersistManager getPersistHandler
+ (String p_sLocRem, String p_sJndiType, String p_sJndiServer) throws Exception
+ {
+ int iIndex = Arrays.binarySearch(s_saTypes,p_sLocRem.toLowerCase());
+ if (iIndex < 0) return null;
+ switch (iIndex)
+ {
+ case LCL: return new PersistHandlerBsDelegateLocal(new InitialContext());
+ case REM: return getPersistHandler
+ (AppServerContext.getServerContext(p_sJndiType,p_sJndiServer));
+ case MOK: return null; //new MockPersistHandler();
+ }
+ throw new Exception("Invalid Persist Handler Delegate <" + p_sLocRem + ">");
+ }
+
+ public static PersistManager getPersistHandler(Context p_oCtx) throws Exception
+ {
+ return new PersistHandlerBsDelegateRemote(p_oCtx);
+ }
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/PersistHandlerFactory.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/BatchHandler.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/BatchHandler.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/BatchHandler.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,39 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services.beans;
+
+import javax.ejb.CreateException;
+
+import org.jboss.soa.esb.util.BobjStdDTO;
+
+/**
+ * @author kstam
+ */
+public interface BatchHandler
+{
+ public void create() throws CreateException;
+ public void finish() throws Exception;
+ public void commitBatch(BobjStdDTO p_oDto ) throws Exception;
+ public long newBatch() throws Exception;
+ public int addToBatch(String p_s) throws Exception;
+ public void remove();
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/BatchHandler.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/BatchHandlerBean.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/BatchHandlerBean.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/BatchHandlerBean.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,327 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services.beans;
+
+import java.sql.Date;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.text.SimpleDateFormat;
+
+import javax.ejb.CreateException;
+import javax.ejb.Init;
+import javax.ejb.Local;
+import javax.ejb.PostActivate;
+import javax.ejb.PrePassivate;
+import javax.ejb.Remote;
+import javax.ejb.Remove;
+import javax.ejb.SessionContext;
+import javax.ejb.Stateful;
+import javax.ejb.TransactionManagement;
+import javax.ejb.TransactionManagementType;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.sql.DataSource;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.common.bizclasses.BatchProcess;
+import org.jboss.soa.esb.helpers.persist.JdbcCleanConn;
+import org.jboss.soa.esb.internal.core.objectstore.BobjStore;
+import org.jboss.soa.esb.internal.core.objectstore.DaoBatchTable;
+import org.jboss.soa.esb.internal.core.objectstore.DaoIndexTable;
+import org.jboss.soa.esb.internal.core.objectstore.DaoSnapTable;
+import org.jboss.soa.esb.internal.core.objectstore.DaoUidTable;
+import org.jboss.soa.esb.internal.core.objectstore.RowBatch;
+import org.jboss.soa.esb.util.BobjStdDTO;
+import org.jboss.soa.esb.util.Util;
+/**
+ * @author Esteban
+ */
+ at Remote(BatchHandler.class)
+ at Local(BatchHandler.class)
+ at TransactionManagement(TransactionManagementType.BEAN)
+public @Stateful class BatchHandlerBean implements BatchHandler
+{
+ private static final long serialVersionUID = 1L;
+ SessionContext m_oSessCtx;
+
+ public void setSessionContext(SessionContext p_oSessCtx)
+ { this.m_oSessCtx = p_oSessCtx; }
+
+ private Logger m_oLogger;
+ private JdbcCleanConn m_oUidConn;
+ private JdbcCleanConn m_oDataConn;
+
+ private DaoUidTable m_oDaoUid;
+ private DaoBatchTable m_oDaoBatch;
+ private DaoIndexTable m_oDaoIndex;
+ private DaoSnapTable m_oDaoSnap;
+
+ private long m_lBatchNum = -1;
+ private int m_iSeq;
+
+/**
+ * @throws CreateException
+ */
+ @Init
+ public void create() throws CreateException
+ {
+ try
+ { getResources();
+ m_oLogger.info(this.toString()+" Created");
+ }
+ catch (Exception e)
+ { m_oLogger.error("Failed to Create : <"+e.getMessage()+">");
+ throw new CreateException(e.getMessage());
+ }
+ } //__________________________________
+
+ @PostActivate
+ public void ejbActivate()
+ { try
+ { getResources();
+ m_oLogger.info("EJB Activated");
+ }
+ catch (Exception e)
+ { m_oLogger.error("Failed to Activate : <"+e.getMessage()+">");
+ }
+ } //__________________________________
+
+ @PrePassivate
+ public void ejbPassivate()
+ { m_oLogger.info("EJB Passivated");
+ releaseResources();
+ m_oLogger = null;
+ m_oUidConn = null;
+ m_oDataConn = null;
+ } //__________________________________
+
+ @Remove
+ public void remove()
+ {
+ releaseResources();
+ m_oLogger.info("EJB Removed");
+ } //__________________________________
+
+ private void getResources() throws Exception
+ { Context oCtx = new InitialContext();
+ m_oLogger = Util.getDefaultLogger(this.getClass());
+ m_oUidConn = new JdbcCleanConn ((DataSource)oCtx.lookup("java:JbossEsbDS"));
+ m_oDataConn = new JdbcCleanConn ((DataSource)oCtx.lookup("java:JbossEsbDS"));
+ } //__________________________________
+
+ private void releaseResources()
+ { if (null != m_oDataConn) m_oDataConn.release();
+ if (null != m_oUidConn) m_oUidConn.release();
+ m_oDaoBatch = null;
+ m_oDaoUid = null;
+ m_oDaoIndex = null;
+ m_oDaoSnap = null;
+ } //__________________________________
+
+// Utility Methods
+
+ private DaoUidTable getDaoUid() throws Exception
+ { if (null==m_oDaoUid)
+ m_oDaoUid = new DaoUidTable(m_oUidConn, BobjStore.getUidTableName());
+ return m_oDaoUid;
+ } //__________________________________
+
+ private DaoBatchTable getDaoBatch(String p_sTbl) throws Exception
+ { if (null==m_oDaoBatch)
+ m_oDaoBatch = new DaoBatchTable(m_oDataConn,p_sTbl);
+ return m_oDaoBatch;
+ } //__________________________________
+
+ private DaoIndexTable getDaoIndex(String p_sTbl) throws Exception
+ { if (null==m_oDaoIndex)
+ m_oDaoIndex = new DaoIndexTable(m_oDataConn,p_sTbl);
+ return m_oDaoIndex;
+ } //__________________________________
+
+ private DaoSnapTable getDaoSnap(BobjStore p_o) throws Exception
+ { if (null==m_oDaoSnap)
+ m_oDaoSnap = new DaoSnapTable(m_oDataConn,p_o);
+ return m_oDaoSnap;
+ } //__________________________________
+
+ private void doCommitBatch(BatchProcess p_oBP) throws Exception
+ { String sPrevClass = null;
+ BobjStore oStore = null;
+
+ PreparedStatement PSbatch = getDaoBatch(BobjStore.getBatchTableName())
+ .getPS(DaoBatchTable.PS_GET_BATCH_ROWS);
+ PSbatch.setLong(1,p_oBP.getBatchNum());
+
+ long lNow = System.currentTimeMillis();
+ String sSnapDt = new SimpleDateFormat("yyyyMMdd").format(new Date(lNow));
+
+ // Get all Batch rows
+ ResultSet RS = m_oDataConn.execQueryWait(PSbatch,10);
+ while (RS.next())
+ { String sXml = RS.getString(1+DaoBatchTable.STR_DATA);
+ BobjStdDTO oDto = BobjStdDTO.getFromXml(sXml);
+ // Get proper Dao's for Index and Snap table
+ String sNewClass = oDto.fullClassName();
+ if (! sNewClass.equals(sPrevClass))
+ { oStore = BobjStore.getStore(sNewClass);
+ sPrevClass = sNewClass;
+ m_oDaoIndex = null;
+ m_oDaoSnap = null;
+ }
+ // Set batch number to current batch
+ oDto.setBatch (p_oBP.getBatchNum());
+ oDto.setStamp (lNow);
+ oDto.setSnapDate(sSnapDt);
+
+ // Insert Snap row
+ PreparedStatement PSins = getDaoSnap(oStore).getPS(DaoSnapTable.PS_INS_SNAP);
+ m_oDaoSnap.setInsValues(PSins,oDto);
+ try { m_oDataConn.execUpdWait(PSins,10); }
+ catch (Exception e) { m_oLogger.error(e.getMessage()); }
+
+ // Insert row in all index tables
+ String[][] saa = oDto.getLocators();
+ for (int i1=0; i1<saa.length; i1++)
+ { m_oDaoIndex = getDaoIndex(oStore.getLocatorTable(i1));
+ PSins = m_oDaoIndex.getPS(DaoIndexTable.PS_INS_INDEX);
+ m_oDaoIndex.setInsValues(PSins,oDto,i1);
+ try { m_oDataConn.execUpdWait(PSins,10); }
+ catch (Exception e) { m_oLogger.error(e.getMessage()); }
+ }
+ }
+ PSbatch.close();
+
+ // Delete batch rows we just used
+ PreparedStatement PSdel = getDaoBatch(BobjStore.getBatchTableName())
+ .getPS(DaoBatchTable.PS_DELETE_BATCH);
+ PSdel.setLong(1,p_oBP.getBatchNum());
+ m_oDataConn.execUpdWait(PSdel,10);
+
+ p_oBP.setField (BatchProcess.ATTRIB.commitStamp,Long.toString(lNow));
+ p_oBP.setStamp (lNow);
+ p_oBP.setSnapDate(sSnapDt);
+
+ oStore = BobjStore.getStore(BatchProcess.class.getName());
+
+ // Update snap table with proper timestamp
+ m_oDaoSnap = null;
+ PreparedStatement PSupd = getDaoSnap(oStore).getPS(DaoSnapTable.PS_UPD_SNAP);
+ getDaoSnap(oStore).setUpdValues(PSupd,p_oBP);
+ m_oDataConn.execUpdWait(PSupd,10);
+
+ // Update index table with proper timestamp
+ m_oDaoIndex = null;
+ PSupd = getDaoIndex(oStore.getLocatorTable()).getPS(DaoIndexTable.PS_UPD_INDEX);
+ getDaoIndex(oStore.getLocatorTable()).setUpdValues(PSupd,p_oBP);
+ m_oDataConn.execUpdWait(PSupd,10);
+
+ } //__________________________________
+
+//______________________________________________________________________________
+// Public local and remote interface methods
+/**
+ */
+ public long newBatch() throws Exception
+ { if (m_lBatchNum > 0) throw
+ new Exception ("Must finish with previous batch before opening new");
+ m_iSeq = 0;
+ try
+ { return m_lBatchNum = getDaoUid().getUidChunk(DaoUidTable.SEQUENCE_BATCH, 1);
+ }
+ catch (Exception e)
+ { m_oLogger.error("BatchHandlerBean.newBatch() FAILED "+ e.getMessage());
+ throw e;
+ }
+ finally { releaseResources(); }
+ } //__________________________________
+
+/**
+ * @return
+ */
+ public long getBatchNum()
+ { return m_lBatchNum;
+ } //__________________________________
+
+/**
+ * @param p_s
+ * @return
+ * @throws Exception
+ */
+ public int addToBatch(String p_s) throws Exception
+ { if (null==p_s) throw
+ new Exception ("Tryng to add a null String to a batch");
+ if (m_lBatchNum < 1) throw
+ new Exception ("Must request batch number before adding objects");
+ try
+ { RowBatch oRow = new RowBatch(m_lBatchNum,++m_iSeq,0,p_s);
+ getDaoBatch(BobjStore.getBatchTableName());
+ PreparedStatement PS = m_oDaoBatch.getPS(DaoBatchTable.PS_INS_BATCHROW);
+ m_oDaoBatch.setInsValues(PS,oRow);
+ m_oDataConn.execUpdWait(PS,1);
+ m_oDataConn.commit();
+ return m_iSeq;
+ }
+ catch (Exception e)
+ { if (null != m_oDataConn) m_oDataConn.rollback();
+ m_oLogger.error("addToBatch() failed",e);
+ throw e;
+ }
+ finally { releaseResources(); }
+ } //__________________________________
+/**
+ * @throws Exception
+ */
+ public void finish() throws Exception
+ { if (m_lBatchNum < 1) return;
+ m_lBatchNum = -1;
+ m_iSeq = 0;
+ } //__________________________________
+
+//______________________________________________________________________________
+// Public local interface methods
+///** KS: I'm commenting this out since we are now using the
+// same interface for local and remote calls. If all
+// works this code can be deleted.
+// */
+// public void commitBatch(BatchProcess p_oBO) throws Exception
+// { try { doCommitBatch(p_oBO); m_oDataConn.commit(); }
+// catch (Exception e)
+// { if (null != m_oDataConn) m_oDataConn.rollback();
+// m_oLogger.error("commitBatch(BatchProcess) FAILED ",e);
+// throw e;
+// }
+// finally { releaseResources(); }
+// } //__________________________________
+
+//______________________________________________________________________________
+// Public remote interface methods
+/**
+ */
+ public void commitBatch(BobjStdDTO p_oDto) throws Exception
+ {
+ doCommitBatch (new BatchProcess(p_oDto));
+ }
+
+} //____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/BatchHandlerBean.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/NotificationHandler.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/NotificationHandler.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/NotificationHandler.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,34 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services.beans;
+
+import java.io.Serializable;
+
+/**
+ * Business interface for NotificationHandler.
+ * @author kstam
+ */
+public interface NotificationHandler
+{
+ public void create() throws Exception;
+ public void sendNotifications( String p_sParams, Serializable p_oMsg ) throws Exception;
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/NotificationHandler.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/NotificationHandlerBean.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/NotificationHandlerBean.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/NotificationHandlerBean.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,123 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services.beans;
+
+import java.io.Serializable;
+
+import javax.ejb.CreateException;
+import javax.ejb.Init;
+import javax.ejb.Local;
+import javax.ejb.Remote;
+import javax.ejb.Remove;
+import javax.ejb.SessionContext;
+import javax.ejb.Stateless;
+import javax.ejb.TransactionAttribute;
+import javax.ejb.TransactionAttributeType;
+import javax.ejb.TransactionManagement;
+import javax.ejb.TransactionManagementType;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.notification.NotificationList;
+import org.jboss.soa.esb.util.Util;
+/**
+ * @author Esteban
+ */
+ at Remote(NotificationHandler.class)
+ at Local(NotificationHandler.class)
+ at TransactionManagement(TransactionManagementType.CONTAINER)
+ at TransactionAttribute(TransactionAttributeType.REQUIRED)
+
+public @Stateless class NotificationHandlerBean implements NotificationHandler
+{
+ private static final long serialVersionUID = 1L;
+ private Logger m_oLogger;
+ SessionContext m_ctxSess;
+
+ public void setSessionContext(SessionContext sessionContext)
+ { m_ctxSess = sessionContext; }
+/**
+ * @throws CreateException
+ */
+ @Init
+ public void create() throws Exception
+ { try
+ { m_oLogger = Util.getDefaultLogger(this.getClass());
+ //Context oCtxInit =
+ // new InitialContext();
+
+ m_oLogger.info(this.toString()+" Created");
+ }
+ catch (Exception e)
+ { m_oLogger.error("EJB Create Failed <"+e.getMessage()+">");
+ throw new Exception(e.getMessage());
+ }
+ } //__________________________________
+
+ @Remove
+ public void ejbRemove()
+ { m_oLogger.info(this.toString()+" Removed");
+ } //__________________________________
+
+// Utility Methods
+
+ protected void releaseResources()
+ {
+ } //__________________________________
+
+//______________________________________________________________________________
+// Public local and remote interface methods
+
+ private static final String s_sDfltList =
+ "<NotificationList type=\"Error\" >"
+ +" <target"
+ +" class = \"NotifyEmail\""
+ +" from = \"JbossEsbDefault at myOrg.com\""
+ +" sendTo = \"\""
+ +" subject = \"Default JBoss ESB Notification\""
+ +" message = \" Message from JBoss ESB :\""
+ +" />"
+ +" </NotificationList>"
+ ;
+ private static NotificationList s_dfltList;
+ static
+ { try
+ { s_dfltList = new NotificationList(ConfigTree.fromXml(s_sDfltList)); }
+ catch (Exception e) { e.printStackTrace(System.out); }
+ }
+/**
+ * @param p_sParams
+ * @param p_sMsg
+ * @throws Exception
+ */
+ public void sendNotifications(String p_sParams, Serializable p_oMsg)
+ throws Exception
+ {
+ ConfigTree oP = (null==p_sParams)?null:ConfigTree.fromXml(p_sParams);
+ NotificationList m_oL = (null==oP) ? s_dfltList : new NotificationList(oP);
+ m_oL.sendNotification(p_oMsg);
+ } //__________________________________
+
+} //____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/NotificationHandlerBean.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/PersistHandler.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/PersistHandler.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/PersistHandler.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,43 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services.beans;
+
+import org.jboss.soa.esb.util.BobjStdDTO;
+
+/**
+ * @author kstam
+ */
+public interface PersistHandler
+{
+ public void create() throws Exception;
+
+ public long getUidChunk( int p_iQ ) throws Exception;
+
+ public void rmvObject( String p_sClassName,long p_lUid ) throws Exception;
+
+ public long addDTO( BobjStdDTO p_oDto ) throws Exception;
+
+ public BobjStdDTO getDTO( String p_sClassName,long p_lUid ) throws Exception;
+
+ public void rplDTO( BobjStdDTO p_oDto ) throws Exception;
+
+}
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/PersistHandler.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/PersistHandlerBean.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/PersistHandlerBean.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/PersistHandlerBean.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,369 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services.beans;
+
+import java.io.ObjectStreamClass;
+import java.sql.Date;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.text.SimpleDateFormat;
+
+import javax.ejb.CreateException;
+import javax.ejb.Init;
+import javax.ejb.Local;
+import javax.ejb.Remote;
+import javax.ejb.Remove;
+import javax.ejb.SessionContext;
+import javax.ejb.Stateless;
+import javax.ejb.TransactionManagement;
+import javax.ejb.TransactionManagementType;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.sql.DataSource;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.helpers.persist.JdbcCleanConn;
+import org.jboss.soa.esb.internal.core.objectstore.BobjStore;
+import org.jboss.soa.esb.internal.core.objectstore.DaoIndexTable;
+import org.jboss.soa.esb.internal.core.objectstore.DaoSnapTable;
+import org.jboss.soa.esb.internal.core.objectstore.DaoUidTable;
+import org.jboss.soa.esb.util.BobjStdDTO;
+import org.jboss.soa.esb.util.ObjLocator;
+import org.jboss.soa.esb.util.Util;
+
+/**
+ * @author Esteban
+ */
+ at Remote(PersistHandler.class)
+ at Local(PersistHandler.class)
+ at TransactionManagement(TransactionManagementType.BEAN)
+public @Stateless class PersistHandlerBean implements PersistHandler
+{
+ private static final long serialVersionUID = 1L;
+ private Logger m_oLogger;
+ SessionContext m_ctxSess;
+
+ private JdbcCleanConn m_oUidConn;
+ private JdbcCleanConn m_oDataConn;
+
+ private static final int s_iChunkSize=100;
+ private long m_lUid;
+ private int m_iChunkLeft=0;
+
+ private DaoUidTable m_oDaoUid;
+ private DaoSnapTable m_oDaoSnap;
+ private DaoIndexTable[] m_oaDaoIndex;
+
+ public void setSessionContext(SessionContext sessionContext)
+ { m_ctxSess = sessionContext; }
+/**
+ * Create method. Should get called to initialize this class.
+ * @throws CreateException
+ */
+ @Init
+ public void create() throws Exception
+ { try
+ { m_oLogger = Util.getDefaultLogger(this.getClass());
+ Context oCtxInit = new InitialContext();
+ String sDSjndiName = BobjStore.getDataSourceJndi();
+ DataSource oDS = (DataSource)oCtxInit.lookup(sDSjndiName);
+ m_oUidConn = new JdbcCleanConn(oDS);
+ m_oDataConn = new JdbcCleanConn(oDS);
+
+ Class oCls = BobjStdDTO.class;
+ ObjectStreamClass XX = ObjectStreamClass.lookup(oCls);
+ System.out.println(XX.getSerialVersionUID());
+ System.out.println(oCls.getProtectionDomain().getCodeSource().getLocation());
+
+ m_oLogger.info(this.toString()+" Created");
+ }
+ catch (Exception e)
+ { m_oLogger.error("EJB Create Failed <"+e.getMessage()+">");
+ throw e;
+ }
+ } //__________________________________
+
+ @Remove
+ public void remove()
+ { m_oLogger.info(this.toString()+" Removed");
+ } //__________________________________
+
+
+ /**
+ * @param p_sClassName - String Fully qualified name of class to be retrieved
+ * @param p_lUid
+ * @return
+ * @throws Exception
+ */
+ public BobjStdDTO getDTO (String p_sClassName, long p_lUid) throws Exception
+ { try { return doGetSnapshot(BobjStore.getStore(p_sClassName), p_lUid);}
+ catch (Exception e) { throw e; }
+ finally { releaseResources(); }
+ } //__________________________________
+ /**
+ *
+ * @param p_oDto BobjStdDTO - Serialized BaseBusinessObject that has to be replaced
+ * @throws Exception
+ */
+ public void rplDTO(BobjStdDTO p_oDto) throws Exception
+ { try
+ { doRplSnapshot(p_oDto);
+ m_oDataConn.commit();
+ }
+ catch (Exception e)
+ { try { if (null != m_oDataConn) m_oDataConn.rollback(); }
+ catch (Exception eRoll) {}
+ throw e;
+ }
+ finally { releaseResources(); }
+ } //__________________________________
+
+// ______________________________________________________________________________
+// Public local and remote interface methods
+ /**
+ */
+ public long getUidChunk (int p_iQ) throws Exception
+ { try { return getDaoUid().getUidChunk(DaoUidTable.SEQUENCE_OBJ,p_iQ); }
+ catch (Exception e) { throw e;}
+ finally { releaseResources(); }
+ } //__________________________________
+ /**
+ * @param p_sClassName
+ * @param p_lUid
+ * @throws Exception
+ */
+ public void rmvObject(String p_sClassName, long p_lUid) throws Exception
+ { try { doRmvSnapshot(BobjStore.getStore(p_sClassName), p_lUid); m_oDataConn.commit(); }
+ catch (Exception e)
+ { try { if (null != m_oDataConn) m_oDataConn.rollback(); }
+ catch (Exception eRoll) {}
+ throw e;
+ }
+ finally { releaseResources(); }
+ } //__________________________________
+
+ /**
+ */
+ public long addDTO(BobjStdDTO p_oDto) throws Exception
+ { try
+ { long lRet = doAddSnapshot(p_oDto);
+ m_oDataConn.commit();
+ return lRet;
+ }
+ catch (Exception e)
+ { try { if (null != m_oDataConn) m_oDataConn.rollback(); }
+ catch (Exception eRoll) {}
+ throw e;
+ }
+ finally { releaseResources(); }
+ } //__________________________________
+
+
+// Utility Methods
+
+ private DaoUidTable getDaoUid() throws Exception
+ { if (null==m_oDaoUid) m_oDaoUid
+ = new DaoUidTable(m_oUidConn,BobjStore.getUidTableName());
+ return m_oDaoUid;
+ } //__________________________________
+
+ private DaoSnapTable getDaoSnap(BobjStore p_oSt) throws Exception
+ { if (null==m_oDaoSnap)
+ m_oDaoSnap = new DaoSnapTable(m_oDataConn,p_oSt);
+ return m_oDaoSnap;
+ } //__________________________________
+
+ private DaoIndexTable getDaoIndex(BobjStore p_oSt,int p_i) throws Exception
+ { if (null==m_oaDaoIndex)
+ m_oaDaoIndex = new DaoIndexTable[p_oSt.allLocatorTables().length];
+ if (null==m_oaDaoIndex[p_i])
+ m_oaDaoIndex[p_i] = new DaoIndexTable(m_oDataConn,p_oSt.getLocatorTable(p_i));
+ return m_oaDaoIndex[p_i];
+ } //__________________________________
+
+ protected ObjLocator[] doAddLocators(BobjStore pStore,BobjStdDTO p_oDto) throws Exception
+ { long lUid = p_oDto.getUid();
+ if (lUid < 1)
+ { lUid = doAssignUid();
+ p_oDto.setUid(lUid);
+ p_oDto.setSnap(lUid);
+ }
+ long lStamp = p_oDto.getStamp();
+ if (lStamp < 1)
+ p_oDto.setStamp(lStamp = System.currentTimeMillis());
+
+ String[][] saa = p_oDto.getLocators();
+ ObjLocator[]oaRet = new ObjLocator[saa.length];
+ int iCurr = 0;
+ for (int i1=0; i1<saa.length; i1++)
+ { String[] saCurr = saa[i1];
+ ObjLocator oLoc = new ObjLocator(lUid,saCurr);
+ oaRet[iCurr] = oLoc;
+ String sTbl = pStore.getLocatorTable(iCurr++);
+ if (null == sTbl)
+ continue;
+
+ DaoIndexTable oDao = new DaoIndexTable(m_oDataConn,sTbl);
+ PreparedStatement PS = oDao.getPS(DaoIndexTable.PS_INS_INDEX);
+
+ PS.setLong (DaoIndexTable.OBJECT_UID,lUid);
+ PS.setLong (DaoIndexTable.TIMESTAMP,lStamp);
+ PS.setLong (DaoIndexTable.UID_SNAP,p_oDto.getSnap());
+ PS.setString (DaoIndexTable.SNAP_DATE,s_oY4md.format(new Date(lStamp)));
+
+ int iFld = DaoIndexTable.FIRST_FIELD;
+ for (int i2=0; i2<saCurr.length; i2++)
+ { String sFldVal = saCurr[i2];
+ PS.setString(iFld++,(null == sFldVal)?"":sFldVal);
+ }
+ m_oDataConn.execUpdWait(PS,1);
+ }
+
+ return oaRet;
+ } //__________________________________
+
+ private void doDelLocators (BobjStore p_oSt, long p_lUid)
+ { if (p_lUid < 1) return;
+ int iQlocs = p_oSt.allLocatorTables().length;
+ for (int i1=0; i1<iQlocs; i1++)
+ try
+ { PreparedStatement PS = getDaoIndex(p_oSt,i1).getPS(DaoIndexTable.PS_RMV_INDEX);
+ PS.setLong(1,p_lUid);
+ m_oDataConn.execUpdWait(PS,5);
+ }
+ catch (Exception e)
+ { m_oLogger.warn("doDelLocator() FAILED <"+e.getMessage()+">");
+ }
+ } //__________________________________
+
+ private void doDelOneSnap (BobjStore p_oSt,long p_lUid) throws Exception
+ { if (p_lUid < 1) return;
+ PreparedStatement PS = getDaoSnap(p_oSt).getPS(DaoSnapTable.PS_RMV_SNAP);
+ PS.setLong(1,p_lUid);
+ m_oDataConn.execUpdWait(PS,5);
+ } //__________________________________
+
+ private void doRmvSnapshot (BobjStore p_oSt,long p_lUid) throws Exception
+ {
+ PreparedStatement PS = getDaoSnap(p_oSt).getPS(DaoSnapTable.PS_SEL_4UPD);
+ PS.setLong(1,p_lUid);
+ ResultSet rs = m_oDataConn.execQueryWait(PS,30);
+ if (! rs.next()) throw new Exception("Non existing Snapshot");
+ long lObjUid = rs.getLong(DaoSnapTable.OBJECT_UID);
+
+ doDelOneSnap(p_oSt,p_lUid);
+ doDelLocators(p_oSt,lObjUid);
+
+ } //__________________________________
+
+ private void doRplSnapshot(BobjStdDTO p_oDto)
+ throws Exception
+ { long lSnapUid = p_oDto.getSnap();
+ BobjStore oSt = BobjStore.getStore(p_oDto);
+ doDelOneSnap(oSt,lSnapUid);
+ doDelLocators(oSt,p_oDto.getUid());
+ doAddSnapshot(p_oDto,false);
+ } //__________________________________
+
+ private long doAddSnapshot(BobjStdDTO p_oDto)
+ throws Exception
+ { return doAddSnapshot(p_oDto,true);
+ } //__________________________________
+
+ SimpleDateFormat s_oY4md = new SimpleDateFormat("yyyyMMdd");
+ private long doAddSnapshot(BobjStdDTO p_oDto, boolean p_bNewVrs)
+ throws Exception
+ { long lObjUid = p_oDto.getUid();
+ if (lObjUid < 1) p_oDto.setUid(lObjUid=doAssignUid());
+ p_oDto.setSnap(lObjUid);
+
+ // Set Timestamp
+ long lNow = System.currentTimeMillis();
+ p_oDto.setStamp(lNow);
+ p_oDto.setSnapDate(s_oY4md.format(new Date(lNow)));
+
+ BobjStore oSt = BobjStore.getStore(p_oDto);
+ PreparedStatement PS = getDaoSnap(oSt).getPS(DaoSnapTable.PS_INS_SNAP);
+ getDaoSnap(oSt).setInsValues(PS,p_oDto);
+
+ m_oDataConn.execUpdWait(PS,1);
+
+ int iQlocs = oSt.allLocatorTables().length;
+ for (int i1=0; i1<iQlocs; i1++)
+ { DaoIndexTable oDao = getDaoIndex(oSt,i1);
+ PS = oDao.getPS(DaoIndexTable.PS_INS_INDEX);
+ oDao.setInsValues(PS,p_oDto);
+ try { m_oDataConn.execUpdWait(PS,1); }
+ catch (Exception e)
+ { PS = oDao.getPS(DaoIndexTable.PS_UPD_INDEX);
+ oDao.setUpdValues(PS,p_oDto);
+ m_oDataConn.execUpdWait(PS,10);
+ }
+ }
+
+ return lObjUid;
+ } //__________________________________
+
+ protected void updateLocTbl(BobjStdDTO p_oDto, int p_iNum)
+ throws Exception
+ { BobjStore oSt = BobjStore.getStore(p_oDto);
+ String sTbl = oSt.getLocatorTable(p_iNum);
+ if (null==sTbl) return;
+ DaoIndexTable oDao = getDaoIndex(oSt,p_iNum);
+ PreparedStatement PSupd = oDao.getPS(DaoIndexTable.PS_UPD_INDEX);
+ oDao.setUpdValues(PSupd, p_oDto);
+
+ m_oDataConn.execUpdWait(PSupd,10);
+ } //__________________________________
+
+ private BobjStdDTO doGetSnapshot (BobjStore p_oSt,long p_lUid) throws Exception
+ { PreparedStatement PS = getDaoSnap(p_oSt).getPS(DaoSnapTable.PS_SEL_SNAP);
+ PS.setLong(1,p_lUid);
+ ResultSet rs = m_oDataConn.execQueryWait(PS,30);
+ if (! rs.next()) throw new Exception("Non existing Snapshot");
+ BobjStdDTO oRet = (BobjStdDTO)getDaoSnap(p_oSt).getFromRS(rs);
+ return oRet;
+ } //__________________________________
+
+ private void releaseResources()
+ { if (null!=m_oaDaoIndex)
+ for (int i1=0; i1<m_oaDaoIndex.length; i1++)
+ m_oaDaoIndex[i1] = null;
+ m_oaDaoIndex = null;
+ m_oDaoSnap = null;
+ m_oDaoUid = null;
+ if (null != m_oDataConn) m_oDataConn.release();
+ if (null != m_oUidConn) m_oUidConn.release();
+ } //__________________________________
+
+ private long doAssignUid() throws Exception
+ { if (m_iChunkLeft < 1)
+ { m_lUid = getDaoUid().getUidChunk(DaoUidTable.SEQUENCE_OBJ, s_iChunkSize);
+ m_iChunkLeft = s_iChunkSize;
+ }
+ m_iChunkLeft--;
+ return ++m_lUid;
+ } //__________________________________
+
+
+
+} //____________________________________________________________________________
Property changes on: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/beans/PersistHandlerBean.java
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/MessageStoreFactoryImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/MessageStoreFactoryImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/MessageStoreFactoryImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,111 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author daniel.brum at jboss.com
+ */
+
+
+package org.jboss.internal.soa.esb.persistence.format;
+
+import java.net.URI;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Properties;
+
+
+import org.jboss.internal.soa.esb.persistence.format.db.DBMessageStorePlugin;
+import org.jboss.soa.esb.services.persistence.MessageStore;
+import org.jboss.soa.esb.services.persistence.MessageStoreFactory;
+
+public class MessageStoreFactoryImpl extends MessageStoreFactory {
+
+ private final Hashtable<URI, MessageStorePlugin> messageStoreFormats = new Hashtable<URI, MessageStorePlugin>();
+
+
+ public MessageStoreFactoryImpl() {
+ reset();
+ }
+
+ public MessageStore getMessageStore() {
+ return ((MessageStorePlugin) messageStoreFormats.get(MessageStoreType.DEFAULT_TYPE)).getMessageStore();
+ }
+
+ public MessageStore getMessageStore(URI type) {
+ if (type == null)
+ throw new IllegalArgumentException();
+
+ MessageStorePlugin plugin = messageStoreFormats.get(type);
+
+ if (plugin != null)
+ return plugin.getMessageStore();
+ else
+ return null;
+ }
+
+ public void reset ()
+ {
+ messageStoreFormats.clear();
+ /*
+ * Go through the properties loaded from the property file. Anything
+ * starting with MessageStorePlugin.MESSAGE_STORE_PLUGIN is assumed to be a plugin
+ * that we load and add to the list.
+ */
+
+ Properties properties = System.getProperties();
+
+ if (properties != null)
+ {
+ Enumeration names = properties.propertyNames();
+
+ while (names.hasMoreElements())
+ {
+ String attrName = (String) names.nextElement();
+
+ if (attrName.startsWith(MessageStorePlugin. MESSAGE_STORE_PLUGIN))
+ {
+ try
+ {
+ String pluginName = properties.getProperty(attrName);
+ Class c = Class.forName(pluginName);
+ MessageStorePlugin thePlugin = (MessageStorePlugin) c.newInstance();
+
+ messageStoreFormats.put(thePlugin.getType(), thePlugin);
+ }
+ catch (ClassNotFoundException ex)
+ {
+ ex.printStackTrace();
+ }
+ catch (IllegalAccessException ex)
+ {
+ ex.printStackTrace();
+ }
+ catch (InstantiationException ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+ }
+ }
+
+ /*
+ * Now add the default(s).
+ */
+ messageStoreFormats.put(MessageStoreType.DATABASE, new DBMessageStorePlugin());
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/MessageStorePlugin.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/MessageStorePlugin.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/MessageStorePlugin.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,54 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author daniel.brum at jboss.com
+ */
+
+package org.jboss.internal.soa.esb.persistence.format;
+
+import java.net.URI;
+
+import org.jboss.soa.esb.services.persistence.MessageStore;
+
+
+/**
+* Used to plug in new message stores dynamically. Each plugin is responsible for
+* returning a message store implementation that knows how to handle its own persistence
+* mechanism, i.e: database, file, etc.
+*
+* @author Daniel Brum
+*
+*/
+
+public interface MessageStorePlugin {
+
+public static final String MESSAGE_STORE_PLUGIN = "org.jboss.soa.esb.persistence.base.plugin";
+
+ /**
+ * @return the message instance.
+ */
+
+ public MessageStore getMessageStore ();
+
+ /**
+ * @return the unique identifier for this message store plugin.
+ */
+
+ public URI getType ();
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/MessageStoreType.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/MessageStoreType.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/MessageStoreType.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author daniel.brum at jboss.com
+ */
+
+/**
+ * You get a message store of a specific type when you need it.
+ *
+ * @author Daniel Brum
+ *
+ */
+
+package org.jboss.internal.soa.esb.persistence.format;
+
+import java.net.URI;
+
+public abstract class MessageStoreType {
+ /*
+ * DO NOT reorder this list. New types may be added as required.
+ */
+
+ public static URI DATABASE = null;
+
+ public static URI DEFAULT_TYPE = null;
+
+ static
+ {
+ try
+ {
+ DATABASE = new URI("urn:jboss:esb:persistence:type:DATABASE");
+
+ DEFAULT_TYPE = DATABASE;
+ }
+ catch (Exception ex)
+ {
+ throw new ExceptionInInitializerError(ex.toString());
+ }
+
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/db/DBConnectionManager.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/db/DBConnectionManager.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/db/DBConnectionManager.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,99 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author daniel.brum at jboss.com
+ */
+
+package org.jboss.internal.soa.esb.persistence.format.db;
+
+import java.sql.Connection;
+
+import org.jboss.soa.esb.common.Configuration;
+
+import com.mchange.v2.c3p0.ComboPooledDataSource;
+
+
+public class DBConnectionManager {
+
+ private static DBConnectionManager instance =null;
+
+ protected ComboPooledDataSource pooledDS = null;
+
+ private static final Object foo = new Integer(0);
+
+
+ protected DBConnectionManager() {}
+
+ public static DBConnectionManager getInstance() {
+ if (null != instance) {
+ return instance;
+ } synchronized(foo) {
+ if (null != instance)
+ return instance;
+ try {
+ instance = new DBConnectionManager();
+ instance.init();
+ }catch(Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+
+ return instance;
+ }
+
+ }
+
+ private void init() throws Exception{
+ System.out.println("Initializing DBConnectionManager2...");
+ pooledDS = new ComboPooledDataSource();
+
+ pooledDS.setDriverClass(Configuration.getStoreDriver());
+ pooledDS.setJdbcUrl(Configuration.getStoreUrl());
+ pooledDS.setUser(Configuration.getStoreUser());
+ pooledDS.setPassword(Configuration.getStorePwd());
+ pooledDS.setMinPoolSize(Integer.valueOf(Configuration.getStorePoolMinSize()));
+ pooledDS.setInitialPoolSize(Integer.valueOf(Configuration.getStorePoolInitialSize()));
+ pooledDS.setMaxPoolSize(Integer.valueOf(Configuration.getStorePoolMaxSize()));
+ pooledDS.setAutomaticTestTable(Configuration.getStorePoolTestTable());
+ pooledDS.setCheckoutTimeout(Integer.valueOf(Configuration.getStorePoolTimeoutMillis()));
+ }
+
+
+
+ public Connection getConnection() throws Exception{
+
+ Connection conn = null;
+
+ //TODO: figure out why this is neccessary - pool should never return null if DB is up and can connect
+ //testing showed null was being returned from pool in QA test MessageStoreTest
+ while (true)
+ {
+ if (null!=pooledDS)
+ if (null != (conn=pooledDS.getConnection()))
+ break;
+ else
+ System.out.println("Null pooledDS");
+ try { Thread.sleep(1000); }
+ catch(Exception e) {}
+ }
+
+ return conn;
+
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/db/DBConnectionManagerDBCP.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/db/DBConnectionManagerDBCP.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/db/DBConnectionManagerDBCP.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,101 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author daniel.brum at jboss.com
+ */
+
+package org.jboss.internal.soa.esb.persistence.format.db;
+
+
+import java.sql.Connection;
+
+import org.apache.commons.pool.ObjectPool;
+import org.apache.commons.pool.impl.GenericObjectPool;
+import org.apache.commons.dbcp.ConnectionFactory;
+import org.apache.commons.dbcp.PoolingDataSource;
+import org.apache.commons.dbcp.PoolableConnectionFactory;
+import org.apache.commons.dbcp.DriverManagerConnectionFactory;
+import org.jboss.soa.esb.common.Configuration;
+
+/*
+ * the DBConnectionManager class (singleton) is used by classes implenting the MessageStore interface
+ * to obtain a connection to the persistence store database.
+ * This class uses the Apache Commons DB Connection Pooling to handle all aspects of managing the connections
+ * in a pool.
+ * $author Daniel Brum
+ */
+
+
+public class DBConnectionManagerDBCP {
+
+
+
+ private static DBConnectionManagerDBCP instance =null;
+ private PoolingDataSource dataSource = null;
+
+ protected DBConnectionManagerDBCP() {}
+
+ public static DBConnectionManagerDBCP getInstance() {
+ if (null == instance) {
+ try {
+ instance = new DBConnectionManagerDBCP();
+ instance.init();
+ }catch(Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+ return instance;
+ }
+
+ private void init() throws Exception{
+
+ String connectURL = Configuration.getStoreUrl();
+ Class.forName(Configuration.getStoreDriver());
+
+ ObjectPool connectionPool = new GenericObjectPool(null);
+
+ ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(connectURL,
+ Configuration.getStoreUser(), Configuration.getStorePwd());
+
+ @SuppressWarnings("unused")
+
+ PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory,
+ connectionPool,null,null,false,false);
+
+ int poolSize = Integer.valueOf(Configuration.getStorePoolInitialSize());
+
+ //add the max # of connections into the pool
+ for (int i=0 ; i<poolSize ; i++) {
+ try {
+ connectionPool.addObject();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ dataSource = new PoolingDataSource(connectionPool);
+ }
+
+ public Connection getConnection() throws Exception{
+ return dataSource.getConnection();
+ }
+
+
+
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/db/DBMessageStorePlugin.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/db/DBMessageStorePlugin.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/db/DBMessageStorePlugin.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author daniel.brum at jboss.com
+ */
+
+package org.jboss.internal.soa.esb.persistence.format.db;
+
+import java.net.URI;
+
+import org.jboss.internal.soa.esb.persistence.format.MessageStorePlugin;
+import org.jboss.internal.soa.esb.persistence.format.MessageStoreType;
+import org.jboss.soa.esb.services.persistence.MessageStore;
+
+/**
+ * @author dbrum
+ *
+ */
+public class DBMessageStorePlugin implements MessageStorePlugin {
+
+
+ public MessageStore getMessageStore() {
+ return new MessageStoreImpl();
+ }
+
+
+ public URI getType() {
+ return MessageStoreType.DATABASE;
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/db/MessageStoreImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/db/MessageStoreImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/persistence/db/MessageStoreImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,162 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author daniel.brum at jboss.com
+ */
+
+package org.jboss.internal.soa.esb.persistence.format.db;
+
+import java.io.Serializable;
+import java.net.URI;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.UUID;
+
+import org.jboss.internal.soa.esb.thirdparty.Base64;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.services.persistence.MessageStore;
+import org.jboss.soa.esb.util.Util;
+
+
+public class MessageStoreImpl implements MessageStore {
+
+
+ protected DBConnectionManager mgr = null;
+ protected Connection conn = null;
+ protected ResultSet rs = null;
+ protected PreparedStatement ps = null;
+
+ public MessageStoreImpl() {
+ mgr = DBConnectionManager.getInstance();
+ }
+
+ public synchronized URI addMessage(Message message){
+
+// String messageString = null;
+ URI uid = null;
+
+
+ try {
+ conn = mgr.getConnection();
+
+ uid = new URI("urn:jboss:esb:message:UID:" + UUID.randomUUID().toString());
+
+ String messageString = Base64.encodeObject(Util.serialize(message));
+
+// if (message.getType().equals(MessageType.JBOSS_XML) ) {
+// Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
+// ((org.jboss.internal.soa.esb.message.format.xml.MessageImpl)message).toXML(doc);
+// StringWriter sWriter = new StringWriter();
+// OutputFormat format = new OutputFormat();
+// format.setIndenting(true);
+// XMLSerializer xmlS = new XMLSerializer(sWriter, format);
+// xmlS.asDOMSerializer();
+// xmlS.serialize(doc);
+// messageString = sWriter.toString();
+// }
+//
+// if (message.getType().equals(MessageType.JAVA_SERIALIZED) ) {
+// messageString = Base64.encodeObject((Serializable)message);
+// }
+
+ //insert into the database
+ String sql = "insert into message(uid, type, message) values(?,?,?)";
+ ps = conn.prepareStatement(sql);
+ ps.setString(1, uid.toString());
+ ps.setString(2, message.getType().toString());
+ ps.setString(3, messageString);
+ ps.execute();
+
+ } catch (Exception e) { e.printStackTrace(); }
+ finally { release(); }
+
+ return uid;
+ }
+
+ public synchronized Message getMessage(URI uid) throws Exception{
+
+ String sql = "select uid,type,message from message where uid=?";
+ Message message = null;
+
+ try {
+ conn = mgr.getConnection();
+ ps = conn.prepareStatement(sql);
+ ps.setString(1, uid.toString());
+
+ rs = ps.executeQuery();
+ if (! rs.next()) throw new Exception("Non existing Message for UID: " + uid);
+// URI type= URI.create(rs.getString(2));
+ message = Util.deserialize((Serializable)Base64.decodeToObject(rs.getString(3)));
+
+
+// if (type.equals(MessageType.JBOSS_XML)) {
+//
+// InputStream inStream = new ByteArrayInputStream(msg.getBytes());
+// DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+// DocumentBuilder builder = factory.newDocumentBuilder();
+// Document doc = builder.parse(inStream);
+//
+// org.jboss.internal.soa.esb.message.format.xml.MessageImpl xmlMessage =
+// new org.jboss.internal.soa.esb.message.format.xml.MessageImpl();
+// xmlMessage.fromXML(doc);
+// message=xmlMessage;
+//
+// }
+// if (type.equals(MessageType.JAVA_SERIALIZED)) {
+//
+// Object byteMessage = Base64.decodeToObject(msg);
+// message = (org.jboss.internal.soa.esb.message.format.serialized.MessageImpl)byteMessage;
+// }
+
+ } catch (SQLException e) {
+ e.printStackTrace();
+ return null;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }finally { release(); }
+
+ return message;
+
+ }
+
+ private void release() {
+
+ if (conn != null) {
+ if (rs != null) {
+ try{
+ rs.close();
+ }catch (Exception e) {}
+ }
+ try{
+ ps.close();
+ }catch (Exception e1){}
+ try{
+ conn.close();
+ }catch(Exception e2){}
+ }
+ }
+
+
+
+
+
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/registry/JAXRRegistryImpl.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/registry/JAXRRegistryImpl.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/registry/JAXRRegistryImpl.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,629 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services.registry;
+
+import java.net.PasswordAuthentication;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Properties;
+import java.util.Set;
+
+import javax.xml.registry.BulkResponse;
+import javax.xml.registry.BusinessLifeCycleManager;
+import javax.xml.registry.BusinessQueryManager;
+import javax.xml.registry.Connection;
+import javax.xml.registry.ConnectionFactory;
+import javax.xml.registry.FindQualifier;
+import javax.xml.registry.JAXRException;
+import javax.xml.registry.JAXRResponse;
+import javax.xml.registry.RegistryService;
+import javax.xml.registry.infomodel.EmailAddress;
+import javax.xml.registry.infomodel.Key;
+import javax.xml.registry.infomodel.Organization;
+import javax.xml.registry.infomodel.PersonName;
+import javax.xml.registry.infomodel.PostalAddress;
+import javax.xml.registry.infomodel.RegistryObject;
+import javax.xml.registry.infomodel.Service;
+import javax.xml.registry.infomodel.ServiceBinding;
+import javax.xml.registry.infomodel.TelephoneNumber;
+import javax.xml.registry.infomodel.User;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
+import org.jboss.internal.soa.esb.addressing.EPRHelper;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.common.Configuration;
+/**
+ * Utility class for the Registry.
+ * If need be we can extract the interface from here, add a factory and have JAXR as a plugin, allowing
+ * for other RegistryAPIs.
+ *
+ * @author Kurt Stam
+ */
+public class JAXRRegistryImpl implements Registry
+{
+ private static Logger logger = Logger.getLogger(JAXRRegistryImpl.class);
+ public static Set<PasswordAuthentication> creds = new HashSet<PasswordAuthentication>();
+ private static Properties props = new Properties();
+ private static Organization jbossESBOrganization;
+
+ private static void init()
+ {
+ props = new Properties();
+ props.setProperty("javax.xml.registry.queryManagerURL", Configuration.getRegistryQueryManageURI());
+ props.setProperty("javax.xml.registry.lifeCycleManagerURL", Configuration.getRegistryLifecycleManagerURI());
+ props.setProperty("javax.xml.registry.factoryClass", Configuration.getRegistryFactoryClass());
+ props.setProperty("scout.proxy.transportClass", Configuration.getRegistryScoutTransportClass());
+ String user = Configuration.getRegistryUser();
+ String password = Configuration.getRegistryPassword();
+ PasswordAuthentication passwdAuth = new PasswordAuthentication(user, password.toCharArray());
+ creds.add(passwdAuth);
+ }
+
+ /**
+ * Creates a connecton to a JAXR capable registy.
+ *
+ * @return Connection to a Registry using JAXR.
+ */
+ protected static Connection getConnection()
+ {
+ Connection connection = null;
+ init();
+ try
+ { // Create the connection, passing it the configuration properties
+ ConnectionFactory factory = ConnectionFactory.newInstance();
+ factory.setProperties(props);
+ connection = factory.createConnection();
+ } catch (JAXRException e) {
+ logger.log(Priority.ERROR, "Could not set up a connection to the Registry. " + e.getMessage(), e);
+ }
+ return connection;
+ }
+ /**
+ * Closes the connection to the Registry
+ */
+ protected static void closeConnection(Connection connection)
+ {
+ try {
+ if (connection!=null && !connection.isClosed()) {
+ connection.close();
+ }
+ } catch (JAXRException je) {
+ logger.log(Priority.ERROR, je.getMessage(), je);
+ }
+ }
+ /**
+ * Publish an EPR to the Registry
+ */
+ protected Service registerService(String category, String serviceName, String serviceDescription) throws JAXRException
+ {
+ Service service =null;
+ Organization organization = getJBossESBOrganization();
+ Connection connection = JAXRRegistryImpl.getConnection();
+ try {
+ connection.setCredentials(JAXRRegistryImpl.creds);
+ RegistryService rs = connection.getRegistryService();
+ BusinessLifeCycleManager blm = rs.getBusinessLifeCycleManager();
+ //Adding the category as prefix for the name
+ service = blm.createService(blm.createInternationalString(category + ":" + serviceName));
+ service.setDescription(blm.createInternationalString(serviceDescription));
+// ClassificationScheme cScheme = getClassificationScheme(blm, "uddi-org:general_keywords", "");
+// Classification classification = blm.createClassification(cScheme, "JBossESB" + category, category);
+// service.addClassification(classification);
+ organization.addService(service);
+ saveRegistryObject(service);
+ } finally {
+ closeConnection(connection);
+ }
+ return service;
+ }
+ /**
+ * Remove an EPR from the Registry
+ */
+ public void unRegisterService(String category, String serviceName) throws RegistryException{
+ try {
+ Organization organization = getJBossESBOrganization();
+ for (Iterator i=organization.getServices().iterator(); i.hasNext();) {
+ Service service = (Service) i.next();
+ if (service.getName().getValue().equals(category + ":" + serviceName)) {
+ organization.removeService(service);
+ saveRegistryObject(organization);
+ return;
+ }
+ }
+ } catch (JAXRException je) {
+ throw new RegistryException(je.getLocalizedMessage(), je);
+ }
+ }
+ /**
+ * Publish an EPR to the Registry
+ */
+ public void registerEPR(String category, String serviceName, String serviceDescription, EPR epr, String eprDescription)
+ throws RegistryException
+ {
+ Connection connection = JAXRRegistryImpl.getConnection();
+ try {
+ //Find the service
+ Service service = findService(category,serviceName);
+ if (service==null) {
+ logger.log(Priority.INFO, "Service " + serviceName + " does not yet exist, creating now..");
+ service = registerService(category, serviceName, serviceDescription);
+ }
+ connection.setCredentials(JAXRRegistryImpl.creds);
+ RegistryService rs = connection.getRegistryService();
+ BusinessLifeCycleManager blm = rs.getBusinessLifeCycleManager();
+// BusinessQueryManager bqm = rs.getBusinessQueryManager();
+ ServiceBinding serviceBinding = blm.createServiceBinding();
+ serviceBinding.setDescription(blm.createInternationalString(eprDescription));
+ String xml = EPRHelper.toXMLString(epr);
+ serviceBinding.setAccessURI(URLEncoder.encode(xml,"UTF-8"));
+
+// The following code would store the EPR xml as an ExtrinsicObject, but scout does not
+// have an implementation for it.
+// DataHandler repositoryItem = new DataHandler(xml,"text/xml");
+// ExtrinsicObject eo = blm.createExtrinsicObject(repositoryItem);
+// eo.setName(blm.createInternationalString("EPR"));
+// eo.setMimeType("text/xml");
+// String conceptId = "urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExtrinsicObject:XML";
+// Concept objectTypeConcept = (Concept) bqm.getRegistryObject(conceptId);
+// ((ExtrinsicObjectImpl)eo).setObjectType(objectTypeConcept);
+
+// Concept specConcept = blm.createConcept(null, "HelloConcept", "");
+// String schemeName = "uddi-org:types";
+// ClassificationScheme uddiOrgTypes =
+// bqm.findClassificationSchemeByName(null, schemeName);
+// Classification wsdlSpecClassification =
+// blm.createClassification(uddiOrgTypes,
+// "eprSpec", xml);
+// specConcept.addClassification(wsdlSpecClassification);
+// Collection<Concept> concepts = new ArrayList<Concept>();
+// concepts.add(specConcept);
+// BulkResponse br=blm.saveConcepts(concepts);
+// Key conceptKey = null;
+// if (br.getStatus() == JAXRResponse.STATUS_SUCCESS) {
+// Collection keys = br.getCollection();
+// for (Iterator i=keys.iterator();i.hasNext();){
+// conceptKey = (Key) i.next();
+// break;
+// }
+// } else {
+// throw new RegistryException("Could not save the EPR as Concept");
+// }
+// //now adding this concept to the binding
+// Concept specificationConcept = (Concept) bqm.getRegistryObject(conceptKey.getId(), LifeCycleManager.CONCEPT);
+// SpecificationLink specificationLink = blm.createSpecificationLink();
+// specificationLink.setSpecificationObject(specificationConcept);
+// serviceBinding.addSpecificationLink(specificationLink);
+
+ ArrayList<ServiceBinding> serviceBindings = new ArrayList<ServiceBinding>();
+ serviceBindings.add(serviceBinding);
+ service.addServiceBindings(serviceBindings);
+ saveRegistryObject(serviceBinding);
+ } catch (Exception je) {
+ throw new RegistryException(je.getLocalizedMessage(), je);
+ } finally {
+ closeConnection(connection);
+ }
+ }
+ /**
+ * Remove an EPR from the Registry
+ */
+ public void unRegisterEPR(String category, String serviceName, EPR toBeDeletedEPR) throws RegistryException{
+ //first find the ServiceBindings for this service
+ try {
+ Service service = findService(category, serviceName);
+ Collection<ServiceBinding> serviceBindings = findServiceBindings(service);
+ for (Iterator i=serviceBindings.iterator();i.hasNext();){
+ ServiceBinding serviceBinding = (ServiceBinding) i.next();
+ String xml = URLDecoder.decode(serviceBinding.getAccessURI(), "UTF-8");
+ if (xml.equals(EPRHelper.toXMLString(toBeDeletedEPR))) {
+ service.removeServiceBinding(serviceBinding);
+ service.setProvidingOrganization(getJBossESBOrganization());
+ saveRegistryObject(service);
+ return;
+ }
+ }
+ //We should not end up here or else we did not match any EPRs
+ throw new RegistryException("No such EPR found for service with name = "
+ + serviceName + " and EPR=" + toBeDeletedEPR);
+ } catch (Exception je) {
+ throw new RegistryException(je.getLocalizedMessage(), je);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ * @return collection services
+ */
+ public Collection<String> findAllServices() throws RegistryException
+ {
+ Collection<String> serviceNames = new ArrayList<String>();
+ try {
+ Collection services = getJBossESBOrganization().getServices();
+ for (Iterator i=services.iterator();i.hasNext();) {
+ String serviceName = ((Service)i.next()).getName().getValue();
+ serviceNames.add(serviceName);
+ }
+ } catch (JAXRException je) {
+ throw new RegistryException(je.getLocalizedMessage(), je);
+ }
+ return serviceNames;
+ }
+ /**
+ * Find Services based on a category ("transformation").
+ *
+ * @param serviceType
+ * @return collection services
+ */
+ public Collection<String> findServices(String category) throws RegistryException
+ {
+ Collection<String>serviceNames = new ArrayList<String>();
+ try {
+ Collection<Service>services = findServicesForCategory(category);
+ for (Iterator<Service> i=services.iterator();i.hasNext();) {
+ String serviceName = i.next().getName().getValue();
+ serviceNames.add(serviceName);
+ }
+ } catch (JAXRException je) {
+ throw new RegistryException(je.getLocalizedMessage(), je);
+ }
+ return serviceNames;
+ }
+ /**
+ *
+ * @param service
+ * @return
+ */
+ public Collection<EPR> findEPRs(String category, String serviceName) throws RegistryException
+ {
+ Collection<EPR> eprs = new ArrayList<EPR>();
+ Connection connection = JAXRRegistryImpl.getConnection();
+ try {
+ Service service = findService(category, serviceName);
+ // Get registry service and business query manager
+ Collection<ServiceBinding> serviceBindings = findServiceBindings(service);
+ //Converting them to EPRs
+ for (Iterator i=serviceBindings.iterator();i.hasNext();) {
+ ServiceBinding serviceBinding = (ServiceBinding) i.next();
+ @SuppressWarnings("unused")
+ String eprXML = URLDecoder.decode(serviceBinding.getAccessURI(),"UTF-8");
+ //TODO use the XML to generate the EPR
+ EPR epr = EPRHelper.fromXMLString(eprXML);
+ eprs.add(epr);
+ }
+ } catch (Exception je) {
+ throw new RegistryException(je.getLocalizedMessage(), je);
+ } finally {
+ closeConnection(connection);
+ }
+ return eprs;
+ }
+ /**
+ * Find all Organizations with a name mathing the queryString parameter.
+ *
+ * @param organizationName used to match with the name of the organization.
+ * @return the Organization.
+ */
+ protected static Organization findOrganization(String organizationName) throws JAXRException
+ {
+ if (organizationName==null) {
+ organizationName="";
+ }
+ Connection connection = JAXRRegistryImpl.getConnection();
+ try {
+ // Get registry service and business query manager
+ RegistryService rs = connection.getRegistryService();
+ BusinessQueryManager bqm = rs.getBusinessQueryManager();
+ // Define find qualifiers and name patterns
+ Collection<String> findQualifiers = new ArrayList<String>();
+ findQualifiers.add(FindQualifier.SORT_BY_NAME_ASC);
+ Collection<String> namePatterns = new ArrayList<String>();
+ namePatterns.add("%" + organizationName + "%");
+ //Find based upon qualifier type and values
+ System.out.println("Going to query the registry for name pattern " + namePatterns);
+ BulkResponse response = bqm.findOrganizations(findQualifiers,
+ namePatterns, null, null, null, null);
+ if (response.getStatus()==JAXRResponse.STATUS_SUCCESS) {
+ for (Iterator orgIter = response.getCollection().iterator(); orgIter.hasNext();)
+ {
+ Organization org = (Organization) orgIter.next();
+ logger.log(Priority.INFO, "Organization name: " + org.getName().getValue());
+ logger.log(Priority.INFO, "Description: " + org.getDescription().getValue());
+ logger.log(Priority.INFO, "Key id: " + org.getKey().getId());
+ User primaryContact = org.getPrimaryContact();
+ logger.log(Priority.INFO, "Primary Contact: " + primaryContact.getPersonName().getFullName());
+ if (orgIter.hasNext()) {
+ logger.log(Priority.ERROR, "Found " + response.getCollection().size()
+ + " Organization, while expecting only one of name " + organizationName);
+ }
+ return org;
+ }
+ }
+ return null;
+ } finally {
+ closeConnection(connection);
+ }
+ }
+ /**
+ *
+ * @param category
+ * @param serviceName
+ * @return Service
+ */
+ protected static Service findService(String category, String serviceName) throws JAXRException
+ {
+ if (category==null) {
+ category="";
+ }
+ if (serviceName==null) {
+ serviceName="";
+ }
+ Connection connection = JAXRRegistryImpl.getConnection();
+ try {
+ // Get registry service and business query manager
+ RegistryService rs = connection.getRegistryService();
+ BusinessQueryManager bqm = rs.getBusinessQueryManager();
+ // Define find qualifiers and name patterns
+ Collection<String> findQualifiers = new ArrayList<String>();
+ findQualifiers.add(FindQualifier.AND_ALL_KEYS);
+ findQualifiers.add(FindQualifier.SORT_BY_NAME_DESC);
+ Collection<String> namePatterns = new ArrayList<String>();
+ namePatterns.add("%" + category + "%");
+ namePatterns.add("%" + serviceName + "%");
+ //Find based upon qualifier type and values
+ logger.log(Priority.DEBUG, "Going to query the registry for name pattern " + namePatterns);
+ BulkResponse response = bqm.findServices(null, findQualifiers,
+ namePatterns, null, null);
+ if (response.getStatus()==JAXRResponse.STATUS_SUCCESS) {
+ for (Iterator servIter = response.getCollection().iterator(); servIter.hasNext();)
+ {
+ Service service = (Service) servIter.next();
+ logger.log(Priority.INFO, "Service name: " + service.getName().getValue());
+ if (service.getDescription()!=null) {
+ logger.log(Priority.INFO, "Description: " + service.getDescription().getValue());
+ }
+ logger.log(Priority.INFO, "Key id: " + service.getKey().getId());
+ if (servIter.hasNext()) {
+ logger.log(Priority.ERROR, "Found " + response.getCollection().size()
+ + " Services, while expecting only one by the name of "
+ + serviceName + " in category " + category);
+ }
+ return service;
+ }
+ }
+ return null;
+ } finally {
+ closeConnection(connection);
+ }
+ }
+ /**
+ * Finds all services for a given category.
+ * @param category
+ * @param serviceName
+ * @return Service
+ */
+ @SuppressWarnings("unchecked")
+ protected static Collection<Service> findServicesForCategory(String category) throws JAXRException
+ {
+ Collection<Service> services = new ArrayList<Service>();
+ if (category==null) {
+ category="";
+ }
+ Connection connection = JAXRRegistryImpl.getConnection();
+ try {
+ // Get registry service and business query manager
+ RegistryService rs = connection.getRegistryService();
+ BusinessQueryManager bqm = rs.getBusinessQueryManager();
+ // Define find qualifiers and name patterns
+ Collection<String> findQualifiers = new ArrayList<String>();
+ findQualifiers.add(FindQualifier.AND_ALL_KEYS);
+ findQualifiers.add(FindQualifier.SORT_BY_NAME_DESC);
+ Collection<String> namePatterns = new ArrayList<String>();
+ namePatterns.add("%" + category + "%");
+ //Find based upon qualifier type and values
+ logger.log(Priority.DEBUG, "Going to query the registry for name pattern " + namePatterns);
+ BulkResponse response = bqm.findServices(null, findQualifiers,
+ namePatterns, null, null);
+ if (response.getStatus()==JAXRResponse.STATUS_SUCCESS) {
+ services = response.getCollection();
+ }
+ return services;
+ } finally {
+ closeConnection(connection);
+ }
+ }
+ /**
+ * Create a jbossesb organization under which we will register all our services.
+ *
+ * @param blm
+ * @return
+ * @throws JAXRException
+ */
+ protected static Organization createJBossESBOrganization()
+ throws JAXRException
+ {
+// Getting the connection to the Registry (reading config)
+ Connection connection = JAXRRegistryImpl.getConnection();
+ try {
+ //Logging in
+ connection.setCredentials(JAXRRegistryImpl.creds);
+ RegistryService rs = connection.getRegistryService();
+ //Building organization
+ BusinessLifeCycleManager blm = rs.getBusinessLifeCycleManager();
+ Organization organization = blm.createOrganization(blm.createInternationalString("Red Hat/JBossESB"));
+ organization.setDescription(blm.createInternationalString("Red Hat/JBoss Professional Open Source, Services for the JBossESB"));
+
+ User user = blm.createUser();
+ organization.setPrimaryContact(user);
+ PersonName personName = blm.createPersonName("JBossESB");
+ TelephoneNumber telephoneNumber = blm.createTelephoneNumber();
+ telephoneNumber.setNumber("404 467-8555");
+ telephoneNumber.setType(null);
+ PostalAddress address = blm.createPostalAddress("3340",
+ "Peachtree Road, NE, Suite 1200", "Atlanta", "GA", "USA",
+ "30326", "");
+ Collection<PostalAddress> postalAddresses = new ArrayList<PostalAddress>();
+ postalAddresses.add(address);
+ Collection<EmailAddress> emailAddresses = new ArrayList<EmailAddress>();
+ EmailAddress emailAddress = blm
+ .createEmailAddress("jbossesb at jboss.com");
+ emailAddresses.add(emailAddress);
+
+ Collection<TelephoneNumber> numbers = new ArrayList<TelephoneNumber>();
+ numbers.add(telephoneNumber);
+ user.setPersonName(personName);
+ user.setPostalAddresses(postalAddresses);
+ user.setEmailAddresses(emailAddresses);
+ user.setTelephoneNumbers(numbers);
+
+ // Scout does not support this (yet), so leaving it out for now.
+ // ClassificationScheme cScheme = getClassificationScheme(blm,
+ // blm.createInternationalString("uddi-org:general_keywords"), blm.createInternationalString(""));
+ // Classification classification = blm.createClassification(cScheme,
+ // blm..createInternationalString("JBoss ESB"), blm..createInternationalString("JBESB"));
+ // org.addClassification(classification);
+
+ saveRegistryObject(organization);
+ return organization;
+ } finally {
+ closeConnection(connection);
+ }
+ }
+ /**
+ * Save Registry Object
+ */
+ protected static void saveRegistryObject(RegistryObject registryObject) throws JAXRException
+ {
+// Getting the connection to the Registry (reading config)
+ Connection connection = JAXRRegistryImpl.getConnection();
+ try {
+ Collection<RegistryObject> registryObjects = new ArrayList<RegistryObject>();
+ BulkResponse br = null;
+ //Logging in
+ connection.setCredentials(JAXRRegistryImpl.creds);
+ RegistryService rs = connection.getRegistryService();
+ //Building organization
+ BusinessLifeCycleManager blm = rs.getBusinessLifeCycleManager();
+ registryObjects.add(registryObject);
+ Class[] interfaces = registryObject.getClass().getInterfaces();
+ String interfaceName ="";
+ for (int i=0; i<interfaces.length; i++) {
+ interfaceName = interfaces[i].getName();
+ if (interfaceName.equals("javax.xml.registry.infomodel.Organization")) {
+ br = blm.saveOrganizations(registryObjects);
+ break;
+ } else if (interfaceName.equals("javax.xml.registry.infomodel.Service")) {
+ br = blm.saveServices(registryObjects);
+ break;
+ } else if (interfaceName.equals("javax.xml.registry.infomodel.ServiceBinding")) {
+ br = blm.saveServiceBindings(registryObjects);
+ break;
+ } else {
+ logger.log(Priority.ERROR, "Trying to save an unsupported RegistryObject");
+ throw new JAXRException("Trying to save an unsupported RegistryObject");
+ }
+ }
+ //Verify the return
+ if (br!=null && br.getStatus() == JAXRResponse.STATUS_SUCCESS) {
+ logger.log(Priority.INFO, interfaceName + " successfully saved");
+ Collection coll = br.getCollection();
+ Iterator iter = coll.iterator();
+ while (iter.hasNext()) {
+ Key key = (Key) iter.next();
+ registryObject.setKey(key);
+ logger.log(Priority.INFO, "Saved Key=" + key.getId());
+ }
+ } else {
+ logger.log(Priority.ERROR, "Errors occurred during save.");
+ if (br!=null) {
+ Collection exceptions = br.getExceptions();
+ Iterator iter = exceptions.iterator();
+ String errors = "";
+ JAXRException je = new JAXRException("JAXRExceptions occurred during save");
+ while (iter.hasNext()) {
+ Exception e = (Exception) iter.next();
+ errors += e.getLocalizedMessage() + "\n";
+ je.setStackTrace(e.getStackTrace());
+ logger.log(Priority.ERROR, e.getLocalizedMessage(), e);
+ //if it's the last error, throw it now and set the current stacktrace
+ if (!iter.hasNext()) {
+ throw new JAXRException(errors, e);
+ }
+ }
+ throw new JAXRException("Errors occurred during save. Response status=" + br.getStatus());
+ }
+ throw new JAXRException("Errors occurred during save");
+ }
+ } finally {
+ JAXRRegistryImpl.closeConnection(connection);
+ }
+ }
+ /**
+ * finds the JBossESB Organizationa and creates one if it is not there.
+ * @return JBossESB Organization
+ * @throws JAXRException
+ */
+ private Organization getJBossESBOrganization() throws JAXRException
+ {
+ if (jbossESBOrganization==null) {
+ jbossESBOrganization = findOrganization("Red Hat/JBossESB");
+ if (jbossESBOrganization==null) {
+ jbossESBOrganization = createJBossESBOrganization();
+ }
+ }
+ return jbossESBOrganization;
+ }
+ /**
+ * Find the ServiceBindings for a given Service
+ * @param service
+ * @return
+ * @throws RegistryException
+ */
+ @SuppressWarnings("unchecked")
+ private Collection<ServiceBinding> findServiceBindings(Service service) throws RegistryException
+ {
+ Collection<ServiceBinding> serviceBindings = new ArrayList<ServiceBinding>();
+ Connection connection = JAXRRegistryImpl.getConnection();
+ try {
+ RegistryService rs = connection.getRegistryService();
+ BusinessQueryManager bqm = rs.getBusinessQueryManager();
+ Collection<String> findQualifiers = new ArrayList<String>();
+ findQualifiers.add(FindQualifier.SORT_BY_NAME_ASC);
+ BulkResponse bulkResponse = bqm.findServiceBindings(service.getKey(),findQualifiers,null,null);
+ if (bulkResponse.getStatus()==JAXRResponse.STATUS_SUCCESS){
+ serviceBindings = bulkResponse.getCollection();
+ }
+ return serviceBindings;
+ } catch (Exception je) {
+ throw new RegistryException(je.getLocalizedMessage(), je);
+ } finally {
+ closeConnection(connection);
+ }
+ }
+
+}
+
+
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/registry/Registry.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/registry/Registry.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/registry/Registry.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,87 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services.registry;
+
+import java.util.Collection;
+
+import org.jboss.soa.esb.addressing.EPR;
+/**
+ * Registry interface for the ESB.
+ *
+ * @author Kurt Stam
+ */
+interface Registry
+{
+ /**
+ * Removes a service from the Registry along with all the ServiceBindings underneath it.
+ *
+ * @param category - name of the service category, for example 'transformation'.
+ * @param serviceName - name of the service, for example 'smooks'.
+ * @throws RegistryException
+ */
+ public void unRegisterService(String category, String serviceName) throws RegistryException;
+ /**
+ * Registers an EPR under the specified category and service. If the specified service does
+ * not exist, it will be created at the same time.
+ *
+ * @param category - name of the category to which the service belongs.
+ * @param serviceName - name of the service to which the EPS belongs.
+ * @param serviceDescription - human readable description of the service,
+ * only used when it the service does not yet exist.
+ * @param epr - the EndPointReference (EPR) that needs to be registered.
+ * @param eprDescription - human readable description of the EPR
+ * @throws RegistryException
+ */
+ public void registerEPR(String category, String serviceName, String serviceDescription, EPR epr, String eprDescription)
+ throws RegistryException;
+ /**
+ * Removes an EPR from the Registry.
+ * @param category - name of the category to which the service belongs.
+ * @param serviceName - name of the service to which the EPS belongs.
+ * @param epr - the EndPointReference (EPR) that needs to be unregistered.
+ * @throws RegistryException
+ */
+ public void unRegisterEPR(String category, String serviceName, EPR epr) throws RegistryException;
+ /**
+ * Find all Services assigned to the Red Hat/JBossESB organization.
+ * @return Collection of Strings containing the service names.
+ * @throws RegistryException
+ */
+ public Collection<String> findAllServices() throws RegistryException;
+ /**
+ * Find all services that belong to the supplied category.
+ *
+ * @param category - name of the category to which the service belongs.
+ * @return Collection of Strings containing the service names
+ * @throws RegistryException
+ */
+ public Collection<String> findServices(String category) throws RegistryException;
+ /**
+ * Finds all the EPRs that belong to a specific category and service combination.
+ *
+ * @param category - name of the category to which the service belongs.
+ * @param serviceName - name of the service to which the EPS belongs.
+ * @return Collection of EPRs.
+ * @throws RegistryException
+ */
+ public Collection<EPR> findEPRs(String category, String serviceName) throws RegistryException;
+}
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/registry/RegistryException.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/registry/RegistryException.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/registry/RegistryException.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,29 @@
+/*
+ * Created on Jul 15, 2004
+ *
+ */
+package org.jboss.soa.esb.services.registry;
+
+/**
+ * @author gerry
+ *
+ * <p>Created: Jul 15, 2004</p>
+ */
+public class RegistryException extends Exception {
+ private static final long serialVersionUID = 1L;
+ public final static String STORE = "Failed to store. ";
+ public final static String DELETE = "Failed to delete. ";
+ public final static String FETCH = "Failed to fetch. ";
+
+ public RegistryException(){
+ super();
+ }
+
+ public RegistryException (String msg){
+ super(msg);
+ }
+
+ public RegistryException (String msg, Throwable cause){
+ super (msg, cause);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/registry/RegistryFactory.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/registry/RegistryFactory.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/src/org/jboss/soa/esb/services/registry/RegistryFactory.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,75 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services.registry;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
+import org.jboss.soa.esb.common.Configuration;
+/**
+ * Returns an Instance of the Registry.
+ * @author kstam
+ *
+ */
+public class RegistryFactory
+{
+ private static Logger logger = Logger.getLogger(RegistryFactory.class);
+
+ public static Registry getRegistry() {
+ Registry registry = null;
+ String className = Configuration.getRegistryImplementationClass();
+ try {
+ // instruct class loader to load the TransportFactory
+ Class registryClass = getClassForName(className);
+ // Try to instance the Registry
+ registry = (Registry) registryClass.newInstance();
+ } catch (ClassNotFoundException cnfex) {
+ cnfex.printStackTrace();
+ } catch (java.lang.Exception ex) {
+ ex.printStackTrace();
+ }
+ return registry;
+ }
+
+ /**
+ * Loads the class with the given name.
+ * @param className - the className to be found
+ * @return - the class
+ * @throws ClassNotFoundException
+ */
+ private static Class getClassForName(String className) throws ClassNotFoundException
+ {
+ Class clazz = null;
+ try {
+ logger.log(Priority.DEBUG, "Using the Context ClassLoader");
+ ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
+ clazz = Class.forName(className, true, contextClassLoader);
+ } catch (ClassNotFoundException classNotFound) {
+ if (logger.isDebugEnabled()) {
+ logger.log(Priority.WARN, "The Contect ClassLoader could not find the class.");
+ logger.log(Priority.WARN, "Using the System ClassLoader");
+ }
+ ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
+ clazz = Class.forName(className, true, systemClassLoader);
+ }
+ return clazz;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/services/tests/application.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/tests/application.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/tests/application.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<application version="1.4"
+ xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+ http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
+ <display-name>JbossEsb AppServer basic services</display-name>
+ <module>
+ <ejb>jbossesb-instr-all.jar</ejb>
+ </module>
+ <module>
+ <java>jbossts-common.jar</java>
+ </module>
+</application>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/services/tests/build.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/tests/build.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/tests/build.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,133 @@
+<?xml version="1.0"?>
+<project name="build.services.tests" default="org.jboss.esb.services.tests.compile" basedir=".">
+
+ <property file="../../../../install/deployment.properties"/>
+
+ <property name="org.jboss.esb.internal.dest" value="${basedir}/../../../build"/>
+
+ <property name="org.jboss.esb.module.src.dir" value="../src"/>
+ <property name="org.jboss.esb.module.classes.dir" value="${org.jboss.esb.internal.dest}/classes/services"/>
+ <property name="org.jboss.esb.module.tests.src.dir" value="${basedir}/src"/>
+ <property name="org.jboss.esb.tests.classes.dir" value="${org.jboss.esb.internal.dest}/tests"/>
+ <property name="org.jboss.esb.tests.report.dir" value="${org.jboss.esb.internal.dest}/tests/junit"/>
+ <property name="org.jboss.esb.root.dir" value="../.."/>
+
+ <property environment="env"/>
+
+ <property name="org.jboss.esb.ext.lib.dir" value="${org.jboss.esb.root.dir}/lib/ext"/>
+ <property name="org.jboss.esb.ejb3_embedded.lib.dir" value="${org.jboss.esb.root.dir}/../lib/ext/ejb3_embedded"/>
+ <property name="org.jboss.esb.ejb3_conf.tests.src.dir" value="${org.jboss.esb.root.dir}/rosetta/tests/resources/conf"/>
+ <condition property="org.jboss.esb.ext.lib.dir" value="{org.jboss.esb.jboss.home}/client">
+ <equals arg1="${org.jboss.esb.frominstall}" arg2="yes"/>
+ </condition>
+
+ <path id="org.jboss.esb.tests.base.classpath">
+ <fileset dir="../${org.jboss.esb.ext.lib.dir}"
+ includes="*.jar" excludes="jbossall-client.jar"/>
+ <pathelement location="${org.jboss.esb.module.classes.dir}"/>
+ <pathelement location="${org.jboss.esb.internal.dest}/classes/rosetta"/>
+ <pathelement location="${org.jboss.esb.ejb3_conf.tests.src.dir}"/>
+ <fileset dir="${org.jboss.esb.ejb3_embedded.lib.dir}" includes="*.jar"/>
+ </path>
+
+ <target name="org.jboss.esb.tests.init">
+ <tstamp>
+ <format property="TODAY" pattern="dd-MM-yy"/>
+ </tstamp>
+
+ <mkdir dir="${org.jboss.esb.tests.classes.dir}"/>
+ <mkdir dir="${org.jboss.esb.tests.report.dir}"/>
+ </target>
+
+ <target name="clean"/>
+
+ <target name="purge" depends="clean">
+ <delete dir="${org.jboss.esb.tests.classes.dir}"/>
+ </target>
+
+ <target name="org.jboss.esb.services.tests.compile" if="org.jboss.esb.buildtests" depends="org.jboss.esb.tests.init">
+
+ <javac
+ destdir="${org.jboss.esb.tests.classes.dir}"
+ classpathref="org.jboss.esb.tests.base.classpath"
+ debug="${org.jboss.esb.debug}"
+ optimize="${org.jboss.esb.optimize}"
+ >
+ <src path="${org.jboss.esb.module.tests.src.dir}"/>
+ </javac>
+
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- T E S T -->
+ <!-- ====================================================================== -->
+ <target name="org.jboss.esb.services.internal.test">
+ <property name="org.jboss.esb.module.tests.coverage.dir" value="${org.jboss.esb.internal.dest}/tests/coverage/services"/>
+ <property name="org.jboss.esb.module.classes.instr.dir" value="${org.jboss.esb.module.tests.coverage.dir}/instr" />
+
+ <delete dir="${org.jboss.esb.module.tests.coverage.dir}" />
+ <mkdir dir="${org.jboss.esb.module.tests.coverage.dir}" />
+ <emma>
+ <instr instrpath="${org.jboss.esb.module.classes.dir}"
+ destdir="${org.jboss.esb.module.classes.instr.dir}"
+ metadatafile="${org.jboss.esb.module.tests.coverage.dir}/coverage.emma" />
+ </emma>
+
+ <!-- Run the tests -->
+ <antcall target="org.jboss.esb.services.internal.test.exec"/>
+
+ <!-- Generate the coverage report -->
+ <emma>
+ <report sourcepath="${org.jboss.esb.module.src.dir}" sort="+block,+name,+method,+class" metrics="method:70,block:80,line:80,class:100">
+ <fileset dir="${org.jboss.esb.module.tests.coverage.dir}" >
+ <include name="*.emma" />
+ </fileset>
+ <html outfile="${org.jboss.esb.module.tests.coverage.dir}/index.html" depth="method" columns="name,line,class,method,block"/>
+ </report>
+ </emma>
+
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- U N I T A N D F U N C T I O N A L T E S T S -->
+ <!-- ====================================================================== -->
+ <target name="org.jboss.esb.services.internal.test.exec">
+ <echo message="Running tests for module"/>
+ <junit printsummary="yes" haltonerror="yes" haltonfailure="yes" showoutput="no" fork="true">
+ <formatter type="plain" usefile="false"/>
+ <formatter type="xml"/>
+ <batchtest todir="${org.jboss.esb.tests.report.dir}">
+ <fileset dir="${org.jboss.esb.module.tests.src.dir}">
+ <include name="**/**UnitTest.java"/>
+ <include name="**/**FuncTest.java"/>
+ </fileset>
+ </batchtest>
+ <classpath>
+ <!-- using instrumented code for code coverage -->
+ <pathelement location="${org.jboss.esb.module.classes.instr.dir}"/>
+ <pathelement location="${org.jboss.esb.tests.classes.dir}"/>
+ <!-- Need the tests src folder because there may be non-compiled test resources -->
+ <pathelement location="${org.jboss.esb.module.tests.src.dir}"/>
+ <path refid="org.jboss.esb.tests.base.classpath"/>
+
+ </classpath>
+ <!-- emma jvm args -->
+ <jvmarg value="-Demma.coverage.out.file=${org.jboss.esb.module.tests.coverage.dir}/coverage.emma" />
+ <jvmarg value="-Demma.coverage.out.merge=true" />
+ <!-- setting system properties -->
+ <sysproperty key="org.jboss.esb.db.driver" value="${org.jboss.esb.db.driver}"/>
+ <sysproperty key="org.jboss.esb.db.url" value="${org.jboss.esb.db.url}"/>
+ <sysproperty key="org.jboss.esb.db.user" value="${org.jboss.esb.db.user}"/>
+ <sysproperty key="org.jboss.esb.db.password" value="${org.jboss.esb.db.password}"/>
+ <sysproperty key="log4j.configuration" value="log4j.xml"/>
+
+ </junit>
+ <junitreport>
+ <fileset dir="${org.jboss.esb.tests.report.dir}">
+ <include name="*.xml"/>
+ </fileset>
+ <report format="frames" todir="${org.jboss.esb.tests.report.dir}"/>
+ <report format="noframes" todir="${org.jboss.esb.tests.report.dir}"/>
+ </junitreport>
+ </target>
+</project>
Added: labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/esb/persistence/tests/MessageStoreUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/esb/persistence/tests/MessageStoreUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/esb/persistence/tests/MessageStoreUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,202 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author daniel.brum at jboss.com
+ */
+
+package org.jboss.soa.esb.esb.persistence.tests;
+
+/**
+ * @author dbrum
+ *
+ *
+ */
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.net.URI;
+import java.sql.Connection;
+import java.sql.Statement;
+
+import junit.framework.TestCase;
+
+import org.jboss.internal.soa.esb.persistence.format.MessageStoreType;
+import org.jboss.internal.soa.esb.persistence.format.db.DBConnectionManager;
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.common.tests.HsqldbUtil;
+import org.jboss.soa.esb.common.tests.TestUtil;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.jboss.soa.esb.services.persistence.MessageStore;
+import org.jboss.soa.esb.services.persistence.MessageStoreFactory;
+import org.junit.Test;
+
+
+public class MessageStoreUnitTest extends TestCase{
+
+// private static Logger log = Logger.getLogger(MessageStoreUnitTest.class);
+
+ @Test
+ public void testDefaultMessageStore() {
+ TestUtil.setESBPropertiesFileToUse();
+ MessageStoreUnitTest.runBeforeAllTests();
+ MessageStore store = MessageStoreFactory.getInstance().getMessageStore();
+ assertEquals((store != null), true);
+ MessageStoreUnitTest.runAfterAllTests();
+ }
+
+ @Test
+ public void testURIMessageStore() {
+ TestUtil.setESBPropertiesFileToUse();
+
+ //only DB supported for now
+ MessageStoreUnitTest.runBeforeAllTests();
+ MessageStore store1 = MessageStoreFactory.getInstance().getMessageStore(MessageStoreType.DATABASE);
+ assertEquals((store1 != null), true);
+ MessageStoreUnitTest.runAfterAllTests();
+ }
+
+ @Test
+ public void testStoreAndRetrieve() {
+ TestUtil.setESBPropertiesFileToUse();
+ MessageStoreUnitTest.runBeforeAllTests();
+
+ //add new messages
+ Message msg1 = MessageFactory.getInstance().getMessage(MessageType.JBOSS_XML);
+ Message msg2 = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED);
+ assertEquals((msg1 != null), true);
+ assertEquals((msg2 != null), true);
+
+ MessageStore store = MessageStoreFactory.getInstance().getMessageStore(MessageStoreType.DATABASE);
+ assertEquals((store != null), true);
+
+ //set some properties inside the Message
+ msg1.getProperties().setProperty("prop1", "val1");
+ msg2.getProperties().setProperty("prop1", "val1");
+ msg1.getProperties().setProperty("prop2", "val2");
+ msg2.getProperties().setProperty("prop2", "val2");
+
+ //set the body inside the Message
+ msg1.getBody().setContents(("TEST BODY").getBytes());
+ msg2.getBody().setContents(("TEST BODY").getBytes());
+
+ //set some object attachments inside the Message
+ msg1.getAttachment().addItem(new String("TEST ATTACHMENT1"));
+ msg1.getAttachment().addItem(new String("TEST ATTACHMENT2"));
+ msg2.getAttachment().addItem(new String("TEST ATTACHMENT1"));
+ msg2.getAttachment().addItem(new String("TEST ATTACHMENT2"));
+
+ //keep track of the UID to use in retrieving the Message
+ URI uid1=null;
+ uid1 = store.addMessage(msg1);
+ System.out.println(uid1);
+ assertEquals((uid1 != null), true);
+
+ URI uid2 = null;
+ uid2 = store.addMessage(msg2);
+ System.out.println(uid2);
+ assertEquals((uid2 != null), true);
+
+ //now retrieve the messages
+ try {
+ Message msgIn1 = store.getMessage(uid1);
+ assertEquals((msgIn1 != null), true);
+
+ Message msgIn2 = store.getMessage(uid2);
+ assertEquals((msgIn2 != null), true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ MessageStoreUnitTest.runAfterAllTests();
+ }
+
+ @Test
+ public void testDBConnectionManager() {
+ TestUtil.setESBPropertiesFileToUse();
+ MessageStoreUnitTest.runBeforeAllTests();
+ MessageStore store = MessageStoreFactory.getInstance().getMessageStore(MessageStoreType.DATABASE);
+ assertEquals((store != null), true);
+ DBConnectionManager mgr = DBConnectionManager.getInstance();
+ assertEquals((mgr != null), true);
+ MessageStoreUnitTest.runAfterAllTests();
+ }
+
+
+ private static void runBeforeAllTests() {
+ TestUtil.setESBPropertiesFileToUse();
+ try {
+ if (Configuration.getStoreDriver().equals("org.hsqldb.jdbcDriver")) {
+ HsqldbUtil.startHsqldb(TestUtil.getPrefix() + "build/hsqltestdb", "jbossesb");
+ //Get the registry-schema create scripts
+ String database = "hsqldb";
+ String sqlDir = TestUtil.getPrefix() + "install/message-store/sql/" + database + "/";
+ //Drop what is there now, if exists. We want to start fresh.
+ String sqlCreateCmd = MessageStoreUnitTest.readTextFile(new File(sqlDir + "create_database.sql"));
+ String sqlDropCmd = MessageStoreUnitTest.readTextFile(new File(sqlDir + "drop_database.sql"));
+
+ DBConnectionManager mgr = DBConnectionManager.getInstance();
+ Connection con = mgr.getConnection();
+ Statement stmnt = con.createStatement();
+ System.out.println("Dropping the schema if exist");
+ stmnt.execute(sqlDropCmd);
+ System.out.println("Creating the message store schema");
+ stmnt.execute(sqlCreateCmd);
+ }
+ } catch (Exception e) { //
+ e.printStackTrace();
+ System.out.println("We should stop testing, since we don't have a db.");
+ assertTrue(false);
+ }
+ }
+
+ private static void runAfterAllTests() {
+ try {
+ if (Configuration.getStoreDriver().equals("org.hsqldb.jdbcDriver"))
+ HsqldbUtil.stopHsqldb(Configuration.getStoreUrl(),
+ Configuration.getStoreUser(),Configuration.getStorePwd() );
+ } catch (Exception e) { //
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Read the file into a String.
+ * @param file - the file to be read
+ * @return String with the content of the file
+ * @throws IOException - when we can't read the file
+ */
+ public static String readTextFile(File file) throws IOException
+ {
+ StringBuffer sb = new StringBuffer(1024);
+ BufferedReader reader = new BufferedReader(new FileReader(file.getPath()));
+ char[] chars = new char[1];
+ while( (reader.read(chars)) > -1){
+ sb.append(String.valueOf(chars));
+ chars = new char[1];
+ }
+ reader.close();
+ return sb.toString();
+ }
+
+
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/internal/core/objectstore/BobjStoreUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/internal/core/objectstore/BobjStoreUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/internal/core/objectstore/BobjStoreUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,113 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.internal.core.objectstore;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.MalformedURLException;
+
+import org.jboss.soa.esb.common.tests.BaseTest;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.xml.sax.SAXException;
+
+/**
+ * BobjStore unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class BobjStoreUnitTest extends BaseTest {
+
+ protected void tearDown() throws Exception {
+ setObjStoreConfigFile(null);
+ }
+
+ public void test_readConfiguration_invalidconfig() throws MalformedURLException, IOException, SAXException {
+ // Test URI not set
+ test_invalidURI(null);
+ // Test for no scheme in URI...
+ test_invalidURI("/nonexistent/classpath/location/config.xml");
+ // Test for no path in URI...
+ test_invalidURI("file:");
+ // Test non existent classpath URI path...
+ test_invalidURI("classpath:/nonexistent/classpath/location/config.xml");
+ // Test non existent http URI path...
+ test_invalidURI("http://nonexistent/classpath/location/config.xml");
+ // Test non existent file URI path...
+ test_invalidURI("file:/nonexistent/classpath/location/config.xml");
+ }
+
+ private void test_invalidURI(String uri) throws IOException, MalformedURLException, SAXException {
+ setObjStoreConfigFile("/nonexistent/classpath/location/config.xml");
+ try {
+ BobjStore.readConfiguration();
+ fail("expected IllegalStateException");
+ } catch (IllegalStateException e) {
+ // expected
+ }
+ }
+
+ public void test_readConfiguration_validconfig() throws MalformedURLException, IOException, SAXException {
+ String resPath = getResourceClasspath("BobjStoreUnitTest_config1.xml");
+ ConfigTree config1, config2;
+
+ // Test a read from a valid classpath resource...
+ setObjStoreConfigFile("classpath:" + resPath);
+ config1 = BobjStore.readConfiguration();
+
+ // Test a read from a valid file resource...
+ String baseDir = System.getProperty("user.dir");
+ String fileStr = "core/services/tests/src" + resPath;
+ //Fix for running the tests in eclipse
+ if (!baseDir.endsWith("product")) {
+ fileStr = "product/" + fileStr;
+ }
+ File file = new File(fileStr);
+ setObjStoreConfigFile(file.toURI().toString());
+ config2 = BobjStore.readConfiguration();
+ assertEquals(config1.toString(), config2.toString());
+ }
+
+ public void test_BobjStore() throws MalformedURLException, IOException, SAXException {
+ setObjStoreConfigFile("classpath:" + getResourceClasspath("BobjStoreUnitTest_config1.xml"));
+ BobjStore.configureStore();
+
+ assertEquals("batchtable", BobjStore.getBatchTableName());
+ assertEquals("jndi-name", BobjStore.getDataSourceJndi());
+ assertEquals("uidtable", BobjStore.getUidTableName());
+
+ BobjStore bob = BobjStore.getStore("org.jboss.SomeClass1");
+ assertEquals("snaptable-1", bob.getSnapTable());
+ assertEquals("snaptype-1", bob.getSnapType());
+ assertTrue(bob.isEncrypted());
+ assertEquals("locator-table-1", bob.getLocatorTable(0));
+ assertEquals(null, bob.getLocatorTable(1));
+
+ bob = BobjStore.getStore("org.jboss.SomeClass2");
+ assertEquals("snaptable-2", bob.getSnapTable());
+ assertEquals("snaptype-2", bob.getSnapType());
+ assertTrue(!bob.isEncrypted());
+ assertEquals(null, bob.getLocatorTable(0));
+ }
+
+ private String getResourceClasspath(String resource) {
+ return "/" + BobjStoreUnitTest.class.getPackage().getName().replace('.', '/') + "/" + resource;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/internal/core/objectstore/BobjStoreUnitTest_config1.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/internal/core/objectstore/BobjStoreUnitTest_config1.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/internal/core/objectstore/BobjStoreUnitTest_config1.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,6 @@
+<config dataSourceJndiName="jndi-name" batchTable="batchtable" uidTable="uidtable">
+ <Class name="org.jboss.SomeClass1" type="snaptype-1" encrypt="true" table="snaptable-1">
+ <Index table="locator-table-1" />
+ </Class>
+ <Class name="org.jboss.SomeClass2" type="snaptype-2" encrypt="false" table="snaptable-2" />
+</config>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/internal/core/objectstore/DaoUidTableUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/internal/core/objectstore/DaoUidTableUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/internal/core/objectstore/DaoUidTableUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,43 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.internal.core.objectstore;
+
+import org.jboss.soa.esb.common.tests.BaseTest;
+
+/**
+ * DaoUidTable unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class DaoUidTableUnitTest extends BaseTest {
+
+ public void test_DaoUidTable() throws Exception {
+ //JdbcCleanConn conn = new JdbcCleanConn(new MockDataSource(this));
+
+ //conn.prepareStatement("select * from table1;");
+
+ // TODO: Figure out how to test these DAO classes. I suspect these classes
+ // will need a full JBossESB database (or a good part of) before we can do
+ // anything with them. Currently we use an in-memory HSQLDB which gets
+ // instanciated for each test. It we create and distroy a DB for each test
+ // we'll prob grind the tests to a hault. Need to try it I suppose!
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/DummyUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/DummyUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/DummyUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,45 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services;
+
+import org.jboss.soa.esb.common.tests.BaseTest;
+
+/**
+ * Dummy test file.
+ *
+ * @author <a href="mailto:arvinder.singh at indigo-logic.com">Arvinder Singh</a>
+ * @version <tt>$Revision:$</tt>
+ * $Id:$
+ */
+public class DummyUnitTest extends BaseTest {
+
+ /**
+ * Remove me
+ * @throws Exception
+ */
+ public void testDummyCompileAndInvoke() throws Exception {
+ log.info("****************************************************************");
+ log.info(" Dummy unit test called. Replace this with module level tests");
+ log.info("****************************************************************");
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/beans/NotificationUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/beans/NotificationUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/beans/NotificationUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,227 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services.beans;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Hashtable;
+
+import javax.naming.InitialContext;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
+import org.jboss.soa.esb.common.tests.BaseTest;
+import org.jboss.soa.esb.common.tests.EJBContainerSetup;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.helpers.persist.SimpleDataSource;
+import org.jboss.soa.esb.notification.NotificationList;
+import org.jboss.soa.esb.notification.NotificationTarget;
+import org.jboss.soa.esb.notification.NotifySqlTable;
+
+
+public class NotificationUnitTest extends BaseTest
+{
+ private Logger logger = Logger.getLogger(NotificationUnitTest.class);
+
+ public void testNotification() {
+ try {
+ logger.log(Priority.INFO, "Notification Test");
+ InitialContext ctx = getInitialContext();
+ @SuppressWarnings("unused")
+ NotificationHandler local = (NotificationHandler ) ctx.lookup("NotificationHandlerBean/local");
+ ConfigTree oEl = new ConfigTree("MyFileList");
+ oEl.setAttribute(NotificationList.TYPE,"OK");
+
+ // oEl.addElemChild(fileListTarget());
+ // oEl.addElemChild(emailTarget());
+ // oEl.addElemChild(jmsQueueTarget());
+ // oEl.addElemChild(jmsTopicTarget());
+ sqlTableTarget(oEl);
+
+ NotificationList oNL = new NotificationList(oEl);
+
+ // to see how the XML looks like
+ // this is just a unit test class
+ // Typically the XML is used in a parameter object (ConfigTree.fromXml())
+ System.out.println(oNL.toString());
+
+ // a simple timestamped message
+ Date oNow = new Date(System.currentTimeMillis());
+ SimpleDateFormat oStamp = new SimpleDateFormat("dd/MMM/yyyy HH:mm:ss.SSS");
+ @SuppressWarnings("unused")
+ StringBuilder sb = new StringBuilder(oStamp.format(oNow))
+ .append(" This message from Notification test");
+
+ //KS local.sendNotifications(oNL.toString(),sb.toString());
+
+ } catch (Exception e) {
+ fail();
+ logger.log(Priority.ERROR, e.getMessage(), e);
+ }
+ }
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite(NotificationUnitTest.class);
+ return new EJBContainerSetup(suite);
+ }
+
+ public static InitialContext getInitialContext() throws Exception
+ {
+ Hashtable props = getInitialContextProperties();
+ return new InitialContext(props);
+ }
+
+ private static Hashtable getInitialContextProperties()
+ {
+ Hashtable<String,String> props = new Hashtable<String,String>();
+ props.put("java.naming.factory.initial", "org.jnp.interfaces.LocalOnlyContextFactory");
+ props.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
+ return props;
+ }
+
+// static ConfigTree emailTarget() throws Exception
+// {
+// ConfigTree oTgt = new ConfigTree(NotificationList.CHILD_TGT);
+// oTgt.setAttribute(NotificationTarget.PRM_NOTIF_CLASS,"NotifyEmail");
+// oTgt.setAttribute(Email.FROM,"sender at jboss.com");
+// oTgt.setAttribute(Email.SENDTO,"receiver1 at hotmail.com,receiver2 at jboss.com");;
+// oTgt.setAttribute(Email.SUBJECT,"TEST from Rosetta");
+// oTgt.setAttribute(Email.MESSAGE,"This is the text of your message");
+//
+// // This class does NOT send the e-mails, the app server does
+// // consequently these paths would have to be accessible in the
+// // application server (filesystem / mounts)
+// String[] sa = {"/tmp/tomcat.sh","/tmp/program.js"};
+// for (String sCurr : sa)
+// oTgt.addTextChild(Email.ATTACH,sCurr);
+//
+// return oTgt;
+// } //________________________________
+//
+// static ConfigTree fileListTarget() throws Exception
+// {
+// ConfigTree oTgt = new ConfigTree(NotificationList.CHILD_TGT);
+// oTgt.setAttribute(NotificationTarget.PRM_NOTIF_CLASS,"NotifyFiles");
+//
+// // This class does NOT write the files, the app server does
+// // consequently these paths would have to be accessible in the
+// // application server (filesystem / mounts)
+// String[] sa = {"file:///tmp/file1.notif","file:///tmp/file2.notif"};
+// for (String sCurr : sa)
+// { ConfigTree oFile = new ConfigTree(NotifyFiles.CHILD_FILE);
+// oFile.setAttribute(NotifyFiles.ATT_URI,sCurr);
+// oFile.setAttribute(NotifyFiles.ATT_APPEND,Boolean.toString(true));
+// oTgt.addElemChild(oFile);
+// }
+// return oTgt;
+// } //________________________________
+//
+// static ConfigTree jmsQueueTarget() throws Exception
+// {
+// ConfigTree oTgt = new ConfigTree(NotificationList.CHILD_TGT);
+// oTgt.setAttribute(NotificationTarget.PRM_NOTIF_CLASS,"NotifyQueues");
+//
+// String[] sa = {"queue/A","queue/B"};
+// for (String sCurr : sa)
+// { ConfigTree oQ = new ConfigTree(NotifyQueues.CHILD_QUEUE);
+// oQ.setAttribute(NotifyJMS.ATT_DEST_NAME,sCurr);
+// for (ConfigTree oProp : getMessageProperties())
+// oQ.addElemChild(oProp);
+// oTgt.addElemChild(oQ);
+// }
+// return oTgt;
+// } //________________________________
+//
+// static ConfigTree jmsTopicTarget() throws Exception
+// {
+// ConfigTree oTgt = new ConfigTree(NotificationList.CHILD_TGT);
+// oTgt.setAttribute(NotificationTarget.PRM_NOTIF_CLASS,"NotifyTopics");
+//
+// String[] sa = {"topic/testTopic"};
+// for (String sCurr : sa)
+// { ConfigTree oQ = new ConfigTree(NotifyTopics.CHILD_TOPIC);
+// oQ.setAttribute(NotifyJMS.ATT_DEST_NAME,sCurr);
+// for (ConfigTree oProp : getMessageProperties())
+// oQ.addElemChild(oProp);
+// oTgt.addElemChild(oQ);
+// }
+// return oTgt;
+// } //________________________________
+//
+// static ConfigTree[] getMessageProperties() throws Exception
+// {
+// KeyValuePair[] oaProps = new KeyValuePair[]
+// {new KeyValuePair("prop1","111")
+// ,new KeyValuePair("prop2","bbb")
+// ,new KeyValuePair("prop3","abc123")
+// };
+// ConfigTree[] oaRet = new ConfigTree[oaProps.length];
+// int iCurr = 0;
+// for (KeyValuePair oCurr : oaProps)
+// { ConfigTree oElem = new ConfigTree(NotifyJMS.CHILD_MSG_PROP);
+// oElem.setAttribute(NotifyJMS.ATT_PROP_NAME,oCurr.getKey());
+// oElem.setAttribute(NotifyJMS.ATT_PROP_VALUE,oCurr.getValue());
+// oaRet[iCurr++] = oElem;
+// }
+// return oaRet;
+// } //________________________________
+
+ static ConfigTree sqlTableTarget(ConfigTree dad) throws Exception
+ {
+ ConfigTree oTgt = new ConfigTree(NotificationList.CHILD_TGT,dad);
+ oTgt.setAttribute(NotificationTarget.PRM_NOTIF_CLASS,"NotifySqlTable");
+
+ oTgt.setAttribute(SimpleDataSource.DRIVER,"org.postgresql.Driver");
+ oTgt.setAttribute(SimpleDataSource.URL,"jdbc:postgresql://localhost:5432/jbossesb");
+ oTgt.setAttribute(SimpleDataSource.USER,"postgres");
+ oTgt.setAttribute(SimpleDataSource.PASSWORD,"postgres");
+
+ // Table name for insert - must exist in database (URL)
+ oTgt.setAttribute(NotifySqlTable.ATT_TABLE,"test_notif_table");
+ // Column that will contain the dynamic data generated by the ActionClass
+ // must exist in table (ATT_TABLE above)
+ oTgt.setAttribute(NotifySqlTable.ATT_DATA,"msg");
+
+ // constant data that can be also added in the insert
+ // (perhaps needed for queries)
+ // Key = column name (it must exist in the table, same as ATT_DATA column)
+ KeyValuePair[] oaCols = new KeyValuePair[]
+ {new KeyValuePair("src","TestNotification")
+ ,new KeyValuePair("ref","any Ref")
+ ,new KeyValuePair("val1","VVVV 11111")
+ };
+ for (KeyValuePair oCurr : oaCols)
+ { ConfigTree oElem = new ConfigTree(NotifySqlTable.CHILD_COLUMN,oTgt);
+ oElem.setAttribute(NotifySqlTable.ATT_NAME,oCurr.getKey());
+ oElem.setAttribute(NotifySqlTable.ATT_VALUE,oCurr.getValue());
+ }
+
+ return oTgt;
+ }
+
+}
+
+
Added: labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/beans/PersistHandlerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/beans/PersistHandlerUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/beans/PersistHandlerUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,58 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services.beans;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
+import org.jboss.soa.esb.common.tests.BaseTest;
+import org.jboss.soa.esb.common.tests.EJBContainerSetup;
+
+
+public class PersistHandlerUnitTest extends BaseTest
+{
+ private Logger logger = Logger.getLogger(PersistHandlerUnitTest.class);
+
+ public void testConnectivityToPersistHandler() {
+ try {
+ logger.log(Priority.INFO, "PersistHandler Test");
+ PersistHandler persistHandlerLocal = (PersistHandler ) EJBContainerSetup.lookup("PersistHandlerBean/remote");
+ logger.log(Priority.INFO, "persistHandlerLocal=" + persistHandlerLocal);
+ //Create is currently failing since the config file property is not set.
+ //persistHandlerLocal.create();
+ //persistHandlerLocal.addDTO(null);
+ } catch (Exception e) {
+ logger.log(Priority.ERROR, e.getMessage(), e);
+ }
+ }
+
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite(PersistHandlerUnitTest.class);
+ return new EJBContainerSetup(suite);
+ }
+
+}
+
+
Added: labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/registry/JAXRRegistryUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/registry/JAXRRegistryUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/registry/JAXRRegistryUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,281 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services.registry;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.InputStream;
+import java.net.URLDecoder;
+import java.sql.DriverManager;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Properties;
+
+import javax.xml.registry.BulkResponse;
+import javax.xml.registry.BusinessLifeCycleManager;
+import javax.xml.registry.BusinessQueryManager;
+import javax.xml.registry.Connection;
+import javax.xml.registry.JAXRException;
+import javax.xml.registry.RegistryService;
+import javax.xml.registry.infomodel.Classification;
+import javax.xml.registry.infomodel.ClassificationScheme;
+import javax.xml.registry.infomodel.Organization;
+import javax.xml.registry.infomodel.Service;
+import javax.xml.registry.infomodel.ServiceBinding;
+import javax.xml.registry.infomodel.User;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
+import org.apache.log4j.xml.DOMConfigurator;
+import org.jboss.internal.soa.esb.addressing.EPRHelper;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.common.tests.HsqldbUtil;
+import org.jboss.soa.esb.common.tests.TestUtil;
+import org.jboss.soa.esb.services.util.FileUtil;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * Testing the registry.
+ *
+ * @author kstam
+ *
+ */
+public class JAXRRegistryUnitTest
+{
+ private static Logger logger = Logger.getLogger(JAXRRegistryUnitTest.class);
+ private static String mDbDriver;
+ private static String mDbUrl;
+ private static String mDbUsername;
+ private static String mDbPassword;
+ /**
+ * Tests the successful creation of the RED HAT/JBossESB Organization.
+ */
+ @Test
+ public void publishOrganization()
+ {
+ try {
+ Organization org = JAXRRegistryImpl.createJBossESBOrganization();
+ logger.log(Priority.INFO, "Succesfully created organization: " + org.getName().getValue());
+ assertEquals("Red Hat/JBossESB", org.getName().getValue());
+ } catch (JAXRException je) {
+ logger.log(Priority.ERROR, je.getLocalizedMessage(), je);
+ assertTrue(false);
+ }
+ }
+ @Test
+ public void findOrganization()
+ {
+ try {
+ Organization org = JAXRRegistryImpl.findOrganization("Red Hat/JBossESB");
+ logger.log(Priority.INFO, "Succesfully created organization: " + org.getName().getValue());
+ assertEquals("Red Hat/JBossESB", org.getName().getValue());
+ } catch (JAXRException je) {
+ logger.log(Priority.ERROR, je.getLocalizedMessage(), je);
+ assertTrue(false);
+ }
+ try {
+ Organization org = JAXRRegistryImpl.findOrganization("Not Existing Org");
+ logger.log(Priority.INFO, "Could not find non-existing organization.");
+ assertEquals(null, org);
+ } catch (JAXRException je) {
+ logger.log(Priority.ERROR, je.getLocalizedMessage(), je);
+ assertTrue(false);
+ }
+ }
+ /**
+ * Tests the successful registration of a Service.
+ *
+ */
+ @Test
+ public void publishService()
+ {
+ try {
+ JAXRRegistryImpl registry = new JAXRRegistryImpl();
+ registry.registerService("registry", "Registry Test ServiceName", "Registry Test Service Description");
+ } catch (JAXRException je) {
+ logger.log(Priority.ERROR, je.getLocalizedMessage(), je);
+ assertTrue(false);
+ }
+ }
+ @Test
+ public void publishServiceBinding()
+ {
+ try {
+ EPR epr = new EPR();
+ JAXRRegistryImpl registry = new JAXRRegistryImpl();
+ registry.registerEPR("registry", "Registry Test ServiceName", "Registry Test Service Description",
+ epr, "EPR description");
+ } catch (RegistryException re) {
+ logger.log(Priority.ERROR, re.getLocalizedMessage(), re);
+ assertTrue(false);
+ }
+ }
+ /**
+ * Queries the newly added information
+ * @throws Exception
+ */
+ @Test
+ public void findServicesForAnOrganization()
+ {
+ try {
+ Organization org = JAXRRegistryImpl.findOrganization("Red Hat/JBossESB");
+ //Listing out the services and their Bindings
+ logger.log(Priority.INFO, "-------------------------------------------------");
+ logger.log(Priority.INFO, "Organization name: " + org.getName().getValue());
+ logger.log(Priority.INFO, "Description: " + org.getDescription().getValue());
+ logger.log(Priority.INFO, "Key id: " + org.getKey().getId());
+ User primaryContact = org.getPrimaryContact();
+ logger.log(Priority.INFO, "Primary Contact: " + primaryContact.getPersonName().getFullName());
+ Collection services = org.getServices();
+ for (Iterator serviceIter = services.iterator();serviceIter.hasNext();) {
+ Service service = (Service) serviceIter.next();
+ logger.log(Priority.INFO, "- Service Name: " + service.getName().getValue());
+ logger.log(Priority.INFO, " Service Key : " + service.getKey().getId());
+ Collection serviceBindings = service.getServiceBindings();
+ for (Iterator serviceBindingIter = serviceBindings.iterator();serviceBindingIter.hasNext();){
+ ServiceBinding serviceBinding = (ServiceBinding) serviceBindingIter.next();
+ logger.log(Priority.INFO, " ServiceBinding Description: " + serviceBinding.getDescription().getValue());
+ String xml = URLDecoder.decode(serviceBinding.getAccessURI(),"UTF-8");
+ logger.log(Priority.INFO, " ServiceBinding URI: " + xml);
+ assertEquals(EPRHelper.toXMLString(new EPR()),xml);
+ }
+ }
+ logger.log(Priority.INFO, "-------------------------------------------------");
+ } catch (Exception je) {
+ je.printStackTrace();
+ assertTrue(false);
+ }
+ }
+ /**
+ * This doesn't work because scout drops the classifications on the floor.
+ * We're ignoring this test until I come up with a patch.
+ *
+ */
+ public void findServicesByClassification()
+ {
+ Connection connection = JAXRRegistryImpl.getConnection();
+ try {
+ // Get registry service and business query manager
+ RegistryService rs = connection.getRegistryService();
+ BusinessQueryManager bqm = rs.getBusinessQueryManager();
+ BusinessLifeCycleManager blm = rs.getBusinessLifeCycleManager();
+ ClassificationScheme classificationScheme = bqm.findClassificationSchemeByName(null, "uddi-org:general_keywords");
+ Classification classification = blm.createClassification(classificationScheme,
+ "Test transformation service", "transformation");
+ Collection<Classification> classifications = new ArrayList<Classification>();
+ classifications.add(classification);
+ //Here I'd like to test filtering by this classification, but scout ignored the classification
+ String name=classificationScheme.getName().getValue();
+ System.out.println("Name=" + name);
+ Collection<String> nameParams = new ArrayList<String>();
+ //The name of the service is wild
+ nameParams.add("%");
+ BulkResponse bs = bqm.findServices(null, null,nameParams,classifications, null);
+ int status = bs.getStatus();
+ System.out.println("status=" + status);
+ } catch (JAXRException je) {
+ je.printStackTrace();
+ }
+ finally{}
+ }
+ /**
+ * Setup the database.
+ * @throws Exception
+ */
+ @BeforeClass
+ public static void runBeforeAllTests() throws Exception {
+ try {
+ DOMConfigurator.configure(TestUtil.getPrefix() + "/etc/test/resources/log4j.xml");
+ TestUtil.setESBPropertiesFileToUse();
+ //Set the juddi properties file in System so juddi will pick it up later and use the test values.
+ String juddiPropertiesFile = "/org/jboss/soa/esb/services/registry/juddi-unittest.properties";
+ System.setProperty("juddi.propertiesFile", juddiPropertiesFile);
+ //Read this properties file to get the db connection string
+ Properties props = new Properties();
+ InputStream inStream = Class.class.getResourceAsStream(juddiPropertiesFile);
+ props.load(inStream);
+ mDbDriver = props.getProperty("juddi.jdbcDriver");
+ mDbUrl = props.getProperty("juddi.jdbcUrl");
+ mDbUsername = props.getProperty("juddi.jdbcUsername");
+ mDbPassword = props.getProperty("juddi.jdbcPassword");
+
+ String database="not tested yet";
+ if ("org.hsqldb.jdbcDriver".equals(mDbDriver)) {
+ database = "hsqldb";
+ //Bring up hsql on default port 9001
+ HsqldbUtil.startHsqldb(TestUtil.getPrefix() + "build/hsqltestdb", "juddi");
+ } else if ("com.mysql.jdbc.Driver".equals(mDbDriver)) {
+ database = "mysql";
+ } //add and test your own database..
+
+ //Get the registry-schema create scripts
+ String sqlDir = TestUtil.getPrefix() + "install/jUDDI-registry/sql/" + database + "/";
+ //Drop what is there now, if exists. We want to start fresh.
+ String sqlDropCmd = FileUtil.readTextFile(new File(sqlDir + "drop_database.sql"));
+ String sqlCreateCmd = FileUtil.readTextFile(new File(sqlDir + "create_database.sql"));
+ String sqlInsertPubCmd = FileUtil.readTextFile(new File(sqlDir + "insert_publishers.sql"));
+
+ try {
+ Class.forName(mDbDriver);
+ } catch (Exception e) {
+ System.out.println("ERROR: failed to load " + database + " JDBC driver.");
+ e.printStackTrace();
+ return;
+ }
+ java.sql.Connection con = DriverManager.getConnection(mDbUrl, mDbUsername, mDbPassword);
+ Statement stmnt = con.createStatement();
+ System.out.println("Dropping the schema if exist");
+ stmnt.execute(sqlDropCmd);
+ System.out.println("Creating the juddi-schema");
+ stmnt.execute(sqlCreateCmd);
+ System.out.println("Adding the jbossesb publisher");
+ stmnt.execute(sqlInsertPubCmd);
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.out.println("We should stop testing, since we don't have a db.");
+ assertTrue(false);
+ }
+ }
+ /**
+ * Shutdown the database
+ * @throws Exception
+ */
+ @AfterClass
+ public static void runAfterAllTests() throws Exception {
+ if ("org.hsqldb.jdbcDriver".equals(mDbDriver)) {
+ HsqldbUtil.stopHsqldb(mDbUrl, mDbUsername, mDbPassword);
+ }
+ }
+
+ public static junit.framework.Test suite() {
+ return new JUnit4TestAdapter(JAXRRegistryUnitTest.class);
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/registry/RegistryUnitTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/registry/RegistryUnitTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/registry/RegistryUnitTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,219 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services.registry;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.InputStream;
+import java.sql.DriverManager;
+import java.sql.Statement;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Properties;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.common.tests.HsqldbUtil;
+import org.jboss.soa.esb.common.tests.TestUtil;
+import org.jboss.soa.esb.services.util.FileUtil;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+/**
+ * Testing the registry.
+ *
+ * @author kstam
+ *
+ */
+public class RegistryUnitTest
+{
+ private static String mDbDriver;
+ private static String mDbUrl;
+ private static String mDbUsername;
+ private static String mDbPassword;
+ private static final String SERVICE_NAME = "Kurt's Travel Agency";
+ private static final String CATEGORY = "travel";
+
+ private Logger logger = Logger.getLogger(this.getClass());
+
+ /**
+ * Testing the registering of an EPR.
+ */
+ @Test
+ public void publishEPR()
+ {
+ Registry registry = RegistryFactory.getRegistry();
+ EPR epr = new EPR();
+ try {
+ registry.registerEPR(CATEGORY, SERVICE_NAME, "Service for traveling",
+ epr, "Specific Service Binding for traveling");
+ } catch (RegistryException re) {
+ logger.log(Priority.ERROR, re.getLocalizedMessage(), re);
+ assertTrue(false);
+ }
+ }
+ /**
+ * This test will try to find all services in the "travel" category.
+ */
+ @Test
+ public void findService()
+ {
+ Registry registry = RegistryFactory.getRegistry();
+ try {
+ Collection<String> services = registry.findServices(CATEGORY);
+ for (Iterator i=services.iterator();i.hasNext();) {
+ String serviceName = (String) i.next();
+ logger.log(Priority.INFO, "Found service: " + serviceName);
+ assertEquals(CATEGORY + ":" + SERVICE_NAME, serviceName);
+ }
+ } catch (RegistryException re) {
+ logger.log(Priority.ERROR, re.getLocalizedMessage(), re);
+ assertTrue(false);
+ }
+ }
+ /**
+ * Find the EPRs for this service.
+ */
+ @Test
+ public void findEPRs()
+ {
+ Registry registry = RegistryFactory.getRegistry();
+ try {
+ Collection<EPR> eprs = registry.findEPRs(CATEGORY, SERVICE_NAME);
+ for (Iterator i=eprs.iterator();i.hasNext();) {
+ EPR epr = (EPR) i.next();
+ logger.log(Priority.INFO, "Found epr: " + epr);
+ }
+ } catch (RegistryException re) {
+ logger.log(Priority.ERROR, re.getLocalizedMessage(), re);
+ assertTrue(false);
+ }
+ }
+ @Test
+ public void unregisterEPR()
+ {
+ Registry registry = RegistryFactory.getRegistry();
+ try {
+ EPR eprToBeRemoved = new EPR();
+ registry.unRegisterEPR(CATEGORY, SERVICE_NAME, eprToBeRemoved);
+// Now make sure this EPR is really gone
+ Collection<EPR> eprs = registry.findEPRs(CATEGORY, SERVICE_NAME);
+ logger.log(Priority.INFO, "Number of Bindings left should be 0, and is: " + eprs.size());
+ assertEquals(eprs.size(),0);
+ } catch (Exception re) {
+ logger.log(Priority.ERROR, re.getLocalizedMessage(), re);
+ assertTrue(false);
+ }
+ }
+ @Test
+ public void unregisterService()
+ {
+ Registry registry = RegistryFactory.getRegistry();
+ try {
+ registry.unRegisterService(CATEGORY, SERVICE_NAME);
+ //Make sure it's really gone
+ Collection<String> services = registry.findAllServices();
+ logger.log(Priority.INFO, "Number of Services left should be 0, and is: " + services.size());
+ assertEquals(services.size(),0);
+ } catch (Exception re) {
+ logger.log(Priority.ERROR, re.getLocalizedMessage(), re);
+ assertTrue(false);
+ }
+ }
+ /**
+ * Setup the database.
+ * @throws Exception
+ */
+ @BeforeClass
+ public static void runBeforeAllTests() throws Exception {
+ try {
+ TestUtil.setESBPropertiesFileToUse();
+ //Set the juddi properties file in System so juddi will pick it up later and use the test values.
+ String juddiPropertiesFile = "/org/jboss/soa/esb/services/registry/juddi-unittest.properties";
+ System.setProperty("juddi.propertiesFile", juddiPropertiesFile);
+ //Read this properties file to get the db connection string
+ Properties props = new Properties();
+ InputStream inStream = Class.class.getResourceAsStream(juddiPropertiesFile);
+ props.load(inStream);
+ mDbDriver = props.getProperty("juddi.jdbcDriver");
+ mDbUrl = props.getProperty("juddi.jdbcUrl");
+ mDbUsername = props.getProperty("juddi.jdbcUsername");
+ mDbPassword = props.getProperty("juddi.jdbcPassword");
+
+ String database="not tested yet";
+ if ("org.hsqldb.jdbcDriver".equals(mDbDriver)) {
+ database = "hsqldb";
+ //Bring up hsql on default port 9001
+ HsqldbUtil.startHsqldb(TestUtil.getPrefix() + "build/hsqltestdb", "juddi");
+ } else if ("com.mysql.jdbc.Driver".equals(mDbDriver)) {
+ database = "mysql";
+ } //add and test your own database..
+
+ //Get the registry-schema create scripts
+ String sqlDir = TestUtil.getPrefix() + "install/jUDDI-registry/sql/" + database + "/";
+ //Drop what is there now, if exists. We want to start fresh.
+ String sqlDropCmd = FileUtil.readTextFile(new File(sqlDir + "drop_database.sql"));
+ String sqlCreateCmd = FileUtil.readTextFile(new File(sqlDir + "create_database.sql"));
+ String sqlInsertPubCmd = FileUtil.readTextFile(new File(sqlDir + "insert_publishers.sql"));
+
+ try {
+ Class.forName(mDbDriver);
+ } catch (Exception e) {
+ System.out.println("ERROR: failed to load " + database + " JDBC driver.");
+ e.printStackTrace();
+ return;
+ }
+ java.sql.Connection con = DriverManager.getConnection(mDbUrl, mDbUsername, mDbPassword);
+ Statement stmnt = con.createStatement();
+ System.out.println("Dropping the schema if exist");
+ stmnt.execute(sqlDropCmd);
+ System.out.println("Creating the juddi-schema");
+ stmnt.execute(sqlCreateCmd);
+ System.out.println("Adding the jbossesb publisher");
+ stmnt.execute(sqlInsertPubCmd);
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.out.println("We should stop testing, since we don't have a db.");
+ assertTrue(false);
+ }
+ }
+ /**
+ * Shutdown the database
+ * @throws Exception
+ */
+ @AfterClass
+ public static void runAfterAllTests() throws Exception {
+ if ("org.hsqldb.jdbcDriver".equals(mDbDriver)) {
+ HsqldbUtil.stopHsqldb(mDbUrl, mDbUsername, mDbPassword);
+ }
+ }
+
+ public static junit.framework.Test suite() {
+ return new JUnit4TestAdapter(RegistryUnitTest.class);
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/registry/juddi-unittest.properties
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/registry/juddi-unittest.properties 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/registry/juddi-unittest.properties 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,69 @@
+# jUDDI Registry Properties (used by RegistryServer)
+# see http://www.juddi.org for more information
+
+# The UDDI Operator Name
+juddi.operatorName = jUDDI.org
+
+# The i18n locale default codes
+juddi.i18n.languageCode = en
+juddi.i18n.countryCode = US
+
+# The UDDI DiscoveryURL Prefix
+juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
+
+# The UDDI Operator Contact Email Address
+juddi.operatorEmailAddress = admin at juddi.org
+
+# The maximum name size and maximum number
+# of name elements allows in several of the
+# FindXxxx and SaveXxxx UDDI functions.
+juddi.maxNameLength=255
+juddi.maxNameElementsAllowed=5
+
+# The maximum number of UDDI artifacts allowed
+# per publisher. A value of '-1' indicates any
+# number of artifacts is valid (These values can be
+# overridden at the individual publisher level).
+juddi.maxBusinessesPerPublisher=25
+juddi.maxServicesPerBusiness=20
+juddi.maxBindingsPerService=10
+juddi.maxTModelsPerPublisher=100
+
+# jUDDI Authentication module to use
+juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
+
+# jUDDI DataStore module currently to use
+juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
+
+# use a dataSource (if set to false a direct
+# jdbc connection will be used.
+juddi.isUseDataSource=false
+juddi.jdbcDriver=org.hsqldb.jdbcDriver
+juddi.jdbcUrl=jdbc:hsqldb:hsql://localhost/juddi
+juddi.jdbcUsername=sa
+juddi.jdbcPassword=
+# jUDDI DataSource to use
+juddi.dataSource=java:comp/env/jdbc/juddiDB
+
+# jUDDI UUIDGen implementation to use
+juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
+
+# jUDDI Cryptor implementation to use
+juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
+
+# jUDDI Validator to use
+juddi.validator=org.apache.juddi.validator.DefaultValidator
+
+# jUDDI Proxy Properties (used by RegistryProxy)
+juddi.proxy.adminURL = http://localhost:8080/juddi/admin
+juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
+juddi.proxy.publishURL = http://localhost:8080/juddi/publish
+juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
+juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
+juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
+
+# JNDI settings (used by RMITransport)
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+
Added: labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/tests/objectstore/ObjectStoreFuncTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/tests/objectstore/ObjectStoreFuncTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/tests/objectstore/ObjectStoreFuncTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,91 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services.tests.objectstore;
+
+import org.jboss.soa.esb.common.tests.BaseTest;
+
+// DON'T FORGET !!
+// The Rosetta Application server has to be up and running
+// (set JNDI_SERVER appropriately)
+
+public class ObjectStoreFuncTest extends BaseTest
+{
+ public ObjectStoreFuncTest() {
+ }
+
+ public void testNotImplementedFuncTest() {
+ log.info("*******************************************");
+ log.info("Requires Implementation");
+ log.info("*******************************************");
+ }
+
+ /*
+ public ObjectStoreFuncTest () throws Exception
+ { performTest(); }
+
+ static void performTest() throws Exception
+ {
+ // get a handle to your business delegate
+ m_oH = PersistHandlerFactory.getPersistHandler
+ ("remote"
+ ,SystemProperties.getJndiServerType()
+ ,SystemProperties.getJndiServerURL()
+ );
+
+ // request UID chunks for your own use
+ // int[] ia = {10,20,30};
+ // for (int iCurr : ia)
+ // System.out.println
+ // ("Requesting "+iCurr+" uids "
+ // +" - First UID returned = " +m_oH.getUidChunk(iCurr)
+ // );
+
+ storeAndRetrievePerson();
+ } //________________________________
+
+ static void storeAndRetrievePerson() throws Exception
+ {
+ // set up a Person (see TestPersonAddrPhone.class)
+ Person oPrs = PersonUnitTest.getPerson();
+ // timestamp, uid and snap Uid are added just to make it easier
+ // to compare output text
+ oPrs.setStamp(System.currentTimeMillis());
+ long lUid = m_oH.addObject(oPrs);
+ oPrs.setUid(lUid);
+ oPrs.setSnap(lUid);
+
+ // retrieve it from the Object Store
+ Person oP2 = (Person)m_oH.getObject(Person.class,lUid);
+
+ // output in XML format both objects, and compare
+ // timestamps will differ slightly because first object
+ // has a dummy timestamp (just before "store" request)
+ System.out.println(oPrs.toDTO().toXml());
+ System.out.println(oP2.toDTO().toXml());
+
+ // if you used the "ObjStoreExample.xml" that comes with the
+ // standard example, you'll be able to see your objects
+ // in the "object_snap" and "people_index" tables
+
+ } //________________________________
+ */
+} //____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/util/FileUtil.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/util/FileUtil.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/core/services/tests/src/org/jboss/soa/esb/services/util/FileUtil.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,83 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services.util;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+/**
+ * Utility class for reading a file into a String and back.
+ * @author kstam
+ */
+public class FileUtil {
+ /**
+ * Read the file into a String.
+ * @param file - the file to be read
+ * @return String with the content of the file
+ * @throws IOException - when we can't read the file
+ */
+ public static String readTextFile(File file) throws IOException
+ {
+ StringBuffer sb = new StringBuffer(1024);
+ BufferedReader reader = new BufferedReader(new FileReader(file.getPath()));
+ char[] chars = new char[1];
+ while( (reader.read(chars)) > -1){
+ sb.append(String.valueOf(chars));
+ chars = new char[1];
+ }
+ reader.close();
+ return sb.toString();
+ }
+ /**
+ *
+ */
+ public static String readStream(InputStream inputStream) throws IOException
+ {
+ StringBuffer sb = new StringBuffer(1024);
+ BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
+ char[] chars = new char[1];
+ while( (reader.read(chars)) > -1){
+ sb.append(String.valueOf(chars));
+ chars = new char[1];
+ }
+ reader.close();
+ return sb.toString();
+ }
+ /**
+ * Write a String into a file.
+ * @param file - File to which we write the String
+ * @param str - string which will be written
+ * @throws IOException - when we can't write to the file
+ */
+ public static void writeTextFile(File file, String str) throws IOException
+ {
+ BufferedWriter writer = new BufferedWriter(new FileWriter(file.getPath()));
+ writer.write(str);
+ writer.close();
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/docs/ConfiguringHypersonicDatabase.pdf
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/docs/ConfiguringHypersonicDatabase.pdf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/docs/ConfiguringHypersonicDatabase.sxw
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/docs/ConfiguringHypersonicDatabase.sxw
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/docs/GettingStarted.pdf
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/docs/GettingStarted.pdf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/docs/GettingStarted.sxw
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/docs/GettingStarted.sxw
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/docs/GpListenerXmlConfiguration.pdf
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/docs/GpListenerXmlConfiguration.pdf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/docs/GpListenerXmlConfiguration.sxc
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/docs/GpListenerXmlConfiguration.sxc
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/docs/MessageTransformation.pdf
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/docs/MessageTransformation.pdf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/docs/MessageTransformation.sxw
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/docs/MessageTransformation.sxw
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/docs/NotificationXmlConfiguration.pdf
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/docs/NotificationXmlConfiguration.pdf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/docs/NotificationXmlConfiguration.sxc
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/docs/NotificationXmlConfiguration.sxc
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/docs/ProgrammersGuide.pdf
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/docs/ProgrammersGuide.pdf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/docs/ProgrammersGuide.sxw
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/docs/ProgrammersGuide.sxw
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/build.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/build.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/build.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,143 @@
+<project name="JBESB" default="usage" basedir=".">
+
+
+ <!-- ================================================================== -->
+ <!-- P R O P E R T I E S -->
+ <!-- ================================================================== -->
+ <!--
+ <property name="org.jboss.esb.etc.schema.xsd.home" value="../schemas/xml"/>
+ <property name="org.jboss.esb.etc.schema.xsd.examples" value="."/>
+ -->
+ <property name="org.jboss.esb.etc.validation.build.dir" value="build"/>
+ <property name="org.jboss.esb.etc.validation.classes.dir" value="${org.jboss.esb.etc.validation.build.dir}/classes"/>
+ <property name="org.jboss.esb.etc.validation.junit.dir" value="${org.jboss.esb.etc.validation.build.dir}/junit"/>
+
+
+ <!-- ================================================================== -->
+ <!-- P A T H S -->
+ <!-- ================================================================== -->
+ <path id="build.classpath">
+ <fileset dir="../../../lib">
+ <include name="**/**/*.jar"/>
+ </fileset>
+ </path>
+
+
+ <!-- ================================================================== -->
+ <!-- U S A G E -->
+ <!-- ================================================================== -->
+ <target name="org.jboss.esb.etc.schema.usage" >
+ <echo message="+----------------------------------------------------------------+"/>
+ <echo message="| "/>
+ <echo message="| U S A G E: "/>
+ <echo message="| "/>
+ <echo message="| ant [target] [options] "/>
+ <echo message="| "/>
+ <echo message="| Where: "/>
+ <echo message="| "/>
+ <echo message="| targets = "/>
+ <echo message="| clean [ clean temporary dirs and classes ] "/>
+ <echo message="| build [ compile classes ] "/>
+ <echo message="| validate [ validate all xsd examples ] "/>
+ <echo message="| "/>
+ <echo message="+----------------------------------------------------------------+"/>
+ </target>
+
+
+ <!-- ================================================================== -->
+ <!-- C L E A N -->
+ <!-- ================================================================== -->
+ <target name="org.jboss.esb.etc.schema.clean" >
+ <echo message="+--------------------------------------------------------+"/>
+ <echo message="| |"/>
+ <echo message="| C L E A N |"/>
+ <echo message="| |"/>
+ <echo message="+--------------------------------------------------------+"/>
+ <delete dir="${org.jboss.esb.etc.validation.build.dir}"/>
+ </target>
+
+
+ <!-- ================================================================== -->
+ <!-- P R E P A R E -->
+ <!-- ================================================================== -->
+ <target name="org.jboss.esb.etc.schema.prepare" depends="clean" >
+ <echo message="+--------------------------------------------------------+"/>
+ <echo message="| |"/>
+ <echo message="| P R E P A R E |"/>
+ <echo message="| |"/>
+ <echo message="+--------------------------------------------------------+"/>
+ <mkdir dir="${org.jboss.esb.etc.validation.classes.dir}"/>
+ <mkdir dir="${org.jboss.esb.etc.validation.junit.dir}"/>
+ </target>
+
+
+ <!-- ================================================================== -->
+ <!-- B U I L D -->
+ <!-- ================================================================== -->
+ <target name="org.jboss.esb.etc.schema.build" depends="org.jboss.esb.etc.schema.prepare" >
+ <echo message="+--------------------------------------------------------+"/>
+ <echo message="| |"/>
+ <echo message="| C O M P I L E |"/>
+ <echo message="| |"/>
+ <echo message="+--------------------------------------------------------+"/>
+ <javac
+ destdir="${org.jboss.esb.etc.validation.classes.dir}"
+ classpathref="build.classpath">
+ <src path="src"/>
+ </javac>
+ </target>
+
+ <!-- ================================================================== -->
+ <!-- V A L I D A T E -->
+ <!-- ================================================================== -->
+ <target name="org.jboss.esb.etc.schema.validate" depends="build" >
+ <echo message="+--------------------------------------------------------+"/>
+ <echo message="| |"/>
+ <echo message="| V A L I D A T E |"/>
+ <echo message="| |"/>
+ <echo message="+--------------------------------------------------------+"/>
+ <junit printsummary="yes" haltonerror="yes" haltonfailure="yes" showoutput="no" fork="true">
+ <formatter type="plain" usefile="false"/>
+ <formatter type="xml"/>
+ <batchtest todir="${org.jboss.esb.etc.validation.junit.dir}">
+ <fileset dir="src">
+ <include name="**/**Test.java"/>
+ </fileset>
+ </batchtest>
+ <classpath>
+ <pathelement location="${org.jboss.esb.etc.validation.classes.dir}"/>
+ <pathelement location="src"/>
+ <pathelement location="${basedir}"/>
+ <path refid="build.classpath"/>
+ </classpath>
+ <sysproperty key="log4j.configuration" value="log4j.xml"/>
+ <sysproperty key="xml.base.dir" value="${basedir}/resources"/>
+ <sysproperty key="xsd.base.dir" value="${basedir}/../schemas/xml"/>
+ </junit>
+ <junitreport>
+ <fileset dir="${org.jboss.esb.etc.validation.junit.dir}">
+ <include name="*.xml"/>
+ </fileset>
+ <report format="frames" todir="${org.jboss.esb.etc.validation.junit.dir}"/>
+ <report format="noframes" todir="${org.jboss.esb.etc.validation.junit.dir}"/>
+ </junitreport>
+ <!-- clean up
+ <move file="TESTS-TestSuites.xml" todir="${org.jboss.esb.etc.validation.junit.dir}"/>
+ -->
+
+ </target>
+
+
+
+
+ <!-- ================================================================== -->
+ <!-- S H O R T N A M E S -->
+ <!-- ================================================================== -->
+ <target name="usage" depends="org.jboss.esb.etc.schema.usage" />
+ <target name="clean" depends="org.jboss.esb.etc.schema.clean" />
+ <target name="build" depends="org.jboss.esb.etc.schema.build" />
+ <target name="validate" depends="org.jboss.esb.etc.schema.validate" />
+
+
+
+</project>
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/log4j.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/log4j.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/log4j.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Target" value="System.out"/>
+ <param name="Threshold" value="INFO"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- A size based file rolling appender -->
+ <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="./epr-validation-tests.log"/>
+ <param name="Append" value="false"/>
+ <param name="MaxFileSize" value="500KB"/>
+ <param name="MaxBackupIndex" value="1"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ====================== -->
+ <!-- More Appender examples -->
+ <!-- ====================== -->
+
+ <!-- Buffer events and log them asynchronously
+ <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <appender-ref ref="FILE"/>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="SMTP"/>
+ </appender>
+ -->
+
+ <!-- EMail events to an administrator
+ <appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Threshold" value="ERROR"/>
+ <param name="To" value="admin at myhost.domain.com"/>
+ <param name="From" value="nobody at myhost.domain.com"/>
+ <param name="Subject" value="JBoss Sever Errors"/>
+ <param name="SMTPHost" value="localhost"/>
+ <param name="BufferSize" value="10"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- Syslog events
+ <appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Facility" value="LOCAL7"/>
+ <param name="FacilityPrinting" value="true"/>
+ <param name="SyslogHost" value="localhost"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- Log events to JMS (requires a topic to be created)
+ <appender name="JMS" class="org.apache.log4j.net.JMSAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Threshold" value="ERROR"/>
+ <param name="TopicConnectionFactoryBindingName" value="java:/ConnectionFactory"/>
+ <param name="TopicBindingName" value="topic/MyErrorsTopic"/>
+ </appender>
+ -->
+
+ <!-- Log events through SNMP
+ <appender name="TRAP_LOG" class="org.apache.log4j.ext.SNMPTrapAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="ImplementationClassName" value="org.apache.log4j.ext.JoeSNMPTrapSender"/>
+ <param name="ManagementHost" value="127.0.0.1"/>
+ <param name="ManagementHostTrapListenPort" value="162"/>
+ <param name="EnterpriseOID" value="1.3.6.1.4.1.24.0"/>
+ <param name="LocalIPAddress" value="127.0.0.1"/>
+ <param name="LocalTrapSendPort" value="161"/>
+ <param name="GenericTrapType" value="6"/>
+ <param name="SpecificTrapType" value="12345678"/>
+ <param name="CommunityString" value="public"/>
+ <param name="ForwardStackTraceWithTrap" value="true"/>
+ <param name="Threshold" value="DEBUG"/>
+ <param name="ApplicationTrapOID" value="1.3.6.1.4.1.24.12.10.22.64"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d,%p,[%t],[%c],%m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- Emit events as JMX notifications
+ <appender name="JMX" class="org.jboss.monitor.services.JMXNotificationAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+
+ <param name="Threshold" value="WARN"/>
+ <param name="ObjectName" value="jboss.system:service=Logging,type=JMXNotificationAppender"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%c] %m"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
+ <category name="org.apache">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
+ <category name="org.jgroups">
+ <priority value="WARN"/>
+ </category>
+
+ <!-- Limit jboss axis to INFO as its DEBUG is even more verbose -->
+ <category name="org.jboss.axis">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit JBoss categories
+ <category name="org.jboss">
+ <priority value="INFO"/>
+ </category>
+ -->
+
+ <!-- Limit the JSR77 categories -->
+ <category name="org.jboss.management">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit JBoss webservice category
+ <category name="org.jboss.webservice">
+ <priority value="DEBUG"/>
+ </category>
+ -->
+
+ <!-- Decrease the priority threshold for the org.jboss.varia category
+ <category name="org.jboss.varia">
+ <priority value="DEBUG"/>
+ </category>
+ -->
+
+ <!-- Show the evolution of the DataSource pool in the logs [inUse/Available/Max]
+ <category name="org.jboss.resource.connectionmanager.JBossManagedConnectionPool">
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ </category>
+ -->
+
+ <!--
+ | An example of enabling the custom TRACE level priority that is used
+ | by the JBoss internals to diagnose low level details. This example
+ | turns on TRACE level msgs for the org.jboss.ejb.plugins package and its
+ | subpackages. This will produce A LOT of logging output.
+ <category name="org.jboss.system">
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ </category>
+ <category name="org.jboss.ejb.plugins">
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ </category>
+ -->
+
+ <!--
+ | Logs these events to SNMP:
+ - server starts/stops
+ - cluster evolution (node death/startup)
+ - When an EJB archive is deployed (and associated verified messages)
+ - When an EAR archive is deployed
+
+ <category name="org.jboss.system.server.Server">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.ha.framework.interfaces.HAPartition.lifecycle">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.deployment.MainDeployer">
+ <priority value="ERROR" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.ejb.EJBDeployer">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.deployment.EARDeployer">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ -->
+
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="FILE"/>
+ </root>
+
+ <!-- Clustering logging -->
+ <!-- Uncomment the following to redirect the org.jgroups and
+ org.jboss.ha categories to a cluster.log file.
+
+ <appender name="CLUSTER" class="org.jboss.logging.appender.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="${jboss.server.home.dir}/log/cluster.log"/>
+ <param name="Append" value="false"/>
+ <param name="MaxFileSize" value="500KB"/>
+ <param name="MaxBackupIndex" value="1"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+ </layout>
+ </appender>
+ <category name="org.jgroups">
+ <priority value="DEBUG" />
+ <appender-ref ref="CLUSTER"/>
+ </category>
+ <category name="org.jboss.ha">
+ <priority value="DEBUG" />
+ <appender-ref ref="CLUSTER"/>
+ </category>
+ -->
+
+</log4j:configuration>
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/resources/basic-email-epr-example.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/resources/basic-email-epr-example.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/resources/basic-email-epr-example.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<e:email-epr
+ xmlns:e="http://www.jboss.org/soa/endpoint/email-epr"
+ xmlns:email="http://www.jboss.org/soa/endpoint/protocol/email"
+ xmlns:wsa="http://www.w3.org/2005/08/addressing"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.jboss.org/soa/endpoint/email-epr email-epr.xsd" version="String">
+ <wsa:EndpointReference>
+ <wsa:Address>http://www.altova.com</wsa:Address>
+ <wsa:ReferenceParameters/>
+ <wsa:Metadata/>
+ </wsa:EndpointReference>
+ <email:email>
+ <service-name>basic-email-epr-example</service-name>
+ <service-type>email</service-type>
+ <gateway-type>consumer</gateway-type>
+ <protocol>smtp</protocol>
+ <host>String</host>
+ <port>25</port>
+ <username>String</username>
+ <password>String</password>
+ </email:email>
+</e:email-epr>
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/resources/basic-ftp-epr-example.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/resources/basic-ftp-epr-example.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/resources/basic-ftp-epr-example.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<f:ftp-epr
+ xmlns:f="http://www.jboss.org/soa/endpoint/ftp-epr"
+ xmlns:ftp="http://www.jboss.org/soa/endpoint/protocol/ftp"
+ xmlns:wsa="http://www.w3.org/2005/08/addressing"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.jboss.org/soa/endpoint/ftp-epr ftp-epr.xsd" version="String">
+ <wsa:EndpointReference>
+ <wsa:Address>http://www.altova.com</wsa:Address>
+ <wsa:ReferenceParameters/>
+ <wsa:Metadata/>
+ </wsa:EndpointReference>
+ <ftp:ftp>
+ <service-name>String</service-name>
+ <service-type>ftp</service-type>
+ <gateway-type>consumer</gateway-type>
+ <host>String</host>
+ <port>23</port>
+ <username>String</username>
+ <password>String</password>
+ <directory>String</directory>
+ </ftp:ftp>
+</f:ftp-epr>
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/resources/basic-jdbc-epr-example.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/resources/basic-jdbc-epr-example.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/resources/basic-jdbc-epr-example.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<j:jdbc-epr
+ xmlns:j="http://www.jboss.org/soa/endpoint/jdbc-epr"
+ xmlns:jdbc="http://www.jboss.org/soa/endpoint/protocol/jdbc"
+ xmlns:wsa="http://www.w3.org/2005/08/addressing"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.jboss.org/soa/endpoint/jdbc-epr jdbc-epr.xsd" version="String">
+ <wsa:EndpointReference>
+ <wsa:Address>http://www.altova.com</wsa:Address>
+ <wsa:ReferenceParameters/>
+ <wsa:Metadata/>
+ </wsa:EndpointReference>
+ <jdbc:jdbc>
+ <service-name>String</service-name>
+ <service-type>http</service-type>
+ <gateway-type>consumer</gateway-type>
+ <url>String</url>
+ <driver>String</driver>
+ <username>String</username>
+ <password>String</password>
+ <sql>String</sql>
+ </jdbc:jdbc>
+</j:jdbc-epr>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/resources/basic-jms-epr-example.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/resources/basic-jms-epr-example.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/resources/basic-jms-epr-example.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<j:jms-epr
+ xmlns:j="http://www.jboss.org/soa/endpoint/jms-epr"
+ xmlns:jms="http://www.jboss.org/soa/endpoint/protocol/jms"
+ xmlns:wsa="http://www.w3.org/2005/08/addressing"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.jboss.org/soa/endpoint/jms-epr jms-epr.xsd" version="String">
+ <wsa:EndpointReference>
+ <wsa:Address>http://www.altova.com</wsa:Address>
+ <wsa:ReferenceParameters/>
+ <wsa:Metadata/>
+ </wsa:EndpointReference>
+ <jms:jms>
+ <service-name>basic-jms-epr-example</service-name>
+ <service-type>jms</service-type>
+ <gateway-type>consumer</gateway-type>
+ <spec-version>1.1</spec-version>
+ <destination-type>queue</destination-type>
+ <destination-name>String</destination-name>
+ <connection-factory>String</connection-factory>
+ </jms:jms>
+</j:jms-epr>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/src/org/jboss/soa/esb/services/xml/XmlValidation.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/src/org/jboss/soa/esb/services/xml/XmlValidation.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/src/org/jboss/soa/esb/services/xml/XmlValidation.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,127 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.services.xml;
+
+import org.xml.sax.SAXException;
+import org.w3c.dom.Document;
+import org.jboss.logging.Logger;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.validation.Validator;
+import javax.xml.validation.SchemaFactory;
+import javax.xml.validation.Schema;
+import javax.xml.transform.Source;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.XMLConstants;
+import java.io.File;
+
+/**
+ * A Helper classes used to validate xml files against supplied schemas.
+ *
+ * @author $Revision$
+ * $Id$
+ */
+public class XmlValidation {
+
+ /**
+ * Our Logger
+ */
+ private Logger log = Logger.getLogger(XmlValidation.class);
+ /**
+ * The xml base directory.
+ */
+ private String xmlBaseDirectory = null;
+ /**
+ * The xml base directory key.
+ */
+ private String xmlBaseDirectoryKey = "xml.base.dir";
+ /**
+ * The xsd base directory.
+ */
+ private String xsdBaseDirectory = null;
+ /**
+ * The xsd base directory key.
+ */
+ private String xsdBaseDirectoryKey = "xsd.base.dir";
+ /**
+ * The path separator
+ */
+ private static String SEP = System.getProperty("file.separator");
+
+ /**
+ * Default class constructor
+ */
+ public XmlValidation() {
+ if(System.getProperty(xmlBaseDirectoryKey) != null) {
+ xmlBaseDirectory = System.getProperty(xmlBaseDirectoryKey);
+ log.info("Using xml base directory " + xmlBaseDirectory);
+ }
+ if(System.getProperty(xsdBaseDirectoryKey) != null) {
+ xsdBaseDirectory = System.getProperty(xsdBaseDirectoryKey);
+ log.info("Using xsd base directory " + xsdBaseDirectory);
+ }
+ }
+
+ /**
+ * Validation method used to validate an xml file against an xsd.
+ * @param xml The xml file to be validated.
+ * @param xsd The schema to validate against.
+ * @return Boolean true/false indicating successful validation.
+ * @throws Exception Failure during validation.
+ */
+ public boolean validate(String xml, String xsd) throws Exception {
+ if(log.isInfoEnabled()) {
+ log.info("Validating " + xml + " Against " + xsd);
+ }
+ boolean isValid = false;
+ File xmlFile = new File(xmlBaseDirectory + SEP + xml);
+ File xsdFile = new File(xsdBaseDirectory + SEP + xsd);
+ log.info("Xml File=" + xmlFile.getAbsolutePath());
+ log.info("Xsd File=" + xsdFile.getAbsolutePath());
+ DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ Document document = parser.parse(xmlFile);
+ //log.info("Xml=" + document.toString());
+ SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
+ Source schemaFile = new StreamSource(xsdFile);
+ //log.info("Xsd=" + schemaFile.toString());
+ Schema schema = factory.newSchema(schemaFile);
+ Validator validator = schema.newValidator();
+ try {
+ validator.validate(new DOMSource(document));
+ isValid = true;
+ } catch (SAXException e) {
+ log.error("Failed to validate xml",e);
+ throw e;
+ }
+ if(log.isInfoEnabled()) {
+ log.info("IsValid = " + isValid);
+ }
+ return isValid;
+ }
+
+
+
+
+
+}
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/src/org/jboss/soa/esb/services/xml/XmlValidationTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/src/org/jboss/soa/esb/services/xml/XmlValidationTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/validation/src/org/jboss/soa/esb/services/xml/XmlValidationTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,59 @@
+package org.jboss.soa.esb.services.xml;
+
+import junit.framework.TestCase;
+import org.jboss.logging.Logger;
+
+
+public class XmlValidationTest extends TestCase {
+
+ /**
+ * Our Logger
+ */
+ private Logger log = Logger.getLogger(XmlValidationTest.class);
+
+ /**
+ * Validate the Email EPR
+ * @throws Exception
+ */
+ public void testBasicEmailEPR() throws Exception {
+ log.info("Running Basic Email EPR Test");
+ XmlValidation xmlValidator = new XmlValidation();
+ boolean isValid = xmlValidator.validate("basic-email-epr-example.xml","email-epr.xsd");
+ assertTrue("Expecting basic-email-epr-example.xml to be valid.", isValid);
+ }
+
+ /**
+ * Validate the JMS EPR
+ * @throws Exception
+ */
+ public void testBasicJMSEPR() throws Exception {
+ log.info("Running Basic JMS EPR Test");
+ XmlValidation xmlValidator = new XmlValidation();
+ boolean isValid = xmlValidator.validate("basic-jms-epr-example.xml","jms-epr.xsd");
+ assertTrue("Expecting basic-jms-epr-example.xml to be valid.", isValid);
+ }
+
+ /**
+ * Validate the JDBC EPR
+ * @throws Exception
+ */
+ public void testBasicJDBCEPR() throws Exception {
+ log.info("Running Basic JDBC EPR Test");
+ XmlValidation xmlValidator = new XmlValidation();
+ boolean isValid = xmlValidator.validate("basic-jdbc-epr-example.xml","jdbc-epr.xsd");
+ assertTrue("Expecting basic-jdbc-epr-example.xml to be valid.", isValid);
+ }
+
+ /**
+ * Validate the FTP EPR
+ * @throws Exception
+ */
+ public void testBasicFTPEPR() throws Exception {
+ log.info("Running Basic FTP EPR Test");
+ XmlValidation xmlValidator = new XmlValidation();
+ boolean isValid = xmlValidator.validate("basic-ftp-epr-example.xml","ftp-epr.xsd");
+ assertTrue("Expecting basic-ftp-epr-example.xml to be valid.", isValid);
+ }
+
+
+}
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/README.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/README.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/README.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,6 @@
+This directory contains the start of xml/schema/epr
+definitions. In most cases they are simply ideas
+comming together and therefore are subject to change.
+
+NOTE: These current set of XSD's are not valid yet.
+They are in the process of being built then validated.
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/common.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/common.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/common.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+This schema contains common definitions required by all
+eprs.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.jboss.org/soa/endpoint/common" elementFormDefault="unqualified" attributeFormDefault="unqualified">
+ <annotation>
+ <documentation>
+ JBoss Inc JMS SOA Schema Definition Copyright 2006
+ </documentation>
+ </annotation>
+ <simpleType name="service-name">
+ <restriction base="string"/>
+ </simpleType>
+ <simpleType name="service-type">
+ <restriction base="string">
+ <enumeration value="http"/>
+ <enumeration value="jms"/>
+ <enumeration value="file"/>
+ <enumeration value="jdbc"/>
+ <enumeration value="jxta"/>
+ <enumeration value="javaspace"/>
+ <enumeration value="ftp"/>
+ <enumeration value="email"/>
+ <enumeration value="xmpp"/>
+ </restriction>
+ </simpleType>
+ <simpleType name="gateway-type">
+ <restriction base="string">
+ <enumeration value="consumer"/>
+ <enumeration value="provider"/>
+ </restriction>
+ </simpleType>
+</schema>
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/contract.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/contract.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/contract.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/esb/contract" xmlns:tns="http://www.example.org/esb/contract" xmlns:wsa="http://www.w3.org/2005/08/addressing">
+ <xs:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"/>
+ <xs:complexType name="ContractDefinition">
+ <xs:sequence>
+ <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
+ <xs:element name="serviceType" type="xs:anyURI"/>
+ <xs:element minOccurs="0" name="serviceSubType" type="xs:anyURI"/>
+ <xs:element minOccurs="0" name="version" type="xs:anyURI"/>
+ <xs:element minOccurs="0" name="protocols" type="ProtocolData"/>
+ <!--
+ <xs:element minOccurs="0" name="policies" type="wsp:Policy"/>
+ -->
+ </xs:sequence>
+ <xs:attribute ref="wsu:Id" use="optional"/>
+ </xs:complexType>
+
+ <xs:complexType name="ProtocolData">
+ <xs:sequence>
+ <xs:element name="epr" type="wsa:EndpointReferenceType"/>
+ <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ </xs:complexType>
+</schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/dispatcher.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/dispatcher.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/dispatcher.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+<dispatchers>
+ <dispatcher-set>
+ <dispatcher></dispatcher>
+ <dispatcher></dispatcher>
+ </dispatcher-set>
+
+
+ <dispatcher>
+ <name></name>
+ <apply-rule-set></apply-rule-set>
+ </dispatcher>
+</dispatchers>
+-->
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/email.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/email.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/email.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:common="http://www.jboss.org/soa/endpoint/common"
+ xmlns:email="http://www.jboss.org/soa/endpoint/protocol/email"
+ targetNamespace="http://www.jboss.org/soa/endpoint/protocol/email" elementFormDefault="unqualified"
+ attributeFormDefault="unqualified">
+ <annotation>
+ <documentation>
+ JBoss Inc JMS SOA Schema Definition Copyright 2006
+ </documentation>
+ </annotation>
+
+ <!-- import common -->
+ <import namespace="http://www.jboss.org/soa/endpoint/common" schemaLocation="common.xsd"/>
+ <element name="email">
+ <complexType>
+ <sequence>
+ <!-- Core -->
+ <element name="service-name" type="common:service-name"/>
+ <element name="service-type" type="common:service-type"/>
+ <element name="gateway-type" type="common:gateway-type"/>
+ <!-- email related -->
+ <element name="protocol" type="email:protocol"/>
+ <element name="host" type="email:host"/>
+ <element name="port" type="email:port"/>
+ <element name="username" type="email:username"/>
+ <element name="password" type="email:password"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <!-- Email Specific Definitions -->
+ <simpleType name="protocol">
+ <restriction base="string">
+ <enumeration value="smtp"/>
+ <enumeration value="pop"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="host">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="port">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="5"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="username">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="password">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+
+</schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/ftp.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/ftp.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/ftp.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:common="http://www.jboss.org/soa/endpoint/common"
+ xmlns:ftp="http://www.jboss.org/soa/endpoint/protocol/ftp"
+ targetNamespace="http://www.jboss.org/soa/endpoint/protocol/ftp" elementFormDefault="unqualified"
+ attributeFormDefault="unqualified">
+ <annotation>
+ <documentation>
+ JBoss Inc JMS SOA Schema Definition Copyright 2006
+ </documentation>
+ </annotation>
+
+ <!-- import common -->
+ <import namespace="http://www.jboss.org/soa/endpoint/common" schemaLocation="common.xsd"/>
+ <element name="ftp">
+ <complexType>
+ <sequence>
+ <!-- Core -->
+ <element name="service-name" type="common:service-name"/>
+ <element name="service-type" type="common:service-type"/>
+ <element name="gateway-type" type="common:gateway-type"/>
+ <!-- ftp related -->
+ <element name="host" type="ftp:host"/>
+ <element name="port" type="ftp:port"/>
+ <element name="username" type="ftp:username"/>
+ <element name="password" type="ftp:password"/>
+ <element name="directory" type="ftp:directory"/>
+
+ </sequence>
+ </complexType>
+ </element>
+
+ <!-- FTP Specific Definitions -->
+ <simpleType name="host">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="port">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="5"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="username">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="password">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+ <simpleType name="directory">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+
+</schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/jdbc.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/jdbc.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/jdbc.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:common="http://www.jboss.org/soa/endpoint/common"
+ xmlns:jdbc="http://www.jboss.org/soa/endpoint/protocol/jdbc"
+ targetNamespace="http://www.jboss.org/soa/endpoint/protocol/jdbc" elementFormDefault="unqualified"
+ attributeFormDefault="unqualified">
+ <annotation>
+ <documentation>
+ JBoss Inc JMS SOA Schema Definition Copyright 2006
+ </documentation>
+ </annotation>
+
+ <!-- import common -->
+ <import namespace="http://www.jboss.org/soa/endpoint/common" schemaLocation="common.xsd"/>
+ <element name="jdbc">
+ <complexType>
+ <sequence>
+ <!-- Core -->
+ <element name="service-name" type="common:service-name"/>
+ <element name="service-type" type="common:service-type"/>
+ <element name="gateway-type" type="common:gateway-type"/>
+ <!-- jdbc related -->
+ <element name="url" type="jdbc:url"/>
+ <element name="driver" type="jdbc:driver"/>
+ <element name="username" type="jdbc:username"/>
+ <element name="password" type="jdbc:password"/>
+ <element name="sql" type="jdbc:sql"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <!-- JDBC Specific Definitions -->
+ <simpleType name="url">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="driver">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+ <simpleType name="username">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+
+ <simpleType name="password">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="20"/>
+ </restriction>
+ </simpleType>
+
+ <simpleType name="sql">
+ <restriction base="string">
+ <minLength value="1"/>
+ <maxLength value="100"/>
+ </restriction>
+ </simpleType>
+
+</schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/jms.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/jms.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/jms.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+xmlns:common="http://www.jboss.org/soa/endpoint/common"
+xmlns:jms="http://www.jboss.org/soa/endpoint/protocol/jms"
+targetNamespace="http://www.jboss.org/soa/endpoint/protocol/jms" elementFormDefault="unqualified" attributeFormDefault="unqualified">
+ <annotation>
+ <documentation>
+ JBoss Inc JMS SOA Schema Definition Copyright 2006
+ </documentation>
+ </annotation>
+
+ <!-- import common -->
+ <import namespace="http://www.jboss.org/soa/endpoint/common" schemaLocation="common.xsd" />
+ <element name="jms">
+ <complexType>
+ <sequence>
+ <!-- Core -->
+ <element name="service-name" type="common:service-name"/>
+ <element name="service-type" type="common:service-type"/>
+ <element name="gateway-type" type="common:gateway-type" />
+ <!-- jms related -->
+ <element name="spec-version" type="jms:specification-version" />
+ <element name="destination-type" type="jms:destination-type" />
+ <element name="destination-name" type="string"/>
+ <element name="connection-factory" type="string"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <!-- JMS Specific Definitions -->
+ <simpleType name="specification-version">
+ <restriction base="string">
+ <enumeration value="1.1"/>
+ <enumeration value="1.0.2b"/>
+ </restriction>
+ </simpleType>
+
+ <simpleType name="destination-type">
+ <restriction base="string">
+ <enumeration value="queue"/>
+ <enumeration value="topic"/>
+ </restriction>
+ </simpleType>
+
+
+
+</schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/plugin.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/plugin.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/plugin.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+<plugins>
+ <plugin-set>
+ <set-name></set-name>
+ <plugin-name></plugin-name>
+ </plugin-set>
+
+ <plugin>
+ <name></name>
+ <class></class>
+ <parameters>
+ <name></name>
+ <value></value>
+ ...
+ ...
+ </parameters>
+ </plugin>
+</plugins>
+-->
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/routing.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/routing.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/routing.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+<routing>
+ <route>
+ <source></source>
+ <destination>
+ <type></type>
+ <name></name>
+ </destination>
+ </route>
+</routing>
+-->
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/ws-addr.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/ws-addr.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/common/ws-addr.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd">
+<!--
+ W3C XML Schema defined in the Web Services Addressing 1.0 specification
+ http://www.w3.org/TR/ws-addr-core
+
+ Copyright © 2005 World Wide Web Consortium,
+
+ (Massachusetts Institute of Technology, European Research Consortium for
+ Informatics and Mathematics, Keio University). All Rights Reserved. This
+ work is distributed under the W3C® Software License [1] 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.
+
+ [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.w3.org/2005/08/addressing" targetNamespace="http://www.w3.org/2005/08/addressing" elementFormDefault="qualified" attributeFormDefault="unqualified" blockDefault="#all">
+ <!-- Constructs from the WS-Addressing Core -->
+ <xs:element name="EndpointReference" type="tns:EndpointReferenceType"/>
+ <xs:complexType name="EndpointReferenceType" mixed="false">
+ <xs:sequence>
+ <xs:element name="Address" type="tns:AttributedURIType"/>
+ <xs:element ref="tns:ReferenceParameters" minOccurs="0"/>
+ <xs:element ref="tns:Metadata" minOccurs="0"/>
+ <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:complexType>
+ <xs:element name="ReferenceParameters" type="tns:ReferenceParametersType"/>
+ <xs:complexType name="ReferenceParametersType" mixed="false">
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:complexType>
+ <xs:element name="Metadata" type="tns:MetadataType"/>
+ <xs:complexType name="MetadataType" mixed="false">
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:complexType>
+ <xs:element name="MessageID" type="tns:AttributedURIType"/>
+ <xs:element name="RelatesTo" type="tns:RelatesToType"/>
+ <xs:complexType name="RelatesToType" mixed="false">
+ <xs:simpleContent>
+ <xs:extension base="xs:anyURI">
+ <xs:attribute name="RelationshipType" type="tns:RelationshipTypeOpenEnum" use="optional" default="http://www.w3.org/2005/08/addressing/reply"/>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:simpleType name="RelationshipTypeOpenEnum">
+ <xs:union memberTypes="tns:RelationshipType xs:anyURI"/>
+ </xs:simpleType>
+ <xs:simpleType name="RelationshipType">
+ <xs:restriction base="xs:anyURI">
+ <xs:enumeration value="http://www.w3.org/2005/08/addressing/reply"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="ReplyTo" type="tns:EndpointReferenceType"/>
+ <xs:element name="From" type="tns:EndpointReferenceType"/>
+ <xs:element name="FaultTo" type="tns:EndpointReferenceType"/>
+ <xs:element name="To" type="tns:AttributedURIType"/>
+ <xs:element name="Action" type="tns:AttributedURIType"/>
+ <xs:complexType name="AttributedURIType" mixed="false">
+ <xs:simpleContent>
+ <xs:extension base="xs:anyURI">
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <!-- Constructs from the WS-Addressing SOAP binding -->
+ <xs:attribute name="IsReferenceParameter" type="xs:boolean"/>
+ <xs:simpleType name="FaultCodesOpenEnumType">
+ <xs:union memberTypes="tns:FaultCodesType xs:QName"/>
+ </xs:simpleType>
+ <xs:simpleType name="FaultCodesType">
+ <xs:restriction base="xs:QName">
+ <xs:enumeration value="tns:InvalidAddressingHeader"/>
+ <xs:enumeration value="tns:InvalidAddress"/>
+ <xs:enumeration value="tns:InvalidEPR"/>
+ <xs:enumeration value="tns:InvalidCardinality"/>
+ <xs:enumeration value="tns:MissingAddressInEPR"/>
+ <xs:enumeration value="tns:DuplicateMessageID"/>
+ <xs:enumeration value="tns:ActionMismatch"/>
+ <xs:enumeration value="tns:MessageAddressingHeaderRequired"/>
+ <xs:enumeration value="tns:DestinationUnreachable"/>
+ <xs:enumeration value="tns:ActionNotSupported"/>
+ <xs:enumeration value="tns:EndpointUnavailable"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="RetryAfter" type="tns:AttributedUnsignedLongType"/>
+ <xs:complexType name="AttributedUnsignedLongType" mixed="false">
+ <xs:simpleContent>
+ <xs:extension base="xs:unsignedLong">
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:element name="ProblemHeaderQName" type="tns:AttributedQNameType"/>
+ <xs:complexType name="AttributedQNameType" mixed="false">
+ <xs:simpleContent>
+ <xs:extension base="xs:QName">
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:element name="ProblemIRI" type="tns:AttributedURIType"/>
+ <xs:element name="ProblemAction" type="tns:ProblemActionType"/>
+ <xs:complexType name="ProblemActionType" mixed="false">
+ <xs:sequence>
+ <xs:element ref="tns:Action" minOccurs="0"/>
+ <xs:element name="SoapAction" type="xs:anyURI" minOccurs="0"/>
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:complexType>
+</xs:schema>
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/email-epr.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/email-epr.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/email-epr.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:email="http://www.jboss.org/soa/endpoint/protocol/email" targetNamespace="http://www.jboss.org/soa/endpoint/email-epr" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="common/ws-addr.xsd"/>
+ <import namespace="http://www.jboss.org/soa/endpoint/protocol/email" schemaLocation="common/email.xsd"/>
+ <element name="email-epr">
+ <complexType>
+ <sequence>
+ <element ref="wsa:EndpointReference"/>
+ <element ref="email:email"/>
+ </sequence>
+ <attribute name="version" type="string" use="required"/>
+ </complexType>
+ </element>
+</schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/ftp-epr.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/ftp-epr.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/ftp-epr.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:ftp="http://www.jboss.org/soa/endpoint/protocol/ftp" targetNamespace="http://www.jboss.org/soa/endpoint/ftp-epr" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="common/ws-addr.xsd"/>
+ <import namespace="http://www.jboss.org/soa/endpoint/protocol/ftp" schemaLocation="common/ftp.xsd"/>
+ <element name="ftp-epr">
+ <complexType>
+ <sequence>
+ <element ref="wsa:EndpointReference"/>
+ <element ref="ftp:ftp"/>
+ </sequence>
+ <attribute name="version" type="string" use="required"/>
+ </complexType>
+ </element>
+</schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/jdbc-epr.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/jdbc-epr.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/jdbc-epr.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:jdbc="http://www.jboss.org/soa/endpoint/protocol/jdbc" targetNamespace="http://www.jboss.org/soa/endpoint/jdbc-epr" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="common/ws-addr.xsd"/>
+ <import namespace="http://www.jboss.org/soa/endpoint/protocol/jdbc" schemaLocation="common/jdbc.xsd"/>
+ <element name="jdbc-epr">
+ <complexType>
+ <sequence>
+ <element ref="wsa:EndpointReference"/>
+ <element ref="jdbc:jdbc"/>
+ </sequence>
+ <attribute name="version" type="string" use="required"/>
+ </complexType>
+ </element>
+</schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/jms-epr.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/jms-epr.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/jms-epr.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:jms="http://www.jboss.org/soa/endpoint/protocol/jms" targetNamespace="http://www.jboss.org/soa/endpoint/jms-epr" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="common/ws-addr.xsd"/>
+ <import namespace="http://www.jboss.org/soa/endpoint/protocol/jms" schemaLocation="common/jms.xsd"/>
+ <element name="jms-epr">
+ <complexType>
+ <sequence>
+ <element ref="wsa:EndpointReference"/>
+ <element ref="jms:jms"/>
+ </sequence>
+ <attribute name="version" type="string" use="required"/>
+ </complexType>
+ </element>
+</schema>
+
Added: labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/message.xsd
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/message.xsd 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/schemas/xml/message.xsd 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Work in progress. Treat it as such. -->
+<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:wsa="common/ws-addr.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:complexType name="Header">
+ <xs:sequence>
+ <xs:element ref="wsa:To" maxOccurs="1"/>
+ <xs:element ref="wsa:From" maxOccurs="1"/>
+ <xs:element ref="wsa:ReplyTo" maxOccurs="1"/>
+ <xs:element ref="wsa:Action" minOccurs="1" maxOccurs="1"/>
+ <xs:element ref="wsa:MessageID" maxOccurs="1"/>
+ <xs:element ref="wsa:RelatesTo" maxOccurs="1"/>
+ <xs:element ref="wsa:ReferenceParameters"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Context"/>
+
+ <xs:complexType name="Body">
+ <xs:sequence>
+ <xs:element name="Bytes" type="xs:base64Binary" maxOccurs="1"/>
+ <xs:element type="xs:base64binary"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Attachment">
+ <xs:sequence>
+ <xs:element name="Named" type="xs:base64Binary"/>
+ <xs:element name="UnNamed" type="xs:base64Binary"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Fault">
+ <xs:sequence>
+ <xs:element name="Code" type="xs:anyURI" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="Reason" type="xs:string" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Properties">
+ <xs:sequence>
+ <xs:element type="xs:base64Binary"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Envelope">
+ <xs:attribute ref="Header" use="required"/>
+ <xs:attribute ref="Context" use="required"/>
+ <xs:attribute ref="Body" use="required"/>
+ <xs:attribute ref="Attachment" use="optional"/>
+ <xs:attribute ref="Properties" use="optional"/>
+ <xs:attribute ref="Fault" use="optional"/>
+ </xs:complexType>
+</xs:schema>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/etc/test/resources/jbossesb-unittest-properties.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/test/resources/jbossesb-unittest-properties.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/test/resources/jbossesb-unittest-properties.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2006, JBoss Inc., and others contributors as indicated
+ by the @authors tag. All rights reserved.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ 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,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2005-2006,
+ @author JBoss Inc.
+-->
+<!-- $Id: jbossesb-unittest-properties.xml $ -->
+<!--
+ These options are described in the JBossESB manual.
+ Defaults are provided here for convenience only.
+
+ Please read through this file prior to using the system, and consider
+ updating the specified entries.
+-->
+<esb
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+ <properties name="core">
+ <property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
+ <property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
+ </properties>
+ <properties name="registry">
+ <property name="org.jboss.soa.esb.registry.queryManagerURI" value="org.apache.juddi.registry.local.InquiryService#inquire"/>
+ <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI" value="org.apache.juddi.registry.local.PublishService#publish"/>
+ <property name="org.jboss.soa.esb.registry.implementationClass" value="org.jboss.soa.esb.services.registry.JAXRRegistryImpl"/>
+ <property name="org.jboss.soa.esb.registry.factoryClass" value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+ <property name="org.jboss.soa.esb.registry.user" value="jbossesb"/>
+ <property name="org.jboss.soa.esb.registry.password" value="password"/>
+ <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
+ <property name="org.jboss.soa.esb.scout.proxy.transportClass" value="org.apache.ws.scout.transport.LocalTransport"/>
+ </properties>
+ <properties name="transports" depends="core">
+ <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
+ <property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
+ <property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
+ <property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
+ </properties>
+ <properties name="connection">
+ <property name="min-pool-size" value="5"/>
+ <property name="max-pool=size" value="10"/>
+ <property name="blocking-timeout-millis" value="5000"/>
+ <property name="abandoned-connection-timeout" value="10000"/>
+ <property name="abandoned-connection-time-interval" value="30000"/>
+ </properties>
+ <properties name="dbstore">
+ <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:postgresql://localhost:5432/jbossesb"/>
+ <!-- Hypersonic: value="jdbc:hsqldb:hsql://localhost:1701" -->
+ <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.postgresql.Driver"/>
+ <!-- Hypersonic: value="org.hsqldb.jdbcDriver" -->
+ <property name="org.jboss.soa.esb.persistence.db.user" value="postgres"/>
+ <property name="org.jboss.soa.esb.persistence.db.pwd" value="postgres"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
+ <!--table managed by pool to test for valid connections - created by pool automatically -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
+ <!-- # of milliseconds to timeout waiting for a connection from pool -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
+
+ </properties>
+</esb>
Added: labs/jbossesb/workspace/b_georges/product/etc/test/resources/log4j.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/etc/test/resources/log4j.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/etc/test/resources/log4j.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,312 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.10 2006/04/21 17:29:20 csuconic Exp $ -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- A time/date based rolling appender -->
+ <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="./trailblazer.log"/>
+ <param name="Append" value="false"/>
+
+ <!-- Rollover at midnight each day -->
+ <param name="DatePattern" value="'.'yyyy-MM-dd"/>
+
+ <!-- Rollover at the top of each hour
+ <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
+ -->
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+
+ <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
+ <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
+ -->
+ </layout>
+ </appender>
+
+ <!-- A size based file rolling appender
+ <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="${jboss.server.log.dir}/server.log"/>
+ <param name="Append" value="false"/>
+ <param name="MaxFileSize" value="500KB"/>
+ <param name="MaxBackupIndex" value="1"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Target" value="System.out"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ====================== -->
+ <!-- More Appender examples -->
+ <!-- ====================== -->
+
+ <!-- Buffer events and log them asynchronously
+ <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <appender-ref ref="FILE"/>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="SMTP"/>
+ </appender>
+ -->
+
+ <!-- EMail events to an administrator
+ <appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Threshold" value="ERROR"/>
+ <param name="To" value="admin at myhost.domain.com"/>
+ <param name="From" value="nobody at myhost.domain.com"/>
+ <param name="Subject" value="JBoss Sever Errors"/>
+ <param name="SMTPHost" value="localhost"/>
+ <param name="BufferSize" value="10"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- Syslog events
+ <appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Facility" value="LOCAL7"/>
+ <param name="FacilityPrinting" value="true"/>
+ <param name="SyslogHost" value="localhost"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- Log events to JMS (requires a topic to be created)
+ <appender name="JMS" class="org.apache.log4j.net.JMSAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Threshold" value="ERROR"/>
+ <param name="TopicConnectionFactoryBindingName" value="java:/ConnectionFactory"/>
+ <param name="TopicBindingName" value="topic/MyErrorsTopic"/>
+ </appender>
+ -->
+
+ <!-- Log events through SNMP
+ <appender name="TRAP_LOG" class="org.apache.log4j.ext.SNMPTrapAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="ImplementationClassName" value="org.apache.log4j.ext.JoeSNMPTrapSender"/>
+ <param name="ManagementHost" value="127.0.0.1"/>
+ <param name="ManagementHostTrapListenPort" value="162"/>
+ <param name="EnterpriseOID" value="1.3.6.1.4.1.24.0"/>
+ <param name="LocalIPAddress" value="127.0.0.1"/>
+ <param name="LocalTrapSendPort" value="161"/>
+ <param name="GenericTrapType" value="6"/>
+ <param name="SpecificTrapType" value="12345678"/>
+ <param name="CommunityString" value="public"/>
+ <param name="ForwardStackTraceWithTrap" value="true"/>
+ <param name="Threshold" value="DEBUG"/>
+ <param name="ApplicationTrapOID" value="1.3.6.1.4.1.24.12.10.22.64"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d,%p,[%t],[%c],%m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- Emit events as JMX notifications
+ <appender name="JMX" class="org.jboss.monitor.services.JMXNotificationAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+
+ <param name="Threshold" value="WARN"/>
+ <param name="ObjectName" value="jboss.system:service=Logging,type=JMXNotificationAppender"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%c] %m"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
+ <category name="org.apache">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit the org.jboss.serial (jboss-serialization) to INFO as its DEBUG is verbose -->
+ <category name="org.jboss.serial">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
+ <category name="org.jgroups">
+ <priority value="WARN"/>
+ </category>
+
+ <!-- Limit the jacorb category to WARN as its INFO is verbose -->
+ <category name="jacorb">
+ <priority value="WARN"/>
+ </category>
+
+ <!-- Limit JBoss categories -->
+ <category name="org.jboss">
+ <priority value="DEBUG"/>
+ </category>
+
+
+ <!-- Limit the JSR77 categories -->
+ <category name="org.jboss.management">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit Axis based webservice category -->
+ <category name="org.jboss.webservice">
+ <priority value="DEBUG"/>
+ </category>
+ <category name="org.jboss.axis">
+ <priority value="INFO"/>
+ </category>
+
+ <category name="org.milyn">
+ <priority value="INFO"/>
+ </category>
+ <category name="org.milyn.delivery.SmooksXML">
+ <priority value="DEBUG"/>
+ </category>
+ <category name="org.milyn.delivery.serialize.Serializer">
+ <priority value="DEBUG"/>
+ </category>
+ <category name="org.milyn.cdr.XMLConfigDigester">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit JBossWS webservice category
+ <category name="org.jboss.ws">
+ <priority value="DEBUG"/>
+ </category>
+ -->
+
+ <!-- Decrease the priority threshold for the org.jboss.varia category
+ <category name="org.jboss.varia">
+ <priority value="DEBUG"/>
+ </category>
+ -->
+
+ <!-- Show the evolution of the DataSource pool in the logs [inUse/Available/Max]
+ <category name="org.jboss.resource.connectionmanager.JBossManagedConnectionPool">
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ </category>
+ -->
+
+ <!--
+ | An example of enabling the custom TRACE level priority that is used
+ | by the JBoss internals to diagnose low level details. This example
+ | turns on TRACE level msgs for the org.jboss.ejb.plugins package and its
+ | subpackages. This will produce A LOT of logging output.
+ <category name="org.jboss.system">
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ </category>
+ <category name="org.jboss.ejb.plugins">
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ </category>
+ -->
+
+ <!--
+ | Logs these events to SNMP:
+ - server starts/stops
+ - cluster evolution (node death/startup)
+ - When an EJB archive is deployed (and associated verified messages)
+ - When an EAR archive is deployed
+
+ <category name="org.jboss.system.server.Server">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.ha.framework.interfaces.HAPartition.lifecycle">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.deployment.MainDeployer">
+ <priority value="ERROR" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.ejb.EJBDeployer">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.deployment.EARDeployer">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ -->
+
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="FILE"/>
+ </root>
+
+ <!-- Clustering logging -->
+ <!-- Uncomment the following to redirect the org.jgroups and
+ org.jboss.ha categories to a cluster.log file.
+
+ <appender name="CLUSTER" class="org.jboss.logging.appender.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="${jboss.server.log.dir}/cluster.log"/>
+ <param name="Append" value="false"/>
+ <param name="MaxFileSize" value="500KB"/>
+ <param name="MaxBackupIndex" value="1"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+ </layout>
+ </appender>
+ <category name="org.jgroups">
+ <priority value="DEBUG" />
+ <appender-ref ref="CLUSTER"/>
+ </category>
+ <category name="org.jboss.ha">
+ <priority value="DEBUG" />
+ <appender-ref ref="CLUSTER"/>
+ </category>
+ -->
+
+</log4j:configuration>
Added: labs/jbossesb/workspace/b_georges/product/install/Deployment.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/Deployment.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/Deployment.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,32 @@
+OVERVIEW
+=========
+This document contains a list of the software tools/packages (and their version) that JBoss ESB has been verified against.
+
+--------------------------------------------------------------------------------------------------------------------------------
+| Package: | Version: | Download:
+--------------------------------------------------------------------------------------------------------------------------------
+| Java | 1.5 (Sun) | http://java.sun.com/javase/downloads/index.jsp
+| JavaMail | 1.3.1 | http://java.sun.com/products/javamail/
+| | |
+| JBoss Application Server | 4.0.4.GA | http://labs.jboss.com/portal/jbossas/download
+| JBoss TS (Common) | ???? | http://labs.jboss.com/portal/jbosstm/downloads
+| | |
+| Postgres Database Server | 8.1 | http://www.postgresql.org/download/
+| | |
+| Apache Log4J | 1.2.8 | http://logging.apache.org/log4j/docs/download.html
+| Apache xercesImpl | 2.7.1 | http://xerces.apache.org/xerces2-j/
+| Apache xalan | 2.7.0 | http://xml.apache.org/xalan-j/
+| Apache xml-apis | 1.3.02 | Ditributed with both Xerces and Xalan (above)
+| Apache commons-lang | 2.1 | http://jakarta.apache.org/commons/lang/
+| Apache commons-collections | 2.0 | http://jakarta.apache.org/commons/collections/
+| Apache commons-logging | 1.0.2 | http://jakarta.apache.org/commons/logging/
+| | |
+| cglib | 2.0-RC2 (full) | http://cglib.sourceforge.net/
+| XStream | 1.1.3 | http://xstream.codehaus.org/
+| edtftpj | 1.5.2 | http://www.enterprisedt.com/products/edtftpj/download.html
+| | |
+| milyn-commons | 0.7 | http://milyn.codehaus.org/downloads
+| milyn-smooks-core | 0.8-SNAPSHOT | http://milyn.codehaus.org/downloads
+| milyn-smooks-misc | 0.2 | http://milyn.codehaus.org/downloads
+| milyn-tinak | 0.7.1 | http://milyn.codehaus.org/downloads
+--------------------------------------------------------------------------------------------------------------------------------
Added: labs/jbossesb/workspace/b_georges/product/install/README.TXT
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/README.TXT 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/README.TXT 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,46 @@
+#########################################################################
+# JBoss, Home of Professional Open Source
+# Copyright 2006, JBoss Inc., and individual contributors as indicated
+# 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.
+#########################################################################
+
+HOW TO INSTALL JBoss ESB:
+
+
+1. Copy the <JBoss ESB Home>/lib/jbossesb-appl.ear to your <JBOSS_HOME>/server/all/deploy directory
+
+2. Edit the properties-service.xml in your <JBOSS_HOME>/server/all/deploy directory and add the following attribute entry:
+ <attribute name="URLList">
+ ./conf/jbossesb-properties.xml
+ </attribute>
+ * This lets the JBoss ESB application know where to find its config file
+
+3. Copy the <JBoss ESB HOME>/install/conf/jbossesb-properties.xml to your <JBOSS_HOME>\server\all\conf directory
+
+4. Load the database schema located in <JBoss ESB HOME>/install/database/JBossESB-DB.sql into your PostGreSQL database and create a new database of your choice.
+
+5. Copy the <JBoss ESB HOME>/install/deploy/JBossESB-DS.xml to your <JBOSS_HOME>/server/all/deploy directory.
+
+6. Edit the JBossESB-DS.xml and change as required for your database settings
+
+7. Copy the PostGreSQL JDBC driver into your <JBOSS_HOME>/server/all/lib directory
+
+8. Edit the <JBOSS_HOME>/server/all/conf/jbossEsb.properties file and modify as per your environment for mail notifications to work
+
+9. Launch JBoss Application Server
Property changes on: labs/jbossesb/workspace/b_georges/product/install/README.TXT
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/install/build.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/build.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/build.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,78 @@
+<project name="JBESB_Config" default="configure.jboss" basedir=".">
+
+ <!-- Set deployment properties filename -->
+ <property name="org.jboss.esb.deployment.properties" value="deployment.properties"/>
+
+ <!-- Load Build Properties File -->
+ <property file="${org.jboss.esb.deployment.properties}"/>
+
+ <property name="org.jboss.esb.ext.lib" value="${basedir}/../lib/ext"/>
+ <property name="org.jboss.esb.deployment.conf" value="${basedir}/conf"/>
+ <property name="org.jboss.esb.deployment.deploy" value="${basedir}/deploy"/>
+ <property name="org.jboss.esb.deployment.data" value="${basedir}/database"/>
+
+ <target name="init">
+ <condition property="hsql.set" value="true">
+ <equals arg1="${org.jboss.esb.db.driver.jar}" arg2="hsqldb.jar"/>
+ </condition>
+ <condition property="create.set" value="true">
+ <and>
+ <equals arg1="${org.jboss.esb.db.driver.jar}" arg2="hsqldb.jar"/>
+ <equals arg1="${org.jboss.esb.db.create.db}" arg2="create"/>
+ </and>
+ </condition>
+ <!-- echo>hsql set=${hsql.set}</echo -->
+ <!-- echo>create set=${create.set}</echo -->
+ </target>
+
+ <target name="configure" depends="configure.jboss" />
+ <target name="configure.jboss" depends="init,datasource,hsql-datasource,create-hsqldb">
+ <!-- lib -->
+ <copy file="${org.jboss.esb.ext.lib}/${org.jboss.esb.db.driver.jar}"
+ todir="${org.jboss.esb.appserver.home}/server/${org.jboss.esb.appserver.config}/lib"/>
+ <copy file="${org.jboss.esb.ext.lib}/properties-plugin.jar"
+ todir="${org.jboss.esb.appserver.home}/server/${org.jboss.esb.appserver.config}/lib"/>
+ <!-- conf -->
+ <copy file="${org.jboss.esb.deployment.conf}/jbossesb-properties.xml" overwrite="true"
+ todir="${org.jboss.esb.appserver.home}/server/${org.jboss.esb.appserver.config}/conf">
+ <filterset>
+ <filter token="org.jboss.soa.esb.mail.smtp.host" value="${org.jboss.soa.esb.mail.smtp.host}" />
+ <filter token="org.jboss.soa.esb.mail.smtp.port" value="${org.jboss.soa.esb.mail.smtp.port}" />
+ <filter token="org.jboss.soa.esb.mail.smtp.user" value="${org.jboss.soa.esb.mail.smtp.user}" />
+ <filter token="org.jboss.soa.esb.mail.smtp.password" value="${org.jboss.soa.esb.mail.smtp.password}" />
+ <filter token="org.jboss.esb.config.objstore" value="${org.jboss.esb.config.objstore}" />
+ </filterset></copy>
+ <!-- deploy -->
+ </target>
+
+ <target name="hsql-datasource" if="hsql.set">
+ <echo>Installing hsql datasource hypersonic JBossESB-ds.xml</echo>
+ <delete file="${org.jboss.esb.appserver.home}/server/${org.jboss.esb.appserver.config}/deploy/hsqldb-ds.xml" />
+ <copy file="${org.jboss.esb.deployment.deploy}/JBossESB-hsqldb-ds.xml" overwrite="true"
+ tofile="${org.jboss.esb.appserver.home}/server/${org.jboss.esb.appserver.config}/deploy/JBossESB-ds.xml"/>
+ </target>
+
+ <target name="datasource" unless="hsql.set">
+ <echo>Installing datasource JBossESB-ds.xml</echo>
+ <copy file="${org.jboss.esb.deployment.deploy}/JBossESB-ds.xml" overwrite="true"
+ todir="${org.jboss.esb.appserver.home}/server/${org.jboss.esb.appserver.config}/deploy">
+ <filterset>
+ <filter token="org.jboss.esb.db.url" value="${org.jboss.esb.db.url}" />
+ <filter token="org.jboss.esb.db.driver" value="${org.jboss.esb.db.driver}" />
+ <filter token="org.jboss.esb.db.user" value="${org.jboss.esb.db.user}" />
+ <filter token="org.jboss.esb.db.password" value="${org.jboss.esb.db.password}" />
+ </filterset></copy>
+ </target>
+
+ <target name="create-hsqldb" if="create.set">
+ <echo>Installing hsql JBossESB database</echo>
+ <property name="data.hypersonic" value="${org.jboss.esb.appserver.home}/server/${org.jboss.esb.appserver.config}/data/hypersonic" />
+
+ <mkdir dir="${data.hypersonic}"/>
+ <copy file="${org.jboss.esb.deployment.data}/JBossESB-DB-HSQL.sql"
+ tofile="${data.hypersonic}/JBossESB.script"/>
+ <copy file="${org.jboss.esb.deployment.data}/hypersonic.properties"
+ tofile="${data.hypersonic}/JBossESB.properties"/>
+ </target>
+
+</project>
Added: labs/jbossesb/workspace/b_georges/product/install/conf/jbossesb-properties.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/conf/jbossesb-properties.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/conf/jbossesb-properties.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2006, JBoss Inc., and others contributors as indicated
+ by the @authors tag. All rights reserved.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ 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,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2005-2006,
+ @author JBoss Inc.
+-->
+<!-- $Id: default-jbossesb-properties.xml $ -->
+<!--
+ These options are described in the JBossESB manual.
+ Defaults are provided here for convenience only.
+
+ Please read through this file prior to using the system, and consider
+ updating the specified entries.
+-->
+<esb
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+ <properties name="core">
+ <property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
+ <property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
+ </properties>
+ <properties name="registry">
+ <property name="org.jboss.soa.esb.registry.queryManagerURI" value="org.apache.juddi.registry.local.InquiryService#inquire"/>
+ <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI" value="org.apache.juddi.registry.local.PublishService#publish"/>
+ <property name="org.jboss.soa.esb.registry.implementationClass" value="org.jboss.soa.esb.services.registry.JAXRRegistryImpl"/>
+ <property name="org.jboss.soa.esb.registry.factoryClass" value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+ <property name="org.jboss.soa.esb.registry.user" value="jbossesb"/>
+ <property name="org.jboss.soa.esb.registry.password" value="password"/>
+ <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
+ <property name="org.jboss.soa.esb.scout.proxy.transportClass" value="org.apache.ws.scout.transport.LocalTransport"/>
+ </properties>
+ <properties name="transports" depends="core">
+ <property name="org.jboss.soa.esb.mail.smtp.host" value="@org.jboss.soa.esb.mail.smtp.host@"/>
+ <property name="org.jboss.soa.esb.mail.smtp.user" value="@org.jboss.soa.esb.mail.smtp.user@"/>
+ <property name="org.jboss.soa.esb.mail.smtp.password" value="@org.jboss.soa.esb.mail.smtp.password@"/>
+ <property name="org.jboss.soa.esb.mail.smtp.port" value="@org.jboss.soa.esb.mail.smtp.port@"/>
+ </properties>
+ <properties name="connection">
+ <property name="min-pool-size" value="5"/>
+ <property name="max-pool=size" value="10"/>
+ <property name="blocking-timeout-millis" value="5000"/>
+ <property name="abandoned-connection-timeout" value="10000"/>
+ <property name="abandoned-connection-time-interval" value="30000"/>
+ </properties>
+ <properties name="dbstore">
+ <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:postgresql://localhost:5432/jbossesb"/>
+ <!-- Hypersonic: value="jdbc:hsqldb:hsql://localhost:1701" -->
+ <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.postgresql.Driver"/>
+ <!-- Hypersonic: value="org.hsqldb.jdbcDriver" -->
+ <property name="org.jboss.soa.esb.persistence.db.user" value="postgres"/>
+ <property name="org.jboss.soa.esb.persistence.db.pwd" value="postgres"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
+ <!--table managed by pool to test for valid connections - created by pool automatically -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
+ <!-- # of milliseconds to timeout waiting for a connection from pool -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
+
+ </properties>
+</esb>
Added: labs/jbossesb/workspace/b_georges/product/install/database/JBossESB-DB-HSQL.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/database/JBossESB-DB-HSQL.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/database/JBossESB-DB-HSQL.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,51 @@
+CREATE TABLE batches (
+ batch_num bigint NOT NULL,
+ seq integer NOT NULL,
+ data varchar,
+ CONSTRAINT batches_pk PRIMARY KEY (batch_num,seq)
+);
+
+
+CREATE TABLE object_snap (
+ uid bigint NOT NULL,
+ stamp bigint,
+ snap_type varchar,
+ object_uid bigint,
+ batch_num bigint,
+ xml_data varchar,
+ CONSTRAINT object_snap_pk PRIMARY KEY (uid)
+);
+
+
+CREATE TABLE people_index (
+ uid bigint NOT NULL,
+ stamp bigint,
+ latest_snap_uid bigint,
+ latest_snap_date varchar,
+ name varchar,
+ phone varchar,
+ address varchar,
+ CONSTRAINT people_index_pk PRIMARY KEY (uid)
+);
+
+CREATE TABLE customer_index (
+ uid bigint NOT NULL,
+ stamp bigint,
+ latest_snap_uid bigint,
+ latest_snap_date varchar,
+ name varchar,
+ phone varchar,
+ address varchar,
+ CONSTRAINT customer_index_pk PRIMARY KEY (uid)
+);
+
+CREATE TABLE uid_table (
+ uid integer NOT NULL,
+ sequence_name varchar NOT NULL,
+ last_used_uid bigint NOT NULL,
+ CONSTRAINT uid_table_pk PRIMARY KEY (uid)
+);
+
+
+INSERT INTO uid_table (uid, sequence_name, last_used_uid) VALUES (1, 'jbossEsb_objuid', 10500000);
+INSERT INTO uid_table (uid, sequence_name, last_used_uid) VALUES (2, 'jbossEsb_batchuid', 251000);
Added: labs/jbossesb/workspace/b_georges/product/install/database/JBossESB-DB-MySQL.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/database/JBossESB-DB-MySQL.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/database/JBossESB-DB-MySQL.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,159 @@
+-- MySQL dump 10.10
+--
+-- Host: localhost Database: jbossesb
+-- ------------------------------------------------------
+-- Server version 5.0.22-community-nt
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES latin1 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+--
+-- Current Database: `jbossesb`
+--
+
+/*!40000 DROP DATABASE IF EXISTS `jbossesb`*/;
+
+CREATE DATABASE /*!32312 IF NOT EXISTS*/ `jbossesb` /*!40100 DEFAULT CHARACTER SET latin1 */;
+
+USE `jbossesb`;
+
+--
+-- Table structure for table `batches`
+--
+
+DROP TABLE IF EXISTS `batches`;
+CREATE TABLE `batches` (
+ `batch_num` bigint(20) NOT NULL,
+ `seq` int(11) NOT NULL,
+ `data` text,
+ PRIMARY KEY (`batch_num`,`seq`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `batches`
+--
+
+
+/*!40000 ALTER TABLE `batches` DISABLE KEYS */;
+LOCK TABLES `batches` WRITE;
+UNLOCK TABLES;
+/*!40000 ALTER TABLE `batches` ENABLE KEYS */;
+
+--
+-- Table structure for table `customer_index`
+--
+
+DROP TABLE IF EXISTS `customer_index`;
+CREATE TABLE `customer_index` (
+ `uid` bigint(20) unsigned NOT NULL default '0',
+ `stamp` bigint(20) unsigned default NULL,
+ `latest_snap_uid` bigint(20) unsigned default NULL,
+ `latest_snap_date` text,
+ `name` text,
+ `phone` text,
+ `address` text,
+ PRIMARY KEY (`uid`),
+ UNIQUE KEY `customer_index_pkey` (`uid`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+--
+-- Table structure for table `object_snap`
+--
+
+DROP TABLE IF EXISTS `object_snap`;
+CREATE TABLE `object_snap` (
+ `uid` bigint(20) NOT NULL,
+ `stamp` bigint(20) default NULL,
+ `snap_type` text,
+ `object_uid` bigint(20) default NULL,
+ `batch_num` bigint(20) default NULL,
+ `xml_data` text,
+ PRIMARY KEY (`uid`),
+ KEY `ix1_object_snap` (`batch_num`,`uid`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `object_snap`
+--
+
+
+--
+-- Table structure for table `people_index`
+--
+
+DROP TABLE IF EXISTS `people_index`;
+CREATE TABLE `people_index` (
+ `uid` bigint(20) NOT NULL,
+ `stamp` bigint(20) default NULL,
+ `latest_snap_uid` bigint(20) default NULL,
+ `latest_snap_date` text,
+ `name` text,
+ `phone` text,
+ `address` text,
+ PRIMARY KEY (`uid`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `people_index`
+--
+
+
+--
+-- Table structure for table `test_poll_table`
+--
+
+DROP TABLE IF EXISTS `test_poll_table`;
+CREATE TABLE `test_poll_table` (
+ `src` text,
+ `ref` text,
+ `msg` text,
+ `val1` text,
+ `val2` text,
+ `status` text
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `test_poll_table`
+--
+
+
+--
+-- Table structure for table `uid_table`
+--
+
+DROP TABLE IF EXISTS `uid_table`;
+CREATE TABLE `uid_table` (
+ `uid` int(11) NOT NULL,
+ `sequence_name` text NOT NULL,
+ `last_used_uid` bigint(20) NOT NULL,
+ PRIMARY KEY (`uid`),
+ UNIQUE KEY `ix1_uid_table` (`sequence_name`(767))
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+--
+-- Dumping data for table `uid_table`
+--
+
+
+/*!40000 ALTER TABLE `uid_table` DISABLE KEYS */;
+LOCK TABLES `uid_table` WRITE;
+INSERT INTO `uid_table` (`uid`, `sequence_name`, `last_used_uid`) VALUES (1,'jbossEsb_objuid',10501100),(2,'jbossEsb_batchuid',251000);
+UNLOCK TABLES;
+/*!40000 ALTER TABLE `uid_table` ENABLE KEYS */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/install/database/JBossESB-DB-postgres.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/database/JBossESB-DB-postgres.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/database/JBossESB-DB-postgres.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,223 @@
+--
+-- PostgreSQL database dump
+--
+
+-- Started on 2006-06-23 18:14:49 SA Eastern Standard Time
+
+SET client_encoding = 'LATIN1';
+SET check_function_bodies = false;
+SET client_min_messages = warning;
+
+--
+-- TOC entry 1378 (class 1262 OID 346681)
+-- Name: jbossesb; Type: DATABASE; Schema: -; Owner: postgres
+--
+
+CREATE DATABASE jbossesb WITH TEMPLATE = template0 ENCODING = 'LATIN1';
+
+
+\connect jbossesb
+
+SET client_encoding = 'LATIN1';
+SET check_function_bodies = false;
+SET client_min_messages = warning;
+
+--
+-- TOC entry 1379 (class 0 OID 0)
+-- Dependencies: 4
+-- Name: SCHEMA public; Type: COMMENT; Schema: -; Owner: postgres
+--
+
+COMMENT ON SCHEMA public IS 'Standard public schema';
+
+
+SET search_path = public, pg_catalog;
+
+SET default_tablespace = '';
+
+SET default_with_oids = false;
+
+--
+-- TOC entry 1123 (class 1259 OID 346691)
+-- Dependencies: 4
+-- Name: batches; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
+--
+
+CREATE TABLE batches (
+ batch_num bigint NOT NULL,
+ seq integer NOT NULL,
+ data text
+);
+
+
+--
+-- TOC entry 1125 (class 1259 OID 346712)
+-- Dependencies: 4
+-- Name: object_snap; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
+--
+
+CREATE TABLE object_snap (
+ uid bigint NOT NULL,
+ stamp bigint,
+ snap_type text,
+ object_uid bigint,
+ batch_num bigint,
+ xml_data text
+);
+
+
+--
+-- TOC entry 1124 (class 1259 OID 346698)
+-- Dependencies: 4
+-- Name: people_index; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
+--
+
+CREATE TABLE people_index (
+ uid bigint NOT NULL,
+ stamp bigint,
+ latest_snap_uid bigint,
+ latest_snap_date text,
+ name text,
+ phone text,
+ address text
+);
+
+
+--
+-- TOC entry 1122 (class 1259 OID 346682)
+-- Dependencies: 4
+-- Name: uid_table; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
+--
+
+CREATE TABLE uid_table (
+ uid integer NOT NULL,
+ sequence_name text NOT NULL,
+ last_used_uid bigint NOT NULL
+);
+
+
+--
+-- TOC entry 1374 (class 0 OID 346691)
+-- Dependencies: 1123
+-- Data for Name: batches; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+
+
+--
+-- TOC entry 1376 (class 0 OID 346712)
+-- Dependencies: 1125
+-- Data for Name: object_snap; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+
+
+--
+-- TOC entry 1375 (class 0 OID 346698)
+-- Dependencies: 1124
+-- Data for Name: people_index; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+
+
+--
+-- TOC entry 1373 (class 0 OID 346682)
+-- Dependencies: 1122
+-- Data for Name: uid_table; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+INSERT INTO uid_table (uid, sequence_name, last_used_uid) VALUES (1, 'jbossEsb_objuid', 10500000);
+INSERT INTO uid_table (uid, sequence_name, last_used_uid) VALUES (2, 'jbossEsb_batchuid', 251000);
+
+
+--
+-- TOC entry 1363 (class 16386 OID 346690)
+-- Dependencies: 1122 1122
+-- Name: ix1_uid_table; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
+--
+
+ALTER TABLE ONLY uid_table
+ ADD CONSTRAINT ix1_uid_table UNIQUE (sequence_name);
+
+
+--
+-- TOC entry 1369 (class 16386 OID 346704)
+-- Dependencies: 1124 1124
+-- Name: people_index_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
+--
+
+ALTER TABLE ONLY people_index
+ ADD CONSTRAINT people_index_pkey PRIMARY KEY (uid);
+
+
+--
+-- TOC entry 1367 (class 16386 OID 346697)
+-- Dependencies: 1123 1123 1123
+-- Name: pkey_batches; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
+--
+
+ALTER TABLE ONLY batches
+ ADD CONSTRAINT pkey_batches PRIMARY KEY (batch_num, seq);
+
+
+--
+-- TOC entry 1372 (class 16386 OID 346718)
+-- Dependencies: 1125 1125
+-- Name: pkey_object_snap; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
+--
+
+ALTER TABLE ONLY object_snap
+ ADD CONSTRAINT pkey_object_snap PRIMARY KEY (uid);
+
+
+--
+-- TOC entry 1365 (class 16386 OID 346688)
+-- Dependencies: 1122 1122
+-- Name: uid_table_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
+--
+
+ALTER TABLE ONLY uid_table
+ ADD CONSTRAINT uid_table_pkey PRIMARY KEY (uid);
+
+
+--
+-- TOC entry 1370 (class 1259 OID 346719)
+-- Dependencies: 1125 1125
+-- Name: ix1_object_snap; Type: INDEX; Schema: public; Owner: postgres; Tablespace:
+--
+
+CREATE INDEX ix1_object_snap ON object_snap USING btree (batch_num, uid);
+
+
+--
+-- TOC entry 1380 (class 0 OID 0)
+-- Dependencies: 4
+-- Name: public; Type: ACL; Schema: -; Owner: postgres
+--
+
+REVOKE ALL ON SCHEMA public FROM PUBLIC;
+GRANT ALL ON SCHEMA public TO PUBLIC;
+
+
+--
+-- Create the Customer table required by the TrailBlazer.
+--
+
+CREATE TABLE public.customer_index (
+ uid int8 NOT NULL,
+ stamp int8 NULL,
+ latest_snap_uid int8 NULL,
+ latest_snap_date text NULL,
+ name text NULL,
+ phone text NULL,
+ address text NULL,
+ PRIMARY KEY(uid)
+);
+
+--
+-- Creation of the following index is not needed by postgres - the create-table above auto
+-- creates the index.
+
+-- CREATE UNIQUE INDEX customer_index_pkey
+-- ON public.customer_index(uid);
+
Property changes on: labs/jbossesb/workspace/b_georges/product/install/database/JBossESB-DB-postgres.sql
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/install/database/README_HSQLDB.TXT
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/database/README_HSQLDB.TXT 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/database/README_HSQLDB.TXT 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,53 @@
+#########################################################################
+# JBoss, Home of Professional Open Source
+# Copyright 2006, JBoss Inc., and individual contributors as indicated
+# 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.
+#########################################################################
+
+HOW TO INSTALL THE jbossesb database:
+
+1. Configure your deployment.properties to use hsqldb. Use username sa and
+a blank password. Then run
+
+ant configure.jboss
+
+This installs the database to jboss. It creates a datasource and the hsqldb
+data files JBossESB.properties and JBossESB.script in data/hypersonic.
+
+DONE
+
+2. Optionally you can add more tables by running scripts from the command
+line in the current directory
+
+java -cp ../../../config/lib/hsqldb.jar org.hsqldb.util.SqlTool --autoCommit --continueOnErr --rcfile hsqldb.rc JBossESBDB your.sql
+
+or you can connect with a db client tool with url=jdbc:hsqldb:hsql://localhost:1701,
+username=sa and a blank password.
+
+Make sure jboss is running.
+
+
+
+
+
+
+
+
+
+
Added: labs/jbossesb/workspace/b_georges/product/install/database/README_POSTGRES.TXT
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/database/README_POSTGRES.TXT 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/database/README_POSTGRES.TXT 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,60 @@
+#########################################################################
+# JBoss, Home of Professional Open Source
+# Copyright 2006, JBoss Inc., and individual contributors as indicated
+# 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.
+#########################################################################
+
+HOW TO INSTALL THE jbossesb database:
+
+1. Install postgres. Make sure the server is running. Make sure you remember the user/password. I used
+postgres/postgres during the install.
+
+2. Get a shell/prompt which has access to the postgres utilities. To create the jbossesb database
+in postgres execute
+
+psql -U postgres < JBossESB-DB.sql
+
+
+then type your password (postgres). You should now have jbossesb database.
+
+3. To check if the database is created type
+
+psql -U postgress jbossesb (and give your password)
+
+Then at the 'jbossesb=#' prompt you can type '\l' to display all the databases.
+
+4. To see the tables in the jbossesb database type \dt. This should respond with:
+
+jbossesb=# \dt
+ List of relations
+ Schema | Name | Type | Owner
+--------+--------------+-------+----------
+ public | batches | table | postgres
+ public | object_snap | table | postgres
+ public | people_index | table | postgres
+ public | uid_table | table | postgres
+(4 rows)
+
+
+
+
+
+
+
+
Added: labs/jbossesb/workspace/b_georges/product/install/database/hsqldb.rc
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/database/hsqldb.rc 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/database/hsqldb.rc 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,4 @@
+urlid JBossESBDB
+url jdbc:hsqldb:hsql://localhost:1701
+username sa
+password
Added: labs/jbossesb/workspace/b_georges/product/install/deploy/JBossESB-ds.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/deploy/JBossESB-ds.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/deploy/JBossESB-ds.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,17 @@
+<datasources>
+ <local-tx-datasource>
+ <jndi-name>JBossESBDS</jndi-name>
+
+ <connection-url>@org.jboss.esb.db.url@</connection-url>
+ <driver-class>@org.jboss.esb.db.driver@</driver-class>
+ <user-name>@org.jboss.esb.db.user@</user-name>
+ <password>@org.jboss.esb.db.password@</password>
+
+ <min-pool-size>10</min-pool-size>
+ <max-pool-size>100</max-pool-size>
+ <blocking-timeout-millis>1000</blocking-timeout-millis>
+ <idle-timeout-minutes>5</idle-timeout-minutes>
+
+ </local-tx-datasource>
+
+</datasources>
Added: labs/jbossesb/workspace/b_georges/product/install/deploy/JBossESB-hsqldb-ds.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/deploy/JBossESB-hsqldb-ds.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/deploy/JBossESB-hsqldb-ds.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- The Hypersonic embedded database JCA connection factory config -->
+
+<!-- $Id: hsqldb-ds.xml,v 1.15.2.1 2006/01/10 18:11:03 dimitris Exp $ -->
+
+<datasources>
+ <local-tx-datasource>
+
+ <!-- The jndi name of the DataSource, it is prefixed with java:/ -->
+ <!-- Datasources are not available outside the virtual machine -->
+ <jndi-name>JBossESBDS</jndi-name>
+
+ <!-- For server mode db, allowing other processes to use hsqldb over tcp. -->
+ This requires the org.jboss.jdbc.HypersonicDatabase mbean.
+ <connection-url>jdbc:hsqldb:hsql://${jboss.bind.address}:1701</connection-url>
+
+ <!-- For totally in-memory db, not saved when jboss stops.
+ The org.jboss.jdbc.HypersonicDatabase mbean is required for proper db shutdown
+ <connection-url>jdbc:hsqldb:.</connection-url>
+ -->
+ <!-- For in-process persistent db, saved when jboss stops.
+ The org.jboss.jdbc.HypersonicDatabase mbean is required for proper db shutdown
+
+ <connection-url>jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}JBossESBDB</connection-url>
+ -->
+
+ <!-- The driver class -->
+ <driver-class>org.hsqldb.jdbcDriver</driver-class>
+
+ <!-- The login and password -->
+ <user-name>sa</user-name>
+ <password></password>
+
+ <!--example of how to specify class that determines if exception means connection should be destroyed-->
+ <!--exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.DummyExceptionSorter</exception-sorter-class-name-->
+
+ <!-- this will be run before a managed connection is removed from the pool for use by a client-->
+ <!--<check-valid-connection-sql>select * from something</check-valid-connection-sql> -->
+
+ <!-- The minimum connections in a pool/sub-pool. Pools are lazily constructed on first use -->
+ <min-pool-size>5</min-pool-size>
+
+ <!-- The maximum connections in a pool/sub-pool -->
+ <max-pool-size>20</max-pool-size>
+
+ <!-- The time before an unused connection is destroyed -->
+ <!-- NOTE: This is the check period. It will be destroyed somewhere between 1x and 2x this timeout after last use -->
+ <!-- TEMPORARY FIX! - Disable idle connection removal, HSQLDB has a problem with not reaping threads on closed connections -->
+ <idle-timeout-minutes>0</idle-timeout-minutes>
+
+ <!-- sql to call when connection is created
+ <new-connection-sql>some arbitrary sql</new-connection-sql>
+ -->
+
+ <!-- sql to call on an existing pooled connection when it is obtained from pool
+ <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
+ -->
+
+ <!-- example of how to specify a class that determines a connection is valid before it is handed out from the pool
+ <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.DummyValidConnectionChecker</valid-connection-checker-class-name>
+ -->
+
+ <!-- Whether to check all statements are closed when the connection is returned to the pool,
+ this is a debugging feature that should be turned off in production -->
+ <track-statements/>
+
+ <!-- Use the getConnection(user, pw) for logins
+ <application-managed-security/>
+ -->
+
+ <!-- Use the security domain defined in conf/login-config.xml -->
+ <security-domain>HsqlDbRealm</security-domain>
+
+ <!-- Use the security domain defined in conf/login-config.xml or the
+ getConnection(user, pw) for logins. The security domain takes precedence.
+ <security-domain-and-application>HsqlDbRealm</security-domain-and-application>
+ -->
+
+ <!-- HSQL DB benefits from prepared statement caching -->
+ <prepared-statement-cache-size>32</prepared-statement-cache-size>
+
+ <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
+ <metadata>
+ <type-mapping>Hypersonic SQL</type-mapping>
+ </metadata>
+
+ <!-- When using in-process (standalone) mode
+ <depends>jboss:service=Hypersonic,database=localDB</depends> -->
+ <!-- Uncomment when using hsqldb in server mode -->
+ <depends>jboss:service=Hypersonic</depends>
+
+ </local-tx-datasource>
+
+ <!-- Uncomment if you want hsqldb accessed over tcp (server mode)-->
+ <mbean code="org.jboss.jdbc.HypersonicDatabase"
+ name="jboss:service=Hypersonic">
+ <attribute name="Port">1701</attribute>
+ <attribute name="BindAddress">${jboss.bind.address}</attribute>
+ <attribute name="Silent">true</attribute>
+ <attribute name="Database">JBossESB</attribute>
+ <attribute name="Trace">false</attribute>
+ <attribute name="No_system_exit">true</attribute>
+ </mbean>
+
+
+ <!-- For hsqldb accessed from jboss only, in-process (standalone) mode
+ <mbean code="org.jboss.jdbc.HypersonicDatabase"
+ name="jboss:service=Hypersonic,database=localDB">
+ <attribute name="Database">localDB</attribute>
+ <attribute name="InProcessMode">true</attribute>
+ </mbean> -->
+
+</datasources>
Added: labs/jbossesb/workspace/b_georges/product/install/deployment.properties
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/deployment.properties 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/deployment.properties 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,82 @@
+######################################################################
+# JBossESB ant deployment properties file
+#
+# Copy the example file and replace with your values
+#
+######################################################################
+# APP SERVER
+######################################################################
+#
+# application server root directory
+org.jboss.esb.appserver.home=/opt/jboss/server/jboss-4.0.4SP1/bin
+# server configuration
+# jboss : default or all
+org.jboss.esb.appserver.config=esb
+######################################################################
+# reference to jboss esb configuration file
+# mail server host
+org.jboss.soa.esb.mail.smtp.host=localhost
+# smtp port of the host
+org.jboss.soa.esb.mail.smtp.port=25
+# email user account
+org.jboss.soa.esb.mail.smtp.user=
+# email account password
+org.jboss.soa.esb.mail.smtp.password=
+# reference to object store config
+org.jboss.esb.config.objstore=/data/jboss/jbesb/conf/ObjStore.xml
+#
+######################################################################
+# PRODUCTION DATABASE
+######################################################################
+# For beta1 we only support postgres. However it should work for other
+# databases too.
+#
+# postgres : postgresql-8.1-407.jdbc2ee.jar
+# hsql : hsqldb.jar
+org.jboss.esb.db.driver.jar=hsqldb.jar
+# database driver
+# postgres : org.postgresql.Driver
+# hsql : org.hsqldb.jdbcDriver
+# oracle : oracle.jdbc.driver.OracleDriver
+org.jboss.esb.db.driver=org.hsqldb.jdbcDriver
+# database url
+# postgres : jdbc:postgresql://localhost:5432/jbossesb
+# hsql : jdbc:hsqldb:hsql://localhost:1701
+# oracle : jdbc:oracle:thin:@localhost:1523:jbossesb
+org.jboss.esb.db.url=jdbc:hsqldb:hsql://localhost:1701
+# database user
+org.jboss.esb.db.user=sa
+# database password
+org.jboss.esb.db.password=
+#####################################################################
+# This is setting is used for hypersonic only, and destroys pre-existing data
+# in the JBossESB database. Development only! Set to 'create' to create
+# the JBossESB database. Then set this flag to off.
+org.jboss.esb.db.create.db=off
+######################################################################
+# TEST DATABASE
+######################################################################
+# For beta1 we only support postgres. However it should work for other
+# databases too.
+#
+# postgres : postgresql-8.1-407.jdbc2ee.jar
+# hsql : hsqldb.jar
+org.jboss.esb.test.db.driver.jar=hsqldb.jar
+# database driver
+# postgres : org.postgresql.Driver
+# hsql : org.hsqldb.jdbcDriver
+# oracle : oracle.jdbc.driver.OracleDriver
+org.jboss.esb.test.db.driver=org.hsqldb.jdbcDriver
+# database url
+# postgres : jdbc:postgresql://localhost:5432/jbossesb
+# hsql : jdbc:hsqldb:.
+# oracle : jdbc:oracle:thin:@localhost:1523:jbossesb
+org.jboss.esb.test.db.url=jdbc:hsqldb:.
+# database user
+org.jboss.esb.test.db.user=sa
+# database password
+org.jboss.esb.test.db.password=
+#
+######################################################################
+
+
Added: labs/jbossesb/workspace/b_georges/product/install/deployment.properties-example
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/deployment.properties-example 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/deployment.properties-example 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,82 @@
+######################################################################
+# JBossESB ant deployment properties file
+#
+# Copy the example file and replace with your values
+#
+######################################################################
+# APP SERVER
+######################################################################
+#
+# application server root directory
+org.jboss.esb.appserver.home=C:/cygwin/home/kstam/apps/jboss-4.0.4.GA/jbossesb
+# server configuration
+# jboss : default or all
+org.jboss.esb.appserver.config=default
+######################################################################
+# reference to jboss esb configuration file
+# mail server host
+org.jboss.soa.esb.mail.smtp.host=mail.osserver.net
+# smtp port of the host
+org.jboss.soa.esb.mail.smtp.port=25
+# email user account
+org.jboss.soa.esb.mail.smtp.user=
+# email account password
+org.jboss.soa.esb.mail.smtp.password=
+# reference to object store config
+org.jboss.esb.config.objstore=/cygwin/home/kstam/dev/loanbrokerdemo/conf/ObjStore.xml
+#
+######################################################################
+# PRODUCTION DATABASE
+######################################################################
+# For beta1 we only support postgres. However it should work for other
+# databases too.
+#
+# postgres : postgresql-8.1-407.jdbc2ee.jar
+# hsql : hsqldb.jar
+org.jboss.esb.db.driver.jar=hsqldb.jar
+# database driver
+# postgres : org.postgresql.Driver
+# hsql : org.hsqldb.jdbcDriver
+# oracle : oracle.jdbc.driver.OracleDriver
+org.jboss.esb.db.driver=org.hsqldb.jdbcDriver
+# database url
+# postgres : jdbc:postgresql://localhost:5432/jbossesb
+# hsql : jdbc:hsqldb:hsql://localhost:1701
+# oracle : jdbc:oracle:thin:@localhost:1523:jbossesb
+org.jboss.esb.db.url=jdbc:hsqldb:hsql://localhost:1701
+# database user
+org.jboss.esb.db.user=sa
+# database password
+org.jboss.esb.db.password=
+#####################################################################
+# This is setting is used for hypersonic only, and destroys pre-existing data
+# in the JBossESB database. Development only! Set to 'create' to create
+# the JBossESB database. Then set this flag to off.
+org.jboss.esb.db.create.db=create
+######################################################################
+# TEST DATABASE
+######################################################################
+# For beta1 we only support postgres. However it should work for other
+# databases too.
+#
+# postgres : postgresql-8.1-407.jdbc2ee.jar
+# hsql : hsqldb.jar
+org.jboss.esb.test.db.driver.jar=hsqldb.jar
+# database driver
+# postgres : org.postgresql.Driver
+# hsql : org.hsqldb.jdbcDriver
+# oracle : oracle.jdbc.driver.OracleDriver
+org.jboss.esb.test.db.driver=org.hsqldb.jdbcDriver
+# database url
+# postgres : jdbc:postgresql://localhost:5432/jbossesb
+# hsql : jdbc:hsqldb:.
+# oracle : jdbc:oracle:thin:@localhost:1523:jbossesb
+org.jboss.esb.test.db.url=jdbc:hsqldb:.
+# database user
+org.jboss.esb.test.db.user=sa
+# database password
+org.jboss.esb.test.db.password=
+#
+######################################################################
+
+
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/License.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/License.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/License.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,209 @@
+The software in this directory and below is covered by the
+
+
+Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ 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.
+
+
+
+
+
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/README.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/README.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/README.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,5 @@
+The items in this directory are taken from the jUDDI Apache project.
+jUDDI is our default registry, however any JAXR compliant registry
+can be used.
+
+Kurt T. Stam (kurt.stam at jboss.com)
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/juddi.properties
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/juddi.properties 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/juddi.properties 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,69 @@
+# jUDDI Registry Properties (used by RegistryServer)
+# see http://www.juddi.org for more information
+
+# The UDDI Operator Name
+juddi.operatorName = jUDDI.org
+
+# The i18n locale default codes
+juddi.i18n.languageCode = en
+juddi.i18n.countryCode = US
+
+# The UDDI DiscoveryURL Prefix
+juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
+
+# The UDDI Operator Contact Email Address
+juddi.operatorEmailAddress = admin at juddi.org
+
+# The maximum name size and maximum number
+# of name elements allows in several of the
+# FindXxxx and SaveXxxx UDDI functions.
+juddi.maxNameLength=255
+juddi.maxNameElementsAllowed=5
+
+# The maximum number of UDDI artifacts allowed
+# per publisher. A value of '-1' indicates any
+# number of artifacts is valid (These values can be
+# overridden at the individual publisher level).
+juddi.maxBusinessesPerPublisher=25
+juddi.maxServicesPerBusiness=20
+juddi.maxBindingsPerService=10
+juddi.maxTModelsPerPublisher=100
+
+# jUDDI Authentication module to use
+juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
+
+# jUDDI DataStore module currently to use
+juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
+
+# use a dataSource (if set to false a direct
+# jdbc connection will be used.
+juddi.isUseDataSource=false
+juddi.jdbcDriver=com.mysql.jdbc.Driver
+juddi.jdbcUrl=jdbc:mysql://localhost/juddi
+juddi.jdbcUsername=juddi
+juddi.jdbcPassword=juddi
+# jUDDI DataSource to use
+juddi.dataSource=java:comp/env/jdbc/juddiDB
+
+# jUDDI UUIDGen implementation to use
+juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
+
+# jUDDI Cryptor implementation to use
+juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
+
+# jUDDI Validator to use
+juddi.validator=org.apache.juddi.validator.DefaultValidator
+
+# jUDDI Proxy Properties (used by RegistryProxy)
+juddi.proxy.adminURL = http://localhost:8080/juddi/admin
+juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
+juddi.proxy.publishURL = http://localhost:8080/juddi/publish
+juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
+juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
+juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
+
+# JNDI settings (used by RMITransport)
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/juddi.war
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/juddi.war
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/daffodildb/create_database.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/daffodildb/create_database.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/daffodildb/create_database.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,676 @@
+/* Create database */
+CREATE DATABASE juddi user daffodil password daffodil
+
+CREATE TABLE BUSINESS_ENTITY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) ,
+ OPERATOR VARCHAR(255) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY)
+)
+
+CREATE TABLE BUSINESS_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) ,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE BUSINESS_CATEGORY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CATEGORY_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+
+
+CREATE TABLE BUSINESS_IDENTIFIER
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE BUSINESS_NAME
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) ,
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_NAME_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE CONTACT
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) ,
+ PERSON_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE CONTACT_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ CONTACT_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) ,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,CONTACT_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+)
+
+CREATE TABLE ADDRESS
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) ,
+ SORT_CODE VARCHAR(10) ,
+ TMODEL_KEY VARCHAR(41) ,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+)
+
+CREATE TABLE ADDRESS_LINE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ ADDRESS_LINE_ID INT NOT NULL,
+ LINE VARCHAR(80) NOT NULL,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) ,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID,ADDRESS_LINE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+ REFERENCES ADDRESS (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+)
+
+CREATE TABLE EMAIL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ EMAIL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) ,
+ EMAIL_ADDRESS VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,EMAIL_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+)
+
+CREATE TABLE PHONE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ PHONE_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) ,
+ PHONE_NUMBER VARCHAR(50) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,PHONE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+)
+
+CREATE TABLE DISCOVERY_URL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ DISCOVERY_URL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NOT NULL,
+ URL VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,DISCOVERY_URL_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE BUSINESS_SERVICE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (SERVICE_KEY),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE SERVICE_DESCR
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) ,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_DESCR_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+)
+
+CREATE TABLE SERVICE_CATEGORY
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,CATEGORY_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+)
+
+CREATE TABLE SERVICE_NAME
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) ,
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_NAME_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+)
+
+CREATE TABLE BINDING_TEMPLATE
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ ACCESS_POINT_TYPE VARCHAR(20) ,
+ ACCESS_POINT_URL VARCHAR(255) ,
+ HOSTING_REDIRECTOR VARCHAR(255) ,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (BINDING_KEY),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+)
+
+CREATE TABLE BINDING_CATEGORY
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,CATEGORY_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+)
+
+CREATE TABLE BINDING_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ BINDING_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) ,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,BINDING_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+)
+
+CREATE TABLE TMODEL_INSTANCE_INFO
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) ,
+ INSTANCE_PARMS VARCHAR(255) ,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+)
+
+CREATE TABLE TMODEL_INSTANCE_INFO_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_INSTANCE_INFO_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) ,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,TMODEL_INSTANCE_INFO_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+)
+
+CREATE TABLE INSTANCE_DETAILS_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) ,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+)
+
+CREATE TABLE INSTANCE_DETAILS_DOC_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) ,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DOC_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+)
+
+CREATE TABLE TMODEL
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) ,
+ OPERATOR VARCHAR(255) NOT NULL,
+ NAME VARCHAR(255) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) ,
+ DELETED VARCHAR(5) ,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (TMODEL_KEY)
+)
+
+CREATE TABLE TMODEL_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) ,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+)
+
+CREATE TABLE TMODEL_CATEGORY
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,CATEGORY_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+)
+
+CREATE TABLE TMODEL_IDENTIFIER
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+)
+
+CREATE TABLE TMODEL_DOC_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) ,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DOC_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+)
+
+CREATE TABLE PUBLISHER_ASSERTION
+(
+ FROM_KEY VARCHAR(41) NOT NULL,
+ TO_KEY VARCHAR(41) NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ KEY_NAME VARCHAR(255) NOT NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ FROM_CHECK VARCHAR(5) NOT NULL,
+ TO_CHECK VARCHAR(5) NOT NULL,
+ FOREIGN KEY (FROM_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY),
+ FOREIGN KEY (TO_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE PUBLISHER
+(
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ EMAIL_ADDRESS VARCHAR(255) ,
+ IS_ADMIN VARCHAR(5) ,
+ IS_ENABLED VARCHAR(5) ,
+ MAX_BUSINESSES INT NULL,
+ MAX_SERVICES_PER_BUSINESS INT NULL,
+ MAX_BINDINGS_PER_SERVICE INT NULL,
+ MAX_TMODELS INT NULL,
+ PRIMARY KEY (PUBLISHER_ID)
+)
+
+CREATE TABLE AUTH_TOKEN
+(
+ AUTH_TOKEN VARCHAR(51) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ CREATED TIMESTAMP NOT NULL,
+ LAST_USED TIMESTAMP NOT NULL,
+ NUMBER_OF_USES INT NOT NULL,
+ TOKEN_STATE INT NOT NULL,
+ PRIMARY KEY (AUTH_TOKEN)
+)
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','Administrator','admin','jUDDI.org','uddi-org:types','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UDDItypes',CURTIMESTAMP())
+
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','UDDI Type Taxonomy')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','Taxonomy used to categorize Service Descriptions.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384','Administrator','admin','jUDDI.org','unspsc-org:unspsc:3-1','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC31',CURTIMESTAMP())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','Product Taxonomy: UNSPSC (Version 3.1)')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','This tModel defines the UNSPSC product taxonomy.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634','Administrator','admin','jUDDI.org','unspsc-org:unspsc','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC',CURTIMESTAMP())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','Product Taxonomy: UNSPSC (Version 7.3)')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','This tModel defines Version 7.3 of the UNSPSC product taxonomy.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','Checked')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2','Administrator','admin','jUDDI.org','ntis-gov:naics:1997','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS',CURTIMESTAMP())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','Business Taxonomy: NAICS(1997 Release)')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','This tModel defines the NAICS industry taxonomy.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88','Administrator','admin','jUDDI.org','uddi-org:iso-ch:3166-1999','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO3166',CURTIMESTAMP())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','ISO 3166-1:1997 and 3166-2:1998. Codes for names of countries and their subdivisions. Part 1: Country codes. Part 2:Country subdivision codes. Update newsletters include ISO 3166-1 V-1 (1998-02-05), V-2 (1999-10-01), ISO 3166-2 I-1 (1998)')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','Taxonomy used to categorize entries by geographic location.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4','Administrator','admin','jUDDI.org','uddi-org:general_keywords','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#GenKW',CURTIMESTAMP())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','Special taxonomy consisting of namespace identifiers and the keywords associated with the namespaces')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','This tModel defines an unidentified taxonomy.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9','Administrator','admin','jUDDI.org','uddi-org:owningBusiness','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#owningBusiness',CURTIMESTAMP())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','A pointer to a businessEntity that owns the tagged data.')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','This tModel indicates the businessEntity that published or owns the tagged tModel. Used with tModels to establish an "owned" relationship with a registered businessEntity.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03','Administrator','admin','jUDDI.org','uddi-org:relationships','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Relationships',CURTIMESTAMP())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','Starter set classifications of businessEntity relationships')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','This tModel is used to describe business relationships. Used in the publisher assertion messages.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','relationship')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55','Administrator','admin','jUDDI.org','uddi-org:operators','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Operators',CURTIMESTAMP())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','Taxonomy for categorizing the businessEntity of an operator of a registry.')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','This checked value set is used to identify UDDI operators.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E','Administrator','admin','jUDDI.org','uddi-org:isReplacedBy','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#IsReplacedBy',CURTIMESTAMP())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','An identifier system used to point (using UDDI keys) to the tModel (or businessEntity) that is the logical replacement for the one in which isReplacedBy is used')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','This is a checked value set.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823','Administrator','admin','jUDDI.org','dnb-com:D-U-N-S','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#D-U-N-S',SYSDATE)
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','Dun chr(38) Bradstreet D-U-N-S® Number')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','This tModel is used for the Dun chr(38) Bradstreet D-U-N-S® Number identifier.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039','Administrator','admin','jUDDI.org','thomasregister-com:supplierID','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Thomas',CURTIMESTAMP())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','Thomas Registry Suppliers')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','This tModel is used for the Thomas Register supplier identifier codes.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier')
+
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457','Administrator','admin','jUDDI.org','uddi-org:wsdl:types','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#wsdlTypes',CURTIMESTAMP());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','WSDL Type Category System');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','The WSDL Entity Type tModel uses a number of UDDI entities to represent the various entities within a WSDL document.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824','Administrator','admin','jUDDI.org','uddi-org:xml:namespace','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlNamespace',CURTIMESTAMP());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A category system used to indicate namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A namespace provides necessary qualifying information about a technical concept or model. The XML Namespace tModel provides a mechanism to associate a namespace with a UDDI entity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6','Administrator','admin','jUDDI.org','uddi-org:xml:localName','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlLocalName',CURTIMESTAMP());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','A category system used to indicate XML local names');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','The XML Local Name tModel provides a mechanism to indicate the name attribute for the uddi:businessService.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E','Administrator','admin','jUDDI.org','uddi-org:wsdl:portTypeReference','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#portTypeReference',CURTIMESTAMP());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','A category system used to reference a wsdl:portType tModel');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','The WSDL portType Reference category system provides a mechanism to indicate that a UDDI entity has a relationship with a certain wsdl:portType tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E','Administrator','admin','jUDDI.org','uddi-org:protocol:soap','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#soap',CURTIMESTAMP());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','A tModel that represents the SOAP 1.1 protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','The SOAP Protocol tModel can be used to indicate that a Web service supports the SOAP 1.1 protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794','Administrator','admin','jUDDI.org','uddi-org:protocol:http','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#http',CURTIMESTAMP());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','A tModel that represents the HTTP protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','The HTTP Protocol tModel can be used to indicate that a Web service supports the HTTP protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:protocol','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#protocol',CURTIMESTAMP());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','Category system used to describe the protocol supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','The Protocol Categorization tModel provides a mechanism to capture this protocol information in the UDDI binding tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:transport','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#transport',CURTIMESTAMP());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','Category system used to describe the transport supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','The Transport Categorization tModel provides a mechanism to capture transport information in the UDDI binding tModel which allows a user to search for bindings that implement a specific transport protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212','Administrator','admin','jUDDI.org','uddi-org:wsdl:address','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#Address',CURTIMESTAMP());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','A tModel used to indicate the WSDL address option.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','The WSDL Address tModel provides A mechanism to indicate that the endpoint address should be obtained from a WSDL document.');
+
+
+
+
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/daffodildb/insert_publishers.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/daffodildb/insert_publishers.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/daffodildb/insert_publishers.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,3 @@
+-- *** SAMPLE PUBLISHER ***
+-- INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN,MAX_BUSINESSES,MAX_SERVICES_PER_BUSINESS,MAX_BINDINGS_PER_SERVICE,MAX_TMODELS)
+-- VALUES ('jdoe','John Doe','john.doe at apache.org','true','true',25,20,10,100);
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/db2/create_database.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/db2/create_database.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/db2/create_database.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,701 @@
+-- DROP TABLE BUSINESS_DESCR;
+-- DROP TABLE BUSINESS_CATEGORY;
+-- DROP TABLE BUSINESS_IDENTIFIER;
+-- DROP TABLE BUSINESS_NAME;
+-- DROP TABLE DISCOVERY_URL;
+-- DROP TABLE ADDRESS_LINE;
+-- DROP TABLE ADDRESS;
+-- DROP TABLE PHONE;
+-- DROP TABLE EMAIL;
+-- DROP TABLE CONTACT_DESCR;
+-- DROP TABLE CONTACT;
+-- DROP TABLE SERVICE_DESCR;
+-- DROP TABLE SERVICE_CATEGORY;
+-- DROP TABLE SERVICE_NAME;
+-- DROP TABLE BINDING_DESCR;
+-- DROP TABLE BINDING_CATEGORY;
+-- DROP TABLE INSTANCE_DETAILS_DESCR;
+-- DROP TABLE INSTANCE_DETAILS_DOC_DESCR;
+-- DROP TABLE TMODEL_CATEGORY;
+-- DROP TABLE TMODEL_DESCR;
+-- DROP TABLE TMODEL_DOC_DESCR;
+-- DROP TABLE TMODEL_IDENTIFIER;
+-- DROP TABLE TMODEL_INSTANCE_INFO_DESCR;
+-- DROP TABLE TMODEL_INSTANCE_INFO;
+-- DROP TABLE PUBLISHER_ASSERTION;
+-- DROP TABLE TMODEL;
+-- DROP TABLE BINDING_TEMPLATE;
+-- DROP TABLE BUSINESS_SERVICE;
+-- DROP TABLE BUSINESS_ENTITY;
+-- DROP TABLE PUBLISHER;
+-- DROP TABLE AUTH_TOKEN;
+
+
+CREATE TABLE BUSINESS_ENTITY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) ,
+ OPERATOR VARCHAR(255) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_CATEGORY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CATEGORY_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_IDENTIFIER
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_NAME
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_NAME_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE CONTACT
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) ,
+ PERSON_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE CONTACT_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ CONTACT_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,CONTACT_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE ADDRESS
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) ,
+ SORT_CODE VARCHAR(10) ,
+ TMODEL_KEY VARCHAR(41) ,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE ADDRESS_LINE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ ADDRESS_LINE_ID INT NOT NULL,
+ LINE VARCHAR(80) NOT NULL,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) ,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID,ADDRESS_LINE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+ REFERENCES ADDRESS (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+);
+
+CREATE TABLE EMAIL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ EMAIL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) ,
+ EMAIL_ADDRESS VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,EMAIL_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE PHONE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ PHONE_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) ,
+ PHONE_NUMBER VARCHAR(50) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,PHONE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE DISCOVERY_URL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ DISCOVERY_URL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NOT NULL,
+ URL VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,DISCOVERY_URL_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_SERVICE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (SERVICE_KEY),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE SERVICE_DESCR
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_DESCR_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE SERVICE_CATEGORY
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,CATEGORY_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE SERVICE_NAME
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) ,
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_NAME_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE BINDING_TEMPLATE
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ ACCESS_POINT_TYPE VARCHAR(20) ,
+ ACCESS_POINT_URL VARCHAR(255) ,
+ HOSTING_REDIRECTOR VARCHAR(255) ,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (BINDING_KEY),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE BINDING_CATEGORY
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41),
+ KEY_NAME VARCHAR(255),
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,CATEGORY_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE BINDING_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ BINDING_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,BINDING_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE TMODEL_INSTANCE_INFO
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) ,
+ INSTANCE_PARMS VARCHAR(255) ,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE TMODEL_INSTANCE_INFO_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_INSTANCE_INFO_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,TMODEL_INSTANCE_INFO_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE INSTANCE_DETAILS_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE INSTANCE_DETAILS_DOC_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DOC_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE TMODEL
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) ,
+ OPERATOR VARCHAR(255) NOT NULL,
+ NAME VARCHAR(255) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) ,
+ DELETED VARCHAR(5),
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_CATEGORY
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,CATEGORY_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_IDENTIFIER
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_DOC_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DOC_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE PUBLISHER_ASSERTION
+(
+ FROM_KEY VARCHAR(41) NOT NULL,
+ TO_KEY VARCHAR(41) NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ KEY_NAME VARCHAR(255) NOT NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ FROM_CHECK VARCHAR(5) NOT NULL,
+ TO_CHECK VARCHAR(5) NOT NULL,
+ FOREIGN KEY (FROM_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY),
+ FOREIGN KEY (TO_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE PUBLISHER
+(
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ EMAIL_ADDRESS VARCHAR(255),
+ IS_ADMIN VARCHAR(5),
+ IS_ENABLED VARCHAR(5),
+ MAX_BUSINESSES INT NULL,
+ MAX_SERVICES_PER_BUSINESS INT NULL,
+ MAX_BINDINGS_PER_SERVICE INT NULL,
+ MAX_TMODELS INT NULL,
+ PRIMARY KEY (PUBLISHER_ID)
+);
+
+CREATE TABLE AUTH_TOKEN
+(
+ AUTH_TOKEN VARCHAR(51) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ CREATED TIMESTAMP NOT NULL,
+ LAST_USED TIMESTAMP NOT NULL,
+ NUMBER_OF_USES INT NOT NULL,
+ TOKEN_STATE INT NOT NULL,
+ PRIMARY KEY (AUTH_TOKEN)
+);
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','Administrator','jUDDI.org','uddi-org:types','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UDDItypes',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','UDDI Type Taxonomy');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','Taxonomy used to categorize Service Descriptions.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384','Administrator','jUDDI.org','unspsc-org:unspsc:3-1','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC31',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','Product Taxonomy: UNSPSC (Version 3.1)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','This tModel defines the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634','Administrator','jUDDI.org','unspsc-org:unspsc','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','Product Taxonomy: UNSPSC (Version 7.3)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','This tModel defines Version 7.3 of the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','Checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2','Administrator','jUDDI.org','ntis-gov:naics:1997','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','Business Taxonomy: NAICS(1997 Release)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','This tModel defines the NAICS industry taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88','Administrator','jUDDI.org','uddi-org:iso-ch:3166-1999','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO3166',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','ISO 3166-1:1997 and 3166-2:1998. Codes for names of countries and their subdivisions. Part 1: Country codes. Part 2:Country subdivision codes. Update newsletters include ISO 3166-1 V-1 (1998-02-05), V-2 (1999-10-01), ISO 3166-2 I-1 (1998)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','Taxonomy used to categorize entries by geographic location.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4','Administrator','jUDDI.org','uddi-org:general_keywords','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#GenKW',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','Special taxonomy consisting of namespace identifiers and the keywords associated with the namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','This tModel defines an unidentified taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9','Administrator','jUDDI.org','uddi-org:owningBusiness','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#owningBusiness',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','A pointer to a businessEntity that owns the tagged data.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','This tModel indicates the businessEntity that published or owns the tagged tModel. Used with tModels to establish an "owned" relationship with a registered businessEntity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03','Administrator','jUDDI.org','uddi-org:relationships','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Relationships',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','Starter set classifications of businessEntity relationships');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','This tModel is used to describe business relationships. Used in the publisher assertion messages.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','relationship');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55','Administrator','jUDDI.org','uddi-org:operators','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Operators',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','Taxonomy for categorizing the businessEntity of an operator of a registry.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','This checked value set is used to identify UDDI operators.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E','Administrator','jUDDI.org','uddi-org:isReplacedBy','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#IsReplacedBy',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','An identifier system used to point (using UDDI keys) to the tModel (or businessEntity) that is the logical replacement for the one in which isReplacedBy is used');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','This is a checked value set.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823','Administrator','jUDDI.org','dnb-com:D-U-N-S','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#D-U-N-S',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','Dun&Bradstreet D-U-N-S® Number');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','This tModel is used for the Dun&Bradstreet D-U-N-S® Number identifier.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039','Administrator','jUDDI.org','thomasregister-com:supplierID','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Thomas',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','Thomas Registry Suppliers');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','This tModel is used for the Thomas Register supplier identifier codes.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457','Administrator','admin','jUDDI.org','uddi-org:wsdl:types','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#wsdlTypes',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','WSDL Type Category System');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','The WSDL Entity Type tModel uses a number of UDDI entities to represent the various entities within a WSDL document.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824','Administrator','admin','jUDDI.org','uddi-org:xml:namespace','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlNamespace',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A category system used to indicate namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A namespace provides necessary qualifying information about a technical concept or model. The XML Namespace tModel provides a mechanism to associate a namespace with a UDDI entity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6','Administrator','admin','jUDDI.org','uddi-org:xml:localName','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlLocalName',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','A category system used to indicate XML local names');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','The XML Local Name tModel provides a mechanism to indicate the name attribute for the uddi:businessService.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E','Administrator','admin','jUDDI.org','uddi-org:wsdl:portTypeReference','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#portTypeReference',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','A category system used to reference a wsdl:portType tModel');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','The WSDL portType Reference category system provides a mechanism to indicate that a UDDI entity has a relationship with a certain wsdl:portType tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E','Administrator','admin','jUDDI.org','uddi-org:protocol:soap','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#soap',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','A tModel that represents the SOAP 1.1 protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','The SOAP Protocol tModel can be used to indicate that a Web service supports the SOAP 1.1 protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794','Administrator','admin','jUDDI.org','uddi-org:protocol:http','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#http',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','A tModel that represents the HTTP protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','The HTTP Protocol tModel can be used to indicate that a Web service supports the HTTP protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:protocol','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#protocol',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','Category system used to describe the protocol supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','The Protocol Categorization tModel provides a mechanism to capture this protocol information in the UDDI binding tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:transport','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#transport',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','Category system used to describe the transport supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','The Transport Categorization tModel provides a mechanism to capture transport information in the UDDI binding tModel which allows a user to search for bindings that implement a specific transport protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212','Administrator','admin','jUDDI.org','uddi-org:wsdl:address','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#Address',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','A tModel used to indicate the WSDL address option.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','The WSDL Address tModel provides A mechanism to indicate that the endpoint address should be obtained from a WSDL document.');
+
+
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/db2/insert_publishers.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/db2/insert_publishers.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/db2/insert_publishers.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,5 @@
+USE juddi;
+
+-- *** SAMPLE PUBLISHER ***
+-- INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN,MAX_BUSINESSES,MAX_SERVICES_PER_BUSINESS,MAX_BINDINGS_PER_SERVICE,MAX_TMODELS)
+-- VALUES ('jdoe','John Doe','john.doe at apache.org','true','true',25,20,10,100);
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/derby/create_database.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/derby/create_database.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/derby/create_database.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,701 @@
+-- DROP TABLE BUSINESS_DESCR;
+-- DROP TABLE BUSINESS_CATEGORY;
+-- DROP TABLE BUSINESS_IDENTIFIER;
+-- DROP TABLE BUSINESS_NAME;
+-- DROP TABLE DISCOVERY_URL;
+-- DROP TABLE ADDRESS_LINE;
+-- DROP TABLE ADDRESS;
+-- DROP TABLE PHONE;
+-- DROP TABLE EMAIL;
+-- DROP TABLE CONTACT_DESCR;
+-- DROP TABLE CONTACT;
+-- DROP TABLE SERVICE_DESCR;
+-- DROP TABLE SERVICE_CATEGORY;
+-- DROP TABLE SERVICE_NAME;
+-- DROP TABLE BINDING_DESCR;
+-- DROP TABLE BINDING_CATEGORY;
+-- DROP TABLE INSTANCE_DETAILS_DESCR;
+-- DROP TABLE INSTANCE_DETAILS_DOC_DESCR;
+-- DROP TABLE TMODEL_CATEGORY;
+-- DROP TABLE TMODEL_DESCR;
+-- DROP TABLE TMODEL_DOC_DESCR;
+-- DROP TABLE TMODEL_IDENTIFIER;
+-- DROP TABLE TMODEL_INSTANCE_INFO_DESCR;
+-- DROP TABLE TMODEL_INSTANCE_INFO;
+-- DROP TABLE PUBLISHER_ASSERTION;
+-- DROP TABLE TMODEL;
+-- DROP TABLE BINDING_TEMPLATE;
+-- DROP TABLE BUSINESS_SERVICE;
+-- DROP TABLE BUSINESS_ENTITY;
+-- DROP TABLE PUBLISHER;
+-- DROP TABLE AUTH_TOKEN;
+
+
+CREATE TABLE BUSINESS_ENTITY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) ,
+ OPERATOR VARCHAR(255) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_CATEGORY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CATEGORY_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_IDENTIFIER
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_NAME
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_NAME_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE CONTACT
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) ,
+ PERSON_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE CONTACT_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ CONTACT_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,CONTACT_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE ADDRESS
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) ,
+ SORT_CODE VARCHAR(10) ,
+ TMODEL_KEY VARCHAR(41) ,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE ADDRESS_LINE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ ADDRESS_LINE_ID INT NOT NULL,
+ LINE VARCHAR(80) NOT NULL,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) ,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID,ADDRESS_LINE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+ REFERENCES ADDRESS (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+);
+
+CREATE TABLE EMAIL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ EMAIL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) ,
+ EMAIL_ADDRESS VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,EMAIL_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE PHONE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ PHONE_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) ,
+ PHONE_NUMBER VARCHAR(50) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,PHONE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE DISCOVERY_URL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ DISCOVERY_URL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NOT NULL,
+ URL VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,DISCOVERY_URL_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_SERVICE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (SERVICE_KEY),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE SERVICE_DESCR
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_DESCR_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE SERVICE_CATEGORY
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,CATEGORY_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE SERVICE_NAME
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) ,
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_NAME_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE BINDING_TEMPLATE
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ ACCESS_POINT_TYPE VARCHAR(20) ,
+ ACCESS_POINT_URL VARCHAR(255) ,
+ HOSTING_REDIRECTOR VARCHAR(255) ,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (BINDING_KEY),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE BINDING_CATEGORY
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41),
+ KEY_NAME VARCHAR(255),
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,CATEGORY_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE BINDING_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ BINDING_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,BINDING_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE TMODEL_INSTANCE_INFO
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) ,
+ INSTANCE_PARMS VARCHAR(255) ,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE TMODEL_INSTANCE_INFO_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_INSTANCE_INFO_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,TMODEL_INSTANCE_INFO_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE INSTANCE_DETAILS_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE INSTANCE_DETAILS_DOC_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DOC_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE TMODEL
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) ,
+ OPERATOR VARCHAR(255) NOT NULL,
+ NAME VARCHAR(255) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) ,
+ DELETED VARCHAR(5),
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_CATEGORY
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,CATEGORY_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_IDENTIFIER
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_DOC_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DOC_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE PUBLISHER_ASSERTION
+(
+ FROM_KEY VARCHAR(41) NOT NULL,
+ TO_KEY VARCHAR(41) NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ KEY_NAME VARCHAR(255) NOT NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ FROM_CHECK VARCHAR(5) NOT NULL,
+ TO_CHECK VARCHAR(5) NOT NULL,
+ FOREIGN KEY (FROM_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY),
+ FOREIGN KEY (TO_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE PUBLISHER
+(
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ EMAIL_ADDRESS VARCHAR(255),
+ IS_ADMIN VARCHAR(5),
+ IS_ENABLED VARCHAR(5),
+ MAX_BUSINESSES INT NULL,
+ MAX_SERVICES_PER_BUSINESS INT NULL,
+ MAX_BINDINGS_PER_SERVICE INT NULL,
+ MAX_TMODELS INT NULL,
+ PRIMARY KEY (PUBLISHER_ID)
+);
+
+CREATE TABLE AUTH_TOKEN
+(
+ AUTH_TOKEN VARCHAR(51) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ CREATED TIMESTAMP NOT NULL,
+ LAST_USED TIMESTAMP NOT NULL,
+ NUMBER_OF_USES INT NOT NULL,
+ TOKEN_STATE INT NOT NULL,
+ PRIMARY KEY (AUTH_TOKEN)
+);
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','Administrator','jUDDI.org','uddi-org:types','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UDDItypes',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','UDDI Type Taxonomy');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','Taxonomy used to categorize Service Descriptions.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384','Administrator','jUDDI.org','unspsc-org:unspsc:3-1','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC31',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','Product Taxonomy: UNSPSC (Version 3.1)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','This tModel defines the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634','Administrator','jUDDI.org','unspsc-org:unspsc','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','Product Taxonomy: UNSPSC (Version 7.3)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','This tModel defines Version 7.3 of the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','Checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2','Administrator','jUDDI.org','ntis-gov:naics:1997','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','Business Taxonomy: NAICS(1997 Release)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','This tModel defines the NAICS industry taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88','Administrator','jUDDI.org','uddi-org:iso-ch:3166-1999','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO3166',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','ISO 3166-1:1997 and 3166-2:1998. Codes for names of countries and their subdivisions. Part 1: Country codes. Part 2:Country subdivision codes. Update newsletters include ISO 3166-1 V-1 (1998-02-05), V-2 (1999-10-01), ISO 3166-2 I-1 (1998)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','Taxonomy used to categorize entries by geographic location.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4','Administrator','jUDDI.org','uddi-org:general_keywords','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#GenKW',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','Special taxonomy consisting of namespace identifiers and the keywords associated with the namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','This tModel defines an unidentified taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9','Administrator','jUDDI.org','uddi-org:owningBusiness','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#owningBusiness',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','A pointer to a businessEntity that owns the tagged data.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','This tModel indicates the businessEntity that published or owns the tagged tModel. Used with tModels to establish an "owned" relationship with a registered businessEntity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03','Administrator','jUDDI.org','uddi-org:relationships','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Relationships',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','Starter set classifications of businessEntity relationships');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','This tModel is used to describe business relationships. Used in the publisher assertion messages.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','relationship');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55','Administrator','jUDDI.org','uddi-org:operators','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Operators',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','Taxonomy for categorizing the businessEntity of an operator of a registry.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','This checked value set is used to identify UDDI operators.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E','Administrator','jUDDI.org','uddi-org:isReplacedBy','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#IsReplacedBy',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','An identifier system used to point (using UDDI keys) to the tModel (or businessEntity) that is the logical replacement for the one in which isReplacedBy is used');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','This is a checked value set.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823','Administrator','jUDDI.org','dnb-com:D-U-N-S','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#D-U-N-S',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','Dun&Bradstreet D-U-N-S® Number');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','This tModel is used for the Dun&Bradstreet D-U-N-S® Number identifier.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039','Administrator','jUDDI.org','thomasregister-com:supplierID','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Thomas',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','Thomas Registry Suppliers');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','This tModel is used for the Thomas Register supplier identifier codes.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457','Administrator','admin','jUDDI.org','uddi-org:wsdl:types','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#wsdlTypes',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','WSDL Type Category System');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','The WSDL Entity Type tModel uses a number of UDDI entities to represent the various entities within a WSDL document.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824','Administrator','admin','jUDDI.org','uddi-org:xml:namespace','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlNamespace',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A category system used to indicate namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A namespace provides necessary qualifying information about a technical concept or model. The XML Namespace tModel provides a mechanism to associate a namespace with a UDDI entity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6','Administrator','admin','jUDDI.org','uddi-org:xml:localName','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlLocalName',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','A category system used to indicate XML local names');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','The XML Local Name tModel provides a mechanism to indicate the name attribute for the uddi:businessService.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E','Administrator','admin','jUDDI.org','uddi-org:wsdl:portTypeReference','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#portTypeReference',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','A category system used to reference a wsdl:portType tModel');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','The WSDL portType Reference category system provides a mechanism to indicate that a UDDI entity has a relationship with a certain wsdl:portType tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E','Administrator','admin','jUDDI.org','uddi-org:protocol:soap','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#soap',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','A tModel that represents the SOAP 1.1 protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','The SOAP Protocol tModel can be used to indicate that a Web service supports the SOAP 1.1 protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794','Administrator','admin','jUDDI.org','uddi-org:protocol:http','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#http',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','A tModel that represents the HTTP protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','The HTTP Protocol tModel can be used to indicate that a Web service supports the HTTP protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:protocol','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#protocol',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','Category system used to describe the protocol supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','The Protocol Categorization tModel provides a mechanism to capture this protocol information in the UDDI binding tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:transport','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#transport',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','Category system used to describe the transport supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','The Transport Categorization tModel provides a mechanism to capture transport information in the UDDI binding tModel which allows a user to search for bindings that implement a specific transport protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212','Administrator','admin','jUDDI.org','uddi-org:wsdl:address','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#Address',CURRENT TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','A tModel used to indicate the WSDL address option.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','The WSDL Address tModel provides A mechanism to indicate that the endpoint address should be obtained from a WSDL document.');
+
+
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/derby/insert_publishers.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/derby/insert_publishers.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/derby/insert_publishers.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,5 @@
+USE juddi;
+
+-- *** SAMPLE PUBLISHER ***
+-- INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN,MAX_BUSINESSES,MAX_SERVICES_PER_BUSINESS,MAX_BINDINGS_PER_SERVICE,MAX_TMODELS)
+-- VALUES ('jdoe','John Doe','john.doe at apache.org','true','true',25,20,10,100);
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/firebird/create_database.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/firebird/create_database.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/firebird/create_database.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,662 @@
+SET SQL DIALECT 3;
+
+SET NAMES NONE;
+
+/******************************************************************************/
+/**** Tables ****/
+/******************************************************************************/
+
+CREATE TABLE ADDRESS (
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INTEGER NOT NULL,
+ ADDRESS_ID INTEGER NOT NULL,
+ USE_TYPE VARCHAR(255),
+ SORT_CODE VARCHAR(10),
+ TMODEL_KEY VARCHAR(41)
+);
+
+
+CREATE TABLE ADDRESS_LINE (
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INTEGER NOT NULL,
+ ADDRESS_ID INTEGER NOT NULL,
+ ADDRESS_LINE_ID INTEGER NOT NULL,
+ LINE VARCHAR(80) NOT NULL,
+ KEY_NAME VARCHAR(255),
+ KEY_VALUE VARCHAR(255)
+);
+
+
+CREATE TABLE AUTH_TOKEN (
+ AUTH_TOKEN VARCHAR(51) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ CREATED TIMESTAMP NOT NULL,
+ LAST_USED TIMESTAMP NOT NULL,
+ NUMBER_OF_USES INTEGER NOT NULL,
+ TOKEN_STATE INTEGER NOT NULL
+);
+
+
+CREATE TABLE BINDING_CATEGORY (
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INTEGER NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41),
+ KEY_NAME VARCHAR(255),
+ KEY_VALUE VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE BINDING_DESCR (
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ BINDING_DESCR_ID INTEGER NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE BINDING_TEMPLATE (
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ ACCESS_POINT_TYPE VARCHAR(20),
+ ACCESS_POINT_URL VARCHAR(255),
+ HOSTING_REDIRECTOR VARCHAR(255),
+ LAST_UPDATE TIMESTAMP NOT NULL
+);
+
+
+CREATE TABLE BUSINESS_CATEGORY (
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INTEGER NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41),
+ KEY_NAME VARCHAR(255),
+ KEY_VALUE VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE BUSINESS_DESCR (
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_DESCR_ID INTEGER NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE BUSINESS_ENTITY (
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20),
+ OPERATOR VARCHAR(255) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL
+);
+
+
+CREATE TABLE BUSINESS_IDENTIFIER (
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INTEGER NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41),
+ KEY_NAME VARCHAR(255),
+ KEY_VALUE VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE BUSINESS_NAME (
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_NAME_ID INTEGER NOT NULL,
+ LANG_CODE VARCHAR(5),
+ NAME VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE BUSINESS_SERVICE (
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL
+);
+
+
+CREATE TABLE CONTACT (
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INTEGER NOT NULL,
+ USE_TYPE VARCHAR(255),
+ PERSON_NAME VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE CONTACT_DESCR (
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INTEGER NOT NULL,
+ CONTACT_DESCR_ID INTEGER NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE DISCOVERY_URL (
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ DISCOVERY_URL_ID INTEGER NOT NULL,
+ USE_TYPE VARCHAR(255) NOT NULL,
+ URL VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE EMAIL (
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INTEGER NOT NULL,
+ EMAIL_ID INTEGER NOT NULL,
+ USE_TYPE VARCHAR(255),
+ EMAIL_ADDRESS VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE INSTANCE_DETAILS_DESCR (
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INTEGER NOT NULL,
+ INSTANCE_DETAILS_DESCR_ID INTEGER NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE INSTANCE_DETAILS_DOC_DESCR (
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INTEGER NOT NULL,
+ INSTANCE_DETAILS_DOC_DESCR_ID INTEGER NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE PHONE (
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INTEGER NOT NULL,
+ PHONE_ID INTEGER NOT NULL,
+ USE_TYPE VARCHAR(255),
+ PHONE_NUMBER VARCHAR(50) NOT NULL
+);
+
+
+CREATE TABLE PUBLISHER (
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ EMAIL_ADDRESS VARCHAR(255),
+ IS_ADMIN VARCHAR(5),
+ IS_ENABLED VARCHAR(5),
+ MAX_BUSINESSES INTEGER NULL,
+ MAX_SERVICES_PER_BUSINESS INTEGER NULL,
+ MAX_BINDINGS_PER_SERVICE INTEGER NULL,
+ MAX_TMODELS INTEGER NULL
+);
+
+
+CREATE TABLE PUBLISHER_ASSERTION (
+ FROM_KEY VARCHAR(41) NOT NULL,
+ TO_KEY VARCHAR(41) NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ KEY_NAME VARCHAR(255) NOT NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ FROM_CHECK VARCHAR(5) NOT NULL,
+ TO_CHECK VARCHAR(5) NOT NULL
+);
+
+
+CREATE TABLE SERVICE_CATEGORY (
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INTEGER NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41),
+ KEY_NAME VARCHAR(255),
+ KEY_VALUE VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE SERVICE_DESCR (
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_DESCR_ID INTEGER NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE SERVICE_NAME (
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_NAME_ID INTEGER NOT NULL,
+ LANG_CODE VARCHAR(5),
+ NAME VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE TMODEL (
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20),
+ OPERATOR VARCHAR(255) NOT NULL,
+ NAME VARCHAR(255) NOT NULL,
+ OVERVIEW_URL VARCHAR(255),
+ DELETED VARCHAR(5),
+ LAST_UPDATE TIMESTAMP NOT NULL
+);
+
+
+CREATE TABLE TMODEL_CATEGORY (
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INTEGER NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255),
+ KEY_NAME VARCHAR(255),
+ KEY_VALUE VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE TMODEL_DESCR (
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DESCR_ID INTEGER NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE TMODEL_DOC_DESCR (
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DOC_DESCR_ID INTEGER NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE TMODEL_IDENTIFIER (
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INTEGER NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255),
+ KEY_NAME VARCHAR(255),
+ KEY_VALUE VARCHAR(255) NOT NULL
+);
+
+
+CREATE TABLE TMODEL_INSTANCE_INFO (
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INTEGER NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ OVERVIEW_URL VARCHAR(255),
+ INSTANCE_PARMS VARCHAR(255)
+);
+
+
+CREATE TABLE TMODEL_INSTANCE_INFO_DESCR (
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INTEGER NOT NULL,
+ TMODEL_INSTANCE_INFO_DESCR_ID INTEGER NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL
+);
+
+/******************************************************************************/
+/**** Primary Keys ****/
+/******************************************************************************/
+
+ALTER TABLE ADDRESS ADD PRIMARY KEY (BUSINESS_KEY, CONTACT_ID, ADDRESS_ID);
+ALTER TABLE ADDRESS_LINE ADD PRIMARY KEY (BUSINESS_KEY, CONTACT_ID, ADDRESS_ID, ADDRESS_LINE_ID);
+ALTER TABLE AUTH_TOKEN ADD PRIMARY KEY (AUTH_TOKEN);
+ALTER TABLE BINDING_CATEGORY ADD PRIMARY KEY (BINDING_KEY, CATEGORY_ID);
+ALTER TABLE BINDING_DESCR ADD PRIMARY KEY (BINDING_KEY, BINDING_DESCR_ID);
+ALTER TABLE BINDING_TEMPLATE ADD PRIMARY KEY (BINDING_KEY);
+ALTER TABLE BUSINESS_CATEGORY ADD PRIMARY KEY (BUSINESS_KEY, CATEGORY_ID);
+ALTER TABLE BUSINESS_DESCR ADD PRIMARY KEY (BUSINESS_KEY, BUSINESS_DESCR_ID);
+ALTER TABLE BUSINESS_ENTITY ADD PRIMARY KEY (BUSINESS_KEY);
+ALTER TABLE BUSINESS_IDENTIFIER ADD PRIMARY KEY (BUSINESS_KEY, IDENTIFIER_ID);
+ALTER TABLE BUSINESS_NAME ADD PRIMARY KEY (BUSINESS_KEY, BUSINESS_NAME_ID);
+ALTER TABLE BUSINESS_SERVICE ADD PRIMARY KEY (SERVICE_KEY);
+ALTER TABLE CONTACT ADD PRIMARY KEY (BUSINESS_KEY, CONTACT_ID);
+ALTER TABLE CONTACT_DESCR ADD PRIMARY KEY (BUSINESS_KEY, CONTACT_ID, CONTACT_DESCR_ID);
+ALTER TABLE DISCOVERY_URL ADD PRIMARY KEY (BUSINESS_KEY, DISCOVERY_URL_ID);
+ALTER TABLE EMAIL ADD PRIMARY KEY (BUSINESS_KEY, CONTACT_ID, EMAIL_ID);
+ALTER TABLE INSTANCE_DETAILS_DESCR ADD PRIMARY KEY (BINDING_KEY, TMODEL_INSTANCE_INFO_ID, INSTANCE_DETAILS_DESCR_ID);
+ALTER TABLE INSTANCE_DETAILS_DOC_DESCR ADD PRIMARY KEY (BINDING_KEY, TMODEL_INSTANCE_INFO_ID, INSTANCE_DETAILS_DOC_DESCR_ID);
+ALTER TABLE PHONE ADD PRIMARY KEY (BUSINESS_KEY, CONTACT_ID, PHONE_ID);
+ALTER TABLE PUBLISHER ADD PRIMARY KEY (PUBLISHER_ID);
+ALTER TABLE SERVICE_CATEGORY ADD PRIMARY KEY (SERVICE_KEY, CATEGORY_ID);
+ALTER TABLE SERVICE_DESCR ADD PRIMARY KEY (SERVICE_KEY, SERVICE_DESCR_ID);
+ALTER TABLE SERVICE_NAME ADD PRIMARY KEY (SERVICE_KEY, SERVICE_NAME_ID);
+ALTER TABLE TMODEL ADD PRIMARY KEY (TMODEL_KEY);
+ALTER TABLE TMODEL_CATEGORY ADD PRIMARY KEY (TMODEL_KEY, CATEGORY_ID);
+ALTER TABLE TMODEL_DESCR ADD PRIMARY KEY (TMODEL_KEY, TMODEL_DESCR_ID);
+ALTER TABLE TMODEL_DOC_DESCR ADD PRIMARY KEY (TMODEL_KEY, TMODEL_DOC_DESCR_ID);
+ALTER TABLE TMODEL_IDENTIFIER ADD PRIMARY KEY (TMODEL_KEY, IDENTIFIER_ID);
+ALTER TABLE TMODEL_INSTANCE_INFO ADD PRIMARY KEY (BINDING_KEY, TMODEL_INSTANCE_INFO_ID);
+ALTER TABLE TMODEL_INSTANCE_INFO_DESCR ADD PRIMARY KEY (BINDING_KEY, TMODEL_INSTANCE_INFO_ID, TMODEL_INSTANCE_INFO_DESCR_ID);
+
+/******************************************************************************/
+/**** TModels ****/
+/******************************************************************************/
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','Administrator','admin','jUDDI.org','uddi-org:types','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UDDItypes',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','UDDI Type Taxonomy');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','Taxonomy used to categorize Service Descriptions.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384','Administrator','admin','jUDDI.org','unspsc-org:unspsc:3-1','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC31',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','Product Taxonomy: UNSPSC (Version 3.1)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','This tModel defines the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634','Administrator','admin','jUDDI.org','unspsc-org:unspsc','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','Product Taxonomy: UNSPSC (Version 7.3)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','This tModel defines Version 7.3 of the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','Checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2','Administrator','admin','jUDDI.org','ntis-gov:naics:1997','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','Business Taxonomy: NAICS(1997 Release)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','This tModel defines the NAICS industry taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88','Administrator','admin','jUDDI.org','uddi-org:iso-ch:3166-1999','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO3166',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','ISO 3166-1:1997 and 3166-2:1998. Codes for names of countries and their subdivisions. Part 1: Country codes. Part 2:Country subdivision codes. Update newsletters include ISO 3166-1 V-1 (1998-02-05), V-2 (1999-10-01), ISO 3166-2 I-1 (1998)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','Taxonomy used to categorize entries by geographic location.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4','Administrator','admin','jUDDI.org','uddi-org:general_keywords','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#GenKW',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','Special taxonomy consisting of namespace identifiers and the keywords associated with the namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','This tModel defines an unidentified taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9','Administrator','admin','jUDDI.org','uddi-org:owningBusiness','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#owningBusiness',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','A pointer to a businessEntity that owns the tagged data.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','This tModel indicates the businessEntity that published or owns the tagged tModel. Used with tModels to establish an "owned" relationship with a registered businessEntity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03','Administrator','admin','jUDDI.org','uddi-org:relationships','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Relationships',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','Starter set classifications of businessEntity relationships');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','This tModel is used to describe business relationships. Used in the publisher assertion messages.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','relationship');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55','Administrator','admin','jUDDI.org','uddi-org:operators','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Operators',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','Taxonomy for categorizing the businessEntity of an operator of a registry.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','This checked value set is used to identify UDDI operators.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E','Administrator','admin','jUDDI.org','uddi-org:isReplacedBy','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#IsReplacedBy',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','An identifier system used to point (using UDDI keys) to the tModel (or businessEntity) that is the logical replacement for the one in which isReplacedBy is used');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','This is a checked value set.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823','Administrator','admin','jUDDI.org','dnb-com:D-U-N-S','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#D-U-N-S',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','Dun&Bradstreet D-U-N-S® Number');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','This tModel is used for the Dun&Bradstreet D-U-N-S® Number identifier.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039','Administrator','admin','jUDDI.org','thomasregister-com:supplierID','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Thomas',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','Thomas Registry Suppliers');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','This tModel is used for the Thomas Register supplier identifier codes.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457','Administrator','admin','jUDDI.org','uddi-org:wsdl:types','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#wsdlTypes',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','WSDL Type Category System');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','The WSDL Entity Type tModel uses a number of UDDI entities to represent the various entities within a WSDL document.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824','Administrator','admin','jUDDI.org','uddi-org:xml:namespace','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlNamespace',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A category system used to indicate namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A namespace provides necessary qualifying information about a technical concept or model. The XML Namespace tModel provides a mechanism to associate a namespace with a UDDI entity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6','Administrator','admin','jUDDI.org','uddi-org:xml:localName','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlLocalName',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','A category system used to indicate XML local names');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','The XML Local Name tModel provides a mechanism to indicate the name attribute for the uddi:businessService.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E','Administrator','admin','jUDDI.org','uddi-org:wsdl:portTypeReference','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#portTypeReference',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','A category system used to reference a wsdl:portType tModel');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','The WSDL portType Reference category system provides a mechanism to indicate that a UDDI entity has a relationship with a certain wsdl:portType tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E','Administrator','admin','jUDDI.org','uddi-org:protocol:soap','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#soap',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','A tModel that represents the SOAP 1.1 protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','The SOAP Protocol tModel can be used to indicate that a Web service supports the SOAP 1.1 protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794','Administrator','admin','jUDDI.org','uddi-org:protocol:http','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#http',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','A tModel that represents the HTTP protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','The HTTP Protocol tModel can be used to indicate that a Web service supports the HTTP protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:protocol','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#protocol',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','Category system used to describe the protocol supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','The Protocol Categorization tModel provides a mechanism to capture this protocol information in the UDDI binding tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:transport','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#transport',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','Category system used to describe the transport supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','The Transport Categorization tModel provides a mechanism to capture transport information in the UDDI binding tModel which allows a user to search for bindings that implement a specific transport protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212','Administrator','admin','jUDDI.org','uddi-org:wsdl:address','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#Address',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','A tModel used to indicate the WSDL address option.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','The WSDL Address tModel provides A mechanism to indicate that the endpoint address should be obtained from a WSDL document.');
+
+
+COMMIT WORK;
+
+/******************************************************************************/
+/**** Foreign Keys ****/
+/******************************************************************************/
+
+ALTER TABLE ADDRESS ADD FOREIGN KEY (BUSINESS_KEY, CONTACT_ID) REFERENCES CONTACT (BUSINESS_KEY, CONTACT_ID);
+ALTER TABLE ADDRESS_LINE ADD FOREIGN KEY (BUSINESS_KEY, CONTACT_ID, ADDRESS_ID) REFERENCES ADDRESS (BUSINESS_KEY, CONTACT_ID, ADDRESS_ID);
+ALTER TABLE BINDING_CATEGORY ADD FOREIGN KEY (BINDING_KEY) REFERENCES BINDING_TEMPLATE (BINDING_KEY);
+ALTER TABLE BINDING_DESCR ADD FOREIGN KEY (BINDING_KEY) REFERENCES BINDING_TEMPLATE (BINDING_KEY);
+ALTER TABLE BINDING_TEMPLATE ADD FOREIGN KEY (SERVICE_KEY) REFERENCES BUSINESS_SERVICE (SERVICE_KEY);
+ALTER TABLE BUSINESS_CATEGORY ADD FOREIGN KEY (BUSINESS_KEY) REFERENCES BUSINESS_ENTITY (BUSINESS_KEY);
+ALTER TABLE BUSINESS_DESCR ADD FOREIGN KEY (BUSINESS_KEY) REFERENCES BUSINESS_ENTITY (BUSINESS_KEY);
+ALTER TABLE BUSINESS_NAME ADD FOREIGN KEY (BUSINESS_KEY) REFERENCES BUSINESS_ENTITY (BUSINESS_KEY);
+ALTER TABLE BUSINESS_SERVICE ADD FOREIGN KEY (BUSINESS_KEY) REFERENCES BUSINESS_ENTITY (BUSINESS_KEY);
+ALTER TABLE CONTACT ADD FOREIGN KEY (BUSINESS_KEY) REFERENCES BUSINESS_ENTITY (BUSINESS_KEY);
+ALTER TABLE CONTACT_DESCR ADD FOREIGN KEY (BUSINESS_KEY, CONTACT_ID) REFERENCES CONTACT (BUSINESS_KEY, CONTACT_ID);
+ALTER TABLE DISCOVERY_URL ADD FOREIGN KEY (BUSINESS_KEY) REFERENCES BUSINESS_ENTITY (BUSINESS_KEY);
+ALTER TABLE EMAIL ADD FOREIGN KEY (BUSINESS_KEY, CONTACT_ID) REFERENCES CONTACT (BUSINESS_KEY, CONTACT_ID);
+ALTER TABLE INSTANCE_DETAILS_DESCR ADD FOREIGN KEY (BINDING_KEY, TMODEL_INSTANCE_INFO_ID) REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY, TMODEL_INSTANCE_INFO_ID);
+ALTER TABLE INSTANCE_DETAILS_DOC_DESCR ADD FOREIGN KEY (BINDING_KEY, TMODEL_INSTANCE_INFO_ID) REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY, TMODEL_INSTANCE_INFO_ID);
+ALTER TABLE PHONE ADD FOREIGN KEY (BUSINESS_KEY, CONTACT_ID) REFERENCES CONTACT (BUSINESS_KEY, CONTACT_ID);
+ALTER TABLE PUBLISHER_ASSERTION ADD FOREIGN KEY (FROM_KEY) REFERENCES BUSINESS_ENTITY (BUSINESS_KEY);
+ALTER TABLE PUBLISHER_ASSERTION ADD FOREIGN KEY (TO_KEY) REFERENCES BUSINESS_ENTITY (BUSINESS_KEY);
+ALTER TABLE SERVICE_CATEGORY ADD FOREIGN KEY (SERVICE_KEY) REFERENCES BUSINESS_SERVICE (SERVICE_KEY);
+ALTER TABLE SERVICE_DESCR ADD FOREIGN KEY (SERVICE_KEY) REFERENCES BUSINESS_SERVICE (SERVICE_KEY);
+ALTER TABLE SERVICE_NAME ADD FOREIGN KEY (SERVICE_KEY) REFERENCES BUSINESS_SERVICE (SERVICE_KEY);
+ALTER TABLE TMODEL_CATEGORY ADD FOREIGN KEY (TMODEL_KEY) REFERENCES TMODEL (TMODEL_KEY);
+ALTER TABLE TMODEL_DESCR ADD FOREIGN KEY (TMODEL_KEY) REFERENCES TMODEL (TMODEL_KEY);
+ALTER TABLE TMODEL_DOC_DESCR ADD FOREIGN KEY (TMODEL_KEY) REFERENCES TMODEL (TMODEL_KEY);
+ALTER TABLE TMODEL_IDENTIFIER ADD FOREIGN KEY (TMODEL_KEY) REFERENCES TMODEL (TMODEL_KEY);
+ALTER TABLE TMODEL_INSTANCE_INFO ADD FOREIGN KEY (BINDING_KEY) REFERENCES BINDING_TEMPLATE (BINDING_KEY);
+ALTER TABLE TMODEL_INSTANCE_INFO_DESCR ADD FOREIGN KEY (BINDING_KEY, TMODEL_INSTANCE_INFO_ID) REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY, TMODEL_INSTANCE_INFO_ID);
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/firebird/insert_publishers.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/firebird/insert_publishers.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/firebird/insert_publishers.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,3 @@
+-- *** SAMPLE PUBLISHER ***
+-- INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN,MAX_BUSINESSES,MAX_SERVICES_PER_BUSINESS,MAX_BINDINGS_PER_SERVICE,MAX_TMODELS)
+-- VALUES ('jdoe','John Doe','john.doe at apache.org','true','true',25,20,10,100);
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/hsqldb/create_database.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/hsqldb/create_database.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/hsqldb/create_database.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,703 @@
+-- DROP TABLE BUSINESS_DESCR IF EXISTS;
+-- DROP TABLE BUSINESS_CATEGORY IF EXISTS;
+-- DROP TABLE BUSINESS_IDENTIFIER IF EXISTS;
+-- DROP TABLE BUSINESS_NAME IF EXISTS;
+-- DROP TABLE DISCOVERY_URL IF EXISTS;
+-- DROP TABLE ADDRESS_LINE IF EXISTS;
+-- DROP TABLE ADDRESS IF EXISTS;
+-- DROP TABLE PHONE IF EXISTS;
+-- DROP TABLE EMAIL IF EXISTS;
+-- DROP TABLE CONTACT_DESCR IF EXISTS;
+-- DROP TABLE CONTACT IF EXISTS;
+-- DROP TABLE SERVICE_DESCR IF EXISTS;
+-- DROP TABLE SERVICE_CATEGORY IF EXISTS;
+-- DROP TABLE SERVICE_NAME IF EXISTS;
+-- DROP TABLE BINDING_DESCR IF EXISTS;
+-- DROP TABLE BINDING_CATEGORY IF EXISTS;
+-- DROP TABLE INSTANCE_DETAILS_DESCR IF EXISTS;
+-- DROP TABLE INSTANCE_DETAILS_DOC_DESCR IF EXISTS;
+-- DROP TABLE TMODEL_CATEGORY IF EXISTS;
+-- DROP TABLE TMODEL_DESCR IF EXISTS;
+-- DROP TABLE TMODEL_DOC_DESCR IF EXISTS;
+-- DROP TABLE TMODEL_IDENTIFIER IF EXISTS;
+-- DROP TABLE TMODEL_INSTANCE_INFO_DESCR IF EXISTS;
+-- DROP TABLE TMODEL_INSTANCE_INFO IF EXISTS;
+-- DROP TABLE PUBLISHER_ASSERTION IF EXISTS;
+-- DROP TABLE TMODEL IF EXISTS;
+-- DROP TABLE BINDING_TEMPLATE IF EXISTS;
+-- DROP TABLE BUSINESS_SERVICE IF EXISTS;
+-- DROP TABLE BUSINESS_ENTITY IF EXISTS;
+-- DROP TABLE PUBLISHER IF EXISTS;
+-- DROP TABLE AUTH_TOKEN IF EXISTS;
+
+CREATE TABLE BUSINESS_ENTITY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NULL,
+ OPERATOR VARCHAR(255) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_CATEGORY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CATEGORY_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_IDENTIFIER
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_NAME
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_NAME_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE CONTACT
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ PERSON_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE CONTACT_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ CONTACT_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,CONTACT_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE ADDRESS
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ SORT_CODE VARCHAR(10) NULL,
+ TMODEL_KEY VARCHAR(41) NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE ADDRESS_LINE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ ADDRESS_LINE_ID INT NOT NULL,
+ LINE VARCHAR(80) NOT NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID,ADDRESS_LINE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+ REFERENCES ADDRESS (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+);
+
+CREATE TABLE EMAIL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ EMAIL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ EMAIL_ADDRESS VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,EMAIL_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE PHONE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ PHONE_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ PHONE_NUMBER VARCHAR(50) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,PHONE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE DISCOVERY_URL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ DISCOVERY_URL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NOT NULL,
+ URL VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,DISCOVERY_URL_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_SERVICE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (SERVICE_KEY),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE SERVICE_DESCR
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_DESCR_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE SERVICE_CATEGORY
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,CATEGORY_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE SERVICE_NAME
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_NAME_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE BINDING_TEMPLATE
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ ACCESS_POINT_TYPE VARCHAR(20) NULL,
+ ACCESS_POINT_URL VARCHAR(255) NULL,
+ HOSTING_REDIRECTOR VARCHAR(255) NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (BINDING_KEY),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE BINDING_CATEGORY
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,CATEGORY_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE BINDING_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ BINDING_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,BINDING_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE TMODEL_INSTANCE_INFO
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) NULL,
+ INSTANCE_PARMS VARCHAR(255) NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE TMODEL_INSTANCE_INFO_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_INSTANCE_INFO_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,TMODEL_INSTANCE_INFO_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE INSTANCE_DETAILS_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE INSTANCE_DETAILS_DOC_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DOC_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE TMODEL
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NULL,
+ OPERATOR VARCHAR(255) NOT NULL,
+ NAME VARCHAR(255) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) NULL,
+ DELETED VARCHAR(5) NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_CATEGORY
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,CATEGORY_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_IDENTIFIER
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_DOC_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DOC_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE PUBLISHER_ASSERTION
+(
+ FROM_KEY VARCHAR(41) NOT NULL,
+ TO_KEY VARCHAR(41) NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ KEY_NAME VARCHAR(255) NOT NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ FROM_CHECK VARCHAR(5) NOT NULL,
+ TO_CHECK VARCHAR(5) NOT NULL,
+ FOREIGN KEY (FROM_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY),
+ FOREIGN KEY (TO_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE PUBLISHER
+(
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ EMAIL_ADDRESS VARCHAR(255) NULL,
+ IS_ADMIN VARCHAR(5) NULL,
+ IS_ENABLED VARCHAR(5) NULL,
+ MAX_BUSINESSES INT NULL,
+ MAX_SERVICES_PER_BUSINESS INT NULL,
+ MAX_BINDINGS_PER_SERVICE INT NULL,
+ MAX_TMODELS INT NULL,
+ PRIMARY KEY (PUBLISHER_ID)
+);
+
+CREATE TABLE AUTH_TOKEN
+(
+ AUTH_TOKEN VARCHAR(51) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ CREATED TIMESTAMP NOT NULL,
+ LAST_USED TIMESTAMP NOT NULL,
+ NUMBER_OF_USES INT NOT NULL,
+ TOKEN_STATE INT NOT NULL,
+ PRIMARY KEY (AUTH_TOKEN)
+);
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','Administrator','admin','jUDDI.org','uddi-org:types','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UDDItypes',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','UDDI Type Taxonomy');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','Taxonomy used to categorize Service Descriptions.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384','Administrator','admin','jUDDI.org','unspsc-org:unspsc:3-1','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC31',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','Product Taxonomy: UNSPSC (Version 3.1)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','This tModel defines the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634','Administrator','admin','jUDDI.org','unspsc-org:unspsc','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','Product Taxonomy: UNSPSC (Version 7.3)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','This tModel defines Version 7.3 of the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','Checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2','Administrator','admin','jUDDI.org','ntis-gov:naics:1997','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','Business Taxonomy: NAICS(1997 Release)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','This tModel defines the NAICS industry taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88','Administrator','admin','jUDDI.org','uddi-org:iso-ch:3166-1999','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO3166',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','ISO 3166-1:1997 and 3166-2:1998. Codes for names of countries and their subdivisions. Part 1: Country codes. Part 2:Country subdivision codes. Update newsletters include ISO 3166-1 V-1 (1998-02-05), V-2 (1999-10-01), ISO 3166-2 I-1 (1998)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','Taxonomy used to categorize entries by geographic location.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4','Administrator','admin','jUDDI.org','uddi-org:general_keywords','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#GenKW',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','Special taxonomy consisting of namespace identifiers and the keywords associated with the namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','This tModel defines an unidentified taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9','Administrator','admin','jUDDI.org','uddi-org:owningBusiness','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#owningBusiness',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','A pointer to a businessEntity that owns the tagged data.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','This tModel indicates the businessEntity that published or owns the tagged tModel. Used with tModels to establish an "owned" relationship with a registered businessEntity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03','Administrator','admin','jUDDI.org','uddi-org:relationships','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Relationships',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','Starter set classifications of businessEntity relationships');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','This tModel is used to describe business relationships. Used in the publisher assertion messages.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','relationship');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55','Administrator','admin','jUDDI.org','uddi-org:operators','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Operators',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','Taxonomy for categorizing the businessEntity of an operator of a registry.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','This checked value set is used to identify UDDI operators.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E','Administrator','admin','jUDDI.org','uddi-org:isReplacedBy','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#IsReplacedBy',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','An identifier system used to point (using UDDI keys) to the tModel (or businessEntity) that is the logical replacement for the one in which isReplacedBy is used');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','This is a checked value set.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823','Administrator','admin','jUDDI.org','dnb-com:D-U-N-S','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#D-U-N-S',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','Dun&Bradstreet D-U-N-S® Number');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','This tModel is used for the Dun&Bradstreet D-U-N-S® Number identifier.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039','Administrator','admin','jUDDI.org','thomasregister-com:supplierID','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Thomas',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','Thomas Registry Suppliers');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','This tModel is used for the Thomas Register supplier identifier codes.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457','Administrator','admin','jUDDI.org','uddi-org:wsdl:types','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#wsdlTypes',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','WSDL Type Category System');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','The WSDL Entity Type tModel uses a number of UDDI entities to represent the various entities within a WSDL document.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824','Administrator','admin','jUDDI.org','uddi-org:xml:namespace','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlNamespace',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A category system used to indicate namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A namespace provides necessary qualifying information about a technical concept or model. The XML Namespace tModel provides a mechanism to associate a namespace with a UDDI entity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6','Administrator','admin','jUDDI.org','uddi-org:xml:localName','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlLocalName',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','A category system used to indicate XML local names');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','The XML Local Name tModel provides a mechanism to indicate the name attribute for the uddi:businessService.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E','Administrator','admin','jUDDI.org','uddi-org:wsdl:portTypeReference','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#portTypeReference',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','A category system used to reference a wsdl:portType tModel');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','The WSDL portType Reference category system provides a mechanism to indicate that a UDDI entity has a relationship with a certain wsdl:portType tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E','Administrator','admin','jUDDI.org','uddi-org:protocol:soap','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#soap',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','A tModel that represents the SOAP 1.1 protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','The SOAP Protocol tModel can be used to indicate that a Web service supports the SOAP 1.1 protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794','Administrator','admin','jUDDI.org','uddi-org:protocol:http','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#http',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','A tModel that represents the HTTP protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','The HTTP Protocol tModel can be used to indicate that a Web service supports the HTTP protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:protocol','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#protocol',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','Category system used to describe the protocol supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','The Protocol Categorization tModel provides a mechanism to capture this protocol information in the UDDI binding tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:transport','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#transport',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','Category system used to describe the transport supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','The Transport Categorization tModel provides a mechanism to capture transport information in the UDDI binding tModel which allows a user to search for bindings that implement a specific transport protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212','Administrator','admin','jUDDI.org','uddi-org:wsdl:address','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#Address',CURDATE());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','A tModel used to indicate the WSDL address option.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','The WSDL Address tModel provides A mechanism to indicate that the endpoint address should be obtained from a WSDL document.');
+
+
+
+
+
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/hsqldb/drop_database.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/hsqldb/drop_database.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/hsqldb/drop_database.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,31 @@
+DROP TABLE BUSINESS_DESCR IF EXISTS;
+DROP TABLE BUSINESS_CATEGORY IF EXISTS;
+DROP TABLE BUSINESS_IDENTIFIER IF EXISTS;
+DROP TABLE BUSINESS_NAME IF EXISTS;
+DROP TABLE DISCOVERY_URL IF EXISTS;
+DROP TABLE ADDRESS_LINE IF EXISTS;
+DROP TABLE ADDRESS IF EXISTS;
+DROP TABLE PHONE IF EXISTS;
+DROP TABLE EMAIL IF EXISTS;
+DROP TABLE CONTACT_DESCR IF EXISTS;
+DROP TABLE CONTACT IF EXISTS;
+DROP TABLE SERVICE_DESCR IF EXISTS;
+DROP TABLE SERVICE_CATEGORY IF EXISTS;
+DROP TABLE SERVICE_NAME IF EXISTS;
+DROP TABLE BINDING_DESCR IF EXISTS;
+DROP TABLE BINDING_CATEGORY IF EXISTS;
+DROP TABLE INSTANCE_DETAILS_DESCR IF EXISTS;
+DROP TABLE INSTANCE_DETAILS_DOC_DESCR IF EXISTS;
+DROP TABLE TMODEL_CATEGORY IF EXISTS;
+DROP TABLE TMODEL_DESCR IF EXISTS;
+DROP TABLE TMODEL_DOC_DESCR IF EXISTS;
+DROP TABLE TMODEL_IDENTIFIER IF EXISTS;
+DROP TABLE TMODEL_INSTANCE_INFO_DESCR IF EXISTS;
+DROP TABLE TMODEL_INSTANCE_INFO IF EXISTS;
+DROP TABLE PUBLISHER_ASSERTION IF EXISTS;
+DROP TABLE TMODEL IF EXISTS;
+DROP TABLE BINDING_TEMPLATE IF EXISTS;
+DROP TABLE BUSINESS_SERVICE IF EXISTS;
+DROP TABLE BUSINESS_ENTITY IF EXISTS;
+DROP TABLE PUBLISHER IF EXISTS;
+DROP TABLE AUTH_TOKEN IF EXISTS;
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/hsqldb/insert_publishers.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/hsqldb/insert_publishers.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/hsqldb/insert_publishers.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,3 @@
+-- *** SAMPLE PUBLISHER ***
+INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN,MAX_BUSINESSES,MAX_SERVICES_PER_BUSINESS,MAX_BINDINGS_PER_SERVICE,MAX_TMODELS)
+VALUES ('jbossesb','JBoss ESB User','kurt.stam at jboss.org','true','true',25,20,10,100);
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/informix/create_database.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/informix/create_database.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/informix/create_database.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,706 @@
+database juddi;
+
+DROP TABLE BUSINESS_DESCR;
+DROP TABLE BUSINESS_CATEGORY;
+DROP TABLE BUSINESS_IDENTIFIER;
+DROP TABLE BUSINESS_NAME;
+DROP TABLE DISCOVERY_URL;
+DROP TABLE ADDRESS_LINE;
+DROP TABLE ADDRESS;
+DROP TABLE PHONE;
+DROP TABLE EMAIL;
+DROP TABLE CONTACT_DESCR;
+DROP TABLE CONTACT;
+DROP TABLE SERVICE_DESCR;
+DROP TABLE SERVICE_CATEGORY;
+DROP TABLE SERVICE_NAME;
+DROP TABLE BINDING_DESCR;
+DROP TABLE BINDING_CATEGORY;
+DROP TABLE INSTANCE_DETAILS_DESCR;
+DROP TABLE INSTANCE_DETAILS_DOC_DESCR;
+DROP TABLE TMODEL_CATEGORY;
+DROP TABLE TMODEL_DESCR;
+DROP TABLE TMODEL_DOC_DESCR;
+DROP TABLE TMODEL_IDENTIFIER;
+DROP TABLE TMODEL_INSTANCE_INFO_DESCR;
+DROP TABLE TMODEL_INSTANCE_INFO;
+DROP TABLE PUBLISHER_ASSERTION;
+DROP TABLE TMODEL;
+DROP TABLE BINDING_TEMPLATE;
+DROP TABLE BUSINESS_SERVICE;
+DROP TABLE BUSINESS_ENTITY;
+DROP TABLE PUBLISHER;
+DROP TABLE AUTH_TOKEN;
+
+
+CREATE TABLE BUSINESS_ENTITY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) ,
+ OPERATOR VARCHAR(255) NOT NULL,
+ LAST_UPDATE DATETIME YEAR TO FRACTION DEFAULT CURRENT NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_CATEGORY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CATEGORY_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_IDENTIFIER
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_NAME
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_NAME_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE CONTACT
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) ,
+ PERSON_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE CONTACT_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ CONTACT_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,CONTACT_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE ADDRESS
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) ,
+ SORT_CODE VARCHAR(10) ,
+ TMODEL_KEY VARCHAR(41) ,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE ADDRESS_LINE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ ADDRESS_LINE_ID INT NOT NULL,
+ LINE VARCHAR(80) NOT NULL,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) ,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID,ADDRESS_LINE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+ REFERENCES ADDRESS (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+);
+
+CREATE TABLE EMAIL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ EMAIL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) ,
+ EMAIL_ADDRESS VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,EMAIL_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE PHONE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ PHONE_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) ,
+ PHONE_NUMBER VARCHAR(50) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,PHONE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE DISCOVERY_URL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ DISCOVERY_URL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NOT NULL,
+ URL VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,DISCOVERY_URL_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_SERVICE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ LAST_UPDATE DATETIME YEAR TO FRACTION DEFAULT CURRENT NOT NULL,
+ PRIMARY KEY (SERVICE_KEY),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE SERVICE_DESCR
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_DESCR_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE SERVICE_CATEGORY
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,CATEGORY_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE SERVICE_NAME
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) ,
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_NAME_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE BINDING_TEMPLATE
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ ACCESS_POINT_TYPE VARCHAR(20) ,
+ ACCESS_POINT_URL VARCHAR(255) ,
+ HOSTING_REDIRECTOR VARCHAR(255) ,
+ LAST_UPDATE DATETIME YEAR TO FRACTION DEFAULT CURRENT NOT NULL,
+ PRIMARY KEY (BINDING_KEY),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE BINDING_CATEGORY
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41),
+ KEY_NAME VARCHAR(255),
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,CATEGORY_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE BINDING_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ BINDING_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,BINDING_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE TMODEL_INSTANCE_INFO
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) ,
+ INSTANCE_PARMS VARCHAR(255) ,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE TMODEL_INSTANCE_INFO_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_INSTANCE_INFO_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,TMODEL_INSTANCE_INFO_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE INSTANCE_DETAILS_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE INSTANCE_DETAILS_DOC_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DOC_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE TMODEL
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) ,
+ OPERATOR VARCHAR(255) NOT NULL,
+ NAME VARCHAR(255) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) ,
+ DELETED VARCHAR(5),
+ LAST_UPDATE DATETIME YEAR TO FRACTION DEFAULT CURRENT NOT NULL,
+ PRIMARY KEY (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_CATEGORY
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,CATEGORY_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_IDENTIFIER
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) ,
+ KEY_NAME VARCHAR(255) ,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_DOC_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5),
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DOC_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE PUBLISHER_ASSERTION
+(
+ FROM_KEY VARCHAR(41) NOT NULL,
+ TO_KEY VARCHAR(41) NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ KEY_NAME VARCHAR(255) NOT NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ FROM_CHECK VARCHAR(5) NOT NULL,
+ TO_CHECK VARCHAR(5) NOT NULL,
+ FOREIGN KEY (FROM_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY),
+ FOREIGN KEY (TO_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE PUBLISHER
+(
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ EMAIL_ADDRESS VARCHAR(255),
+ IS_ADMIN VARCHAR(5),
+ IS_ENABLED VARCHAR(5),
+ MAX_BUSINESSES INT NULL,
+ MAX_SERVICES_PER_BUSINESS INT NULL,
+ MAX_BINDINGS_PER_SERVICE INT NULL,
+ MAX_TMODELS INT NULL,
+ PRIMARY KEY (PUBLISHER_ID)
+);
+
+CREATE TABLE AUTH_TOKEN
+(
+ AUTH_TOKEN VARCHAR(51) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ CREATED DATETIME YEAR TO FRACTION DEFAULT CURRENT NOT NULL,
+ LAST_USED DATETIME YEAR TO FRACTION DEFAULT CURRENT NOT NULL,
+ NUMBER_OF_USES INT NOT NULL,
+ TOKEN_STATE INT NOT NULL,
+ PRIMARY KEY (AUTH_TOKEN)
+);
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','Administrator','jUDDI.org','uddi-org:types','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UDDItypes');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','UDDI Type Taxonomy');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','Taxonomy used to categorize Service Descriptions.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384','Administrator','jUDDI.org','unspsc-org:unspsc:3-1','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC31');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','Product Taxonomy: UNSPSC (Version 3.1)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','This tModel defines the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634','Administrator','jUDDI.org','unspsc-org:unspsc','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','Product Taxonomy: UNSPSC (Version 7.3)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','This tModel defines Version 7.3 of the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','Checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2','Administrator','jUDDI.org','ntis-gov:naics:1997','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','Business Taxonomy: NAICS(1997 Release)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','This tModel defines the NAICS industry taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88','Administrator','jUDDI.org','uddi-org:iso-ch:3166-1999','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO3166');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','ISO 3166-1:1997 and 3166-2:1998. Codes for names of countries and their subdivisions. Part 1: Country codes. Part 2:Country subdivision codes. Update newsletters include ISO 3166-1 V-1 (1998-02-05), V-2 (1999-10-01), ISO 3166-2 I-1 (1998)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','Taxonomy used to categorize entries by geographic location.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4','Administrator','jUDDI.org','uddi-org:general_keywords','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#GenKW');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','Special taxonomy consisting of namespace identifiers and the keywords associated with the namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','This tModel defines an unidentified taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9','Administrator','jUDDI.org','uddi-org:owningBusiness','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#owningBusiness');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','A pointer to a businessEntity that owns the tagged data.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','This tModel indicates the businessEntity that published or owns the tagged tModel. Used with tModels to establish an "owned" relationship with a registered businessEntity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03','Administrator','jUDDI.org','uddi-org:relationships','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Relationships');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','Starter set classifications of businessEntity relationships');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','This tModel is used to describe business relationships. Used in the publisher assertion messages.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','relationship');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55','Administrator','jUDDI.org','uddi-org:operators','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Operators');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','Taxonomy for categorizing the businessEntity of an operator of a registry.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','This checked value set is used to identify UDDI operators.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E','Administrator','jUDDI.org','uddi-org:isReplacedBy','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#IsReplacedBy');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','An identifier system used to point (using UDDI keys) to the tModel (or businessEntity) that is the logical replacement for the one in which isReplacedBy is used');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','This is a checked value set.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823','Administrator','jUDDI.org','dnb-com:D-U-N-S','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#D-U-N-S');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','Dun&Bradstreet D-U-N-S® Number');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','This tModel is used for the Dun&Bradstreet D-U-N-S® Number identifier.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039','Administrator','jUDDI.org','thomasregister-com:supplierID','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Thomas');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','Thomas Registry Suppliers');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','This tModel is used for the Thomas Register supplier identifier codes.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+
+
+
+
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457','Administrator','admin','jUDDI.org','uddi-org:wsdl:types','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#wsdlTypes');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','WSDL Type Category System');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','The WSDL Entity Type tModel uses a number of UDDI entities to represent the various entities within a WSDL document.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824','Administrator','admin','jUDDI.org','uddi-org:xml:namespace','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlNamespace');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A category system used to indicate namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A namespace provides necessary qualifying information about a technical concept or model. The XML Namespace tModel provides a mechanism to associate a namespace with a UDDI entity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6','Administrator','admin','jUDDI.org','uddi-org:xml:localName','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlLocalName');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','A category system used to indicate XML local names');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','The XML Local Name tModel provides a mechanism to indicate the name attribute for the uddi:businessService.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E','Administrator','admin','jUDDI.org','uddi-org:wsdl:portTypeReference','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#portTypeReference');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','A category system used to reference a wsdl:portType tModel');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','The WSDL portType Reference category system provides a mechanism to indicate that a UDDI entity has a relationship with a certain wsdl:portType tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E','Administrator','admin','jUDDI.org','uddi-org:protocol:soap','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#soap');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','A tModel that represents the SOAP 1.1 protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','The SOAP Protocol tModel can be used to indicate that a Web service supports the SOAP 1.1 protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794','Administrator','admin','jUDDI.org','uddi-org:protocol:http','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#http');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','A tModel that represents the HTTP protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','The HTTP Protocol tModel can be used to indicate that a Web service supports the HTTP protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:protocol','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#protocol');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','Category system used to describe the protocol supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','The Protocol Categorization tModel provides a mechanism to capture this protocol information in the UDDI binding tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:transport','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#transport');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','Category system used to describe the transport supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','The Transport Categorization tModel provides a mechanism to capture transport information in the UDDI binding tModel which allows a user to search for bindings that implement a specific transport protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212','Administrator','admin','jUDDI.org','uddi-org:wsdl:address','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#Address');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','A tModel used to indicate the WSDL address option.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','The WSDL Address tModel provides A mechanism to indicate that the endpoint address should be obtained from a WSDL document.');
+
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/informix/insert_publishers.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/informix/insert_publishers.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/informix/insert_publishers.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,5 @@
+database juddi;
+
+-- *** SAMPLE PUBLISHER ***
+INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN,MAX_BUSINESSES,MAX_SERVICES_PER_BUSINESS,MAX_BINDINGS_PER_SERVICE,MAX_TMODELS)
+ VALUES ('juddi','Lichun Zhu','zhu19 at uwindsor.ca','true','true',25,20,10,100);
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/jdatastore/create_database.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/jdatastore/create_database.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/jdatastore/create_database.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,697 @@
+-- DROP TABLE BUSINESS_DESCR;
+-- DROP TABLE BUSINESS_CATEGORY;
+-- DROP TABLE BUSINESS_IDENTIFIER;
+-- DROP TABLE BUSINESS_NAME;
+-- DROP TABLE DISCOVERY_URL;
+-- DROP TABLE ADDRESS_LINE;
+-- DROP TABLE ADDRESS;
+-- DROP TABLE PHONE;
+-- DROP TABLE EMAIL;
+-- DROP TABLE CONTACT_DESCR;
+-- DROP TABLE CONTACT;
+-- DROP TABLE SERVICE_DESCR;
+-- DROP TABLE SERVICE_CATEGORY;
+-- DROP TABLE SERVICE_NAME;
+-- DROP TABLE BINDING_DESCR;
+-- DROP TABLE BINDING_CATEGORY;
+-- DROP TABLE INSTANCE_DETAILS_DESCR;
+-- DROP TABLE INSTANCE_DETAILS_DOC_DESCR;
+-- DROP TABLE TMODEL_CATEGORY;
+-- DROP TABLE TMODEL_DESCR;
+-- DROP TABLE TMODEL_DOC_DESCR;
+-- DROP TABLE TMODEL_IDENTIFIER;
+-- DROP TABLE TMODEL_INSTANCE_INFO_DESCR;
+-- DROP TABLE TMODEL_INSTANCE_INFO;
+-- DROP TABLE PUBLISHER_ASSERTION;
+-- DROP TABLE TMODEL;
+-- DROP TABLE BINDING_TEMPLATE;
+-- DROP TABLE BUSINESS_SERVICE;
+-- DROP TABLE BUSINESS_ENTITY;
+-- DROP TABLE PUBLISHER;
+-- DROP TABLE AUTH_TOKEN;
+
+CREATE TABLE BUSINESS_ENTITY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NULL,
+ OPERATOR VARCHAR(255) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_CATEGORY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CATEGORY_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_IDENTIFIER
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_NAME
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_NAME_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE CONTACT
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ PERSON_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE CONTACT_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ CONTACT_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,CONTACT_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE ADDRESS
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ SORT_CODE VARCHAR(10) NULL,
+ TMODEL_KEY VARCHAR(41) NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE ADDRESS_LINE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ ADDRESS_LINE_ID INT NOT NULL,
+ LINE VARCHAR(80) NOT NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID,ADDRESS_LINE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+ REFERENCES ADDRESS (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+);
+
+CREATE TABLE EMAIL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ EMAIL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ EMAIL_ADDRESS VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,EMAIL_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE PHONE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ PHONE_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ PHONE_NUMBER VARCHAR(50) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,PHONE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE DISCOVERY_URL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ DISCOVERY_URL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NOT NULL,
+ URL VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,DISCOVERY_URL_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_SERVICE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (SERVICE_KEY),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE SERVICE_DESCR
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_DESCR_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE SERVICE_CATEGORY
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,CATEGORY_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE SERVICE_NAME
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_NAME_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE BINDING_TEMPLATE
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ ACCESS_POINT_TYPE VARCHAR(20) NULL,
+ ACCESS_POINT_URL VARCHAR(255) NULL,
+ HOSTING_REDIRECTOR VARCHAR(255) NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (BINDING_KEY),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE BINDING_CATEGORY
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,CATEGORY_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE BINDING_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ BINDING_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,BINDING_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE TMODEL_INSTANCE_INFO
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) NULL,
+ INSTANCE_PARMS VARCHAR(255) NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE TMODEL_INSTANCE_INFO_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_INSTANCE_INFO_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,TMODEL_INSTANCE_INFO_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE INSTANCE_DETAILS_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE INSTANCE_DETAILS_DOC_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DOC_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE TMODEL
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NULL,
+ OPERATOR VARCHAR(255) NOT NULL,
+ NAME VARCHAR(255) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) NULL,
+ DELETED VARCHAR(5) NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_CATEGORY
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,CATEGORY_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_IDENTIFIER
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_DOC_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DOC_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE PUBLISHER_ASSERTION
+(
+ FROM_KEY VARCHAR(41) NOT NULL,
+ TO_KEY VARCHAR(41) NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ KEY_NAME VARCHAR(255) NOT NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ FROM_CHECK VARCHAR(5) NOT NULL,
+ TO_CHECK VARCHAR(5) NOT NULL,
+ FOREIGN KEY (FROM_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY),
+ FOREIGN KEY (TO_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE PUBLISHER
+(
+PUBLISHER_ID VARCHAR(20) NOT NULL,
+PUBLISHER_NAME VARCHAR(255) NOT NULL,
+EMAIL_ADDRESS VARCHAR(255) NULL,
+IS_ADMIN VARCHAR(5) NULL,
+IS_ENABLED VARCHAR(5) NULL,
+MAX_BUSINESSES INT NULL,
+MAX_SERVICES_PER_BUSINESS INT NULL,
+MAX_BINDINGS_PER_SERVICE INT NULL,
+MAX_TMODELS INT NULL,
+PRIMARY KEY (PUBLISHER_ID)
+);
+
+CREATE TABLE AUTH_TOKEN
+(
+AUTH_TOKEN VARCHAR(51) NOT NULL,
+PUBLISHER_ID VARCHAR(20) NOT NULL,
+PUBLISHER_NAME VARCHAR(255) NOT NULL,
+CREATED TIMESTAMP NOT NULL,
+LAST_USED TIMESTAMP NOT NULL,
+NUMBER_OF_USES INT NOT NULL,
+TOKEN_STATE INT NOT NULL,
+PRIMARY KEY (AUTH_TOKEN)
+);
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','Administrator','admin','jUDDI.org','uddi-org:types','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UDDItypes',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','UDDI Type Taxonomy');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','Taxonomy used to categorize Service Descriptions.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384','Administrator','admin','jUDDI.org','unspsc-org:unspsc:3-1','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC31',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','Product Taxonomy: UNSPSC (Version 3.1)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','This tModel defines the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634','Administrator','admin','jUDDI.org','unspsc-org:unspsc','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','Product Taxonomy: UNSPSC (Version 7.3)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','This tModel defines Version 7.3 of the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','Checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2','Administrator','admin','jUDDI.org','ntis-gov:naics:1997','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','Business Taxonomy: NAICS(1997 Release)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','This tModel defines the NAICS industry taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88','Administrator','admin','jUDDI.org','uddi-org:iso-ch:3166-1999','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO3166',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','ISO 3166-1:1997 and 3166-2:1998. Codes for names of countries and their subdivisions. Part 1: Country codes. Part 2:Country subdivision codes. Update newsletters include ISO 3166-1 V-1 (1998-02-05), V-2 (1999-10-01), ISO 3166-2 I-1 (1998)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','Taxonomy used to categorize entries by geographic location.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4','Administrator','admin','jUDDI.org','uddi-org:general_keywords','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#GenKW',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','Special taxonomy consisting of namespace identifiers and the keywords associated with the namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','This tModel defines an unidentified taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9','Administrator','admin','jUDDI.org','uddi-org:owningBusiness','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#owningBusiness',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','A pointer to a businessEntity that owns the tagged data.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','This tModel indicates the businessEntity that published or owns the tagged tModel. Used with tModels to establish an "owned" relationship with a registered businessEntity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03','Administrator','admin','jUDDI.org','uddi-org:relationships','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Relationships',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','Starter set classifications of businessEntity relationships');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','This tModel is used to describe business relationships. Used in the publisher assertion messages.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','relationship');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55','Administrator','admin','jUDDI.org','uddi-org:operators','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Operators',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','Taxonomy for categorizing the businessEntity of an operator of a registry.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','This checked value set is used to identify UDDI operators.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E','Administrator','admin','jUDDI.org','uddi-org:isReplacedBy','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#IsReplacedBy',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','An identifier system used to point (using UDDI keys) to the tModel (or businessEntity) that is the logical replacement for the one in which isReplacedBy is used');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','This is a checked value set.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823','Administrator','admin','jUDDI.org','dnb-com:D-U-N-S','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#D-U-N-S',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','Dun&Bradstreet D-U-N-S� Number');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','This tModel is used for the Dun&Bradstreet D-U-N-S� Number identifier.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039','Administrator','admin','jUDDI.org','thomasregister-com:supplierID','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Thomas',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','Thomas Registry Suppliers');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','This tModel is used for the Thomas Register supplier identifier codes.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457','Administrator','admin','jUDDI.org','uddi-org:wsdl:types','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#wsdlTypes',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','WSDL Type Category System');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','The WSDL Entity Type tModel uses a number of UDDI entities to represent the various entities within a WSDL document.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824','Administrator','admin','jUDDI.org','uddi-org:xml:namespace','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlNamespace',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A category system used to indicate namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A namespace provides necessary qualifying information about a technical concept or model. The XML Namespace tModel provides a mechanism to associate a namespace with a UDDI entity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6','Administrator','admin','jUDDI.org','uddi-org:xml:localName','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlLocalName',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','A category system used to indicate XML local names');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','The XML Local Name tModel provides a mechanism to indicate the name attribute for the uddi:businessService.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E','Administrator','admin','jUDDI.org','uddi-org:wsdl:portTypeReference','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#portTypeReference',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','A category system used to reference a wsdl:portType tModel');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','The WSDL portType Reference category system provides a mechanism to indicate that a UDDI entity has a relationship with a certain wsdl:portType tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E','Administrator','admin','jUDDI.org','uddi-org:protocol:soap','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#soap',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','A tModel that represents the SOAP 1.1 protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','The SOAP Protocol tModel can be used to indicate that a Web service supports the SOAP 1.1 protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794','Administrator','admin','jUDDI.org','uddi-org:protocol:http','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#http',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','A tModel that represents the HTTP protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','The HTTP Protocol tModel can be used to indicate that a Web service supports the HTTP protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:protocol','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#protocol',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','Category system used to describe the protocol supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','The Protocol Categorization tModel provides a mechanism to capture this protocol information in the UDDI binding tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:transport','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#transport',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','Category system used to describe the transport supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','The Transport Categorization tModel provides a mechanism to capture transport information in the UDDI binding tModel which allows a user to search for bindings that implement a specific transport protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212','Administrator','admin','jUDDI.org','uddi-org:wsdl:address','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#Address',CURRENT_DATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','A tModel used to indicate the WSDL address option.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','The WSDL Address tModel provides A mechanism to indicate that the endpoint address should be obtained from a WSDL document.');
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/jdatastore/insert_publishers.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/jdatastore/insert_publishers.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/jdatastore/insert_publishers.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,3 @@
+-- *** SAMPLE PUBLISHER ***
+-- INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN,MAX_BUSINESSES,MAX_SERVICES_PER_BUSINESS,MAX_BINDINGS_PER_SERVICE,MAX_TMODELS)
+-- VALUES ('jdoe','John Doe','john.doe at apache.org','true','true',25,20,10,100);
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/mysql/README
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/mysql/README 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/mysql/README 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,94 @@
+CREATE/CONFIGURE A MYSQL DATABASE FOR jUDDI
+
+jUDDI requires the use of a relational database (RDBMS) to
+store the web services metadata it manages. This document will
+walk you through the process of setting up a MySQL database
+as the persistent storage for a jUDDI registry.
+
+This document assumes that you already have a MySQL server
+available and running. Visit the following web site to obtain
+a copy of MySQL and follow the installation instructions that
+accompany the version you're installing. Return to these
+instructions when your MySQL server is up and running.
+
+ http://dev.mysql.com/
+
+Now that you've got your MySQL server up and running the next
+step is to create the jUDDI database, user and tables. To do
+this your going to pass the "create_database.sql" script to
+the "mysql" command line tool within a command shell (for
+windows users this is the "Command Prompt" window) and use
+the "mysql" command line tool as follows:
+
+ Windows Command Prompt:
+
+ mysql < {path}\create_database.sql
+
+ Unix, Linux, Cygwin Shell:
+
+ mysql < {path}/create_database.sql
+
+Where {path} is the the directory path where the
+create_databas.sql file can be found. It's no coincidence
+that this is also the directory where the file that you
+are now reading is located.
+
+Depending on your account priviledges you may be required
+to supply a user and password when running the above
+commands this can be done using the optional --user
+and --password options like this:
+
+ mysql --user=myname --password=mysecret < create_database.sql
+
+A complete overview of the "mysql" command-line tool can
+be found in section 8.3 of the MySQL Manual which can be
+viewed online at the following URL:
+
+ http://dev.mysql.com/doc/mysql/en/index.html
+
+Now that we've got the jUDDI database and tables created
+it's time to insert some data. You'll notice there are
+two insert_xxx.sql in the mysql directory.
+
+ insert_publishers.sql
+
+The "insert_publishers" table contains rows identifying
+UDDI publisher accounts. You should edit this file and add
+a row for each person that wishes to have access to the
+UDDI publish functionality in your registry. Follow the
+example inser for a user named John Doe that's in this
+file when adding your publishers.
+
+ INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,ENABLED,ADMIN)
+ VALUES ('jdoe','John Doe','john.doe at apache.org','true','true');
+
+NOTE that while the PUBLISHER table includes several
+columns not shown above only thoses shown in the example
+insert statement are used by jUDDI.
+
+Once you've finished editing "insert_publishers.sql"
+invoke the SQL with the "mysql" command line tool as
+follows:
+
+ From Windows Command Prompt:
+
+ mysql < {path}\insert_publishers.sql
+
+ From Unix, Linux, Cygwin Shell:
+
+ mysql < {path}/insert_publishers.sql
+
+Again, depending on your MySQL installation your account
+priveledges you may need to supply the --user and --password
+options to the mysql command line tool.
+
+If everything went well your MySQL database is now created
+an account for accessing this database (via JDBC) is also
+created and the PUBLISHER and TMODEL tables have been loaded
+
+You're now ready to take the next step and configure a JDBC
+DataSource within your application server to access this MySQL
+database.
+
+Steve Viens
+sviens at apache.org
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/mysql/create_database.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/mysql/create_database.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/mysql/create_database.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,676 @@
+CREATE DATABASE juddi;
+
+GRANT ALL ON juddi.* TO juddi@"%" IDENTIFIED BY "juddi";
+GRANT ALL ON juddi.* TO juddi@"localhost" IDENTIFIED BY "juddi";
+
+USE juddi;
+
+CREATE TABLE BUSINESS_ENTITY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NULL,
+ OPERATOR VARCHAR(255) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_CATEGORY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CATEGORY_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_IDENTIFIER
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_NAME
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_NAME_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE CONTACT
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ PERSON_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE CONTACT_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ CONTACT_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,CONTACT_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE ADDRESS
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ SORT_CODE VARCHAR(10) NULL,
+ TMODEL_KEY VARCHAR(41) NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE ADDRESS_LINE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ ADDRESS_LINE_ID INT NOT NULL,
+ LINE VARCHAR(80) NOT NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID,ADDRESS_LINE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+ REFERENCES ADDRESS (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+);
+
+CREATE TABLE EMAIL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ EMAIL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ EMAIL_ADDRESS VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,EMAIL_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE PHONE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ PHONE_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ PHONE_NUMBER VARCHAR(50) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,PHONE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE DISCOVERY_URL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ DISCOVERY_URL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NOT NULL,
+ URL VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,DISCOVERY_URL_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_SERVICE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (SERVICE_KEY),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE SERVICE_DESCR
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_DESCR_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE SERVICE_CATEGORY
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,CATEGORY_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE SERVICE_NAME
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_NAME_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE BINDING_TEMPLATE
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ ACCESS_POINT_TYPE VARCHAR(20) NULL,
+ ACCESS_POINT_URL VARCHAR(255) NULL,
+ HOSTING_REDIRECTOR VARCHAR(255) NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (BINDING_KEY),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE BINDING_CATEGORY
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,CATEGORY_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE BINDING_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ BINDING_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,BINDING_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE TMODEL_INSTANCE_INFO
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) NULL,
+ INSTANCE_PARMS VARCHAR(255) NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE TMODEL_INSTANCE_INFO_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_INSTANCE_INFO_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,TMODEL_INSTANCE_INFO_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE INSTANCE_DETAILS_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE INSTANCE_DETAILS_DOC_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DOC_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE TMODEL
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NULL,
+ OPERATOR VARCHAR(255) NOT NULL,
+ NAME VARCHAR(255) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) NULL,
+ DELETED VARCHAR(5) NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_CATEGORY
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,CATEGORY_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_IDENTIFIER
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_DOC_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DOC_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE PUBLISHER_ASSERTION
+(
+ FROM_KEY VARCHAR(41) NOT NULL,
+ TO_KEY VARCHAR(41) NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ KEY_NAME VARCHAR(255) NOT NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ FROM_CHECK VARCHAR(5) NOT NULL,
+ TO_CHECK VARCHAR(5) NOT NULL,
+ FOREIGN KEY (FROM_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY),
+ FOREIGN KEY (TO_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE PUBLISHER
+(
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ EMAIL_ADDRESS VARCHAR(255) NULL,
+ IS_ADMIN VARCHAR(5) NULL,
+ IS_ENABLED VARCHAR(5) NULL,
+ MAX_BUSINESSES INT NULL,
+ MAX_SERVICES_PER_BUSINESS INT NULL,
+ MAX_BINDINGS_PER_SERVICE INT NULL,
+ MAX_TMODELS INT NULL,
+ PRIMARY KEY (PUBLISHER_ID)
+);
+
+CREATE TABLE AUTH_TOKEN
+(
+ AUTH_TOKEN VARCHAR(51) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ CREATED TIMESTAMP NOT NULL,
+ LAST_USED TIMESTAMP NOT NULL,
+ NUMBER_OF_USES INT NOT NULL,
+ TOKEN_STATE INT NOT NULL,
+ PRIMARY KEY (AUTH_TOKEN)
+);
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','Administrator','jUDDI.org','uddi-org:types','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UDDItypes',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','UDDI Type Taxonomy');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','Taxonomy used to categorize Service Descriptions.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384','Administrator','jUDDI.org','unspsc-org:unspsc:3-1','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC31',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','Product Taxonomy: UNSPSC (Version 3.1)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','This tModel defines the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634','Administrator','jUDDI.org','unspsc-org:unspsc','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','Product Taxonomy: UNSPSC (Version 7.3)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','This tModel defines Version 7.3 of the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','Checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2','Administrator','jUDDI.org','ntis-gov:naics:1997','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','Business Taxonomy: NAICS(1997 Release)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','This tModel defines the NAICS industry taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88','Administrator','jUDDI.org','uddi-org:iso-ch:3166-1999','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO3166',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','ISO 3166-1:1997 and 3166-2:1998. Codes for names of countries and their subdivisions. Part 1: Country codes. Part 2:Country subdivision codes.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','Taxonomy used to categorize entries by geographic location.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4','Administrator','jUDDI.org','uddi-org:general_keywords','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#GenKW',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','Special taxonomy consisting of namespace identifiers and the keywords associated with the namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','This tModel defines an unidentified taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9','Administrator','jUDDI.org','uddi-org:owningBusiness','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#owningBusiness',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','A pointer to a businessEntity that owns the tagged data.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','This tModel indicates the businessEntity that published or owns the tagged tModel. Used with tModels to establish an "owned" relationship with a registered businessEntity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03','Administrator','jUDDI.org','uddi-org:relationships','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Relationships',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','Starter set classifications of businessEntity relationships');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','This tModel is used to describe business relationships. Used in the publisher assertion messages.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','relationship');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55','Administrator','jUDDI.org','uddi-org:operators','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Operators',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','Taxonomy for categorizing the businessEntity of an operator of a registry.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','This checked value set is used to identify UDDI operators.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E','Administrator','jUDDI.org','uddi-org:isReplacedBy','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#IsReplacedBy',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','An identifier system used to point (using UDDI keys) to the tModel (or businessEntity) that is the logical replacement for the one in which isReplacedBy is used');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','This is a checked value set.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823','Administrator','jUDDI.org','dnb-com:D-U-N-S','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#D-U-N-S',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','Dun&Bradstreet D-U-N-S® Number');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','This tModel is used for the Dun&Bradstreet D-U-N-S® Number identifier.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039','Administrator','jUDDI.org','thomasregister-com:supplierID','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Thomas',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','Thomas Registry Suppliers');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','This tModel is used for the Thomas Register supplier identifier codes.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457','Administrator','admin','jUDDI.org','uddi-org:wsdl:types','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#wsdlTypes',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','WSDL Type Category System');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','The WSDL Entity Type tModel uses a number of UDDI entities to represent the various entities within a WSDL document.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824','Administrator','admin','jUDDI.org','uddi-org:xml:namespace','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlNamespace',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A category system used to indicate namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A namespace provides necessary qualifying information about a technical concept or model. The XML Namespace tModel provides a mechanism to associate a namespace with a UDDI entity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6','Administrator','admin','jUDDI.org','uddi-org:xml:localName','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlLocalName',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','A category system used to indicate XML local names');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','The XML Local Name tModel provides a mechanism to indicate the name attribute for the uddi:businessService.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E','Administrator','admin','jUDDI.org','uddi-org:wsdl:portTypeReference','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#portTypeReference',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','A category system used to reference a wsdl:portType tModel');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','The WSDL portType Reference category system provides a mechanism to indicate that a UDDI entity has a relationship with a certain wsdl:portType tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E','Administrator','admin','jUDDI.org','uddi-org:protocol:soap','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#soap',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','A tModel that represents the SOAP 1.1 protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','The SOAP Protocol tModel can be used to indicate that a Web service supports the SOAP 1.1 protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794','Administrator','admin','jUDDI.org','uddi-org:protocol:http','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#http',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','A tModel that represents the HTTP protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','The HTTP Protocol tModel can be used to indicate that a Web service supports the HTTP protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:protocol','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#protocol',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','Category system used to describe the protocol supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','The Protocol Categorization tModel provides a mechanism to capture this protocol information in the UDDI binding tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:transport','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#transport',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','Category system used to describe the transport supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','The Transport Categorization tModel provides a mechanism to capture transport information in the UDDI binding tModel which allows a user to search for bindings that implement a specific transport protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212','Administrator','admin','jUDDI.org','uddi-org:wsdl:address','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#Address',NULL);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','A tModel used to indicate the WSDL address option.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','The WSDL Address tModel provides A mechanism to indicate that the endpoint address should be obtained from a WSDL document.');
+
+
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/mysql/insert_publishers.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/mysql/insert_publishers.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/mysql/insert_publishers.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,6 @@
+USE juddi;
+
+-- *** JBOSSESB PUBLISHER ***
+INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN,MAX_SERVICES_PER_BUSINESS,MAX_BINDINGS_PER_SERVICE,MAX_BUSINESSES,MAX_TMODELS)
+VALUES ('jbossesb2','JBoss ESB User','jbossesb at jboss.com','true','true',25,20,10,100);
+
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/oracle/create_database.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/oracle/create_database.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/oracle/create_database.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,759 @@
+-- DROP TABLE BUSINESS_DESCR;
+-- DROP TABLE BUSINESS_CATEGORY;
+-- DROP TABLE BUSINESS_IDENTIFIER;
+-- DROP TABLE BUSINESS_NAME;
+-- DROP TABLE DISCOVERY_URL;
+-- DROP TABLE ADDRESS_LINE;
+-- DROP TABLE ADDRESS;
+-- DROP TABLE PHONE;
+-- DROP TABLE EMAIL;
+-- DROP TABLE CONTACT_DESCR;
+-- DROP TABLE CONTACT;
+-- DROP TABLE SERVICE_DESCR;
+-- DROP TABLE SERVICE_CATEGORY;
+-- DROP TABLE SERVICE_NAME;
+-- DROP TABLE BINDING_DESCR;
+-- DROP TABLE BINDING_CATEGORY;
+-- DROP TABLE INSTANCE_DETAILS_DESCR;
+-- DROP TABLE INSTANCE_DETAILS_DOC_DESCR;
+-- DROP TABLE TMODEL_CATEGORY;
+-- DROP TABLE TMODEL_DESCR;
+-- DROP TABLE TMODEL_DOC_DESCR;
+-- DROP TABLE TMODEL_IDENTIFIER;
+-- DROP TABLE TMODEL_INSTANCE_INFO_DESCR;
+-- DROP TABLE TMODEL_INSTANCE_INFO;
+-- DROP TABLE PUBLISHER_ASSERTION;
+-- DROP TABLE TMODEL;
+-- DROP TABLE BINDING_TEMPLATE;
+-- DROP TABLE BUSINESS_SERVICE;
+-- DROP TABLE BUSINESS_ENTITY;
+-- DROP TABLE PUBLISHER;
+-- DROP TABLE AUTH_TOKEN;
+
+CREATE TABLE BUSINESS_ENTITY
+(
+ BUSINESS_KEY VARCHAR2(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR2(255) NOT NULL,
+ PUBLISHER_ID VARCHAR2(20) NULL,
+ OPERATOR VARCHAR2(255) NOT NULL,
+ LAST_UPDATE DATE NOT NULL
+);
+
+ALTER TABLE BUSINESS_ENTITY ADD ( PRIMARY KEY (BUSINESS_KEY) );
+
+CREATE TABLE BUSINESS_DESCR
+(
+ BUSINESS_KEY VARCHAR2(41) NOT NULL,
+ BUSINESS_DESCR_ID NUMBER(10) NOT NULL,
+ LANG_CODE VARCHAR2(5) NULL,
+ DESCR VARCHAR2(255) NOT NULL
+);
+
+ALTER TABLE BUSINESS_DESCR ADD ( PRIMARY KEY (BUSINESS_KEY, BUSINESS_DESCR_ID) );
+
+CREATE TABLE BUSINESS_CATEGORY
+(
+ BUSINESS_KEY VARCHAR2(41) NOT NULL,
+ CATEGORY_ID NUMBER(10) NOT NULL,
+ TMODEL_KEY_REF VARCHAR2(41) NULL,
+ KEY_NAME VARCHAR2(255) NULL,
+ KEY_VALUE VARCHAR2(255) NOT NULL
+);
+
+ALTER TABLE BUSINESS_CATEGORY ADD ( PRIMARY KEY (BUSINESS_KEY, CATEGORY_ID) );
+
+CREATE TABLE BUSINESS_IDENTIFIER
+(
+ BUSINESS_KEY VARCHAR2(41) NOT NULL,
+ IDENTIFIER_ID NUMBER(10) NOT NULL,
+ TMODEL_KEY_REF VARCHAR2(41) NULL,
+ KEY_NAME VARCHAR2(255) NULL,
+ KEY_VALUE VARCHAR2(255) NOT NULL
+);
+
+ALTER TABLE BUSINESS_IDENTIFIER ADD ( PRIMARY KEY (BUSINESS_KEY, IDENTIFIER_ID) );
+
+CREATE TABLE BUSINESS_NAME
+(
+ BUSINESS_KEY VARCHAR2(41) NOT NULL,
+ BUSINESS_NAME_ID NUMBER(10) NOT NULL,
+ LANG_CODE VARCHAR2(5) NULL,
+ NAME VARCHAR2(255) NOT NULL
+);
+
+ALTER TABLE BUSINESS_NAME ADD ( PRIMARY KEY (BUSINESS_KEY, BUSINESS_NAME_ID) );
+
+CREATE TABLE CONTACT
+(
+ BUSINESS_KEY VARCHAR2(41) NOT NULL,
+ CONTACT_ID NUMBER(10) NOT NULL,
+ USE_TYPE VARCHAR2(255) NULL,
+ PERSON_NAME VARCHAR2(255) NOT NULL
+);
+
+ALTER TABLE CONTACT ADD ( PRIMARY KEY (BUSINESS_KEY, CONTACT_ID) );
+
+CREATE TABLE CONTACT_DESCR
+(
+ BUSINESS_KEY VARCHAR2(41) NOT NULL,
+ CONTACT_ID NUMBER(10) NOT NULL,
+ CONTACT_DESCR_ID NUMBER(10) NOT NULL,
+ LANG_CODE VARCHAR2(5) NULL,
+ DESCR VARCHAR2(255) NOT NULL
+);
+
+ALTER TABLE CONTACT_DESCR ADD ( PRIMARY KEY (BUSINESS_KEY, CONTACT_ID, CONTACT_DESCR_ID) );
+
+CREATE TABLE ADDRESS
+(
+ BUSINESS_KEY VARCHAR2(41) NOT NULL,
+ CONTACT_ID NUMBER(10) NOT NULL,
+ ADDRESS_ID NUMBER(10) NOT NULL,
+ USE_TYPE VARCHAR2(255) NULL,
+ SORT_CODE VARCHAR2(10) NULL,
+ TMODEL_KEY VARCHAR2(41) NULL
+);
+
+ALTER TABLE ADDRESS ADD ( PRIMARY KEY (BUSINESS_KEY, CONTACT_ID, ADDRESS_ID) );
+
+CREATE TABLE ADDRESS_LINE
+(
+ BUSINESS_KEY VARCHAR2(41) NOT NULL,
+ CONTACT_ID NUMBER(10) NOT NULL,
+ ADDRESS_ID NUMBER(10) NOT NULL,
+ ADDRESS_LINE_ID NUMBER(10) NOT NULL,
+ LINE VARCHAR2(80) NOT NULL,
+ KEY_NAME VARCHAR2(255) NULL,
+ KEY_VALUE VARCHAR2(255) NULL
+);
+
+ALTER TABLE ADDRESS_LINE ADD ( PRIMARY KEY (BUSINESS_KEY, CONTACT_ID,
+ ADDRESS_ID, ADDRESS_LINE_ID) );
+
+CREATE TABLE EMAIL
+(
+ BUSINESS_KEY VARCHAR2(41) NOT NULL,
+ CONTACT_ID NUMBER(10) NOT NULL,
+ EMAIL_ID NUMBER(10) NOT NULL,
+ USE_TYPE VARCHAR2(255) NULL,
+ EMAIL_ADDRESS VARCHAR2(255) NOT NULL
+);
+
+ALTER TABLE EMAIL ADD ( PRIMARY KEY (BUSINESS_KEY, CONTACT_ID, EMAIL_ID) );
+
+CREATE TABLE PHONE
+(
+ BUSINESS_KEY VARCHAR2(41) NOT NULL,
+ CONTACT_ID NUMBER(10) NOT NULL,
+ PHONE_ID NUMBER(10) NOT NULL,
+ USE_TYPE VARCHAR2(255) NULL,
+ PHONE_NUMBER VARCHAR2(50) NOT NULL
+);
+
+ALTER TABLE PHONE ADD ( PRIMARY KEY (BUSINESS_KEY, CONTACT_ID, PHONE_ID) );
+
+
+CREATE TABLE DISCOVERY_URL
+(
+ BUSINESS_KEY VARCHAR2(41) NOT NULL,
+ DISCOVERY_URL_ID NUMBER(10) NOT NULL,
+ USE_TYPE VARCHAR2(255) NOT NULL,
+ URL VARCHAR2(255) NOT NULL
+);
+
+ALTER TABLE DISCOVERY_URL ADD ( PRIMARY KEY (BUSINESS_KEY, DISCOVERY_URL_ID) );
+
+CREATE TABLE BUSINESS_SERVICE
+(
+ BUSINESS_KEY VARCHAR2(41) NOT NULL,
+ SERVICE_KEY VARCHAR2(41) NOT NULL,
+ LAST_UPDATE DATE NOT NULL
+);
+
+ALTER TABLE BUSINESS_SERVICE ADD ( PRIMARY KEY (SERVICE_KEY) );
+
+CREATE TABLE SERVICE_DESCR
+(
+ SERVICE_KEY VARCHAR2(41) NOT NULL,
+ SERVICE_DESCR_ID NUMBER(10) NOT NULL,
+ LANG_CODE VARCHAR2(5) NULL,
+ DESCR VARCHAR2(255) NOT NULL
+);
+
+ALTER TABLE SERVICE_DESCR ADD ( PRIMARY KEY (SERVICE_KEY, SERVICE_DESCR_ID) );
+
+CREATE TABLE SERVICE_CATEGORY
+(
+ SERVICE_KEY VARCHAR2(41) NOT NULL,
+ CATEGORY_ID NUMBER(10) NOT NULL,
+ TMODEL_KEY_REF VARCHAR2(41) NULL,
+ KEY_NAME VARCHAR2(255) NULL,
+ KEY_VALUE VARCHAR2(255) NOT NULL
+);
+
+ALTER TABLE SERVICE_CATEGORY ADD ( PRIMARY KEY (SERVICE_KEY, CATEGORY_ID) );
+
+CREATE TABLE SERVICE_NAME
+(
+ SERVICE_KEY VARCHAR2(41) NOT NULL,
+ SERVICE_NAME_ID NUMBER(10) NOT NULL,
+ LANG_CODE VARCHAR2(5) NULL,
+ NAME VARCHAR2(255) NOT NULL
+);
+
+ALTER TABLE SERVICE_NAME ADD ( PRIMARY KEY (SERVICE_KEY, SERVICE_NAME_ID) );
+
+CREATE TABLE BINDING_TEMPLATE
+(
+ SERVICE_KEY VARCHAR2(41) NOT NULL,
+ BINDING_KEY VARCHAR2(41) NOT NULL,
+ ACCESS_POINT_TYPE VARCHAR2(20) NULL,
+ ACCESS_POINT_URL VARCHAR2(255) NULL,
+ HOSTING_REDIRECTOR VARCHAR2(255) NULL,
+ LAST_UPDATE DATE NOT NULL
+);
+
+ALTER TABLE BINDING_TEMPLATE ADD ( PRIMARY KEY (BINDING_KEY) );
+
+CREATE TABLE BINDING_DESCR
+(
+ BINDING_KEY VARCHAR2(41) NOT NULL,
+ BINDING_DESCR_ID NUMBER(10) NOT NULL,
+ LANG_CODE VARCHAR2(5) NULL,
+ DESCR VARCHAR2(255) NOT NULL,
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+ALTER TABLE BINDING_DESCR ADD ( PRIMARY KEY (BINDING_KEY, BINDING_DESCR_ID) );
+
+CREATE TABLE BINDING_CATEGORY
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+ALTER TABLE BINDING_CATEGORY ADD ( PRIMARY KEY (BINDING_KEY,CATEGORY_ID) );
+
+CREATE TABLE TMODEL_INSTANCE_INFO
+(
+ BINDING_KEY VARCHAR2(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID NUMBER(10) NOT NULL,
+ TMODEL_KEY VARCHAR2(41) NOT NULL,
+ OVERVIEW_URL VARCHAR2(255) NULL,
+ INSTANCE_PARMS VARCHAR2(255) NULL
+);
+
+ALTER TABLE TMODEL_INSTANCE_INFO ADD ( PRIMARY KEY (BINDING_KEY, TMODEL_INSTANCE_INFO_ID) );
+
+CREATE TABLE TMODEL_INSTANCE_INFO_DESCR
+(
+ BINDING_KEY VARCHAR2(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID NUMBER(10) NOT NULL,
+ TMODEL_INSTANCE_INFO_DESCR_ID NUMBER(10) NOT NULL,
+ LANG_CODE VARCHAR2(5) NULL,
+ DESCR VARCHAR2(255) NOT NULL,
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY, TMODEL_INSTANCE_INFO_ID)
+);
+
+ALTER TABLE TMODEL_INSTANCE_INFO_DESCR ADD ( PRIMARY KEY (BINDING_KEY,
+ TMODEL_INSTANCE_INFO_ID, TMODEL_INSTANCE_INFO_DESCR_ID) );
+
+CREATE TABLE INSTANCE_DETAILS_DESCR
+(
+ BINDING_KEY VARCHAR2(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID NUMBER(10) NOT NULL,
+ INSTANCE_DETAILS_DESCR_ID NUMBER(10) NOT NULL,
+ LANG_CODE VARCHAR2(5) NULL,
+ DESCR VARCHAR2(255) NOT NULL
+);
+
+ALTER TABLE INSTANCE_DETAILS_DESCR ADD ( PRIMARY KEY (BINDING_KEY,
+ TMODEL_INSTANCE_INFO_ID, INSTANCE_DETAILS_DESCR_ID) );
+
+CREATE TABLE INSTANCE_DETAILS_DOC_DESCR
+(
+ BINDING_KEY VARCHAR2(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID NUMBER(10) NOT NULL,
+ INSTANCE_DETAILS_DOC_DESCR_ID NUMBER(10) NOT NULL,
+ LANG_CODE VARCHAR2(5) NULL,
+ DESCR VARCHAR2(255) NOT NULL
+);
+
+ALTER TABLE INSTANCE_DETAILS_DOC_DESCR ADD ( PRIMARY KEY (BINDING_KEY,
+ TMODEL_INSTANCE_INFO_ID, INSTANCE_DETAILS_DOC_DESCR_ID) );
+
+CREATE TABLE TMODEL
+(
+ TMODEL_KEY VARCHAR2(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR2(255) NOT NULL,
+ PUBLISHER_ID VARCHAR2(20) NULL,
+ OPERATOR VARCHAR2(255) NOT NULL,
+ NAME VARCHAR2(255) NOT NULL,
+ OVERVIEW_URL VARCHAR2(255) NULL,
+ DELETED VARCHAR2(5) NULL,
+ LAST_UPDATE DATE NOT NULL
+);
+
+ALTER TABLE TMODEL ADD ( PRIMARY KEY (TMODEL_KEY) );
+
+CREATE TABLE TMODEL_DESCR
+(
+ TMODEL_KEY VARCHAR2(41) NOT NULL,
+ TMODEL_DESCR_ID NUMBER(10) NOT NULL,
+ LANG_CODE VARCHAR2(5) NULL,
+ DESCR VARCHAR2(255) NOT NULL
+);
+
+ALTER TABLE TMODEL_DESCR ADD ( PRIMARY KEY (TMODEL_KEY, TMODEL_DESCR_ID) );
+
+CREATE TABLE TMODEL_CATEGORY
+(
+ TMODEL_KEY VARCHAR2(41) NOT NULL,
+ CATEGORY_ID NUMBER(10) NOT NULL,
+ TMODEL_KEY_REF VARCHAR2(255) NULL,
+ KEY_NAME VARCHAR2(255) NULL,
+ KEY_VALUE VARCHAR2(255) NOT NULL
+);
+
+ALTER TABLE TMODEL_CATEGORY ADD ( PRIMARY KEY (TMODEL_KEY, CATEGORY_ID) );
+
+CREATE TABLE TMODEL_IDENTIFIER
+(
+ TMODEL_KEY VARCHAR2(41) NOT NULL,
+ IDENTIFIER_ID NUMBER(10) NOT NULL,
+ TMODEL_KEY_REF VARCHAR2(255) NULL,
+ KEY_NAME VARCHAR2(255) NULL,
+ KEY_VALUE VARCHAR2(255) NOT NULL
+);
+
+ALTER TABLE TMODEL_IDENTIFIER ADD ( PRIMARY KEY (TMODEL_KEY, IDENTIFIER_ID) );
+
+CREATE TABLE TMODEL_DOC_DESCR
+(
+ TMODEL_KEY VARCHAR2(41) NOT NULL,
+ TMODEL_DOC_DESCR_ID NUMBER(10) NOT NULL,
+ LANG_CODE VARCHAR2(5) NULL,
+ DESCR VARCHAR2(255) NOT NULL
+);
+
+ALTER TABLE TMODEL_DOC_DESCR ADD ( PRIMARY KEY (TMODEL_KEY, TMODEL_DOC_DESCR_ID) );
+
+CREATE TABLE PUBLISHER_ASSERTION
+(
+ FROM_KEY VARCHAR2(41) NOT NULL,
+ TO_KEY VARCHAR2(41) NOT NULL,
+ TMODEL_KEY VARCHAR2(41) NOT NULL,
+ KEY_NAME VARCHAR2(255) NOT NULL,
+ KEY_VALUE VARCHAR2(255) NOT NULL,
+ FROM_CHECK VARCHAR2(5) NOT NULL,
+ TO_CHECK VARCHAR2(5) NOT NULL
+);
+
+CREATE TABLE PUBLISHER
+(
+ PUBLISHER_ID VARCHAR2(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR2(255) NOT NULL,
+ EMAIL_ADDRESS VARCHAR2(255) NULL,
+ IS_ADMIN VARCHAR2(5) NULL,
+ IS_ENABLED VARCHAR2(5) NULL,
+ MAX_BUSINESSES NUMBER(10) NULL,
+ MAX_SERVICES_PER_BUSINESS NUMBER(10) NULL,
+ MAX_BINDINGS_PER_SERVICE NUMBER(10) NULL,
+ MAX_TMODELS NUMBER(10) NULL
+);
+
+ALTER TABLE PUBLISHER ADD ( PRIMARY KEY (PUBLISHER_ID) );
+
+CREATE TABLE AUTH_TOKEN
+(
+ AUTH_TOKEN VARCHAR2(51) NOT NULL,
+ PUBLISHER_ID VARCHAR2(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR2(255) NOT NULL,
+ CREATED DATE NOT NULL,
+ LAST_USED DATE NOT NULL,
+ NUMBER_OF_USES NUMBER(10) NOT NULL,
+ TOKEN_STATE NUMBER(10) NOT NULL
+);
+
+ALTER TABLE AUTH_TOKEN ADD ( PRIMARY KEY (AUTH_TOKEN) );
+
+ALTER TABLE BUSINESS_DESCR ADD ( FOREIGN KEY (BUSINESS_KEY) REFERENCES BUSINESS_ENTITY);
+
+ALTER TABLE BUSINESS_CATEGORY ADD ( FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY );
+
+ALTER TABLE BUSINESS_IDENTIFIER ADD ( FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY );
+
+ALTER TABLE BUSINESS_NAME ADD ( FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY );
+
+ALTER TABLE CONTACT ADD ( FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY );
+
+ALTER TABLE CONTACT_DESCR ADD ( FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT );
+
+ALTER TABLE ADDRESS ADD ( FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT );
+
+ALTER TABLE ADDRESS_LINE ADD ( FOREIGN KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+ REFERENCES ADDRESS );
+
+ALTER TABLE EMAIL ADD ( FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT);
+
+ALTER TABLE PHONE ADD ( FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT );
+
+ALTER TABLE DISCOVERY_URL ADD ( FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY );
+
+ALTER TABLE BUSINESS_SERVICE ADD ( FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY );
+
+ALTER TABLE SERVICE_DESCR ADD ( FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE );
+
+ALTER TABLE SERVICE_CATEGORY ADD ( FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE );
+
+ALTER TABLE SERVICE_NAME ADD ( FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE );
+
+ALTER TABLE BINDING_TEMPLATE ADD ( FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE );
+
+ALTER TABLE TMODEL_INSTANCE_INFO ADD ( FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE );
+
+ALTER TABLE INSTANCE_DETAILS_DESCR ADD ( FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO );
+
+ALTER TABLE INSTANCE_DETAILS_DOC_DESCR ADD ( FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO );
+
+ALTER TABLE TMODEL_DESCR ADD ( FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL );
+
+ALTER TABLE TMODEL_CATEGORY ADD ( FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL );
+
+ALTER TABLE TMODEL_IDENTIFIER ADD ( FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL );
+
+ALTER TABLE TMODEL_DOC_DESCR ADD ( FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL );
+
+ALTER TABLE PUBLISHER_ASSERTION ADD ( FOREIGN KEY (FROM_KEY)
+ REFERENCES BUSINESS_ENTITY );
+
+ALTER TABLE PUBLISHER_ASSERTION ADD ( FOREIGN KEY (TO_KEY)
+ REFERENCES BUSINESS_ENTITY );
+
+ INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','Administrator','admin','jUDDI.org','uddi-org:types','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UDDItypes',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','UDDI Type Taxonomy');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','Taxonomy used to categorize Service Descriptions.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384','Administrator','admin','jUDDI.org','unspsc-org:unspsc:3-1','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC31',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','Product Taxonomy: UNSPSC (Version 3.1)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','This tModel defines the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634','Administrator','admin','jUDDI.org','unspsc-org:unspsc','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','Product Taxonomy: UNSPSC (Version 7.3)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','This tModel defines Version 7.3 of the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','Checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2','Administrator','admin','jUDDI.org','ntis-gov:naics:1997','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','Business Taxonomy: NAICS(1997 Release)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','This tModel defines the NAICS industry taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88','Administrator','admin','jUDDI.org','uddi-org:iso-ch:3166-1999','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO3166',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','ISO 3166-1:1997 and 3166-2:1998. Codes for names of countries and their subdivisions. Part 1: Country codes. Part 2:Country subdivision codes. Update newsletters include ISO 3166-1 V-1 (1998-02-05), V-2 (1999-10-01), ISO 3166-2 I-1 (1998)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','Taxonomy used to categorize entries by geographic location.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4','Administrator','admin','jUDDI.org','uddi-org:general_keywords','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#GenKW',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','Special taxonomy consisting of namespace identifiers and the keywords associated with the namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','This tModel defines an unidentified taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9','Administrator','admin','jUDDI.org','uddi-org:owningBusiness','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#owningBusiness',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','A pointer to a businessEntity that owns the tagged data.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','This tModel indicates the businessEntity that published or owns the tagged tModel. Used with tModels to establish an "owned" relationship with a registered businessEntity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03','Administrator','admin','jUDDI.org','uddi-org:relationships','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Relationships',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','Starter set classifications of businessEntity relationships');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','This tModel is used to describe business relationships. Used in the publisher assertion messages.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','relationship');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55','Administrator','admin','jUDDI.org','uddi-org:operators','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Operators',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','Taxonomy for categorizing the businessEntity of an operator of a registry.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','This checked value set is used to identify UDDI operators.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E','Administrator','admin','jUDDI.org','uddi-org:isReplacedBy','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#IsReplacedBy',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','An identifier system used to point (using UDDI keys) to the tModel (or businessEntity) that is the logical replacement for the one in which isReplacedBy is used');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','This is a checked value set.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823','Administrator','admin','jUDDI.org','dnb-com:D-U-N-S','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#D-U-N-S',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','Dun' || chr(38) || 'Bradstreet D-U-N-S® Number');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','This tModel is used for the Dun' || chr(38) || 'Bradstreet D-U-N-S® Number identifier.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039','Administrator','admin','jUDDI.org','thomasregister-com:supplierID','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Thomas',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','Thomas Registry Suppliers');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','This tModel is used for the Thomas Register supplier identifier codes.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+
+
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457','Administrator','admin','jUDDI.org','uddi-org:wsdl:types','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#wsdlTypes',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','WSDL Type Category System');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','The WSDL Entity Type tModel uses a number of UDDI entities to represent the various entities within a WSDL document.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824','Administrator','admin','jUDDI.org','uddi-org:xml:namespace','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlNamespace',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A category system used to indicate namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A namespace provides necessary qualifying information about a technical concept or model. The XML Namespace tModel provides a mechanism to associate a namespace with a UDDI entity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6','Administrator','admin','jUDDI.org','uddi-org:xml:localName','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlLocalName',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','A category system used to indicate XML local names');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','The XML Local Name tModel provides a mechanism to indicate the name attribute for the uddi:businessService.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E','Administrator','admin','jUDDI.org','uddi-org:wsdl:portTypeReference','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#portTypeReference',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','A category system used to reference a wsdl:portType tModel');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','The WSDL portType Reference category system provides a mechanism to indicate that a UDDI entity has a relationship with a certain wsdl:portType tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E','Administrator','admin','jUDDI.org','uddi-org:protocol:soap','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#soap',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','A tModel that represents the SOAP 1.1 protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','The SOAP Protocol tModel can be used to indicate that a Web service supports the SOAP 1.1 protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794','Administrator','admin','jUDDI.org','uddi-org:protocol:http','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#http',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','A tModel that represents the HTTP protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','The HTTP Protocol tModel can be used to indicate that a Web service supports the HTTP protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:protocol','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#protocol',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','Category system used to describe the protocol supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','The Protocol Categorization tModel provides a mechanism to capture this protocol information in the UDDI binding tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:transport','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#transport',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','Category system used to describe the transport supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','The Transport Categorization tModel provides a mechanism to capture transport information in the UDDI binding tModel which allows a user to search for bindings that implement a specific transport protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212','Administrator','admin','jUDDI.org','uddi-org:wsdl:address','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#Address',SYSDATE);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','A tModel used to indicate the WSDL address option.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','The WSDL Address tModel provides A mechanism to indicate that the endpoint address should be obtained from a WSDL document.');
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/oracle/insert_publishers.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/oracle/insert_publishers.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/oracle/insert_publishers.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,4 @@
+-- *** SAMPLE PUBLISHER ***
+-- INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN,MAX_BUSINESSES,MAX_SERVICES_PER_BUSINESS,MAX_BINDINGS_PER_SERVICE,MAX_TMODELS)
+-- VALUES ('jdoe','John Doe','john.doe at apache.org','true','true',25,20,10,100);
+
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/postgresql/create_database.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/postgresql/create_database.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/postgresql/create_database.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,702 @@
+-- DROP TABLE BUSINESS_DESCR;
+-- DROP TABLE BUSINESS_CATEGORY;
+-- DROP TABLE BUSINESS_IDENTIFIER;
+-- DROP TABLE BUSINESS_NAME;
+-- DROP TABLE DISCOVERY_URL;
+-- DROP TABLE ADDRESS_LINE;
+-- DROP TABLE ADDRESS;
+-- DROP TABLE PHONE;
+-- DROP TABLE EMAIL;
+-- DROP TABLE CONTACT_DESCR;
+-- DROP TABLE CONTACT;
+-- DROP TABLE SERVICE_DESCR;
+-- DROP TABLE SERVICE_CATEGORY;
+-- DROP TABLE SERVICE_NAME;
+-- DROP TABLE BINDING_DESCR;
+-- DROP TABLE BINDING_CATEGORY;
+-- DROP TABLE INSTANCE_DETAILS_DESCR;
+-- DROP TABLE INSTANCE_DETAILS_DOC_DESCR;
+-- DROP TABLE TMODEL_CATEGORY;
+-- DROP TABLE TMODEL_DESCR;
+-- DROP TABLE TMODEL_DOC_DESCR;
+-- DROP TABLE TMODEL_IDENTIFIER;
+-- DROP TABLE TMODEL_INSTANCE_INFO_DESCR;
+-- DROP TABLE TMODEL_INSTANCE_INFO;
+-- DROP TABLE PUBLISHER_ASSERTION;
+-- DROP TABLE TMODEL;
+-- DROP TABLE BINDING_TEMPLATE;
+-- DROP TABLE BUSINESS_SERVICE;
+-- DROP TABLE BUSINESS_ENTITY;
+-- DROP TABLE PUBLISHER;
+-- DROP TABLE AUTH_TOKEN;
+
+CREATE TABLE BUSINESS_ENTITY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NULL,
+ OPERATOR VARCHAR(255) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL DEFAULT now(),
+ CONSTRAINT PK_BUSINESS_ENTITY PRIMARY KEY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_BUS_DESCR_01 FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_BUSINESS_DESCR PRIMARY KEY (BUSINESS_KEY,BUSINESS_DESCR_ID)
+);
+
+CREATE TABLE BUSINESS_CATEGORY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_BUS_CAT_01 FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_BUSINESS_CATEGORY PRIMARY KEY (BUSINESS_KEY,CATEGORY_ID)
+);
+
+CREATE TABLE BUSINESS_IDENTIFIER
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_BUS_ID_01 FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_BUSINESS_IDENTIFIER PRIMARY KEY (BUSINESS_KEY,IDENTIFIER_ID)
+);
+
+CREATE TABLE BUSINESS_NAME
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ NAME VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_BUS_NAME_01 FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_BUSINESS_NAME PRIMARY KEY (BUSINESS_KEY,BUSINESS_NAME_ID)
+);
+
+CREATE TABLE CONTACT
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ PERSON_NAME VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_CONTACT_01 FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_CONTACT PRIMARY KEY (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE CONTACT_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ CONTACT_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_CONTACT_DESCR_01 FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_CONTACT_DESCR PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,CONTACT_DESCR_ID)
+);
+
+CREATE TABLE ADDRESS
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ SORT_CODE VARCHAR(10) NULL,
+ TMODEL_KEY VARCHAR(41) NULL,
+ CONSTRAINT FK_ADDRESS_01 FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_ADDRESS PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+);
+
+CREATE TABLE ADDRESS_LINE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ ADDRESS_LINE_ID INT NOT NULL,
+ LINE VARCHAR(80) NOT NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NULL,
+ CONSTRAINT FK_ADDR_LINE_01 FOREIGN KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+ REFERENCES ADDRESS (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_ADDRESS_LINE PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID,ADDRESS_LINE_ID)
+);
+
+CREATE TABLE EMAIL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ EMAIL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ EMAIL_ADDRESS VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_EMAIL_01 FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_EMAIL PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,EMAIL_ID)
+);
+
+CREATE TABLE PHONE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ PHONE_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ PHONE_NUMBER VARCHAR(50) NOT NULL,
+ CONSTRAINT FK_PHONE_01 FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_PHONE PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,PHONE_ID)
+);
+
+CREATE TABLE DISCOVERY_URL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ DISCOVERY_URL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NOT NULL,
+ URL VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_DISCOVERY_URL_01 FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_DISCOVERY_URL PRIMARY KEY (BUSINESS_KEY,DISCOVERY_URL_ID)
+);
+
+CREATE TABLE BUSINESS_SERVICE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL DEFAULT now(),
+ CONSTRAINT FK_BUS_SERVICE_01 FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_BUSINESS_SERVICE PRIMARY KEY (SERVICE_KEY)
+);
+
+CREATE TABLE SERVICE_DESCR
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_SERVICE_DESCR_01 FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_SERVICE_DESCR PRIMARY KEY (SERVICE_KEY,SERVICE_DESCR_ID)
+);
+
+CREATE TABLE SERVICE_CATEGORY
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_SERVICE_CATEGORY_01 FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_SERVICE_CATEGORY PRIMARY KEY (SERVICE_KEY,CATEGORY_ID)
+);
+
+CREATE TABLE SERVICE_NAME
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ NAME VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_SERVICE_NAME_01 FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_SERVICE_NAME PRIMARY KEY (SERVICE_KEY,SERVICE_NAME_ID)
+);
+
+CREATE TABLE BINDING_TEMPLATE
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ ACCESS_POINT_TYPE VARCHAR(20) NULL,
+ ACCESS_POINT_URL VARCHAR(255) NULL,
+ HOSTING_REDIRECTOR VARCHAR(255) NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL DEFAULT now(),
+ CONSTRAINT FK_BINDING_TEMPLATE_01 FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_BINDING_TEMPLATE PRIMARY KEY (BINDING_KEY)
+);
+
+CREATE TABLE BINDING_CATEGORY
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_BINDING_CATEGORY_01 FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_BINDING_CATEGORY PRIMARY KEY (BINDING_KEY,CATEGORY_ID)
+);
+
+
+CREATE TABLE BINDING_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ BINDING_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_BINDING_DESCR_01 FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_BINDING_DESCR PRIMARY KEY (BINDING_KEY,BINDING_DESCR_ID)
+);
+
+CREATE TABLE TMODEL_INSTANCE_INFO
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) NULL,
+ INSTANCE_PARMS VARCHAR(255) NULL,
+ CONSTRAINT FK_TMODEL_INSTANCE_INFO_01 FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_TMODEL_INSTANCE_INFO PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE TMODEL_INSTANCE_INFO_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_INSTANCE_INFO_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_TMODEL_INSTANCE_INFO_DESCR_01 FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_TMODEL_INSTANCE_INFO_DESCR PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,TMODEL_INSTANCE_INFO_DESCR_ID)
+);
+
+CREATE TABLE INSTANCE_DETAILS_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_INSTANCE_DETAILS_DESCR_01 FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_INSTANCE_DETAILS_DESCR PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DESCR_ID)
+);
+
+CREATE TABLE INSTANCE_DETAILS_DOC_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_INSTANCE_DETAILS_DOC_DESCR_01 FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_INSTANCE_DETAILS_DOC_DESCR PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DOC_DESCR_ID)
+);
+
+CREATE TABLE TMODEL
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NULL,
+ OPERATOR VARCHAR(255) NOT NULL,
+ NAME VARCHAR(255) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) NULL,
+ DELETED VARCHAR(5) NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL DEFAULT NOW(),
+ CONSTRAINT PK_TMODEL PRIMARY KEY (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_TMODEL_DESCR_01 FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_TMODEL_DESCR PRIMARY KEY (TMODEL_KEY,TMODEL_DESCR_ID)
+);
+
+CREATE TABLE TMODEL_CATEGORY
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_TMODEL_CATEGORY_01 FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_TMODEL_CATEGORY PRIMARY KEY (TMODEL_KEY,CATEGORY_ID)
+);
+
+CREATE TABLE TMODEL_IDENTIFIER
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_TMODEL_IDENTIFIER_01 FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_TMODEL_IDENTIFIER PRIMARY KEY (TMODEL_KEY,IDENTIFIER_ID)
+);
+
+CREATE TABLE TMODEL_DOC_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ CONSTRAINT FK_TMODEL_DOC_DESCR_01 FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+ ON UPDATE CASCADE ON DELETE CASCADE,
+ CONSTRAINT PK_TMODEL_DOC_DESCR PRIMARY KEY (TMODEL_KEY,TMODEL_DOC_DESCR_ID)
+);
+
+CREATE TABLE PUBLISHER_ASSERTION
+(
+ FROM_KEY VARCHAR(41) NOT NULL,
+ TO_KEY VARCHAR(41) NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ KEY_NAME VARCHAR(255) NOT NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ FROM_CHECK VARCHAR(5) NOT NULL,
+ TO_CHECK VARCHAR(5) NOT NULL,
+ CONSTRAINT FK_PUBLISHER_ASSERTION_01 FOREIGN KEY (FROM_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY),
+ CONSTRAINT FK_PUBLISHER_ASSERTION_02 FOREIGN KEY (TO_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY),
+ CONSTRAINT PK_PUBLISHER_ASSERTION PRIMARY KEY (FROM_KEY,TO_KEY)
+);
+
+CREATE TABLE PUBLISHER
+(
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ EMAIL_ADDRESS VARCHAR(255) NULL,
+ IS_ADMIN VARCHAR(5) NULL,
+ IS_ENABLED VARCHAR(5) NULL,
+ MAX_BUSINESSES INT NULL,
+ MAX_SERVICES_PER_BUSINESS INT NULL,
+ MAX_BINDINGS_PER_SERVICE INT NULL,
+ MAX_TMODELS INT NULL,
+ CONSTRAINT PK_PUBLISHER PRIMARY KEY (PUBLISHER_ID)
+);
+
+CREATE TABLE AUTH_TOKEN
+(
+ AUTH_TOKEN VARCHAR(51) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ CREATED TIMESTAMP NOT NULL,
+ LAST_USED TIMESTAMP NOT NULL,
+ NUMBER_OF_USES INT NOT NULL,
+ TOKEN_STATE INT NOT NULL,
+ CONSTRAINT PK_AUTH_TOKEN PRIMARY KEY (AUTH_TOKEN)
+);
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','Administrator','jUDDI.org','uddi-org:types','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UDDItypes');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','UDDI Type Taxonomy');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','Taxonomy used to categorize Service Descriptions.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384','Administrator','jUDDI.org','unspsc-org:unspsc:3-1','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC31');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','Product Taxonomy: UNSPSC (Version 3.1)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','This tModel defines the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634','Administrator','jUDDI.org','unspsc-org:unspsc','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','Product Taxonomy: UNSPSC (Version 7.3)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','This tModel defines Version 7.3 of the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','Checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2','Administrator','jUDDI.org','ntis-gov:naics:1997','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','Business Taxonomy: NAICS(1997 Release)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','This tModel defines the NAICS industry taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88','Administrator','jUDDI.org','uddi-org:iso-ch:3166-1999','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO3166');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','ISO 3166-1:1997 and 3166-2:1998. Codes for names of countries and their subdivisions. Part 1: Country codes. Part 2:Country subdivision codes. Update newsletters include ISO 3166-1 V-1 (1998-02-05), V-2 (1999-10-01), ISO 3166-2 I-1 (1998)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','Taxonomy used to categorize entries by geographic location.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4','Administrator','jUDDI.org','uddi-org:general_keywords','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#GenKW');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','Special taxonomy consisting of namespace identifiers and the keywords associated with the namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','This tModel defines an unidentified taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9','Administrator','jUDDI.org','uddi-org:owningBusiness','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#owningBusiness');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','A pointer to a businessEntity that owns the tagged data.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','This tModel indicates the businessEntity that published or owns the tagged tModel. Used with tModels to establish an "owned" relationship with a registered businessEntity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03','Administrator','jUDDI.org','uddi-org:relationships','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Relationships');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','Starter set classifications of businessEntity relationships');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','This tModel is used to describe business relationships. Used in the publisher assertion messages.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','relationship');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55','Administrator','jUDDI.org','uddi-org:operators','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Operators');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','Taxonomy for categorizing the businessEntity of an operator of a registry.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','This checked value set is used to identify UDDI operators.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E','Administrator','jUDDI.org','uddi-org:isReplacedBy','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#IsReplacedBy');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','An identifier system used to point (using UDDI keys) to the tModel (or businessEntity) that is the logical replacement for the one in which isReplacedBy is used');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','This is a checked value set.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823','Administrator','jUDDI.org','dnb-com:D-U-N-S','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#D-U-N-S');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','Dun&Bradstreet D-U-N-S® Number');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','This tModel is used for the Dun&Bradstreet D-U-N-S® Number identifier.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039','Administrator','jUDDI.org','thomasregister-com:supplierID','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Thomas');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','Thomas Registry Suppliers');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','This tModel is used for the Thomas Register supplier identifier codes.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+----- End Standard Stuff -----
+
+-- WSDL Address Model
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212','Administrator','jUDDI.org','uddi-org:wsdl:address','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#Address');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','A tModel used to indicate the WSDL address option');
+
+-- Transport Categorization
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099','Administrator','jUDDI.org','uddi-org:wsdl:categorization:transport','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#transport');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','Category system used to describe the protocol supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+-- Protocol Categorization
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865','Administrator','jUDDI.org','uddi-org:wsdl:categorization:protocol','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#protocol');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','Category system used to describe the protocol supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+-- HTTP Protocol TModel
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794','Administrator','jUDDI.org','uddi.org:protocol:http','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#http');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','A tModel that represents the HTTP protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','protocol');
+
+-- SOAP 1.1 Protocol TModel
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E','Administrator','jUDDI.org','uddi.org:protocol:soap','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#soap');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','A tModel that represents the SOAP 1.1 protocol');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','protocol');
+
+-- portType reference
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E','Administrator','jUDDI.org','uddi.org:wsdl:portTypeReference','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#portTypeReference');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','A category system used to reference a wsdl:portType tModel');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+-- local name tmodel
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6','Administrator','jUDDI.org','uddi.org:xml:localName','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlLocalName');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','A category system used to indicate XML local names.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+-- namespace tmodel
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824','Administrator','jUDDI.org','uddi-org:xml:namespace','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlNamespace');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A category system used to indicate namespaces.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+-- the following 4 inserts deal with the "category" tModels included with each portType, binding, service,
+-- and port tModel inserted. (Each value for the Keyed Reference is from the portType, binding, etc set.)
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457','Administrator','jUDDI.org','uddi-org:wsdl:types','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#wsdlTypes');
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','WSDL to UDDI Type Taxonomy');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/postgresql/insert_publishers.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/postgresql/insert_publishers.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/postgresql/insert_publishers.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,4 @@
+-- *** SAMPLE PUBLISHER ***
+-- INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN,MAX_BUSINESSES,MAX_SERVICES_PER_BUSINESS,MAX_BINDINGS_PER_SERVICE,MAX_TMODELS)
+-- VALUES ('jdoe','John Doe','john.doe at apache.org','true','true',25,20,10,100);
+
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/sybase/create_database.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/sybase/create_database.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/sybase/create_database.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,700 @@
+-- DROP TABLE BUSINESS_DESCR;
+-- DROP TABLE BUSINESS_CATEGORY;
+-- DROP TABLE BUSINESS_IDENTIFIER;
+-- DROP TABLE BUSINESS_NAME;
+-- DROP TABLE DISCOVERY_URL;
+-- DROP TABLE ADDRESS_LINE;
+-- DROP TABLE ADDRESS;
+-- DROP TABLE PHONE;
+-- DROP TABLE EMAIL;
+-- DROP TABLE CONTACT_DESCR;
+-- DROP TABLE CONTACT;
+-- DROP TABLE SERVICE_DESCR;
+-- DROP TABLE SERVICE_CATEGORY;
+-- DROP TABLE SERVICE_NAME;
+-- DROP TABLE BINDING_DESCR;
+-- DROP TABLE BINDING_CATEGORY;
+-- DROP TABLE INSTANCE_DETAILS_DESCR;
+-- DROP TABLE INSTANCE_DETAILS_DOC_DESCR;
+-- DROP TABLE TMODEL_CATEGORY;
+-- DROP TABLE TMODEL_DESCR;
+-- DROP TABLE TMODEL_DOC_DESCR;
+-- DROP TABLE TMODEL_IDENTIFIER;
+-- DROP TABLE TMODEL_INSTANCE_INFO_DESCR;
+-- DROP TABLE TMODEL_INSTANCE_INFO;
+-- DROP TABLE PUBLISHER_ASSERTION;
+-- DROP TABLE TMODEL;
+-- DROP TABLE BINDING_TEMPLATE;
+-- DROP TABLE BUSINESS_SERVICE;
+-- DROP TABLE BUSINESS_ENTITY;
+-- DROP TABLE PUBLISHER;
+-- DROP TABLE AUTH_TOKEN;
+
+CREATE TABLE BUSINESS_ENTITY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NULL,
+ OPERATOR VARCHAR(255) NOT NULL,
+ LAST_UPDATE DATETIME NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY)
+)
+
+CREATE TABLE BUSINESS_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE BUSINESS_CATEGORY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CATEGORY_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE BUSINESS_IDENTIFIER
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE BUSINESS_NAME
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_NAME_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE CONTACT
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ PERSON_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE CONTACT_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ CONTACT_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,CONTACT_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+)
+
+CREATE TABLE ADDRESS
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ SORT_CODE VARCHAR(10) NULL,
+ TMODEL_KEY VARCHAR(41) NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+)
+
+CREATE TABLE ADDRESS_LINE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ ADDRESS_LINE_ID INT NOT NULL,
+ LINE VARCHAR(80) NOT NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID,ADDRESS_LINE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+ REFERENCES ADDRESS (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+)
+
+CREATE TABLE EMAIL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ EMAIL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ EMAIL_ADDRESS VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,EMAIL_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+)
+
+CREATE TABLE PHONE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ PHONE_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ PHONE_NUMBER VARCHAR(50) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,PHONE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+)
+
+CREATE TABLE DISCOVERY_URL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ DISCOVERY_URL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NOT NULL,
+ URL VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,DISCOVERY_URL_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE BUSINESS_SERVICE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ LAST_UPDATE DATETIME NOT NULL,
+ PRIMARY KEY (SERVICE_KEY),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE SERVICE_DESCR
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_DESCR_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+)
+
+CREATE TABLE SERVICE_CATEGORY
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,CATEGORY_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+)
+
+CREATE TABLE SERVICE_NAME
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_NAME_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+)
+
+CREATE TABLE BINDING_TEMPLATE
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ ACCESS_POINT_TYPE VARCHAR(20) NULL,
+ ACCESS_POINT_URL VARCHAR(255) NULL,
+ HOSTING_REDIRECTOR VARCHAR(255) NULL,
+ LAST_UPDATE DATETIME NOT NULL,
+ PRIMARY KEY (BINDING_KEY),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+)
+
+CREATE TABLE BINDING_CATEGORY
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,CATEGORY_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+)
+
+CREATE TABLE BINDING_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ BINDING_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,BINDING_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+)
+
+CREATE TABLE TMODEL_INSTANCE_INFO
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) NULL,
+ INSTANCE_PARMS VARCHAR(255) NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+)
+
+CREATE TABLE TMODEL_INSTANCE_INFO_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_INSTANCE_INFO_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,TMODEL_INSTANCE_INFO_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+)
+
+CREATE TABLE INSTANCE_DETAILS_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+)
+
+CREATE TABLE INSTANCE_DETAILS_DOC_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DOC_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+)
+
+CREATE TABLE TMODEL
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NULL,
+ OPERATOR VARCHAR(255) NOT NULL,
+ NAME VARCHAR(255) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) NULL,
+ DELETED VARCHAR(5) NULL,
+ LAST_UPDATE DATETIME NOT NULL,
+ PRIMARY KEY (TMODEL_KEY)
+)
+
+CREATE TABLE TMODEL_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+)
+
+CREATE TABLE TMODEL_CATEGORY
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,CATEGORY_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+)
+
+CREATE TABLE TMODEL_IDENTIFIER
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+)
+
+CREATE TABLE TMODEL_DOC_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DOC_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+)
+
+CREATE TABLE PUBLISHER_ASSERTION
+(
+ FROM_KEY VARCHAR(41) NOT NULL,
+ TO_KEY VARCHAR(41) NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ KEY_NAME VARCHAR(255) NOT NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ FROM_CHECK VARCHAR(5) NOT NULL,
+ TO_CHECK VARCHAR(5) NOT NULL,
+ FOREIGN KEY (FROM_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY),
+ FOREIGN KEY (TO_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+)
+
+CREATE TABLE PUBLISHER
+(
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ EMAIL_ADDRESS VARCHAR(255) NULL,
+ IS_ADMIN VARCHAR(5) NULL,
+ IS_ENABLED VARCHAR(5) NULL,
+ MAX_BUSINESSES INT NULL,
+ MAX_SERVICES_PER_BUSINESS INT NULL,
+ MAX_BINDINGS_PER_SERVICE INT NULL,
+ MAX_TMODELS INT NULL,
+ PRIMARY KEY (PUBLISHER_ID)
+)
+
+CREATE TABLE AUTH_TOKEN
+(
+ AUTH_TOKEN VARCHAR(51) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ CREATED DATETIME NOT NULL,
+ LAST_USED DATETIME NOT NULL,
+ NUMBER_OF_USES INT NOT NULL,
+ TOKEN_STATE INT NOT NULL,
+ PRIMARY KEY (AUTH_TOKEN)
+)
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','Administrator','jUDDI.org','uddi-org:types','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UDDItypes',getDate())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','UDDI Type Taxonomy')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','Taxonomy used to categorize Service Descriptions.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384','Administrator','jUDDI.org','unspsc-org:unspsc:3-1','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC31',getDate())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','Product Taxonomy: UNSPSC (Version 3.1)')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','This tModel defines the UNSPSC product taxonomy.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634','Administrator','jUDDI.org','unspsc-org:unspsc','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC',getDate())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','Product Taxonomy: UNSPSC (Version 7.3)')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','This tModel defines Version 7.3 of the UNSPSC product taxonomy.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','Checked')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2','Administrator','jUDDI.org','ntis-gov:naics:1997','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS',getDate())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','Business Taxonomy: NAICS(1997 Release)')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','This tModel defines the NAICS industry taxonomy.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88','Administrator','jUDDI.org','uddi-org:iso-ch:3166-1999','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO3166',getDate())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','ISO 3166-1:1997 and 3166-2:1998. Codes for names of countries and their subdivisions. Part 1: Country codes. Part 2:Country subdivision codes. Update newsletters include ISO 3166-1 V-1 (1998-02-05), V-2 (1999-10-01), ISO 3166-2 I-1 (1998)')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','Taxonomy used to categorize entries by geographic location.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4','Administrator','jUDDI.org','uddi-org:general_keywords','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#GenKW',getDate())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','Special taxonomy consisting of namespace identifiers and the keywords associated with the namespaces')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','This tModel defines an unidentified taxonomy.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9','Administrator','jUDDI.org','uddi-org:owningBusiness','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#owningBusiness',getDate())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','A pointer to a businessEntity that owns the tagged data.')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','This tModel indicates the businessEntity that published or owns the tagged tModel. Used with tModels to establish an "owned" relationship with a registered businessEntity.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03','Administrator','jUDDI.org','uddi-org:relationships','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Relationships',getDate())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','Starter set classifications of businessEntity relationships')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','This tModel is used to describe business relationships. Used in the publisher assertion messages.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','relationship')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55','Administrator','jUDDI.org','uddi-org:operators','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Operators',getDate())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','Taxonomy for categorizing the businessEntity of an operator of a registry.')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','This checked value set is used to identify UDDI operators.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E','Administrator','jUDDI.org','uddi-org:isReplacedBy','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#IsReplacedBy',getDate())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','An identifier system used to point (using UDDI keys) to the tModel (or businessEntity) that is the logical replacement for the one in which isReplacedBy is used')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','This is a checked value set.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823','Administrator','jUDDI.org','dnb-com:D-U-N-S','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#D-U-N-S',getDate())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','Dun&Bradstreet D-U-N-S® Number')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','This tModel is used for the Dun&Bradstreet D-U-N-S® Number identifier.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier')
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039','Administrator','jUDDI.org','thomasregister-com:supplierID','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Thomas',getDate())
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','Thomas Registry Suppliers')
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','This tModel is used for the Thomas Register supplier identifier codes.')
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier')
+
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457','Administrator','admin','jUDDI.org','uddi-org:wsdl:types','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#wsdlTypes',getDate());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','WSDL Type Category System');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','The WSDL Entity Type tModel uses a number of UDDI entities to represent the various entities within a WSDL document.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824','Administrator','admin','jUDDI.org','uddi-org:xml:namespace','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlNamespace',getDate());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A category system used to indicate namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A namespace provides necessary qualifying information about a technical concept or model. The XML Namespace tModel provides a mechanism to associate a namespace with a UDDI entity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6','Administrator','admin','jUDDI.org','uddi-org:xml:localName','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlLocalName',getDate());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','A category system used to indicate XML local names');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','The XML Local Name tModel provides a mechanism to indicate the name attribute for the uddi:businessService.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E','Administrator','admin','jUDDI.org','uddi-org:wsdl:portTypeReference','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#portTypeReference',getDate());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','A category system used to reference a wsdl:portType tModel');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','The WSDL portType Reference category system provides a mechanism to indicate that a UDDI entity has a relationship with a certain wsdl:portType tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E','Administrator','admin','jUDDI.org','uddi-org:protocol:soap','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#soap',getDate());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','A tModel that represents the SOAP 1.1 protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','The SOAP Protocol tModel can be used to indicate that a Web service supports the SOAP 1.1 protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794','Administrator','admin','jUDDI.org','uddi-org:protocol:http','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#http',getDate());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','A tModel that represents the HTTP protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','The HTTP Protocol tModel can be used to indicate that a Web service supports the HTTP protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:protocol','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#protocol',getDate());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','Category system used to describe the protocol supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','The Protocol Categorization tModel provides a mechanism to capture this protocol information in the UDDI binding tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:transport','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#transport',getDate());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','Category system used to describe the transport supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','The Transport Categorization tModel provides a mechanism to capture transport information in the UDDI binding tModel which allows a user to search for bindings that implement a specific transport protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212','Administrator','admin','jUDDI.org','uddi-org:wsdl:address','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#Address',getDate());
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','A tModel used to indicate the WSDL address option.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','The WSDL Address tModel provides A mechanism to indicate that the endpoint address should be obtained from a WSDL document.');
+
+
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/sybase/insert_publishers.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/sybase/insert_publishers.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/sybase/insert_publishers.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,6 @@
+USE juddi;
+
+-- *** SAMPLE PUBLISHER ***
+-- INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN,MAX_BUSINESSES,MAX_SERVICES_PER_BUSINESS,MAX_BINDINGS_PER_SERVICE,MAX_TMODELS)
+-- VALUES ('jdoe','John Doe','john.doe at apache.org','true','true',25,20,10,100);
+
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/totalxml/create_database.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/totalxml/create_database.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/totalxml/create_database.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,701 @@
+-- DROP TABLE BUSINESS_DESCR;
+-- DROP TABLE BUSINESS_CATEGORY;
+-- DROP TABLE BUSINESS_IDENTIFIER;
+-- DROP TABLE BUSINESS_NAME;
+-- DROP TABLE DISCOVERY_URL;
+-- DROP TABLE ADDRESS_LINE;
+-- DROP TABLE ADDRESS;
+-- DROP TABLE PHONE;
+-- DROP TABLE EMAIL;
+-- DROP TABLE CONTACT_DESCR;
+-- DROP TABLE CONTACT;
+-- DROP TABLE SERVICE_DESCR;
+-- DROP TABLE SERVICE_CATEGORY;
+-- DROP TABLE SERVICE_NAME;
+-- DROP TABLE BINDING_DESCR;
+-- DROP TABLE BINDING_CATEGORY;
+-- DROP TABLE INSTANCE_DETAILS_DESCR;
+-- DROP TABLE INSTANCE_DETAILS_DOC_DESCR;
+-- DROP TABLE TMODEL_CATEGORY;
+-- DROP TABLE TMODEL_DESCR;
+-- DROP TABLE TMODEL_DOC_DESCR;
+-- DROP TABLE TMODEL_IDENTIFIER;
+-- DROP TABLE TMODEL_INSTANCE_INFO_DESCR;
+-- DROP TABLE TMODEL_INSTANCE_INFO;
+-- DROP TABLE PUBLISHER_ASSERTION;
+-- DROP TABLE TMODEL;
+-- DROP TABLE BINDING_TEMPLATE;
+-- DROP TABLE BUSINESS_SERVICE;
+-- DROP TABLE BUSINESS_ENTITY;
+-- DROP TABLE PUBLISHER;
+-- DROP TABLE AUTH_TOKEN;
+
+CREATE TABLE BUSINESS_ENTITY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NULL,
+ OPERATOR VARCHAR(255) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_CATEGORY
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CATEGORY_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_IDENTIFIER
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_NAME
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ BUSINESS_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,BUSINESS_NAME_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE CONTACT
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ PERSON_NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE CONTACT_DESCR
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ CONTACT_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,CONTACT_DESCR_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE ADDRESS
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ SORT_CODE VARCHAR(10) NULL,
+ TMODEL_KEY VARCHAR(41) NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE ADDRESS_LINE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ ADDRESS_ID INT NOT NULL,
+ ADDRESS_LINE_ID INT NOT NULL,
+ LINE VARCHAR(80) NOT NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID,ADDRESS_LINE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+ REFERENCES ADDRESS (BUSINESS_KEY,CONTACT_ID,ADDRESS_ID)
+);
+
+CREATE TABLE EMAIL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ EMAIL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ EMAIL_ADDRESS VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,EMAIL_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE PHONE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ CONTACT_ID INT NOT NULL,
+ PHONE_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NULL,
+ PHONE_NUMBER VARCHAR(50) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,CONTACT_ID,PHONE_ID),
+ FOREIGN KEY (BUSINESS_KEY,CONTACT_ID)
+ REFERENCES CONTACT (BUSINESS_KEY,CONTACT_ID)
+);
+
+CREATE TABLE DISCOVERY_URL
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ DISCOVERY_URL_ID INT NOT NULL,
+ USE_TYPE VARCHAR(255) NOT NULL,
+ URL VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BUSINESS_KEY,DISCOVERY_URL_ID),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE BUSINESS_SERVICE
+(
+ BUSINESS_KEY VARCHAR(41) NOT NULL,
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (SERVICE_KEY),
+ FOREIGN KEY (BUSINESS_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE SERVICE_DESCR
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_DESCR_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE SERVICE_CATEGORY
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,CATEGORY_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE SERVICE_NAME
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ SERVICE_NAME_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ NAME VARCHAR(255) NOT NULL,
+ PRIMARY KEY (SERVICE_KEY,SERVICE_NAME_ID),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE BINDING_TEMPLATE
+(
+ SERVICE_KEY VARCHAR(41) NOT NULL,
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ ACCESS_POINT_TYPE VARCHAR(20) NULL,
+ ACCESS_POINT_URL VARCHAR(255) NULL,
+ HOSTING_REDIRECTOR VARCHAR(255) NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (BINDING_KEY),
+ FOREIGN KEY (SERVICE_KEY)
+ REFERENCES BUSINESS_SERVICE (SERVICE_KEY)
+);
+
+CREATE TABLE BINDING_CATEGORY
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(41) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,CATEGORY_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE BINDING_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ BINDING_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,BINDING_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE TMODEL_INSTANCE_INFO
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) NULL,
+ INSTANCE_PARMS VARCHAR(255) NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID),
+ FOREIGN KEY (BINDING_KEY)
+ REFERENCES BINDING_TEMPLATE (BINDING_KEY)
+);
+
+CREATE TABLE TMODEL_INSTANCE_INFO_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ TMODEL_INSTANCE_INFO_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,TMODEL_INSTANCE_INFO_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE INSTANCE_DETAILS_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE INSTANCE_DETAILS_DOC_DESCR
+(
+ BINDING_KEY VARCHAR(41) NOT NULL,
+ TMODEL_INSTANCE_INFO_ID INT NOT NULL,
+ INSTANCE_DETAILS_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID,INSTANCE_DETAILS_DOC_DESCR_ID),
+ FOREIGN KEY (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+ REFERENCES TMODEL_INSTANCE_INFO (BINDING_KEY,TMODEL_INSTANCE_INFO_ID)
+);
+
+CREATE TABLE TMODEL
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ AUTHORIZED_NAME VARCHAR(255) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NULL,
+ OPERATOR VARCHAR(255) NOT NULL,
+ NAME VARCHAR(255) NOT NULL,
+ OVERVIEW_URL VARCHAR(255) NULL,
+ DELETED VARCHAR(5) NULL,
+ LAST_UPDATE TIMESTAMP NOT NULL,
+ PRIMARY KEY (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_CATEGORY
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ CATEGORY_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,CATEGORY_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_IDENTIFIER
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ IDENTIFIER_ID INT NOT NULL,
+ TMODEL_KEY_REF VARCHAR(255) NULL,
+ KEY_NAME VARCHAR(255) NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,IDENTIFIER_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE TMODEL_DOC_DESCR
+(
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ TMODEL_DOC_DESCR_ID INT NOT NULL,
+ LANG_CODE VARCHAR(5) NULL,
+ DESCR VARCHAR(255) NOT NULL,
+ PRIMARY KEY (TMODEL_KEY,TMODEL_DOC_DESCR_ID),
+ FOREIGN KEY (TMODEL_KEY)
+ REFERENCES TMODEL (TMODEL_KEY)
+);
+
+CREATE TABLE PUBLISHER_ASSERTION
+(
+ FROM_KEY VARCHAR(41) NOT NULL,
+ TO_KEY VARCHAR(41) NOT NULL,
+ TMODEL_KEY VARCHAR(41) NOT NULL,
+ KEY_NAME VARCHAR(255) NOT NULL,
+ KEY_VALUE VARCHAR(255) NOT NULL,
+ FROM_CHECK VARCHAR(5) NOT NULL,
+ TO_CHECK VARCHAR(5) NOT NULL,
+ FOREIGN KEY (FROM_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY),
+ FOREIGN KEY (TO_KEY)
+ REFERENCES BUSINESS_ENTITY (BUSINESS_KEY)
+);
+
+CREATE TABLE PUBLISHER
+(
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ EMAIL_ADDRESS VARCHAR(255) NULL,
+ IS_ADMIN VARCHAR(5) NULL,
+ IS_ENABLED VARCHAR(5) NULL,
+ MAX_BUSINESSES INT NULL,
+ MAX_SERVICES_PER_BUSINESS INT NULL,
+ MAX_BINDINGS_PER_SERVICE INT NULL,
+ MAX_TMODELS INT NULL,
+ PRIMARY KEY (PUBLISHER_ID)
+);
+
+CREATE TABLE AUTH_TOKEN
+(
+ AUTH_TOKEN VARCHAR(51) NOT NULL,
+ PUBLISHER_ID VARCHAR(20) NOT NULL,
+ PUBLISHER_NAME VARCHAR(255) NOT NULL,
+ CREATED TIMESTAMP NOT NULL,
+ LAST_USED TIMESTAMP NOT NULL,
+ NUMBER_OF_USES INT NOT NULL,
+ TOKEN_STATE INT NOT NULL,
+ PRIMARY KEY (AUTH_TOKEN)
+);
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','Administrator','admin','jUDDI.org','uddi-org:types','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UDDItypes',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','UDDI Type Taxonomy');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'en','Taxonomy used to categorize Service Descriptions.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384','Administrator','admin','jUDDI.org','unspsc-org:unspsc:3-1','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC31',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','Product Taxonomy: UNSPSC (Version 3.1)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'en','This tModel defines the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:DB77450D-9FA8-45D4-A7BC-04411D14E384',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634','Administrator','admin','jUDDI.org','unspsc-org:unspsc','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#UNSPSC',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','Product Taxonomy: UNSPSC (Version 7.3)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'en','This tModel defines Version 7.3 of the UNSPSC product taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:CD153257-086A-4237-B336-6BDCBDCC6634',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','Checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2','Administrator','admin','jUDDI.org','ntis-gov:naics:1997','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#NAICS',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','Business Taxonomy: NAICS(1997 Release)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'en','This tModel defines the NAICS industry taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88','Administrator','admin','jUDDI.org','uddi-org:iso-ch:3166-1999','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#ISO3166',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','ISO 3166-1:1997 and 3166-2:1998. Codes for names of countries and their subdivisions. Part 1: Country codes. Part 2:Country subdivision codes. Update newsletters include ISO 3166-1 V-1 (1998-02-05), V-2 (1999-10-01), ISO 3166-2 I-1 (1998)');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'en','Taxonomy used to categorize entries by geographic location.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4E49A8D6-D5A2-4FC2-93A0-0411D8D19E88',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4','Administrator','admin','jUDDI.org','uddi-org:general_keywords','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#GenKW',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','Special taxonomy consisting of namespace identifiers and the keywords associated with the namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'en','This tModel defines an unidentified taxonomy.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:A035A07C-F362-44DD-8F95-E2B134BF43B4',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9','Administrator','admin','jUDDI.org','uddi-org:owningBusiness','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#owningBusiness',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','A pointer to a businessEntity that owns the tagged data.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'en','This tModel indicates the businessEntity that published or owns the tagged tModel. Used with tModels to establish an "owned" relationship with a registered businessEntity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4064C064-6D14-4F35-8953-9652106476A9',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03','Administrator','admin','jUDDI.org','uddi-org:relationships','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Relationships',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','Starter set classifications of businessEntity relationships');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'en','This tModel is used to describe business relationships. Used in the publisher assertion messages.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:807A2C6A-EE22-470D-ADC7-E0424A337C03',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','relationship');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55','Administrator','admin','jUDDI.org','uddi-org:operators','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Operators',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','Taxonomy for categorizing the businessEntity of an operator of a registry.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'en','This checked value set is used to identify UDDI operators.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:327A56F0-3299-4461-BC23-5CD513E95C55',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E','Administrator','admin','jUDDI.org','uddi-org:isReplacedBy','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#IsReplacedBy',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','An identifier system used to point (using UDDI keys) to the tModel (or businessEntity) that is the logical replacement for the one in which isReplacedBy is used');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'en','This is a checked value set.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E59AE320-77A5-11D5-B898-0004AC49CC1E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','checked');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823','Administrator','admin','jUDDI.org','dnb-com:D-U-N-S','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#D-U-N-S',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','Dun&Bradstreet D-U-N-S® Number');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'en','This tModel is used for the Dun&Bradstreet D-U-N-S® Number identifier.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:8609C81E-EE1F-4D5A-B202-3EB13AD01823',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039','Administrator','admin','jUDDI.org','thomasregister-com:supplierID','http://www.uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#Thomas',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','Thomas Registry Suppliers');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'en','This tModel is used for the Thomas Register supplier identifier codes.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:B1B1BAF5-2329-43E6-AE13-BA8E97195039',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','types','identifier');
+
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457','Administrator','admin','jUDDI.org','uddi-org:wsdl:types','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#wsdlTypes',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','WSDL Type Category System');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'en','The WSDL Entity Type tModel uses a number of UDDI entities to represent the various entities within a WSDL document.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E090AFA-33E5-36EB-81B7-1CA18373F457',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824','Administrator','admin','jUDDI.org','uddi-org:xml:namespace','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlNamespace',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A category system used to indicate namespaces');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'en','A namespace provides necessary qualifying information about a technical concept or model. The XML Namespace tModel provides a mechanism to associate a namespace with a UDDI entity.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:D01987D1-AB2E-3013-9BE2-2A66EB99D824',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6','Administrator','admin','jUDDI.org','uddi-org:xml:localName','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#xmlLocalName',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','A category system used to indicate XML local names');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'en','The XML Local Name tModel provides a mechanism to indicate the name attribute for the uddi:businessService.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','unchecked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:2EC65201-9109-3919-9BEC-C9DBEFCACCF6',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E','Administrator','admin','jUDDI.org','uddi-org:wsdl:portTypeReference','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#portTypeReference',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','A category system used to reference a wsdl:portType tModel');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'en','The WSDL portType Reference category system provides a mechanism to indicate that a UDDI entity has a relationship with a certain wsdl:portType tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:082B0851-25D8-303C-B332-F24A6D53E38E',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E','Administrator','admin','jUDDI.org','uddi-org:protocol:soap','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#soap',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','A tModel that represents the SOAP 1.1 protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'en','The SOAP Protocol tModel can be used to indicate that a Web service supports the SOAP 1.1 protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:AA254698-93DE-3870-8DF3-A5C075D64A0E',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794','Administrator','admin','jUDDI.org','uddi-org:protocol:http','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#http',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','A tModel that represents the HTTP protocol');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'en','The HTTP Protocol tModel can be used to indicate that a Web service supports the HTTP protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:6E10B91B-BABC-3442-B8FC-5A3C8FDE0794',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','protocol');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:protocol','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#protocol',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','Category system used to describe the protocol supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'en','The Protocol Categorization tModel provides a mechanism to capture this protocol information in the UDDI binding tModel.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:4DC74177-7806-34D9-AECD-33C57DC3A865',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099','Administrator','admin','jUDDI.org','uddi-org:wsdl:categorization:transport','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#transport',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','Category system used to describe the transport supported by a wsdl:binding.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'en','The Transport Categorization tModel provides a mechanism to capture transport information in the UDDI binding tModel which allows a user to search for bindings that implement a specific transport protocol.');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',0,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','categorization');
+
+INSERT INTO TMODEL_CATEGORY (TMODEL_KEY,CATEGORY_ID,TMODEL_KEY_REF,KEY_NAME,KEY_VALUE)
+VALUES ('uuid:E5C43936-86E4-37BF-8196-1D04B35C0099',1,'uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4','uddi-org:types','checked');
+
+
+INSERT INTO TMODEL (TMODEL_KEY,AUTHORIZED_NAME,PUBLISHER_ID,OPERATOR,NAME,OVERVIEW_URL,LAST_UPDATE)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212','Administrator','admin','jUDDI.org','uddi-org:wsdl:address','http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm#Address',CURRENT_TIMESTAMP);
+
+INSERT INTO TMODEL_DESCR (TMODEL_KEY,TMODEL_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','A tModel used to indicate the WSDL address option.');
+
+INSERT INTO TMODEL_DOC_DESCR (TMODEL_KEY,TMODEL_DOC_DESCR_ID,LANG_CODE,DESCR)
+VALUES ('uuid:AD61DE98-4DB8-31B2-A299-A2373DC97212',0,'en','The WSDL Address tModel provides A mechanism to indicate that the endpoint address should be obtained from a WSDL document.');
+
+
+commit;
Added: labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/totalxml/insert_publishers.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/totalxml/insert_publishers.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jUDDI-registry/sql/totalxml/insert_publishers.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,3 @@
+-- *** SAMPLE PUBLISHER ***
+-- INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN,MAX_BUSINESSES,MAX_SERVICES_PER_BUSINESS,MAX_BINDINGS_PER_SERVICE,MAX_TMODELS)
+-- VALUES ('jdoe','John Doe','john.doe at apache.org','true','true',25,20,10,100);
Added: labs/jbossesb/workspace/b_georges/product/install/jbossas/properties-plugin.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/install/jbossas/properties-plugin.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/install/jbossas/properties-service.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/jbossas/properties-service.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/jbossas/properties-service.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE server>
+<!-- $Id: properties-service.xml,v 1.5 2003/08/27 04:34:12 patriot1burke Exp $ -->
+
+<server>
+
+ <!-- ==================================================================== -->
+ <!-- PropertyEditorManager Service -->
+ <!-- ==================================================================== -->
+
+ <!--
+ | Allows access to the PropertyEditorManager, which is used when setting
+ | MBean attribute values from configuration.
+ -->
+
+ <mbean code="org.jboss.varia.property.PropertyEditorManagerService"
+ name="jboss:type=Service,name=PropertyEditorManager">
+
+ <!--
+ | Register and editor for each of the type_name=editor_type_name listed
+ | in properties file style convetion.
+
+ <attribute name="Editors">
+ java.net.URL=my.project.editors.URLPropertyEditor
+ </attribute>
+
+ -->
+
+ </mbean>
+
+
+ <!-- ==================================================================== -->
+ <!-- System Properties Service -->
+ <!-- ==================================================================== -->
+
+ <!--
+ | Allows rich access to system properties.
+ -->
+
+ <mbean code="org.jboss.varia.property.SystemPropertiesService"
+ name="jboss:type=Service,name=SystemProperties">
+
+ <!--
+ | Load properties from each of the given comma seperated URLs
+
+ <attribute name="URLList">
+ http://somehost/some-location.properties,
+ ./conf/somelocal.properties
+ </attribute>
+
+ -->
+
+ <!--
+ | Set raw properties file style properties.
+
+ <attribute name="Properties">
+
+ my.project.property=This is the value of my property
+ my.project.anotherProperty=This is the value of my other property
+
+ </attribute>
+
+ -->
+
+ </mbean>
+
+</server>
Added: labs/jbossesb/workspace/b_georges/product/install/message-store/sql/hsqldb/create_database.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/message-store/sql/hsqldb/create_database.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/message-store/sql/hsqldb/create_database.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,12 @@
+-- Database: jbossesb
+
+-- DROP DATABASE jbossesb;
+
+
+CREATE TABLE message
+(
+ uid text NOT NULL,
+ "type" text NOT NULL,
+ message text NOT NULL,
+ CONSTRAINT pk_uid PRIMARY KEY (uid)
+);
Added: labs/jbossesb/workspace/b_georges/product/install/message-store/sql/hsqldb/drop_database.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/message-store/sql/hsqldb/drop_database.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/message-store/sql/hsqldb/drop_database.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1 @@
+DROP TABLE message IF EXISTS;
Added: labs/jbossesb/workspace/b_georges/product/install/message-store/sql/postgresql/create_database.sql
===================================================================
--- labs/jbossesb/workspace/b_georges/product/install/message-store/sql/postgresql/create_database.sql 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/install/message-store/sql/postgresql/create_database.sql 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,19 @@
+-- Database: jbossesb
+
+-- DROP DATABASE jbossesb;
+
+CREATE DATABASE jbossesb
+WITH OWNER = postgres
+ENCODING = 'SQL_ASCII'
+TABLESPACE = pg_default;
+
+
+CREATE TABLE message
+(
+ uid text NOT NULL,
+ "type" text NOT NULL,
+ message text NOT NULL,
+ CONSTRAINT pk_uid PRIMARY KEY (uid)
+);
+
+insert into message(uid,type,message) values(1,"init setup","init setup");
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/Base64.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/lib/ext/Base64.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/lib/ext/Base64.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,397 @@
+<html>
+ <head>
+<!-- Generated from XML source. Copyright 2001 Robert Harder. -->
+ <title>Base64 - A Public Domain Base64 Encoder/Decoder for Java</title>
+ <meta http-equiv="Content-Type" content="text/html;CHARSET=iso-8859-1"/>
+ <meta http-equiv="Content-Language" content="EN"/>
+ <meta name="keywords" content="base64, base, 64, java, public domain"/>
+ <meta name="description" content="Base64 - A Public Domain Base64 Encoder/Decoder for Java"/>
+ <meta name="abstract" content="Base64 - A Public Domain Base64 Encoder/Decoder for Java"/>
+ <meta name="author" content="Robert Harder"/>
+ <meta name="copyright" content="Robert Harder, 2004"/>
+ <meta name="distribution" content="Global"/>
+ <meta name="revisit-after" content="7 days"/>
+ <meta name="robots" content="FOLLOW,INDEX"/>
+ <link rel="ICON" href="./favicon.ico" type="image/x-icon"/>
+ <link rel="SHORTCUT ICON" href="./favicon.ico"/>
+ <base target="_parent"/>
+ <style type="text/css">
+<!--
+
+
+body { margin: 0; }
+.iHarderNet { font-family: arial, geneva, lucida sans unicode, helvetica; color: white; text-align: center; font-size: 14pt; }
+.i_iHarder { font-family: times new roman, courier; font-style: italic; font-weight: bold; font-size: 12pt; }
+
+ .MainTitle
+ { color: white;
+ font-family: arial, geneva, lucida sans unicode, helvetica;
+ text-align: center;
+ font-weight: bold;
+ font-size: 24pt;
+ font-style: italic;
+ margin-bottom: 4pt;
+ }
+
+ .OpenTS_Home
+ { color: white;
+ font-family: arial, geneva, lucida sans unicode, helvetica;
+ text-align: center;
+ font-weight: bold;
+ font-size: 14pt;
+ font-style: italic;
+ }
+
+
+ .Menu
+ { margin-top: 10pt;
+ margin-left: 6pt;
+ text-indent: -6pt;
+ font-family: arial, geneva, lucida sans unicode, helvetica;
+ font-weight: bold;
+ font-size: 10pt;
+ }
+
+ .SubMenu
+ { margin-top: -5pt;
+ margin-left: 4pt;
+ }
+
+
+ .MenuItem
+ { margin-top: 10pt;
+ font-family: arial, geneva, lucida sans unicode, helvetica;
+ font-weight: bold;
+ font-size: 10pt;
+ }
+
+ .Menu A
+ { color: #000033;
+ }
+
+ .Logo
+ { text-align: center;
+ }
+
+.SubTitle
+{ font-family: Arial, san serif;
+ font-size: 16pt;
+ font-style: italic;
+ font-weight: bold;
+}
+
+
+ .SectionTitle
+ { margin-top: 1em;
+ margin-left: 1em;
+ margin-right: 50%;
+ font-family: arial, geneva, lucida sans unicode, helvetica;
+ font-weight: bold;
+ font-size: larger;
+ /*border-top: 4px double black;*/
+ border-bottom: 4px double black;
+ }
+
+ .MainSectionTitle
+ { margin-top: 1em;
+ font-family: arial, geneva, lucida sans unicode, helvetica;
+ font-weight: bold;
+ font-size: 22pt;
+ font-style: italic;
+ border-bottom: 4px double black;
+ }
+
+ .SectionBody
+ { margin-top: 1em;
+ }
+
+ .MainSectionBody
+ { margin-top: 10pt;
+ }
+
+ .MainPage
+ { margin: 4pt;
+ margin-right: 24pt;
+ }
+
+ .FAQList_Question
+ {
+ font-family: arial, geneva, lucida sans unicode, helvetica;
+ font-weight: bold;
+ }
+
+ .FAQ_Question
+ {
+ font-family: arial, geneva, lucida sans unicode, helvetica;
+ font-weight: bold;
+ }
+
+ .FAQ_Answer
+ {
+ }
+
+
+ .TopMenu
+ { margin-top: 20pt;
+ margin-bottom: 10pt;
+ border-bottom: 4px black;
+ text-align: center
+ }
+
+ .BottomMenu
+ { margin-top: 0.1in;
+ border-top: 4px double black;
+ margin-bottom: 10pt;
+ border-bottom: 4px black;
+ text-align: center
+ }
+
+ p
+ {
+ margin-top: 0.1in;
+ text-indent: 1em;
+ }
+
+ li
+ { margin-top: 0.2in;
+ }
+
+ ul
+ { margin-left: 0.25in;
+ margin-top: 0.1in;
+ }
+
+ tt
+ { font-size: larger;
+ }
+
+ a
+ { color: #000055;
+ }
+ a:hover
+ { background: lavender;
+ text-decoration: none;
+ color: black;
+ }
+
+ p.alert { border-left:solid red 6px; margin-left:-12px; padding-left:6px; }
+ pre { padding:1ex; border: solid gray 1px;}
+ code { font-size: 95%; }
+ dl dt { font-weight: bold }
+ dl dd { margin-bottom: 1em }
+ .newCode { background: #EEEEEE; }
+
+
+ -->
+ </style>
+ </head>
+ <body bgcolor="white">
+ <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr bgcolor="#000066" height="50">
+ <td width="128" height="50">
+ <div class="iHarderNet">
+ <a href="http://www.iHarder.net">
+ <span class="iHarderNet"><span class="i_iHarder">i</span>Harder.net</span>
+ </a>
+ </div>
+ </td>
+ <td width="*">
+ <div class="MainTitle">
+ <title-medium>Base64</title-medium>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <div style="margin:0 ; border-top: 1px double black"/>
+ </td>
+ </tr>
+ <tr height="*">
+ <td width="128" valign="top" bgcolor="#9090d0">
+ <table width="100%" height="100%" cellpadding="2" cellspacing="0" border="0">
+ <tr height="1">
+ <td height="1" width="120" bgcolor="white" valign="center" align="center">
+ <div class="SubTitle">
+ Base64
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top" height="*" style="border-top: solid black 1px; border-right: solid black 1px">
+ <div class="Menu">
+ <a title="" href="./.">Home</a>
+ </div>
+ <div class="Menu">
+ <a title="A Java framework for the Tabu Search meta-heuristic" href="http://OpenTS.iHarder.net">OpenTS</a>
+ </div>
+ <div class="Menu">
+ <a title="Software and tutorials for programming Mac OS X" href="./macosx">Mac OS X</a>
+ </div>
+ <div class="Menu">
+ <a title="Xmlize (like serialize) your Java objects into XML documents." href="./xmlizable">Xmlizable</a>
+ </div>
+ <div class="Menu">
+ <a title="Public Domain Base64 Java utility." href="./base64">Base64</a>
+ </div>
+ <div class="Menu">
+ <a title="Drag and drop files into your Java programs" href="./filedrop">FileDrop</a>
+ </div>
+ <div class="Menu">
+ <a title="View Mr. Harder's online resume" href="http://resume.iharder.net">Mr. Harder's Resume</a>
+ </div>
+ <div class="Menu">
+ <a title="Send email to Mr. Harder" href="mailto:robertharder[nospam]gmail.com">Contact Mr. Harder</a>
+ </div>
+ <p>
+ <hr align="center"/>
+ </p>
+ <div align="center" style="text-align:center">
+ <a href="http://sourceforge.net">
+ <img src="http://sourceforge.net/sflogo.php?group_id=23200" width="88" height="31" border="0" alt="SourceForge Logo"/>
+ </a>
+ </div>
+ <p/>
+ <div align="center" style="text-align:center">
+ <a href="http://iharder.sourceforge.net/gotmoney.php">
+ <img src="http://iharder.sourceforge.net/gotmoney.gif" width="88" height="32" border="0" alt="got money?"/>
+ </a>
+ </div>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td width="*" height="*" bgcolor="white" valign="top">
+ <div class="MainPage">
+
+ <div class="MainSectionTitle">Summary</div><div class="MainSectionBody">
+
+<P><em>Now supports GZip-(de)compressing data before/after encoding!</em></P>
+
+ <P>
+ This is a <strong>Public Domain</strong> Java class providing
+ <strong>very fast</strong> Base64 encoding and decoding in
+ the form of convenience methods and input/output streams.
+ </P>
+
+ <P style="text-align:center; font-weight:bold; font-size:larger">
+ <a href="http://prdownloads.sourceforge.net/iharder/Base64-2.1.zip?download">Download v2.1 Now! base64.zip (40k)</a>
+ </P>
+
+ <p>
+ You can have SourceForge automatically notify you when this Base64 code
+ is updated (I highly recommend you do this).
+ <a href="http://sourceforge.net/project/filemodule_monitor.php?filemodule_id=30229">Click here.</a>
+ </p>
+
+ <p>
+ There are other Base64 utilities on the Internet, some part
+ of proprietary packages, some with various open source licenses.
+ In any event, I hope with one or more of these Base64 tools, you won't
+ have to write your own like I did.
+ </p>
+<p>
+Thanks to Brian Burton for providing this <a href="Base64Test.java">Base64Test.java</a> test class for use with <a href="http://www.junit.org">JUnit.org</a>.
+</p>
+
+
+ <p>
+ <strong>Changes:</strong>
+ <ul>
+<li>v2.1 - Cleaned up javadoc comments and unused variables and methods. Added
+ some convenience methods for reading and writing to and from files.</li>
+ <li>
+ v2.0.2 - Now specifies UTF-8 encoding in places where the code fails on systems
+ with other encodings (like EBCDIC).
+ </li>
+
+ <li>v2.0.1 - Fixed an error when decoding a single byte, that is, when the
+ encoded data was a single byte.</li>
+ <li>v2.0 - I got rid of methods that used booleans to set options.
+ Now everything is more consolidated and cleaner. The code now detects
+ when data that's being decoded is gzip-compressed and will decompress it
+ automatically. Generally things are cleaner. You'll probably have to
+ change some method calls that you were making to support the new
+ options format (<tt>int</tt>s that you "OR" together).</li>
+
+ <li>v1.5.1 - Fixed bug when decompressing and decoding to a
+ byte[] using <tt>decode( String s, boolean gzipCompressed )</tt>.
+ Added the ability to "suspend" encoding in the Output Stream so
+ you can turn on and off the encoding if you need to embed base64
+ data in an otherwise "normal" stream (like an XML file).
+ <em>This has not been fully tested, so please alert me to bugs.</em></li>
+ <li>v1.5 - Output stream pases on flush() command but doesn't do anything itself. This helps when using GZIP streams. Added the ability to <strong>GZip-compress objects</strong> before encoding them.</li>
+ <li>v1.4 - Added some helper methods for reading and writing to/from files.</li>
+ <li>v1.3.6 - Fixed OutputStream.flush() so that 'position' is reset.</li>
+ <li>v1.3.5 - Added flag to turn on and off line breaks. Fixed bug in input stream
+ where last buffer being read, if not completely full, was not returned.</li>
+ <li>v1.3.4 - Fixed when <em>Improperly padded base64 stream</em> exception
+ was incorrectly thrown.</li>
+ <li>A bug has been fixed that kept I/O streams from working at all, really.</li>
+ <li>A bug has been fixed affecting you if you use the Base64.InputStream
+ to encode data.
+ </li>
+ <li>A bug has been fixed where if you specified an offset when encoding
+ an array of bytes, the offset was ignored.
+ </li>
+ </ul>
+ </p>
+
+ </div>
+
+ <div class="MainSectionTitle">Example</div><div class="MainSectionBody">
+ <p>
+ The easiest way to convert some data is with the convenience methods:
+ </p>
+<code><pre>String result1 = <strong>Base64.encodeObject</strong>( mySerializableObject );
+String result2 = <strong>Base64.encodeBytes</strong>( new byte[]{ 3, 34, 116, 9 } );
+</pre></code>
+
+ <p>
+ Or you can use the very efficient streams:
+ </p>
+<code><pre>OutputStream out = <strong>new Base64.OutputStream</strong>(
+ new FileOutputStream( "out.txt" ) );
+// Go on about your outputting...
+// ...
+
+InputStream in = <strong>new Base64.InputStream</strong>(
+ new FileInputStream( "in.txt" ) );
+// Go on about your inputting...
+// ...
+</pre></code>
+
+
+ <p>
+ There are defaults (OutputStream encodes, InputStream decodes),
+ but you can easily override that:
+ </p>
+<code><pre>OutputStream out = new Base64.OutputStream(
+ new FileOutputStream( "out.txt" ), <strong>Base64.DECODE</strong> );
+// Go on about your outputting...
+// ...
+</pre></code>
+
+ </div>
+
+
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#9090d0" style="height: 1em; border-right: solid black 1px"> </td>
+ <td>
+ <div class="BottomMenu">
+ <span class="Menu"><a title="" href="./.">Home</a> | </span>
+ <span class="Menu"><a title="A Java framework for the Tabu Search meta-heuristic" href="http://OpenTS.iHarder.net">OpenTS</a> | </span>
+ <span class="Menu"><a title="Software and tutorials for programming Mac OS X" href="./macosx">Mac OS X</a> | </span>
+ <span class="Menu"><a title="Xmlize (like serialize) your Java objects into XML documents." href="./xmlizable">Xmlizable</a> | </span>
+ <span class="Menu"><a title="Public Domain Base64 Java utility." href="./base64">Base64</a> | </span>
+ <span class="Menu"><a title="Drag and drop files into your Java programs" href="./filedrop">FileDrop</a> | </span>
+ <span class="Menu"><a title="View Mr. Harder's online resume" href="http://resume.iharder.net">Mr. Harder's Resume</a> | </span>
+ <span class="Menu"><a title="Send email to Mr. Harder" href="mailto:robertharder[nospam]gmail.com">Contact Mr. Harder</a> | </span>
+ </div>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/Licenses.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/product/lib/ext/Licenses.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/lib/ext/Licenses.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,240 @@
+The jars in this directory are covered by a range of licences, as described
+below.
+
+JBoss jars:
+
+/*
+ *
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ */
+
+Apache Jakarta Commons Collections, Commons Logging, jUDDI, Scout, JAXR-API, DBCP, Pooling:
+
+Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ 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.
+
+
+
+
+ Enterprise Distributed Technologies edtftpj.jar
+
+ edtFTPj is Open Source, licensed under the LGPL, the GNU Lesser General
+ Public License. http://www.gnu.org/licenses/lgpl.html
+
+
+
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/README.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/product/lib/ext/README.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/lib/ext/README.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,2 @@
+These jars are from JBossAS 4.0.3SP1:
+ activation.jar, jbossall-client.jar, log4j.jar, mail.jar, jmx-client.jar
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/activation.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/activation.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/c3p0-0.9.1-pre9.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/c3p0-0.9.1-pre9.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/cglib-full-2.0-RC2.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/cglib-full-2.0-RC2.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/commons-collections-2.0.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/commons-collections-2.0.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/commons-collections-3.2.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/commons-collections-3.2.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/commons-dbcp-1.2.1.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/commons-dbcp-1.2.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/commons-lang-2.1.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/commons-lang-2.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/commons-logging.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/commons-logging.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/commons-pool-1.3.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/commons-pool-1.3.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/edtftpj-pro.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/edtftpj-pro.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/edtftpj.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/edtftpj.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3/License.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3/License.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3/License.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,23 @@
+
+JBoss jars:
+
+/*
+ *
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ */
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3/jboss-annotations-ejb3.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3/jboss-annotations-ejb3.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3/jboss-ejb3x.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3/jboss-ejb3x.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3/jbossall-client.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3/jbossall-client.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/License.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/License.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/License.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,22 @@
+JBoss jars:
+
+/*
+ *
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ */
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/hibernate-all.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/hibernate-all.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/jboss-ejb3-all.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/jboss-ejb3-all.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/jcainflow.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/jcainflow.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/jcainflow.rar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/jcainflow.rar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/jms-ra.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/jms-ra.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/jms-ra.rar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/jms-ra.rar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/thirdparty-all.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/ejb3_embedded/thirdparty-all.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/emma.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/emma.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/emma_ant.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/emma_ant.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/hsqldb.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/hsqldb.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/jakarta-oro-2.0.8.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/jakarta-oro-2.0.8.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/jaxr-api-1.0.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/jaxr-api-1.0.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/jboss-jmx.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/jboss-jmx.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/jbossts-common.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/jbossts-common.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/juddi-client.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/juddi-client.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/juddi-embedded.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/juddi-embedded.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/junit-4.1.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/junit-4.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/license.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/license.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/log4j.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/log4j.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/mail.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/mail.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/milyn-commons-0.7.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/milyn-commons-0.7.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/milyn-smooks-core-0.8-SNAPSHOT.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/milyn-smooks-core-0.8-SNAPSHOT.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/milyn-smooks-misc-0.2.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/milyn-smooks-misc-0.2.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/milyn-tinak-0.7.1.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/milyn-tinak-0.7.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/mockejb.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/mockejb.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/postgresql-8.1-407.jdbc2ee.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/postgresql-8.1-407.jdbc2ee.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/properties-plugin.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/properties-plugin.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/scout-0.7rc2-embedded.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/scout-0.7rc2-embedded.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/xalan-2.7.0.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/xalan-2.7.0.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/xbean-1.0.4.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/xbean-1.0.4.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/xercesImpl-2.7.1.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/xercesImpl-2.7.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/xml-apis-1.3.02.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/xml-apis-1.3.02.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/lib/ext/xstream-1.1.3.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/lib/ext/xstream-1.1.3.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/product.properties
===================================================================
--- labs/jbossesb/workspace/b_georges/product/product.properties 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/product.properties 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,10 @@
+# JBossESB ant properties file
+# $Id$
+#
+org.jboss.esb.build.deprecation=yes
+org.jboss.esb.build.optimize=off
+org.jboss.esb.build.debug=yes
+org.jboss.esb.build.tests=no
+org.jboss.esb.alltests.build=yes
+org.jboss.esb.frominstall=yes
+org.jboss.esb.jboss.home=/opt/jboss/server/jboss-4.0.4SP1
Added: labs/jbossesb/workspace/b_georges/product/product.properties.mine
===================================================================
--- labs/jbossesb/workspace/b_georges/product/product.properties.mine 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/product.properties.mine 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,8 @@
+# JBossESB ant properties file
+# $Id$
+#
+org.jboss.esb.deprecation=yes
+org.jboss.esb.optimize=off
+org.jboss.esb.alltests.build=yes
+org.jboss.esb.frominstall=yes
+org.jboss.esb.jboss.home=/opt/jboss/server/jboss-4.0.4SP1
Added: labs/jbossesb/workspace/b_georges/product/product.properties.r6553
===================================================================
--- labs/jbossesb/workspace/b_georges/product/product.properties.r6553 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/product.properties.r6553 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,8 @@
+# JBossESB ant properties file
+# $Id$
+#
+org.jboss.esb.deprecation=yes
+org.jboss.esb.optimize=off
+org.jboss.esb.alltests.build=yes
+org.jboss.esb.frominstall=no
+org.jboss.esb.jboss.home=.
Added: labs/jbossesb/workspace/b_georges/product/product.properties.r6611
===================================================================
--- labs/jbossesb/workspace/b_georges/product/product.properties.r6611 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/product.properties.r6611 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,11 @@
+# JBossESB ant properties file
+# $Id$
+#
+org.jboss.esb.build.deprecation=yes
+org.jboss.esb.build.optimize=off
+org.jboss.esb.build.frominstall=no
+org.jboss.esb.build.debug=yes
+org.jboss.esb.build.tests=no
+
+org.jboss.esb.alltests.build=yes
+org.jboss.esb.jboss.home=.
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/conf/ObjStoreExample.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/conf/ObjStoreExample.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/conf/ObjStoreExample.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,19 @@
+<ObjectStore
+ dataSourceJndiName="java:JbossEsbDS"
+ uidTable="uid_table"
+ batchTable="batches" >
+
+ <Class name="org.jboss.soa.esb.common.bizclasses.Person"
+ table="object_snap"
+ type="Person"
+ encrypt="false" >
+ <Index table="people_index" />
+ </Class>
+
+ <Class name="org.jboss.soa.esb.samples.Customer"
+ table="object_snap"
+ type="Customer"
+ encrypt="false" >
+ <Index table="customer_index" />
+ </Class>
+</ObjectStore>
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/conf/ObjStoreExample.xml
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/log4j.properties
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/log4j.properties 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/log4j.properties 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,7 @@
+### direct log messages to stdout ###
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.Target=System.out
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
+### set log levels - for more verbose logging change 'info' to 'debug' ###
+log4j.rootLogger=info, stdout
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/notifyDir/FileMoverConfigExample.OK
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/notifyDir/FileMoverConfigExample.OK 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/notifyDir/FileMoverConfigExample.OK 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,7 @@
+File example.inp processed successfully
+File example.inp processed successfully
+File example.inp processed successfully
+File example.inp processed successfully
+File example.inp processed successfully
+File example.inp processed successfully
+File example.inp processed successfully
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/notifyDir/FileMoverConfigExample.OK
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/paramsDir/FileMoverConfigExample.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/paramsDir/FileMoverConfigExample.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/paramsDir/FileMoverConfigExample.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,43 @@
+<JBossESB parameterReloadSecs="60">
+ <FilePollerTest
+ listenerClass="org.jboss.soa.esb.listeners.DirectoryPoller"
+ actions="Copy-File-To-OutOkDir"
+ pollLatencySecs="3"
+ maxThreads="1"
+ inputDirURI="./inputDir"
+ inputSuffix=".inp"
+ workSuffix=".INPROC"
+ errorDirURI="./errorDir"
+ errorSuffix=".ERR"
+ postDirURI="./inputDoneDir"
+ postSuffix=".DONE"
+ postDelete="n"
+ >
+
+ <NotificationList type="OK">
+ <target class="NotifyFiles">
+ <file URI="./notifyDir/notif.OK" append="true" />
+ </target>
+ </NotificationList>
+
+ <NotificationList type="ERR">
+ <target class="NotifyFiles">
+ <file URI="./notifyDir/notif.ERR" append="true" />
+ </target>
+ </NotificationList>
+ </FilePollerTest>
+
+
+ <Actions>
+ <Action name="Copy-File-To-OutOkDir" processor="FileCopier">
+ <property name="copyToDirURI" value="./outputOkDir" />
+ <property name="copyToSuffix" value=".fileCopierOutput" />
+ </Action>
+
+ <ProcessorAliases>
+ <Alias name="FileCopier" class="org.jboss.soa.esb.actions.routing.FileCopier" />
+ </ProcessorAliases>
+ </Actions>
+
+
+</JBossESB>
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/paramsDir/FileMoverConfigExample.xml
___________________________________________________________________
Name: svn:executable
+ *
Added: labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/testJBossESB.bat
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/testJBossESB.bat 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/testJBossESB.bat 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,5 @@
+SET ESB_HOME=c:\dev\JBossESB
+SET JBOSS_HOME=C:\java-tools\jboss4-ejb3
+
+java -cp %ESB_HOME%/product/build/dist/lib/jbossesb-services.jar;%ESB_HOME%/product/build/dist/lib/jbossesb-rosetta.jar;%ESB_HOME%/product/build/dist/lib/jbossesb-listeners.jar;%JBOSS_HOME%/client/jbossall-client.jar;%JBOSS_HOME%/client/log4j.jar;%JBOSS_HOME%/client/jboss-aspect-jdk50-client.jar;%JBOSS_HOME%/client/jboss-aop-jdk50-client.jar;%JBOSS_HOME%/client/jboss-ejb3-client.jar;. org.jboss.soa.esb.listeners.GpListener paramsDir/FileMoverConfigExample.xml
+
Added: labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/testJBossESB.sh
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/testJBossESB.sh 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/TestJBossESB/testJBossESB.sh 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+ESB_HOME=/usr/local/JBossESB
+export ESB_HOME
+
+JBOSS_HOME=/usr/local/jboss-4.0.4.GA
+export JBOSS_HOME
+
+JAVA_HOME=/usr/local/java/java5
+export JAVA_HOME
+
+PATH=$PATH:$JAVA_HOME/bin
+export PATH
+
+
+java -classpath $ESB_HOME/lib/jbossesb-services.jar:$ESB_HOME/lib/jbossesb-rosetta.jar:$ESB_HOME/lib/jbossesb-listeners.jar:$JBOSS_HOME/client/jbossall-client.jar:$JBOSS_HOME/client/log4j.jar:$JBOSS_HOME/client/jboss-aspect-jdk50-client.jar:$JBOSS_HOME/client/jboss-aop-jdk50-client.jar:$JBOSS_HOME/client/jboss-ejb3-client.jar:. org.jboss.soa.esb.listeners.GpListener /paramsDir/FileMoverConfigExampleJason.xml
Added: labs/jbossesb/workspace/b_georges/product/samples/docs/LoanBrokerArchitecture.odg
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/docs/LoanBrokerArchitecture.odg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/docs/LoanBrokerArchitecture.pdf
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/docs/LoanBrokerArchitecture.pdf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/docs/Trailblazer.pdf
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/docs/Trailblazer.pdf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/docs/Trailblazer.sxw
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/docs/Trailblazer.sxw
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/docs/patterns.odg
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/docs/patterns.odg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/allclasses-frame.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/allclasses-frame.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/allclasses-frame.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Thu Oct 05 10:58:10 CEST 2006 -->
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks" target="classFrame">BankQuoteReplyTest</A>
+<BR>
+<A HREF="org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks" target="classFrame">BankQuoteRequestTest</A>
+<BR>
+<A HREF="org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks" target="classFrame">BankTest</A>
+<BR>
+<A HREF="org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks" target="classFrame">FlatFileProcessorTest</A>
+<BR>
+<A HREF="org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks" target="classFrame">JmsProcessorTest</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/allclasses-noframe.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/allclasses-noframe.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/allclasses-noframe.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Thu Oct 05 10:58:10 CEST 2006 -->
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">BankQuoteReplyTest</A>
+<BR>
+<A HREF="org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">BankQuoteRequestTest</A>
+<BR>
+<A HREF="org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">BankTest</A>
+<BR>
+<A HREF="org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">FlatFileProcessorTest</A>
+<BR>
+<A HREF="org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">JmsProcessorTest</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/constant-values.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/constant-values.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/constant-values.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,138 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Thu Oct 05 10:58:10 CEST 2006 -->
+<TITLE>
+Constant Field Values
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Constant Field Values";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/jboss/soa/esb/samples/loanbroker/banks/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Constant Field Values</H1>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+</UL>
+
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/jboss/soa/esb/samples/loanbroker/banks/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/deprecated-list.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/deprecated-list.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/deprecated-list.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,138 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Thu Oct 05 10:58:10 CEST 2006 -->
+<TITLE>
+Deprecated List
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Deprecated List";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/jboss/soa/esb/samples/loanbroker/banks/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Deprecated API</B></H2>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+</UL>
+
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/jboss/soa/esb/samples/loanbroker/banks/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/help-doc.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/help-doc.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/help-doc.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,205 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Thu Oct 05 10:58:10 CEST 2006 -->
+<TITLE>
+API Help
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="API Help";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/jboss/soa/esb/samples/loanbroker/banks/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+How This API Document Is Organized</H1>
+</CENTER>
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
+Package</H3>
+<BLOCKQUOTE>
+
+<P>
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
+<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>
+</BLOCKQUOTE>
+<H3>
+Class/Interface</H3>
+<BLOCKQUOTE>
+
+<P>
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
+<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
+<P>
+<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
+<P>
+<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
+</BLOCKQUOTE>
+<H3>
+Annotation Type</H3>
+<BLOCKQUOTE>
+
+<P>
+Each annotation type has its own separate page with the following sections:<UL>
+<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>
+</BLOCKQUOTE>
+</BLOCKQUOTE>
+<H3>
+Enum</H3>
+<BLOCKQUOTE>
+
+<P>
+Each enum has its own separate page with the following sections:<UL>
+<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>
+</BLOCKQUOTE>
+<H3>
+Tree (Class Hierarchy)</H3>
+<BLOCKQUOTE>
+There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>
+<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
+</BLOCKQUOTE>
+<H3>
+Deprecated API</H3>
+<BLOCKQUOTE>
+The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
+<H3>
+Index</H3>
+<BLOCKQUOTE>
+The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
+<H3>
+Prev/Next</H3>
+These links take you to the next or previous class, interface, package, or related page.<H3>
+Frames/No Frames</H3>
+These links show and hide the HTML frames. All pages are available with or without frames.
+<P>
+<H3>
+Serialized Form</H3>
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
+<P>
+<H3>
+Constant Field Values</H3>
+The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.
+<P>
+<FONT SIZE="-1">
+<EM>
+This help file applies to API documentation generated using the standard doclet.</EM>
+</FONT>
+<BR>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/jboss/soa/esb/samples/loanbroker/banks/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/index-all.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/index-all.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/index-all.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,205 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Thu Oct 05 10:58:10 CEST 2006 -->
+<TITLE>
+Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="#_B_">B</A> <A HREF="#_F_">F</A> <A HREF="#_J_">J</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_S_">S</A> <HR>
+<A NAME="_B_"><!-- --></A><H2>
+<B>B</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>BankQuoteReplyTest</B></A> - Class in <A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html">org.jboss.soa.esb.samples.loanbroker.banks</A><DD> <DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html#BankQuoteReplyTest()"><B>BankQuoteReplyTest()</B></A> -
+Constructor for class org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">BankQuoteReplyTest</A>
+<DD>
+<DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>BankQuoteRequestTest</B></A> - Class in <A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html">org.jboss.soa.esb.samples.loanbroker.banks</A><DD> <DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html#BankQuoteRequestTest()"><B>BankQuoteRequestTest()</B></A> -
+Constructor for class org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">BankQuoteRequestTest</A>
+<DD>
+<DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>BankTest</B></A> - Class in <A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html">org.jboss.soa.esb.samples.loanbroker.banks</A><DD> <DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html#BankTest()"><B>BankTest()</B></A> -
+Constructor for class org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">BankTest</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_F_"><!-- --></A><H2>
+<B>F</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>FlatFileProcessorTest</B></A> - Class in <A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html">org.jboss.soa.esb.samples.loanbroker.banks</A><DD> <DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html#FlatFileProcessorTest()"><B>FlatFileProcessorTest()</B></A> -
+Constructor for class org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">FlatFileProcessorTest</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_J_"><!-- --></A><H2>
+<B>J</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>JmsProcessorTest</B></A> - Class in <A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html">org.jboss.soa.esb.samples.loanbroker.banks</A><DD> <DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html#JmsProcessorTest()"><B>JmsProcessorTest()</B></A> -
+Constructor for class org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">JmsProcessorTest</A>
+<DD>
+</DL>
+<HR>
+<A NAME="_O_"><!-- --></A><H2>
+<B>O</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html#obtainExampleXML()"><B>obtainExampleXML()</B></A> -
+Method in class org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">BankQuoteReplyTest</A>
+<DD>Testing the XML layout of a BankQuoteReply
+<DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html#obtainExampleXML()"><B>obtainExampleXML()</B></A> -
+Method in class org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">BankQuoteRequestTest</A>
+<DD>Testing the XML layout of a BankQuote
+<DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><B>org.jboss.soa.esb.samples.loanbroker.banks</B></A> - package org.jboss.soa.esb.samples.loanbroker.banks<DD> </DL>
+<HR>
+<A NAME="_P_"><!-- --></A><H2>
+<B>P</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html#processLoanRequest()"><B>processLoanRequest()</B></A> -
+Method in class org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">BankTest</A>
+<DD>Tests the computation of the interestRate for the TestBank.
+<DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html#processRequest()"><B>processRequest()</B></A> -
+Method in class org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">FlatFileProcessorTest</A>
+<DD>Tests the processing of flat file containing a loan quote request.
+</DL>
+<HR>
+<A NAME="_S_"><!-- --></A><H2>
+<B>S</B></H2>
+<DL>
+<DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html#sendLoanRequestXML()"><B>sendLoanRequestXML()</B></A> -
+Method in class org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">JmsProcessorTest</A>
+<DD>This can be activate if the server is running and you want
+ to drop a message on the queue
+<DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html#suite()"><B>suite()</B></A> -
+Static method in class org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">BankQuoteReplyTest</A>
+<DD>
+<DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html#suite()"><B>suite()</B></A> -
+Static method in class org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">BankQuoteRequestTest</A>
+<DD>
+<DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html#suite()"><B>suite()</B></A> -
+Static method in class org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">BankTest</A>
+<DD>
+<DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html#suite()"><B>suite()</B></A> -
+Static method in class org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">FlatFileProcessorTest</A>
+<DD>
+<DT><A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html#suite()"><B>suite()</B></A> -
+Static method in class org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">JmsProcessorTest</A>
+<DD>
+</DL>
+<HR>
+<A HREF="#_B_">B</A> <A HREF="#_F_">F</A> <A HREF="#_J_">J</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_S_">S</A>
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./org/jboss/soa/esb/samples/loanbroker/banks/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/index.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/index.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/index.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc on Thu Oct 05 10:58:10 CEST 2006-->
+<TITLE>
+Generated Documentation (Untitled)
+</TITLE>
+<SCRIPT type="text/javascript">
+ targetPage = "" + window.location.search;
+ if (targetPage != "" && targetPage != "undefined")
+ targetPage = targetPage.substring(1);
+ function loadFrames() {
+ if (targetPage != "" && targetPage != "undefined")
+ top.classFrame.location = top.targetPage;
+ }
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+</HEAD>
+<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">
+<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+<FRAME src="org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<NOFRAMES>
+<H2>
+Frame Alert</H2>
+
+<P>
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+<BR>
+Link to<A HREF="org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html">Non-frame version.</A>
+</NOFRAMES>
+</FRAMESET>
+</HTML>
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,266 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Thu Oct 05 10:58:10 CEST 2006 -->
+<TITLE>
+BankQuoteReplyTest
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteReplyTest class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="BankQuoteReplyTest";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../index.html?org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BankQuoteReplyTest.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.jboss.soa.esb.samples.loanbroker.banks</FONT>
+<BR>
+Class BankQuoteReplyTest</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../../../resources/inherit.gif" ALT="extended by "><B>org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteReplyTest</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>BankQuoteReplyTest</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html#BankQuoteReplyTest()">BankQuoteReplyTest</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html#obtainExampleXML()">obtainExampleXML</A></B>()</CODE>
+
+<BR>
+ Testing the XML layout of a BankQuoteReply</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static junit.framework.Test</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html#suite()">suite</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="BankQuoteReplyTest()"><!-- --></A><H3>
+BankQuoteReplyTest</H3>
+<PRE>
+public <B>BankQuoteReplyTest</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="obtainExampleXML()"><!-- --></A><H3>
+obtainExampleXML</H3>
+<PRE>
+public void <B>obtainExampleXML</B>()</PRE>
+<DL>
+<DD>Testing the XML layout of a BankQuoteReply
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="suite()"><!-- --></A><H3>
+suite</H3>
+<PRE>
+public static junit.framework.Test <B>suite</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV CLASS
+ <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../index.html?org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BankQuoteReplyTest.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,266 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Thu Oct 05 10:58:10 CEST 2006 -->
+<TITLE>
+BankQuoteRequestTest
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteRequestTest class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="BankQuoteRequestTest";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../index.html?org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BankQuoteRequestTest.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.jboss.soa.esb.samples.loanbroker.banks</FONT>
+<BR>
+Class BankQuoteRequestTest</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../../../resources/inherit.gif" ALT="extended by "><B>org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteRequestTest</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>BankQuoteRequestTest</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html#BankQuoteRequestTest()">BankQuoteRequestTest</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html#obtainExampleXML()">obtainExampleXML</A></B>()</CODE>
+
+<BR>
+ Testing the XML layout of a BankQuote</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static junit.framework.Test</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html#suite()">suite</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="BankQuoteRequestTest()"><!-- --></A><H3>
+BankQuoteRequestTest</H3>
+<PRE>
+public <B>BankQuoteRequestTest</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="obtainExampleXML()"><!-- --></A><H3>
+obtainExampleXML</H3>
+<PRE>
+public void <B>obtainExampleXML</B>()</PRE>
+<DL>
+<DD>Testing the XML layout of a BankQuote
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="suite()"><!-- --></A><H3>
+suite</H3>
+<PRE>
+public static junit.framework.Test <B>suite</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../index.html?org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BankQuoteRequestTest.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,266 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Thu Oct 05 10:58:10 CEST 2006 -->
+<TITLE>
+BankTest
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.jboss.soa.esb.samples.loanbroker.banks.BankTest class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="BankTest";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../index.html?org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BankTest.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.jboss.soa.esb.samples.loanbroker.banks</FONT>
+<BR>
+Class BankTest</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../../../resources/inherit.gif" ALT="extended by "><B>org.jboss.soa.esb.samples.loanbroker.banks.BankTest</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>BankTest</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html#BankTest()">BankTest</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html#processLoanRequest()">processLoanRequest</A></B>()</CODE>
+
+<BR>
+ Tests the computation of the interestRate for the TestBank.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static junit.framework.Test</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html#suite()">suite</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="BankTest()"><!-- --></A><H3>
+BankTest</H3>
+<PRE>
+public <B>BankTest</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="processLoanRequest()"><!-- --></A><H3>
+processLoanRequest</H3>
+<PRE>
+public void <B>processLoanRequest</B>()</PRE>
+<DL>
+<DD>Tests the computation of the interestRate for the TestBank.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="suite()"><!-- --></A><H3>
+suite</H3>
+<PRE>
+public static junit.framework.Test <B>suite</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../index.html?org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="BankTest.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,268 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Thu Oct 05 10:58:10 CEST 2006 -->
+<TITLE>
+FlatFileProcessorTest
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.jboss.soa.esb.samples.loanbroker.banks.FlatFileProcessorTest class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="FlatFileProcessorTest";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../index.html?org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="FlatFileProcessorTest.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.jboss.soa.esb.samples.loanbroker.banks</FONT>
+<BR>
+Class FlatFileProcessorTest</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../../../resources/inherit.gif" ALT="extended by "><B>org.jboss.soa.esb.samples.loanbroker.banks.FlatFileProcessorTest</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>FlatFileProcessorTest</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html#FlatFileProcessorTest()">FlatFileProcessorTest</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html#processRequest()">processRequest</A></B>()</CODE>
+
+<BR>
+ Tests the processing of flat file containing a loan quote request.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static junit.framework.Test</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html#suite()">suite</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="FlatFileProcessorTest()"><!-- --></A><H3>
+FlatFileProcessorTest</H3>
+<PRE>
+public <B>FlatFileProcessorTest</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="processRequest()"><!-- --></A><H3>
+processRequest</H3>
+<PRE>
+public void <B>processRequest</B>()</PRE>
+<DL>
+<DD>Tests the processing of flat file containing a loan quote request. First
+ we try to find a temporary directory. When this succeeds we drop a
+ loan request file in there and try to process it.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="suite()"><!-- --></A><H3>
+suite</H3>
+<PRE>
+public static junit.framework.Test <B>suite</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>PREV CLASS</B></A>
+ <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../index.html?org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="FlatFileProcessorTest.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,268 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Thu Oct 05 10:58:10 CEST 2006 -->
+<TITLE>
+JmsProcessorTest
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.jboss.soa.esb.samples.loanbroker.banks.JmsProcessorTest class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="JmsProcessorTest";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../index.html?org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="JmsProcessorTest.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.jboss.soa.esb.samples.loanbroker.banks</FONT>
+<BR>
+Class JmsProcessorTest</H2>
+<PRE>
+java.lang.Object
+ <IMG SRC="../../../../../../../resources/inherit.gif" ALT="extended by "><B>org.jboss.soa.esb.samples.loanbroker.banks.JmsProcessorTest</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>JmsProcessorTest</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html#JmsProcessorTest()">JmsProcessorTest</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html#sendLoanRequestXML()">sendLoanRequestXML</A></B>()</CODE>
+
+<BR>
+ This can be activate if the server is running and you want
+ to drop a message on the queue</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static junit.framework.Test</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html#suite()">suite</A></B>()</CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="JmsProcessorTest()"><!-- --></A><H3>
+JmsProcessorTest</H3>
+<PRE>
+public <B>JmsProcessorTest</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="sendLoanRequestXML()"><!-- --></A><H3>
+sendLoanRequestXML</H3>
+<PRE>
+public void <B>sendLoanRequestXML</B>()</PRE>
+<DL>
+<DD>This can be activate if the server is running and you want
+ to drop a message on the queue
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="suite()"><!-- --></A><H3>
+suite</H3>
+<PRE>
+public static junit.framework.Test <B>suite</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>PREV CLASS</B></A>
+ NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../index.html?org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="JmsProcessorTest.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/package-frame.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/package-frame.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/package-frame.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Thu Oct 05 10:58:10 CEST 2006 -->
+<TITLE>
+org.jboss.soa.esb.samples.loanbroker.banks
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.jboss.soa.esb.samples.loanbroker.banks package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html" target="classFrame">org.jboss.soa.esb.samples.loanbroker.banks</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="BankQuoteReplyTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks" target="classFrame">BankQuoteReplyTest</A>
+<BR>
+<A HREF="BankQuoteRequestTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks" target="classFrame">BankQuoteRequestTest</A>
+<BR>
+<A HREF="BankTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks" target="classFrame">BankTest</A>
+<BR>
+<A HREF="FlatFileProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks" target="classFrame">FlatFileProcessorTest</A>
+<BR>
+<A HREF="JmsProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks" target="classFrame">JmsProcessorTest</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Thu Oct 05 10:58:10 CEST 2006 -->
+<TITLE>
+org.jboss.soa.esb.samples.loanbroker.banks
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.jboss.soa.esb.samples.loanbroker.banks package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="org.jboss.soa.esb.samples.loanbroker.banks";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV PACKAGE
+ NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../index.html?org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package org.jboss.soa.esb.samples.loanbroker.banks
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">BankQuoteReplyTest</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">BankQuoteRequestTest</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">BankTest</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">FlatFileProcessorTest</A></B></TD>
+<TD> </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks">JmsProcessorTest</A></B></TD>
+<TD> </TD>
+</TR>
+</TABLE>
+
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV PACKAGE
+ NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../index.html?org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/package-tree.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/package-tree.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/org/jboss/soa/esb/samples/loanbroker/banks/package-tree.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Thu Oct 05 10:58:10 CEST 2006 -->
+<TITLE>
+org.jboss.soa.esb.samples.loanbroker.banks Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="org.jboss.soa.esb.samples.loanbroker.banks Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../index.html?org/jboss/soa/esb/samples/loanbroker/banks/package-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package org.jboss.soa.esb.samples.loanbroker.banks
+</H2>
+</CENTER>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>BankQuoteReplyTest</B></A><LI TYPE="circle">org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>BankQuoteRequestTest</B></A><LI TYPE="circle">org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>BankTest</B></A><LI TYPE="circle">org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>FlatFileProcessorTest</B></A><LI TY!
PE="circle">org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>JmsProcessorTest</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../../../index.html?org/jboss/soa/esb/samples/loanbroker/banks/package-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/overview-tree.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/overview-tree.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/overview-tree.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Thu Oct 05 10:58:10 CEST 2006 -->
+<TITLE>
+Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ parent.document.title="Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For All Packages</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="org/jboss/soa/esb/samples/loanbroker/banks/package-tree.html">org.jboss.soa.esb.samples.loanbroker.banks</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>BankQuoteReplyTest</B></A><LI TYPE="circle">org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>BankQuoteRequestTest</B></A><LI TYPE="circle">org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="org/jboss/soa/esb/samples/loanbroker/banks/BankTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>BankTest</B></A><LI TYPE="circle">org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>FlatFileProcessorTest</B></A><LI TYPE="circle">org.jboss.soa.esb.samples.loanbroker.banks.<A HREF="org/jboss/soa/esb/sa!
mples/loanbroker/banks/JmsProcessorTest.html" title="class in org.jboss.soa.esb.samples.loanbroker.banks"><B>JmsProcessorTest</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="org/jboss/soa/esb/samples/loanbroker/banks/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ PREV
+ NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>
+ <A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>
+ <SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/package-list
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/package-list 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/package-list 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1 @@
+org.jboss.soa.esb.samples.loanbroker.banks
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/resources/inherit.gif
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/javadocs/resources/inherit.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/javadocs/stylesheet.css
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/javadocs/stylesheet.css 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/javadocs/stylesheet.css 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,29 @@
+/* Javadoc style sheet */
+
+/* Define colors, fonts and other style attributes here to override the defaults */
+
+/* Page background color */
+body { background-color: #FFFFFF }
+
+/* Headings */
+h1 { font-size: 145% }
+
+/* Table colors */
+.TableHeadingColor { background: #CCCCFF } /* Dark mauve */
+.TableSubHeadingColor { background: #EEEEFF } /* Light mauve */
+.TableRowColor { background: #FFFFFF } /* White */
+
+/* Font used in left-hand frame lists */
+.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif }
+.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif }
+.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif }
+
+/* Navigation bar fonts and colors */
+.NavBarCell1 { background-color:#EEEEFF;} /* Light mauve */
+.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */
+.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;}
+.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}
+
+.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
+.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
+
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/IDE/JBossIDE/.classpath
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/IDE/JBossIDE/.classpath 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/IDE/JBossIDE/.classpath 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="lib" path="lib/axis.jar"/>
+ <classpathentry kind="src" path="banks/src"/>
+ <classpathentry kind="src" path="banks/test"/>
+ <classpathentry kind="src" path="java/src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="lib" path="banks/lib/ext/junit-4.1.jar"/>
+ <classpathentry kind="lib" path="banks/lib/ext/org.sadun.util.jar"/>
+ <classpathentry kind="lib" path="banks/lib/ext/pollmgt.jar"/>
+ <classpathentry kind="lib" path="banks/lib/ext/xstream-1.1.3.jar"/>
+ <classpathentry kind="lib" path="lib/log4j.jar"/>
+ <classpathentry kind="var" path="JBOSS_HOME/client/jbossall-client.jar"/>
+ <classpathentry kind="var" path="JBOSS_HOME/client/jbossws-client.jar"/>
+ <classpathentry kind="var" path="JBOSS_HOME/client/mail.jar"/>
+ <classpathentry kind="var" path="JBOSS_HOME/server/default/deploy/ejb3.deployer/jboss-annotations-ejb3.jar"/>
+ <classpathentry kind="var" path="JBOSS_HOME/server/default/deploy/ejb3.deployer/jboss-ejb3.jar"/>
+ <classpathentry kind="var" path="JBOSS_HOME/server/default/deploy/ejb3.deployer/jboss-ejb3x.jar"/>
+ <classpathentry kind="var" path="JBOSS_HOME/server/default/deploy/jboss-aop-jdk50.deployer/jboss-aop-jdk50.jar"/>
+ <classpathentry kind="var" path="JBOSS_HOME/server/default/deploy/jboss-aop-jdk50.deployer/jboss-aspect-library-jdk50.jar"/>
+ <classpathentry kind="var" path="JBOSS_HOME/server/default/deploy/jboss-aop-jdk50.deployer/trove.jar"/>
+ <classpathentry kind="var" path="ESB_HOME/jbossesb-rosetta.jar"/>
+ <classpathentry kind="var" path="ESB_HOME/jbossesb-listeners.jar"/>
+ <classpathentry kind="var" path="ESB_HOME/jbossesb-processors.jar"/>
+ <classpathentry kind="var" path="ESB_HOME/jbossesb-services.jar"/>
+ <classpathentry exported="true" kind="con" path="org.jboss.ide.eclipse.jdt.core.classpath.axis-1.2"/>
+ <classpathentry exported="true" kind="con" path="org.jboss.ide.eclipse.jdt.core.classpath.wsi-1.0"/>
+ <classpathentry exported="true" kind="con" path="org.jboss.ide.eclipse.jdt.core.classpath.junit-3.8.1"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/IDE/JBossIDE/.project
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/IDE/JBossIDE/.project 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/IDE/JBossIDE/.project 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>loanbrokerdemo</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/README.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/README.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/README.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1 @@
+Edit the loanbroker.properties file before building.
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/ant/src/org/jboss/antx/StringReplace.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/ant/src/org/jboss/antx/StringReplace.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/ant/src/org/jboss/antx/StringReplace.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,83 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.antx;
+
+//import java.io.File;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+
+/**
+ * Simple task to perform a replace operation on a string and store the result in a
+ * property.
+ * <p/>
+ * I'd have thought there was some way of doing this within ant already but I couldn't
+ * find out if or how :-).
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class StringReplace extends Task {
+
+ private String string;
+ private String find;
+ private String replace;
+ private String property;
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.Task#execute()
+ */
+ @Override
+ public void execute() throws BuildException {
+ if(string == null || find == null || replace == null || property == null) {
+ throw new BuildException("The 'string', 'find', 'replace' and 'property' attributes must be set on the strreplace task.");
+ }
+ getProject().setNewProperty(property, string.replace(find, replace));
+ }
+
+ /**
+ * @param property The property property value to set.
+ */
+ public void setProperty(String property) {
+ this.property = property;
+ }
+
+ /**
+ * @param string The string property value to set.
+ */
+ public void setString(String path) {
+ this.string = path;
+ }
+
+ /**
+ * @param find The find property value to set.
+ */
+ public void setFind(String find) {
+ this.find = find;
+ }
+
+ /**
+ * @param replace The replace property value to set.
+ */
+ public void setReplace(String replace) {
+ this.replace = replace;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/ant/src/org/jboss/antx/ToURI.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/ant/src/org/jboss/antx/ToURI.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/ant/src/org/jboss/antx/ToURI.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,81 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.antx;
+
+import java.io.File;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+
+/**
+ * Simple task to take an file path attribute value, convert it to fully qualified
+ * URI and store the result in a new property.
+ * <p/>
+ * I'd have thought there was some way of doing this within ant already but I couldn't
+ * find out if or how :-).
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class ToURI extends Task {
+
+ private String path;
+ private String property;
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.Task#execute()
+ */
+ @Override
+ public void execute() throws BuildException {
+ if(path == null || property == null) {
+ throw new BuildException("The 'path' and 'property' attributes must be set on the touri task.");
+ }
+ getProject().setNewProperty(property, new File(path).toURI().toString());
+ }
+
+ /**
+ * @return The property property value.
+ */
+ public String getProperty() {
+ return property;
+ }
+
+ /**
+ * @param property The property property value to set.
+ */
+ public void setProperty(String property) {
+ this.property = property;
+ }
+
+ /**
+ * @return The path property value.
+ */
+ public String getPath() {
+ return path;
+ }
+
+ /**
+ * @param path The path property value to set.
+ */
+ public void setPath(String path) {
+ this.path = path;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/JBoss ESB Loan Broker Banks Guide.doc
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/JBoss ESB Loan Broker Banks Guide.doc
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/JBoss ESB Loan Broker Banks Guide.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/JBoss ESB Loan Broker Banks Guide.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/JBoss ESB Loan Broker Banks Guide.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,489 @@
+<html xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns:st1="urn:schemas-microsoft-com:office:smarttags"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 11">
+<meta name=Originator content="Microsoft Word 11">
+<link rel=File-List
+href="JBoss%20ESB%20Loan%20Broker%20Banks%20Guide_files/filelist.xml">
+<title>BANKS FOR THE LOANBROKER DEMO</title>
+<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
+ name="country-region"/>
+<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
+ name="Street"/>
+<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
+ name="address"/>
+<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
+ name="place"/>
+<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
+ name="City"/>
+<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
+ name="State"/>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>kstam</o:Author>
+ <o:LastAuthor>kstam</o:LastAuthor>
+ <o:Revision>2</o:Revision>
+ <o:TotalTime>7</o:TotalTime>
+ <o:Created>2006-08-03T14:42:00Z</o:Created>
+ <o:LastSaved>2006-08-03T14:42:00Z</o:LastSaved>
+ <o:Pages>1</o:Pages>
+ <o:Words>743</o:Words>
+ <o:Characters>4237</o:Characters>
+ <o:Company>JBoss, Inc.</o:Company>
+ <o:Lines>35</o:Lines>
+ <o:Paragraphs>9</o:Paragraphs>
+ <o:CharactersWithSpaces>4971</o:CharactersWithSpaces>
+ <o:Version>11.6568</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:SpellingState>Clean</w:SpellingState>
+ <w:GrammarState>Clean</w:GrammarState>
+ <w:PunctuationKerning/>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:Compatibility>
+ <w:BreakWrappedTables/>
+ <w:SnapToGridInCell/>
+ <w:WrapTextWithPunct/>
+ <w:UseAsianBreakRules/>
+ <w:DontGrowAutofit/>
+ </w:Compatibility>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ </w:WordDocument>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
+ </w:LatentStyles>
+</xml><![endif]--><!--[if !mso]><object
+ classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui></object>
+<style>
+st1\:*{behavior:url(#ieooui) }
+</style>
+<![endif]-->
+<style>
+<!--
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ mso-fareast-font-family:"Times New Roman";}
+h1
+ {mso-style-link:"Heading 1 Char";
+ mso-style-next:Normal;
+ margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:1;
+ font-size:16.0pt;
+ font-family:Arial;
+ mso-font-kerning:16.0pt;}
+h2
+ {mso-style-next:Normal;
+ margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:2;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic;}
+h3
+ {mso-style-next:Normal;
+ margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:3;
+ font-size:13.0pt;
+ font-family:Arial;}
+a:link, span.MsoHyperlink
+ {color:blue;
+ text-decoration:underline;
+ text-underline:single;}
+a:visited, span.MsoHyperlinkFollowed
+ {color:purple;
+ text-decoration:underline;
+ text-underline:single;}
+span.Heading1Char
+ {mso-style-name:"Heading 1 Char";
+ mso-style-locked:yes;
+ mso-style-link:"Heading 1";
+ mso-ansi-font-size:16.0pt;
+ mso-bidi-font-size:16.0pt;
+ font-family:Arial;
+ mso-ascii-font-family:Arial;
+ mso-hansi-font-family:Arial;
+ mso-bidi-font-family:Arial;
+ mso-font-kerning:16.0pt;
+ mso-ansi-language:EN-US;
+ mso-fareast-language:EN-US;
+ mso-bidi-language:AR-SA;
+ font-weight:bold;}
+span.SpellE
+ {mso-style-name:"";
+ mso-spl-e:yes;}
+span.GramE
+ {mso-style-name:"";
+ mso-gram-e:yes;}
+ at page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.25in 1.0in 1.25in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+-->
+</style>
+<!--[if gte mso 10]>
+<style>
+ /* Style Definitions */
+ table.MsoNormalTable
+ {mso-style-name:"Table Normal";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-noshow:yes;
+ mso-style-parent:"";
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Times New Roman";
+ mso-ansi-language:#0400;
+ mso-fareast-language:#0400;
+ mso-bidi-language:#0400;}
+</style>
+<![endif]-->
+</head>
+
+<body lang=EN-US link=blue vlink=purple style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<h1>JBoss ESB Loan Broker Banks Guide</h1>
+
+<p class=MsoNormal><o:p> </o:p></p>
+
+<p class=MsoNormal>By: Kurt Stam (<a href="mailto:kurt.stam at jboss.com">kurt.stam at jboss.com</a>)</p>
+
+<p class=MsoNormal><o:p> </o:p></p>
+
+<p class=MsoNormal>JBoss ESB JBoss Labs Home Page: <a
+href="http://labs.jboss.com/portal/jbossesb">http://labs.jboss.com/portal/jbossesb</a></p>
+
+<p class=MsoNormal><o:p> </o:p></p>
+
+<p class=MsoNormal>JBoss ESB Developer Community Forums: <a
+href="http://www.jboss.com/index.html?module=bb&op=viewforum&f=220">http://www.jboss.com/index.html?module=bb&op=viewforum&f=220</a></p>
+
+<p class=MsoNormal><o:p> </o:p></p>
+
+<p class=MsoNormal>########################################################################</p>
+
+<p class=MsoNormal># JBoss, Home of Professional Open Source</p>
+
+<p class=MsoNormal># Copyright 2006, JBoss Inc., and individual contributors as
+indicated</p>
+
+<p class=MsoNormal># <span class=GramE>by</span> the @authors tag. See the
+copyright.txt in the distribution for a</p>
+
+<p class=MsoNormal># <span class=GramE>full</span> listing of individual
+contributors.</p>
+
+<p class=MsoNormal>#</p>
+
+<p class=MsoNormal># <span class=GramE>This</span> is free software; you can
+redistribute it and/or modify it</p>
+
+<p class=MsoNormal># <span class=GramE>under</span> the terms of the GNU Lesser
+General Public License as</p>
+
+<p class=MsoNormal># published by the Free Software Foundation; either version
+2.1 of</p>
+
+<p class=MsoNormal># <span class=GramE>the</span> License, or (at your option)
+any later version.</p>
+
+<p class=MsoNormal>#</p>
+
+<p class=MsoNormal># <span class=GramE>This</span> software is distributed in
+the hope that it will be useful,</p>
+
+<p class=MsoNormal># <span class=GramE>but</span> WITHOUT ANY WARRANTY; without
+even the implied warranty of</p>
+
+<p class=MsoNormal><span class=GramE># MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE.</span> See the GNU</p>
+
+<p class=MsoNormal><span class=GramE># Lesser General Public License for more
+details.</span></p>
+
+<p class=MsoNormal>#</p>
+
+<p class=MsoNormal># <span class=GramE>You</span> should have received a copy
+of the GNU Lesser General Public</p>
+
+<p class=MsoNormal># License along with this software; if not, write to the
+Free</p>
+
+<p class=MsoNormal># Software Foundation, Inc., <st1:Street w:st="on"><st1:address
+ w:st="on">51 Franklin St</st1:address></st1:Street>, Fifth Floor, <st1:place
+w:st="on"><st1:City w:st="on">Boston</st1:City>, <st1:State w:st="on">MA</st1:State></st1:place></p>
+
+<p class=MsoNormal># 02110-1301 <st1:place w:st="on"><st1:country-region w:st="on">USA</st1:country-region></st1:place>,
+or see the FSF site: http://www.fsf.org.</p>
+
+<p class=MsoNormal>########################################################################</p>
+
+<p class=MsoNormal><b><span style='font-size:16.0pt;font-family:Arial;
+background:white;mso-highlight:white;mso-font-kerning:16.0pt'><o:p> </o:p></span></b></p>
+
+<p class=MsoNormal><b><span style='font-size:16.0pt;font-family:Arial;
+background:white;mso-highlight:white;mso-font-kerning:16.0pt'><o:p> </o:p></span></b></p>
+
+<b><span style='font-size:16.0pt;font-family:Arial;mso-fareast-font-family:
+"Times New Roman";background:white;mso-highlight:white;mso-font-kerning:16.0pt;
+mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br
+clear=all style='page-break-before:always'>
+</span></b>
+
+<p class=MsoNormal><span class=Heading1Char><span style='font-size:16.0pt;
+background:white;mso-highlight:white'>1. Introduction</span></span><span
+class=Heading1Char><span style='font-size:16.0pt'><o:p></o:p></span></span></p>
+
+<p class=MsoNormal><span style='background:white;mso-highlight:white'>As part
+of the Loan Broker Demo, the broker goes out to a few banks to obtain loan
+quotes.</span></p>
+
+<p class=MsoNormal><span style='background:white;mso-highlight:white'>This
+folder contains two banks:</span></p>
+
+<p class=MsoNormal><o:p> </o:p></p>
+
+<p class=MsoNormal><span style='background:white;mso-highlight:white'>1. <span
+class=GramE>a</span> Flat File Based Bank, and</span></p>
+
+<p class=MsoNormal><span style='background:white;mso-highlight:white'>2. <span
+class=GramE>a</span> JMS Based bank.</span></p>
+
+<p class=MsoNormal><o:p> </o:p></p>
+
+<p class=MsoNormal><span style='background:white;mso-highlight:white'>To make
+the demo a little more interesting we have the banks use two different
+protocols (flat file and JMS), and two</span> <span style='background:white;
+mso-highlight:white'>different message formats (<span class=SpellE>csv</span>,
+xml). You can customize some of the configuration in the <span class=SpellE>bank.properties</span>
+file. Not that</span> <span style='background:white;mso-highlight:white'>the
+banks use to log4j.xml in the current directory. </span></p>
+
+<h2><span style='background:white;mso-highlight:white'>2. Flat File Based Bank</span></h2>
+
+<h3><span style='background:white;mso-highlight:white'>2.1 Starting the bank</span></h3>
+
+<p class=MsoNormal><span style='background:white;mso-highlight:white'>The Flat
+File Based Bank uses the property '<span class=SpellE>file.monitored.directory</span>'
+which by default is set to 'C<span class=GramE>:\</span>Temp\<span
+class=SpellE>BankInput</span>'.</span> <span style='background:white;
+mso-highlight:white'>You can start this bank by typing:</span></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+class=GramE><span style='font-size:10.0pt;font-family:"Courier New";background:
+white;mso-highlight:white'>ant</span></span><span style='font-size:10.0pt;
+font-family:"Courier New";background:white;mso-highlight:white'> <span
+class=SpellE>runFileBank</span></span><span style='font-size:10.0pt;font-family:
+"Courier New"'><o:p></o:p></span></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+style='font-size:10.0pt;font-family:"Courier New"'>* Not of caution, there is
+no filter set in the <span class=SpellE>poller</span> code, so it will pick up
+and try to move any files it finds.<o:p></o:p></span></p>
+
+<h3><span style='background:white;mso-highlight:white'>2.2 Processing details</span></h3>
+
+<p class=MsoNormal><span style='background:white;mso-highlight:white'>The <span
+class=SpellE>FlatFilePollManager</span> monitors a directory specified in the
+configuration. When a file arrives it</span> <span style='background:white;
+mso-highlight:white'>tries to process the content assuming it contains one line
+with loan request information.</span> <span style='background:white;mso-highlight:
+white'>So for example the content of the file could read something like </span></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+style='font-size:10.0pt;font-family:"Courier New";background:white;mso-highlight:
+white'><o:p> </o:p></span></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+style='font-size:10.0pt;font-family:"Courier New";background:white;mso-highlight:
+white'>23456890<span class=GramE>,3,4,20000,5</span></span><span
+style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p>
+
+<p class=MsoNormal><span style='background:white;mso-highlight:white'>The order
+of values needs to be <span class=SpellE>SocialSecurityNumber</span>, <span
+class=SpellE>CreditScore</span>, <span class=SpellE>HistoryLength</span>
+[month], <span class=SpellE>LoanAmount</span> [dollar],</span> <span
+style='background:white;mso-highlight:white'>and finally the <span
+class=SpellE>LoanTerm</span> [month]. The request will be processed and a <span
+class=SpellE>BankQouteReply</span> is generated. The</span> <span
+style='background:white;mso-highlight:white'>original file is moved to a
+'processed' directory, and the <span class=SpellE>BankQuoteReply</span> is
+serialized to an 'outgoing' directory from <span class=GramE>the it</span> can
+be picked up by the system that dropped the request.</span></p>
+
+<h3><span style='background:white;mso-highlight:white'>2.3 Testing</span></h3>
+
+<p class=MsoNormal><span style='background:white;mso-highlight:white'>You can
+test whether or not the bank is working by dropping a file in the monitored
+directory (C:\Temp\BankInput).Let's say we</span> <span style='background:white;
+mso-highlight:white'>use a file with name 'request.txt'. The file should be
+ASCII and can contain the following line:</span></p>
+
+<p class=MsoNormal><o:p> </o:p></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+style='font-size:10.0pt;font-family:"Courier New";background:white;mso-highlight:
+white'>23456890<span class=GramE>,3,4,20000,5</span></span><span
+style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p>
+
+<p class=MsoNormal><span style='background:white;mso-highlight:white'>The file
+should get moved to the C:\Temp\BankInput\processed directory, and in the
+C:\Temp\ <span class=SpellE>BankInput</span>\outgoing directory a reply file
+should</span> <span style='background:white;mso-highlight:white'>appear with
+the name 'reply_to_request.txt'. It should contain the line:</span></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+style='font-size:10.0pt;font-family:"Courier New";background:white;mso-highlight:
+white'>8.29<span class=GramE>,FileBasedBank</span>-1,0</span><span
+style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p>
+
+<p class=MsoNormal><span class=GramE><span style='background:white;mso-highlight:
+white'>which</span></span><span style='background:white;mso-highlight:white'>
+means the </span><span class=SpellE><span style='font-size:10.0pt;mso-bidi-font-size:
+12.0pt;font-family:"Courier New";mso-bidi-font-family:"Times New Roman";
+background:white;mso-highlight:white'>QuoteId</span></span><span
+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:"Courier New";
+mso-bidi-font-family:"Times New Roman";background:white;mso-highlight:white'>=FileBasedBank-1</span><span
+style='background:white;mso-highlight:white'>, the </span><span
+style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:"Courier New";
+mso-bidi-font-family:"Times New Roman";background:white;mso-highlight:white'>interest=8.29</span><span
+style='background:white;mso-highlight:white'> and the </span><span
+class=SpellE><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
+font-family:"Courier New";mso-bidi-font-family:"Times New Roman";background:
+white;mso-highlight:white'>errorCode</span></span><span style='font-size:10.0pt;
+mso-bidi-font-size:12.0pt;font-family:"Courier New";mso-bidi-font-family:"Times New Roman";
+background:white;mso-highlight:white'>=0</span><span style='background:white;
+mso-highlight:white'> (which means success). You can check the logging for</span>
+<span style='background:white;mso-highlight:white'>additional details.</span></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p>
+
+<h2><span style='background:white;mso-highlight:white'>3. JMS Based Bank</span></h2>
+
+<h3><span style='background:white;mso-highlight:white'>3.1 Starting the bank</span></h3>
+
+<p class=MsoNormal><span style='background:white;mso-highlight:white'>Before
+starting the bank you need to bring up your JMS provider. For the example this
+is the JBoss AS. We are using</span> <span style='background:white;mso-highlight:
+white'>the default queues (C and D). The JMS bank uses the properties: <span
+class=SpellE>jms.provider.url</span>, <span class=SpellE>jms.queue.in</span>
+and <span class=SpellE>jms.queue.out</span>. By</span> <span style='background:
+white;mso-highlight:white'>default these are set to '<span class=SpellE>localhost</span>',
+'queue/C' and 'queue/D'. So, by default, it assumes <st1:place w:st="on"><st1:City
+ w:st="on">JBoss</st1:City> <st1:State w:st="on">AS</st1:State></st1:place> is
+running on the <span class=SpellE>localhost</span>.</span> <span
+style='background:white;mso-highlight:white'>Next you can start the JMS Based
+bank by typing:</span></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+class=GramE><span style='font-size:10.0pt;font-family:"Courier New";background:
+white;mso-highlight:white'>ant</span></span><span style='font-size:10.0pt;
+font-family:"Courier New";background:white;mso-highlight:white'> <span
+class=SpellE>runJMSBank</span></span><span style='font-size:10.0pt;font-family:
+"Courier New"'><o:p></o:p></span></p>
+
+<h3><span style='background:white;mso-highlight:white'>3.2 Processing details</span></h3>
+
+<p class=MsoNormal><span style='background:white;mso-highlight:white'>The <span
+class=SpellE>JMSManager</span> listens to an incoming queue (by default queue/C
+on <span class=SpellE>localhost</span>). It consumes the</span> <span
+style='background:white;mso-highlight:white'>message assuming it is a <span
+class=SpellE>TextMessage</span>, and that the text is an XML structure that can
+be marshaled</span> <span style='background:white;mso-highlight:white'>into a <span
+class=SpellE>BankQuoteRequest</span>. The request will be processed and a <span
+class=SpellE>BankQuote</span> Reply will be serialized to XML</span> <span
+style='background:white;mso-highlight:white'>and send to the outgoing queue (by
+default this is queue/D on <span class=SpellE>localhost</span>). If the
+processing results</span> <span style='background:white;mso-highlight:white'>in
+an error a <span class=SpellE>BankQuoteReply</span> with <span class=SpellE>ErrorCode</span>
+other then 0 is send to the outgoing queue.</span></p>
+
+<h3><span style='background:white;mso-highlight:white'>3.3 Testing</span></h3>
+
+<p class=MsoNormal><span style='background:white;mso-highlight:white'>The unit
+test <span class=SpellE>JMSProcessorTest</span> drops a <span class=SpellE>BankQuoteRequest</span>
+Message on the queue/C of <span class=SpellE>localhost</span>. You can use</span></p>
+
+<p class=MsoNormal><span class=GramE><span style='background:white;mso-highlight:
+white'>this</span></span><span style='background:white;mso-highlight:white'>
+test to check the health of the <span class=SpellE>JMSBank</span>. The tests
+can be executed by typing</span></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p>
+
+<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
+class=GramE><span style='font-size:10.0pt;font-family:"Courier New";background:
+white;mso-highlight:white'>ant</span></span><span style='font-size:10.0pt;
+font-family:"Courier New";background:white;mso-highlight:white'> test</span><span
+style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>
+
+<h1><span style='background:white;mso-highlight:white'>4. Finally</span></h1>
+
+<p class=MsoNormal><span style='background:white;mso-highlight:white'>You are
+now ready to run the larger Load Broker Demo itself.</span></p>
+
+</div>
+
+</body>
+
+</html>
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/bank.properties.template
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/bank.properties.template 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/bank.properties.template 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,5 @@
+jms.provider.url=@jndi.host@
+file.monitored.directory=@cwd.dir@/@trail.runtime.dir@/BankInput
+
+jms.queue.in=queue/C
+jms.queue.out=queue/D
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/build.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/build.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/build.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,121 @@
+<project name="BANKS" default="compile" basedir=".">
+
+ <property file="bank.properties"/>
+ <!-- Some default build locations -->
+ <property name="org.jboss.esb.ext.lib.dir" value="../lib"/>
+ <property name="org.jboss.esb.samples.loanbroker.banks.dest" value="${basedir}/build"/>
+ <property name="org.jboss.esb.samples.loanbroker.banks.classes.dir" value="${basedir}/build/classes/banks/"/>
+ <property name="org.jboss.esb.samples.loanbroker.banks.testclasses.dir" value="${basedir}/build/classes/tests/"/>
+ <property name="org.jboss.esb.samples.loanbroker.banks.src.dir" value="${basedir}/src"/>
+ <property name="org.jboss.esb.samples.loanbroker.banks.test.dir" value="${basedir}/test"/>
+ <property name="org.jboss.esb.samples.loanbroker.banks.jar.dest" value="${basedir}/build/dist/lib/"/>
+ <property name="org.jboss.esb.samples.loanbroker.banks.lib.ext.dir" value="${basedir}/lib/ext"/>
+ <property name="org.jboss.esb.samples.loanbroker.banks.tests.report.dir" value="${basedir}/build/tests"/>
+
+ <path id="org.jboss.esb.samples.loanbroker.banks.classpath">
+ <fileset dir="${org.jboss.esb.samples.loanbroker.banks.lib.ext.dir}" includes="*.jar"/>
+ <fileset dir="${org.jboss.esb.ext.lib.dir}" includes="log4j.jar"/>
+ </path>
+ <path id="org.jboss.esb.samples.loanbroker.banks.testclasspath">
+ <fileset dir="${org.jboss.esb.samples.loanbroker.banks.lib.ext.dir}" includes="*.jar"/>
+ <fileset dir="${org.jboss.esb.ext.lib.dir}" includes="log4j.jar"/>
+ <pathelement location="${org.jboss.esb.samples.loanbroker.banks.classes.dir}"/>
+ <pathelement location="${org.jboss.esb.samples.loanbroker.banks.testclasses.dir}"/>
+ <pathelement location="."/>
+ </path>
+
+ <target name="clean">
+ <delete dir="${org.jboss.esb.samples.loanbroker.banks.dest}" />
+ </target>
+ <!-- =================================================================== -->
+ <!-- Prepares the directory structure -->
+ <!-- =================================================================== -->
+ <target name="org.jboss.esb.samples.loanbroker.banks.prepare">
+ <mkdir dir="${org.jboss.esb.samples.loanbroker.banks.dest}"/>
+ <mkdir dir="${org.jboss.esb.samples.loanbroker.banks.dest}/dist"/>
+ <mkdir dir="${org.jboss.esb.samples.loanbroker.banks.dest}/classes/banks"/>
+ <mkdir dir="${org.jboss.esb.samples.loanbroker.banks.dest}/classes/tests"/>
+ <mkdir dir="${org.jboss.esb.samples.loanbroker.banks.dest}/tests"/>
+ <mkdir dir="${org.jboss.esb.samples.loanbroker.banks.dest}/dist/lib"/>
+ </target>
+
+ <!-- Compilation targets -->
+ <target name="org.jboss.esb.samples.loanbroker.banks.compile" depends="org.jboss.esb.samples.loanbroker.banks.prepare"
+ description="Compile all classes">
+
+ <javac
+ destdir="${org.jboss.esb.samples.loanbroker.banks.classes.dir}"
+ classpathref="org.jboss.esb.samples.loanbroker.banks.classpath"
+ debug="true"
+ >
+ <src path="${org.jboss.esb.samples.loanbroker.banks.src.dir}"/>
+ </javac>
+ <javac
+ destdir="${org.jboss.esb.samples.loanbroker.banks.testclasses.dir}"
+ debug="true"
+ classpathref="org.jboss.esb.samples.loanbroker.banks.testclasspath"
+ >
+ <src path="${org.jboss.esb.samples.loanbroker.banks.test.dir}"/>
+ </javac>
+ </target>
+
+ <!-- javadocs paths -->
+ <path id="org.jboss.esb.samples.loanbroker.banks.javadocs.path">
+ <pathelement path="esb/classes"/>
+ </path>
+
+ <!-- Jar targets -->
+ <target name="org.jboss.esb.samples.loanbroker.banks.jar" depends="org.jboss.esb.samples.loanbroker.banks.compile">
+ <echo message="Building jar file"/>
+ <delete file="${org.jboss.esb.samples.loanbroker.banks.dest}/dist/lib/bank.jar" />
+ <jar destfile="${org.jboss.esb.samples.loanbroker.banks.dest}/dist/lib/bank.jar"
+ basedir="${org.jboss.esb.samples.loanbroker.banks.classes.dir}"
+ includes="**/*.class"
+ />
+ </target>
+
+ <target name="runJMSBank" depends="org.jboss.esb.samples.loanbroker.banks.jar">
+ <echo>Running JMS Based Bank</echo>
+ <echo>Note that your app-server on host: localhost needs to be up and running!</echo>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.loanbroker.banks.ManagerJMS" failonerror="true">
+ <arg value="${jms.provider.url}"/>
+ <arg value="${jms.queue.in}"/>
+ <arg value="${jms.queue.out}"/>
+ <classpath refid="org.jboss.esb.samples.loanbroker.banks.testclasspath"/>
+ </java>
+ </target>
+
+ <target name="runFileBank" depends="org.jboss.esb.samples.loanbroker.banks.jar">
+ <echo>Running File Based Bank</echo>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.loanbroker.banks.ManagerFlatFile" failonerror="true" args="${file.monitored.directory}">
+ <classpath refid="org.jboss.esb.samples.loanbroker.banks.testclasspath"/>
+ </java>
+ </target>
+
+ <!-- Short target names -->
+ <target name="compile" depends="org.jboss.esb.samples.loanbroker.banks.compile"/>
+ <target name="test" depends="org.jboss.esb.samples.loanbroker.banks.test"/>
+ <target name="jar" depends="org.jboss.esb.samples.loanbroker.banks.jar"/>
+
+ <!-- ====================================================================== -->
+ <!-- U N I T T E S T S -->
+ <!-- ====================================================================== -->
+ <target name="org.jboss.esb.samples.loanbroker.banks.test" depends="org.jboss.esb.samples.loanbroker.banks.compile">
+ <echo message="Running tests for banks"/>
+ <junit printsummary="yes" haltonerror="yes" haltonfailure="yes" showoutput="no" fork="true">
+ <formatter type="plain" usefile="false"/>
+ <formatter type="xml"/>
+ <batchtest todir="${org.jboss.esb.samples.loanbroker.banks.tests.report.dir}">
+ <fileset dir="${org.jboss.esb.samples.loanbroker.banks.test.dir}">
+ <include name="**/**Test.java"/>
+ </fileset>
+ </batchtest>
+ <classpath>
+ <!-- Need the tests src folder because there may be non-compiled test resources -->
+ <pathelement location="${org.jboss.esb.samples.loanbroker.banks.test.dir}"/>
+ <path refid="org.jboss.esb.samples.loanbroker.banks.testclasspath"/>
+ </classpath>
+ </junit>
+ </target>
+
+</project>
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/Licenses.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/Licenses.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/Licenses.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,445 @@
+The jars in this directory are covered by a range of licences, as described
+below.
+
+JBoss jars:
+
+/*
+ *
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ */
+
+JUnit
+
+ Common Public License Version 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+ a) in the case of the initial Contributor, the initial code and
+documentation distributed under this Agreement, and
+
+ b) in the case of each subsequent Contributor:
+
+ i) changes to the Program, and
+
+ ii) additions to the Program;
+
+ where such changes and/or additions to the Program originate from and are
+distributed by that particular Contributor. A Contribution 'originates' from a
+Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to
+the Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are
+necessarily infringed by the use or sale of its Contribution alone or when
+combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement,
+including all Contributors.
+
+2. GRANT OF RIGHTS
+
+ a) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free copyright license to
+reproduce, prepare derivative works of, publicly display, publicly perform,
+distribute and sublicense the Contribution of such Contributor, if any, and such
+derivative works, in source code and object code form.
+
+ b) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
+Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form.
+This patent license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the
+Licensed Patents. The patent license shall not apply to any other combinations
+which include the Contribution. No hardware per se is licensed hereunder.
+
+ c) Recipient understands that although each Contributor grants the licenses
+to its Contributions set forth herein, no assurances are provided by any
+Contributor that the Program does not infringe the patent or other intellectual
+property rights of any other entity. Each Contributor disclaims any liability to
+Recipient for claims brought by any other entity based on infringement of
+intellectual property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, each Recipient hereby assumes sole
+responsibility to secure any other intellectual property rights needed, if any.
+For example, if a third party patent license is required to allow Recipient to
+distribute the Program, it is Recipient's responsibility to acquire that license
+before distributing the Program.
+
+ d) Each Contributor represents that to its knowledge it has sufficient
+copyright rights in its Contribution, if any, to grant the copyright license set
+forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its
+own license agreement, provided that:
+
+ a) it complies with the terms and conditions of this Agreement; and
+
+ b) its license agreement:
+
+ i) effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title and
+non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+ ii) effectively excludes on behalf of all Contributors all liability for
+damages, including direct, indirect, special, incidental and consequential
+damages, such as lost profits;
+
+ iii) states that any provisions which differ from this Agreement are offered
+by that Contributor alone and not by any other party; and
+
+ iv) states that source code for the Program is available from such
+Contributor, and informs licensees how to obtain it in a reasonable manner on or
+through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+ a) it must be made available under this Agreement; and
+
+ b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the
+Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if
+any, in a manner that reasonably allows subsequent Recipients to identify the
+originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with
+respect to end users, business partners and the like. While this license is
+intended to facilitate the commercial use of the Program, the Contributor who
+includes the Program in a commercial product offering should do so in a manner
+which does not create potential liability for other Contributors. Therefore, if
+a Contributor includes the Program in a commercial product offering, such
+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+every other Contributor ("Indemnified Contributor") against any losses, damages
+and costs (collectively "Losses") arising from claims, lawsuits and other legal
+actions brought by a third party against the Indemnified Contributor to the
+extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to
+control, and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may participate in
+any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product
+offering, Product X. That Contributor is then a Commercial Contributor. If that
+Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such
+Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a court
+requires any other Contributor to pay any damages as a result, the Commercial
+Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+Recipient is solely responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its exercise of
+rights under this Agreement, including but not limited to the risks and costs of
+program errors, compliance with applicable laws, damage to or loss of data,
+programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable
+law, it shall not affect the validity or enforceability of the remainder of the
+terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such
+provision valid and enforceable.
+
+If Recipient institutes patent litigation against a Contributor with respect to
+a patent applicable to software (including a cross-claim or counterclaim in a
+lawsuit), then any patent licenses granted by that Contributor to such Recipient
+under this Agreement shall terminate as of the date such litigation is filed. In
+addition, if Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the Program
+itself (excluding combinations of the Program with other software or hardware)
+infringes such Recipient's patent(s), then such Recipient's rights granted under
+Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to
+comply with any of the material terms or conditions of this Agreement and does
+not cure such failure in a reasonable period of time after becoming aware of
+such noncompliance. If all Recipient's rights under this Agreement terminate,
+Recipient agrees to cease use and distribution of the Program as soon as
+reasonably practicable. However, Recipient's obligations under this Agreement
+and any licenses granted by Recipient relating to the Program shall continue and
+survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in
+order to avoid inconsistency the Agreement is copyrighted and may only be
+modified in the following manner. The Agreement Steward reserves the right to
+publish new versions (including revisions) of this Agreement from time to time.
+No one other than the Agreement Steward has the right to modify this Agreement.
+IBM is the initial Agreement Steward. IBM may assign the responsibility to serve
+as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the Agreement
+under which it was received. In addition, after a new version of the Agreement
+is published, Contributor may elect to distribute the Program (including its
+Contributions) under the new version. Except as expressly stated in Sections
+2(a) and 2(b) above, Recipient receives no rights or licenses to the
+intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the
+intellectual property laws of the United States of America. No party to this
+Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial in
+any resulting litigation.
+
+
+
+XStream, Antlr, Stingtemplate BSD License
+
+Copyright (c) 2003-2005, Joe Walnes
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list of
+conditions and the following disclaimer. Redistributions in binary form must reproduce
+the above copyright notice, this list of conditions and the following disclaimer in
+the documentation and/or other materials provided with the distribution.
+
+Neither the name of XStream nor the names of its contributors may be used to endorse
+or promote products derived from this software without specific prior written
+permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
+WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+
+
+pollmgt.jar, org.sadun.util.jar
+
+GNU Lesser General Public License
+
+Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
+
+ [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.]
+
+Preamble
+
+The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.
+
+This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below.
+
+When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things.
+
+To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it.
+
+For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights.
+
+We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library.
+
+To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others.
+
+Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license.
+
+Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs.
+
+When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library.
+
+We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances.
+
+For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License.
+
+In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system.
+
+Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library.
+
+The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run.
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you".
+
+A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.
+
+The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".)
+
+"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library.
+
+Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.
+
+1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library.
+
+You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)
+
+ These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
+
+ Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library.
+
+ In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
+
+3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.
+
+Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy.
+
+This option is useful when you wish to copy part of the code of the Library into a program that is not a library.
+
+4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.
+
+If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.
+
+5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.
+
+However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.
+
+When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.
+
+If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)
+
+Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.
+
+6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.
+
+You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:
+
+ a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy.
+
+For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
+
+It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.
+
+7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above.
+
+ b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.
+
+8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
+
+9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.
+
+10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License.
+
+11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
+
+This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
+
+12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
+
+13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.
+
+14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
+
+NO WARRANTY
+
+15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+END OF TERMS AND CONDITIONS
+How to Apply These Terms to Your New Libraries
+If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License).
+
+To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and an idea of what it does.> Copyright (C) <year> <name of author>
+
+ This library 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 library 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 library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ signature of Ty Coon, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/jbossall-client.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/jbossall-client.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/junit-4.1.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/junit-4.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/org.sadun.util.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/org.sadun.util.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/pollmgt.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/pollmgt.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/xstream-1.1.3.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/lib/ext/xstream-1.1.3.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/log4j.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/log4j.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/log4j.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,287 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- A time/date based rolling appender -->
+ <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="./banks.log"/>
+ <param name="Append" value="false"/>
+
+ <!-- Rollover at midnight each day -->
+ <param name="DatePattern" value="'.'yyyy-MM-dd"/>
+
+ <!-- Rollover at the top of each hour
+ <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
+ -->
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+
+ <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
+ <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
+ -->
+ </layout>
+ </appender>
+
+ <!-- A size based file rolling appender
+ <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="${jboss.server.home.dir}/log/server.log"/>
+ <param name="Append" value="false"/>
+ <param name="MaxFileSize" value="500KB"/>
+ <param name="MaxBackupIndex" value="1"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Target" value="System.out"/>
+ <param name="Threshold" value="INFO"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ====================== -->
+ <!-- More Appender examples -->
+ <!-- ====================== -->
+
+ <!-- Buffer events and log them asynchronously
+ <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <appender-ref ref="FILE"/>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="SMTP"/>
+ </appender>
+ -->
+
+ <!-- EMail events to an administrator
+ <appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Threshold" value="ERROR"/>
+ <param name="To" value="admin at myhost.domain.com"/>
+ <param name="From" value="nobody at myhost.domain.com"/>
+ <param name="Subject" value="JBoss Sever Errors"/>
+ <param name="SMTPHost" value="localhost"/>
+ <param name="BufferSize" value="10"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- Syslog events
+ <appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Facility" value="LOCAL7"/>
+ <param name="FacilityPrinting" value="true"/>
+ <param name="SyslogHost" value="localhost"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- Log events to JMS (requires a topic to be created)
+ <appender name="JMS" class="org.apache.log4j.net.JMSAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Threshold" value="ERROR"/>
+ <param name="TopicConnectionFactoryBindingName" value="java:/ConnectionFactory"/>
+ <param name="TopicBindingName" value="topic/MyErrorsTopic"/>
+ </appender>
+ -->
+
+ <!-- Log events through SNMP
+ <appender name="TRAP_LOG" class="org.apache.log4j.ext.SNMPTrapAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="ImplementationClassName" value="org.apache.log4j.ext.JoeSNMPTrapSender"/>
+ <param name="ManagementHost" value="127.0.0.1"/>
+ <param name="ManagementHostTrapListenPort" value="162"/>
+ <param name="EnterpriseOID" value="1.3.6.1.4.1.24.0"/>
+ <param name="LocalIPAddress" value="127.0.0.1"/>
+ <param name="LocalTrapSendPort" value="161"/>
+ <param name="GenericTrapType" value="6"/>
+ <param name="SpecificTrapType" value="12345678"/>
+ <param name="CommunityString" value="public"/>
+ <param name="ForwardStackTraceWithTrap" value="true"/>
+ <param name="Threshold" value="DEBUG"/>
+ <param name="ApplicationTrapOID" value="1.3.6.1.4.1.24.12.10.22.64"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d,%p,[%t],[%c],%m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- Emit events as JMX notifications
+ <appender name="JMX" class="org.jboss.monitor.services.JMXNotificationAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+
+ <param name="Threshold" value="WARN"/>
+ <param name="ObjectName" value="jboss.system:service=Logging,type=JMXNotificationAppender"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%c] %m"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
+ <category name="org.apache">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
+ <category name="org.jgroups">
+ <priority value="WARN"/>
+ </category>
+
+ <!-- Limit jboss axis to INFO as its DEBUG is even more verbose -->
+ <category name="org.jboss.axis">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit JBoss categories
+ <category name="org.jboss">
+ <priority value="INFO"/>
+ </category>
+ -->
+
+ <!-- Limit the JSR77 categories -->
+ <category name="org.jboss.management">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit JBoss webservice category
+ <category name="org.jboss.webservice">
+ <priority value="DEBUG"/>
+ </category>
+ -->
+
+ <!-- Decrease the priority threshold for the org.jboss.varia category
+ <category name="org.jboss.varia">
+ <priority value="DEBUG"/>
+ </category>
+ -->
+
+ <!-- Show the evolution of the DataSource pool in the logs [inUse/Available/Max]
+ <category name="org.jboss.resource.connectionmanager.JBossManagedConnectionPool">
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ </category>
+ -->
+
+ <!--
+ | An example of enabling the custom TRACE level priority that is used
+ | by the JBoss internals to diagnose low level details. This example
+ | turns on TRACE level msgs for the org.jboss.ejb.plugins package and its
+ | subpackages. This will produce A LOT of logging output.
+ <category name="org.jboss.system">
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ </category>
+ <category name="org.jboss.ejb.plugins">
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ </category>
+ -->
+
+ <!--
+ | Logs these events to SNMP:
+ - server starts/stops
+ - cluster evolution (node death/startup)
+ - When an EJB archive is deployed (and associated verified messages)
+ - When an EAR archive is deployed
+
+ <category name="org.jboss.system.server.Server">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.ha.framework.interfaces.HAPartition.lifecycle">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.deployment.MainDeployer">
+ <priority value="ERROR" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.ejb.EJBDeployer">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.deployment.EARDeployer">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ -->
+
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="FILE"/>
+ </root>
+
+ <!-- Clustering logging -->
+ <!-- Uncomment the following to redirect the org.jgroups and
+ org.jboss.ha categories to a cluster.log file.
+
+ <appender name="CLUSTER" class="org.jboss.logging.appender.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="${jboss.server.home.dir}/log/cluster.log"/>
+ <param name="Append" value="false"/>
+ <param name="MaxFileSize" value="500KB"/>
+ <param name="MaxBackupIndex" value="1"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+ </layout>
+ </appender>
+ <category name="org.jgroups">
+ <priority value="DEBUG" />
+ <appender-ref ref="CLUSTER"/>
+ </category>
+ <category name="org.jboss.ha">
+ <priority value="DEBUG" />
+ <appender-ref ref="CLUSTER"/>
+ </category>
+ -->
+
+</log4j:configuration>
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/Bank.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/Bank.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/Bank.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,117 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.samples.loanbroker.banks;
+
+import java.math.BigDecimal;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
+
+/**
+ * This Bank is pretty well focussed on doing one thing, which is giving out loans. On the
+ * reception of a BankQuoteRequest it will compute the interest rate it will return
+ * in the BankQuoteReply.
+ *
+ * Each bank instance can be customized using the parameters bankName, RatePremium and MaxLoanTerm.
+ *
+ * @author kstam
+ *
+ */
+public class Bank
+{
+ private Logger logger = Logger.getLogger(this.getClass());
+
+ private static final BigDecimal PRIME_RATE = BigDecimal.valueOf(8.0);
+ private static final BigDecimal DEFAULT_RATE_PREMIUM = BigDecimal.valueOf(0.5);
+ private static final int DEFAULT_MAX_LOAN_TERM = 30;
+ private static final String DEFAULT_BANK_NAME = "DefaultBank";
+ private static int _quoteCounter = 0;
+
+ //Default values for bank
+ private String bankName = DEFAULT_BANK_NAME;
+ private BigDecimal ratePremium = DEFAULT_RATE_PREMIUM;
+ private int maxLoanTerm = DEFAULT_MAX_LOAN_TERM;
+
+ /**
+ * The Bank's constructor.
+ *
+ * @param bankName - the name of the bank
+ * @param ratePremium - the premium it charges for the loan
+ * @param maxLoanTerm - the maximum loan term
+ */
+ public Bank(String bankName, BigDecimal ratePremium, int maxLoanTerm) {
+ super();
+ if (bankName!=null) {
+ this.bankName=bankName;
+ }
+ if (ratePremium!=null) {
+ this.ratePremium=ratePremium;
+ }
+ if (maxLoanTerm > 0) {
+ this.maxLoanTerm=maxLoanTerm;
+ }
+ }
+ /**
+ * The bank computes the interest rate based on configuration parameters of the bank and
+ * the information in the {@link BankQuoteRequest.
+ * @param bankQuoteRequest - the bank quote request containing requests parameters
+ * @return bankQuoteReply - the bank quote replay contaning the interest rate
+ */
+ private BankQuoteReply computeBankQuoteReply(BankQuoteRequest bankQuoteRequest)
+ {
+ BankQuoteReply bankQuoteReply = new BankQuoteReply();
+ if (bankQuoteRequest.loanTerm <= maxLoanTerm) {
+ BigDecimal interestRate=BigDecimal.valueOf((bankQuoteRequest.loanTerm/12.0)/10.0);
+ interestRate=PRIME_RATE.add(ratePremium).add(interestRate);
+ bankQuoteReply.setInterestRate(interestRate.setScale(2, BigDecimal.ROUND_HALF_UP));
+ bankQuoteReply.setErrorCode(0);
+ } else {
+ bankQuoteReply.setInterestRate(BigDecimal.valueOf(0.00).setScale(2, BigDecimal.ROUND_HALF_UP));
+ bankQuoteReply.setErrorCode(1);
+ }
+ String quoteId=bankName + "-" + _quoteCounter++;
+ bankQuoteReply.setQuoteId(quoteId);
+ bankQuoteReply.setCustomerUID(bankQuoteRequest.getCustomerUID());
+ return bankQuoteReply;
+ }
+ /**
+ * Processes the Loan Quote request and returns the banks reply.
+ *
+ * @param bankQuoteRequest - the bank quote request
+ * @return bankQuoteReply - the bank quote reply
+ */
+ protected BankQuoteReply processMessage(BankQuoteRequest bankQuoteRequest)
+ {
+ logger.log(Priority.INFO, "Bank '" + bankName + "' received a request for SSN="
+ + bankQuoteRequest.getSsn()
+ + " for $" + bankQuoteRequest.loanAmount
+ + " over " + bankQuoteRequest.loanTerm + " months.");
+ logger.log(Priority.DEBUG, bankQuoteRequest);
+
+ BankQuoteReply bankQuoteReply = computeBankQuoteReply(bankQuoteRequest);
+ logger.log(Priority.INFO, "Bank '" + bankName + " offers SSN="
+ + bankQuoteRequest.getSsn() + " " + bankQuoteReply);
+
+ return bankQuoteReply;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReply.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReply.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReply.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,117 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.samples.loanbroker.banks;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+
+public class BankQuoteReply implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ private BigDecimal interestRate;
+ private String quoteId;
+ private int errorCode;
+ private String customerUID;
+
+ /**
+ * Gets the SerialVersionUID.
+ * @return serialVersionUID
+ */
+ public static long getSerialVersionUID() {
+ return serialVersionUID;
+ }
+ /**
+ * Gets the errorCode.
+ * <li>0 - success
+ * <li>1 - loan term exceeds the maximum available loan term
+ * <li>2 - invalid SSN
+ * <li>3 - invalid credit score
+ * <li>4 - invalid credit history length
+ * <li>5 - invalid loan term
+ * <li>6 - invalid message
+ * <li>7 - invalid customerUID
+ * @return errorCode
+ */
+ public int getErrorCode() {
+ return errorCode;
+ }
+ /**
+ * Sets the errorCode.
+ * <li>0 - success
+ * <li>1 - loan term exceeds the maximum available loan term
+ * <li>2 - invalid SSN
+ * <li>3 - invalid credit score
+ * <li>4 - invalid credit history length
+ * <li>5 - invalid loan term
+ * @param errorCode
+ */
+ public void setErrorCode(int errorCode) {
+ this.errorCode = errorCode;
+ }
+ /**
+ * Gets the quoted interest rate.
+ * @return interestRate
+ */
+ public BigDecimal getInterestRate() {
+ return interestRate;
+ }
+ /**
+ * Sets the quoted interest rate.
+ * @param interestRate
+ */
+ public void setInterestRate(BigDecimal interestRate) {
+ this.interestRate = interestRate;
+ }
+ /**
+ * Gets the Quote ID.
+ * @return quoteId
+ */
+ public String getQuoteId() {
+ return quoteId;
+ }
+ /**
+ * Sets the quoteId.
+ * @param quoteId
+ */
+ public void setQuoteId(String quoteId) {
+ this.quoteId = quoteId;
+ }
+ /**
+ * Returns a human readable string representation of this object.
+ * @return toString
+ */
+ public String toString() {
+ return this.getClass().getSimpleName() + "=["
+ + "interestRate=" + interestRate
+ + ", quoteId=" + quoteId
+ + ", errorCode=" + errorCode
+ + ", customerUID=" + customerUID + "]";
+ }
+ public String getCustomerUID() {
+ return customerUID;
+ }
+ public void setCustomerUID(String customerUID) {
+ this.customerUID = customerUID;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,127 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.samples.loanbroker.banks;
+
+import java.io.Serializable;
+
+
+public class BankQuoteRequest implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+ public int ssn;
+ public int creditScore;
+ public int historyLength;
+ public int loanAmount;
+ public int loanTerm;
+ public String customerUID;
+
+ /**
+ * Gets for the credit score.
+ * @return credit score
+ */
+ public int getCreditScore() {
+ return creditScore;
+ }
+ /**
+ * Sets the credit score.
+ * @param creditScore
+ */
+ public void setCreditScore(int creditScore) {
+ this.creditScore = creditScore;
+ }
+ /**
+ * Gets the credit history length (in months).
+ * @return credit history length
+ */
+ public int getHistoryLength() {
+ return historyLength;
+ }
+ /**
+ * Sets the credit history length (in months).
+ * @param historyLength
+ */
+ public void setHistoryLength(int historyLength) {
+ this.historyLength = historyLength;
+ }
+ /**
+ * Gets the requested loan amount (in dollar).
+ * @return the loan amount
+ */
+ public int getLoanAmount() {
+ return loanAmount;
+ }
+ /**
+ * Sets the loan amount.
+ * @param loanAmount - the loan amount (in dollar).
+ */
+ public void setLoanAmount(int loanAmount) {
+ this.loanAmount = loanAmount;
+ }
+ /**
+ * Gets the duration of the loan, the term, (in months).
+ * @return loanTerm
+ */
+ public int getLoanTerm() {
+ return loanTerm;
+ }
+ /**
+ * Sets the term (duration) of the loan (in months)
+ * @param loanTerm
+ */
+ public void setLoanTerm(int loanTerm) {
+ this.loanTerm = loanTerm;
+ }
+ /**
+ * Sets the Social Security Number (SSN).
+ * @return ssn
+ */
+ public int getSsn() {
+ return ssn;
+ }
+ /**
+ * Sets the Social Security Number (SSN).
+ * @param ssn
+ */
+ public void setSsn(int ssn) {
+ this.ssn = ssn;
+ }
+ /**
+ * Returns a human readable string representation of this object.
+ * @return toString
+ */
+ public String toString() {
+ return this.getClass().getSimpleName() + "=["
+ + "ssn=" + ssn
+ + ", creditScore=" + creditScore
+ + ", historyLength=" + historyLength
+ + ", loanAmount=" + loanAmount
+ + ", loanTerm=" + loanTerm
+ + ", customerUID="+ customerUID + "]";
+ }
+
+ public String getCustomerUID() {
+ return customerUID;
+ }
+ public void setCustomerUID(String customerUID) {
+ this.customerUID = customerUID;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/FileUtil.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/FileUtil.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/FileUtil.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,66 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.samples.loanbroker.banks;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+/**
+ * Utility class for reading a file into a String and back.
+ * @author kstam
+ */
+public class FileUtil {
+ /**
+ * Read the file into a String.
+ * @param file - the file to be read
+ * @return String with the content of the file
+ * @throws IOException - when we can't read the file
+ */
+ public static String readTextFile(File file) throws IOException
+ {
+ StringBuffer sb = new StringBuffer(1024);
+ BufferedReader reader = new BufferedReader(new FileReader(file.getPath()));
+ char[] chars = new char[1];
+ while( (reader.read(chars)) > -1){
+ sb.append(String.valueOf(chars));
+ chars = new char[1];
+ }
+ reader.close();
+ return sb.toString();
+ }
+ /**
+ * Write a String into a file.
+ * @param file - File to which we write the String
+ * @param str - string which will be written
+ * @throws IOException - when we can't write to the file
+ */
+ public static void writeTextFile(File file, String str) throws IOException
+ {
+ BufferedWriter writer = new BufferedWriter(new FileWriter(file.getPath()));
+ writer.write(str);
+ writer.close();
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/ManagerFlatFile.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/ManagerFlatFile.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/ManagerFlatFile.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,211 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.banks;
+
+import java.io.File;
+import java.math.BigDecimal;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
+import org.apache.log4j.xml.DOMConfigurator;
+import org.sadun.util.polling.BasePollManager;
+import org.sadun.util.polling.CycleEndEvent;
+import org.sadun.util.polling.CycleStartEvent;
+import org.sadun.util.polling.DirectoryLookupEndEvent;
+import org.sadun.util.polling.DirectoryLookupStartEvent;
+import org.sadun.util.polling.DirectoryPoller;
+import org.sadun.util.polling.FileFoundEvent;
+import org.sadun.util.polling.FileSetFoundEvent;
+
+/**
+ * The FlatFilePollManager monitors a directory specified in the configuration. When a file arrives it
+ * tries to process the content assuming it contains one line with loan request information.
+ * So for example the content of the file could read some like <br>23456890,3,4,20000,5<br>
+ * The order of values needs to be SocialSecurityNumber, CreditScore, HistoryLength [month], LoanAmount [dollar],
+ * and finally the LoanTerm [month]. The request will be processed and a BankQouteReply is generated. The
+ * original file is moved to a 'processed' directory, and the BankQuoteReply is serialized to an 'outgoing'
+ * directory from the it can be picked up by the system that dropped the request.
+ *
+ * @author kstam
+ *
+ */
+class ManagerFlatFile extends BasePollManager
+{
+ private Logger logger = Logger.getLogger(this.getClass());
+
+ private static final String BANK_NAME = "FileBasedBank";
+ private static final BigDecimal RATE_PREMIUM = BigDecimal.valueOf(0.25);
+ private static final int MAXLOANTERM = 120;
+ protected static final String OUTGOING_DIR = "outgoing";
+ protected static final String PREFIX = "reply_to_";
+ protected static final String PROCESSED_DIR = "processed";
+ /**
+ * Handle to the cycle start event.
+ */
+ public void cycleStarted(CycleStartEvent evt) {
+ logger.log(Priority.DEBUG, "Poller awakened "
+ + (evt.getPoller().getFilter() == null ? "(no filtering)" : evt
+ .getPoller().getFilter().toString()));
+ }
+ /**
+ * Handle to the cycle end event.
+ */
+ public void cycleEnded(CycleEndEvent evt) {
+ logger.log(Priority.DEBUG, "Poller going to sleep");
+ }
+ /**
+ * Handle to the directory lookup start event.
+ */
+ public void directoryLookupStarted(DirectoryLookupStartEvent evt) {
+ logger.log(Priority.DEBUG, "Scanning " + evt.getDirectory());
+ }
+ /**
+ * Handle to the directory lookup end event.
+ */
+ public void directoryLookupEnded(DirectoryLookupEndEvent evt) {
+ logger.log(Priority.DEBUG, "Finished scanning " + evt.getDirectory());
+ }
+ /**
+ * Handle to the file set found event. Currenty this is the only event that
+ * is actually used to proces the incoming loan quote requests. Each file
+ * is send to be processed.
+ */
+ public void fileSetFound(FileSetFoundEvent evt) {
+ File[] files = evt.getFiles();
+
+ for (int i = 0; i < files.length; i++) {
+ File file = files[i];
+ processFile(file);
+ }
+ }
+ /**
+ * Handle to the file found event.
+ */
+ public void fileFound(FileFoundEvent evt) {
+ logger.log(Priority.DEBUG, evt);
+ // Add artificial delay
+ }
+ /**
+ * Returns the name of this PollManager and a quick summary of what it does.
+ */
+ public String toString() {
+ return "FlatFilePollManager - a pollmanager which processed incoming -flat file based- loan requests";
+ }
+ /**
+ * Each file is processed assuming it contains one line with loan request information.
+ * So for example the content of the file could read some like <br>23456890,3,4,20000,5<br>
+ * The order of values needs to be SocialSecurityNumber, CreditScore, HistoryLength [month], LoanAmount [dollar],
+ * and finally the LoanTerm [month]. The BankQuoteRequest is processed and a BankQouteReply is generated. The
+ * original file is moved to a processed directory, and the BankQuoteReply is serialized to an 'outgoing'
+ * directory from the it can be picked up by the system that dropped the request.
+ *
+ * @param file - incoming flat file with loan quote request info.
+ */
+ protected void processFile(File file)
+ {
+ BankQuoteReply bankQuoteReply=new BankQuoteReply();
+ bankQuoteReply.setQuoteId(BANK_NAME);
+ int errorCode=7;
+ String message=null;
+ logger.log(Priority.INFO, "Found " + file.getAbsolutePath() );
+
+ try {
+ BankQuoteRequest bankQuoteRequest = new BankQuoteRequest();
+ //Read the content of the file into a String
+ message=FileUtil.readTextFile(file);
+ String[] messagePart = message.split(",");
+
+ errorCode=1;
+ bankQuoteRequest.setSsn(Integer.valueOf(messagePart[0]));
+ errorCode=2;
+ bankQuoteRequest.setCreditScore(Integer.valueOf(messagePart[1]));
+ errorCode=3;
+ bankQuoteRequest.setHistoryLength(Integer.valueOf(messagePart[2]));
+ errorCode=4;
+ bankQuoteRequest.setLoanAmount(Integer.valueOf(messagePart[3]));
+ errorCode=5;
+ bankQuoteRequest.setLoanTerm(Integer.valueOf(messagePart[4]));
+ errorCode=6;
+ bankQuoteRequest.setCustomerUID(String.valueOf(messagePart[5]));
+
+ Bank fileBasedBank = new Bank(BANK_NAME, RATE_PREMIUM, MAXLOANTERM);
+ bankQuoteReply = fileBasedBank.processMessage(bankQuoteRequest);
+ } catch (Throwable e) {
+ //Package up the error, so it can be processed
+ logger.log(Priority.ERROR, e.getMessage());
+ bankQuoteReply.setErrorCode(errorCode);
+ }
+
+ try {
+ //Create the outgoing response file
+ File outgoingDir = new File(file.getParent() + "/" + OUTGOING_DIR);
+ if (!outgoingDir.exists()) {
+ outgoingDir.mkdir();
+ }
+ File outgoingFile = new File(outgoingDir + "/" + PREFIX + file.getName());
+ logger.log(Priority.INFO, "Creating outgoing file " + outgoingFile.getAbsolutePath());
+ outgoingFile.createNewFile();
+ String reply=bankQuoteReply.getInterestRate() + "," + bankQuoteReply.getQuoteId() + ","
+ + bankQuoteReply.getErrorCode() + "," + bankQuoteReply.getCustomerUID();
+ logger.log(Priority.INFO, "Writing reply " + reply);
+ FileUtil.writeTextFile(outgoingFile, reply);
+
+ //Move the processed file away so it does not get processed again
+ File processedDir = new File(file.getParent() + "/" + PROCESSED_DIR);
+ if (!processedDir.exists()) {
+ processedDir.mkdir();
+ }
+ logger.log(Priority.INFO, "Moving file " + file.getName() + " to processed directory");
+ File processedFile = new File(processedDir.getAbsolutePath() + "/" + file.getName());
+ file.renameTo(processedFile);
+ if (file.exists()) {
+ file.delete();
+ }
+ } catch (Exception e) {
+ logger.log(Priority.ERROR, e.getMessage(), e);
+ }
+ }
+
+ public static void main(String[] args)
+ {
+ DOMConfigurator.configure("log4j.xml");
+ String monitoredDirectoryStr = "C:/Temp/BankInput";
+ if (args!=null && args.length > 0) {
+ monitoredDirectoryStr=args[0];
+ }
+ File monitoredDirectory = new File(monitoredDirectoryStr);
+ if (!monitoredDirectory.exists() || !monitoredDirectory.isDirectory()){
+ System.err.println("Invalid directory " + monitoredDirectory.getAbsolutePath());
+ System.out.println("Trying to create the directory.");
+ try {
+ monitoredDirectory.mkdir();
+ } catch (SecurityException e) {
+ e.printStackTrace();
+ }
+ }
+ DirectoryPoller poller = new DirectoryPoller(monitoredDirectory);
+ poller.addPollManager(new ManagerFlatFile());
+ poller.start();
+ }
+
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/ManagerJMS.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/ManagerJMS.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/src/org/jboss/soa/esb/samples/loanbroker/banks/ManagerJMS.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,180 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.banks;
+
+import java.math.BigDecimal;
+import java.util.Properties;
+
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.Queue;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueReceiver;
+import javax.jms.QueueSender;
+import javax.jms.QueueSession;
+import javax.jms.Session;
+import javax.jms.TextMessage;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
+import org.apache.log4j.xml.DOMConfigurator;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.DomDriver;
+
+/**
+ * The JMS Manager listens to an incoming queue (by default queue/A on localhost). It consumes the
+ * message assuming it is a TextMessage, and that the text is an XML structure that can be marshalled
+ * into a BankQuoteRequest. The request will be processed and a BankQuoteRequest Reply will be serialized to XML
+ * and send to the outgoing queue (by default this is queue/B on localhost).
+ *
+ * @author kstam
+ */
+public class ManagerJMS implements javax.jms.MessageListener {
+ private static Logger logger = Logger.getLogger(ManagerJMS.class);
+ /** Name of the Bank */
+ private static final String BANK_NAME = "JMSBasedBank";
+ /** Rate premium the bank charges */
+ private static final BigDecimal RATE_PREMIUM = BigDecimal.valueOf(0.50);
+ /** Maximum duration of the loan the bank will accept [months] */
+ private static final int MAXLOANTERM = 120;
+ /** Default incoming queue */
+ private static String QUEUE_IN = "queue/A";
+ /** Default outgoing queue */
+ private static String QUEUE_OUT = "queue/B";
+ /** Default jms provider url */
+ private static String PROVIDER_URL = "localhost";
+ /** Context used to lookup the Queues */
+ private static InitialContext ctx;
+ /** Properties used when constructing the InitialContext */
+ private static Properties properties = new Properties();
+ /** Queue connection for incoming queue */
+ QueueConnection inQueueConnection;
+
+ /**
+ * Sets up the queue listener. By default is listenes to queue/A on localhost.
+ */
+ public void listen() {
+ try {
+ properties.put(Context.INITIAL_CONTEXT_FACTORY,
+ "org.jnp.interfaces.NamingContextFactory");
+ properties.put(Context.URL_PKG_PREFIXES, "org.jnp.interfaces");
+ properties.put(Context.PROVIDER_URL, PROVIDER_URL);
+ ctx = new InitialContext(properties);
+ logger.info("Looking up queue=" + QUEUE_IN);
+ Queue inQueue = (Queue) ctx.lookup(QUEUE_IN);
+ logger.info("Looking up connection factory");
+ QueueConnectionFactory qcf = (QueueConnectionFactory) ctx
+ .lookup("UIL2ConnectionFactory");
+ logger.info("Creating connection");
+ inQueueConnection = qcf.createQueueConnection();
+ logger.info("Creating session");
+ QueueSession qs = inQueueConnection.createQueueSession(false,
+ Session.DUPS_OK_ACKNOWLEDGE);
+ QueueReceiver qr = qs.createReceiver(inQueue);
+ qr.setMessageListener(this);
+ inQueueConnection.start();
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ }
+ }
+ /**
+ * Sets up the queue listener. By default is listenes to queue/A on localhost. It consumes the
+ * message assuming it is a TextMessage, and that the text is an XML structure that can be marshalled
+ * into a BankQuoteRequest. The request will be processed and a BankQuoteRequest Reply will be serialized to XML
+ * and send to the outgoing queue (by default this is queue/B on localhost). If the processing results
+ * in an error a BankQuoteReply with ErrorCode other then 0 is send to the outgoing queue.
+ *
+ * @see javax.jms.MessageListener#onMessage(javax.jms.Message)
+ */
+ public void onMessage(Message message) {
+ QueueConnection outQueueConnection;
+ logger.info("Got message: " + message);
+ try {
+ TextMessage textMessage = (TextMessage) message;
+ String xml = textMessage.getText();
+ XStream xstream = new XStream(new DomDriver());
+ BankQuoteRequest bankQuoteRequest = new BankQuoteRequest();
+
+ xstream.fromXML(xml, bankQuoteRequest);
+ Bank bank = new Bank(BANK_NAME, RATE_PREMIUM, MAXLOANTERM);
+ BankQuoteReply bankQuoteReply = bank
+ .processMessage(bankQuoteRequest);
+ String bankQuoteReplyXML = xstream.toXML(bankQuoteReply);
+ Queue outQueue = (Queue) ctx.lookup(QUEUE_OUT);
+ logger.log(Priority.INFO, "Looking up connection factory");
+ QueueConnectionFactory qcf = (QueueConnectionFactory) ctx
+ .lookup("UIL2ConnectionFactory");
+ logger.log(Priority.INFO, "Creating connection");
+ outQueueConnection = qcf.createQueueConnection();
+ try {
+ logger.log(Priority.INFO, "Creating session");
+ QueueSession qs = outQueueConnection.createQueueSession(false,
+ Session.DUPS_OK_ACKNOWLEDGE);
+ TextMessage responseTextMessage = qs
+ .createTextMessage(bankQuoteReplyXML);
+ QueueSender queueSender = qs.createSender(outQueue);
+ queueSender.send(responseTextMessage);
+ } catch (JMSException je) {
+ logger.log(Priority.ERROR, je.getMessage(), je);
+ } finally {
+ outQueueConnection.close();
+ }
+ } catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ }
+ }
+ /**
+ * Closing the queue connection as to not leak connection resources.
+ */
+ public void close() throws JMSException {
+ inQueueConnection.close();
+ }
+ /**
+ * Invokes an instance of JMS based bank listener.
+ * @param args - provider url, queue_in, queue_out
+ */
+ public static void main(String[] args) {
+ if (args != null && args.length > 0) {
+ PROVIDER_URL = args[0];
+ if (args.length > 1) {
+ QUEUE_IN = args[1];
+ if (args.length > 2) {
+ QUEUE_OUT = args[2];
+ }
+ }
+ } else {
+ System.out.println(
+ "Usage: ManagerJMS providerURL, queueIn, queueOut");
+ }
+ System.out.println("Starting JMS Bank Listener...");
+ System.out.println("Provider URL='" + PROVIDER_URL + "'.");
+ System.out.println("Listening to Queue '" + QUEUE_IN + "'.");
+ System.out.println("Responding to Queue '" + QUEUE_OUT + "'.");
+ DOMConfigurator.configure("log4j.xml");
+ ManagerJMS managerJMS = new ManagerJMS();
+ managerJMS.listen();
+ }
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteReplyTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,65 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.samples.loanbroker.banks;
+
+import static org.junit.Assert.assertTrue;
+
+import java.math.BigDecimal;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.apache.log4j.Logger;
+import org.junit.Test;
+
+import com.thoughtworks.xstream.XStream;
+
+public class BankQuoteReplyTest {
+
+ private Logger logger = Logger.getLogger(this.getClass());
+
+ /**
+ * Testing the XML layout of a BankQuoteReply
+ */
+ @Test public void obtainExampleXML(){
+ BankQuoteReply bankQuoteReply = new BankQuoteReply();
+ bankQuoteReply.setErrorCode(0);
+ bankQuoteReply.setCustomerUID("unique");
+ bankQuoteReply.setInterestRate(BigDecimal.valueOf(11.7));
+ bankQuoteReply.setQuoteId("JBBANK_1");
+
+ XStream xstream = new XStream();
+ String bankQuoteReplyXml=xstream.toXML(bankQuoteReply);
+ logger.info("xml=\n" + bankQuoteReplyXml);
+ String expectedXml =
+ "<org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteReply>\n"
+ + " <interestRate>11.7</interestRate>\n"
+ + " <quoteId>JBBANK_1</quoteId>\n"
+ + " <errorCode>0</errorCode>\n"
+ + " <customerUID>unique</customerUID>\n"
+ + "</org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteReply>";
+ assertTrue(expectedXml.equals(bankQuoteReplyXml));
+ }
+
+ public static junit.framework.Test suite() {
+ return new JUnit4TestAdapter(BankQuoteReplyTest.class);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteRequestTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,66 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.samples.loanbroker.banks;
+
+import static org.junit.Assert.assertTrue;
+import junit.framework.JUnit4TestAdapter;
+
+import org.apache.log4j.Logger;
+import org.junit.Test;
+
+import com.thoughtworks.xstream.XStream;
+
+public class BankQuoteRequestTest {
+
+ private Logger logger = Logger.getLogger(this.getClass());
+
+ /**
+ * Testing the XML layout of a BankQuote
+ */
+ @Test public void obtainExampleXML(){
+ BankQuoteRequest bankQuoteRequest = new BankQuoteRequest();
+ bankQuoteRequest.setSsn(123456890);
+ bankQuoteRequest.setCreditScore(3);
+ bankQuoteRequest.setHistoryLength(4);
+ bankQuoteRequest.setLoanTerm(5);
+ bankQuoteRequest.setLoanAmount(20000);
+ bankQuoteRequest.setCustomerUID("unique");
+
+ XStream xstream = new XStream();
+ String bankQuoteRequestXml=xstream.toXML(bankQuoteRequest);
+ logger.info("xml=\n" + bankQuoteRequestXml);
+ String expectedXml =
+ "<org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteRequest>\n"
+ + " <ssn>123456890</ssn>\n"
+ + " <creditScore>3</creditScore>\n"
+ + " <historyLength>4</historyLength>\n"
+ + " <loanAmount>20000</loanAmount>\n"
+ + " <loanTerm>5</loanTerm>\n"
+ + " <customerUID>unique</customerUID>\n"
+ + "</org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteRequest>";
+ assertTrue(expectedXml.equals(bankQuoteRequestXml));
+ }
+
+ public static junit.framework.Test suite() {
+ return new JUnit4TestAdapter(BankQuoteRequestTest.class);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/BankTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/BankTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/BankTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,72 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.samples.loanbroker.banks;
+
+import static org.junit.Assert.assertTrue;
+
+import java.math.BigDecimal;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
+import org.junit.Test;
+
+public class BankTest {
+
+ private Logger logger = Logger.getLogger(this.getClass());
+
+ /**
+ * Tests the computation of the interestRate for the TestBank.
+ *
+ */
+ @Test public void processLoanRequest(){
+
+ //Building a BankQuote
+ BankQuoteRequest bankQuoteRequest = new BankQuoteRequest();
+ bankQuoteRequest.setSsn(123456890);
+ bankQuoteRequest.setCreditScore(3);
+ bankQuoteRequest.setHistoryLength(4);
+ bankQuoteRequest.setLoanTerm(72);
+ bankQuoteRequest.setLoanAmount(20000);
+ bankQuoteRequest.setCustomerUID("unique");
+ logger.log(Priority.INFO, bankQuoteRequest);
+
+ //Getting a Bank Instance
+ String bankName = "TestBank";
+ BigDecimal ratePrimium = BigDecimal.valueOf(0.25);
+ int maxLoanTerm = 120;
+ Bank bank = new Bank(bankName, ratePrimium, maxLoanTerm);
+
+ //Getting a quote from this bank
+ BankQuoteReply bankQuoteReply = bank.processMessage(bankQuoteRequest);
+ logger.log(Priority.INFO, bankQuoteReply);
+
+ //Checking for validity
+ BigDecimal expectedInterestRate = BigDecimal.valueOf(8.85);
+ assertTrue(bankQuoteReply.getInterestRate().equals(expectedInterestRate));
+ }
+
+ public static junit.framework.Test suite() {
+ return new JUnit4TestAdapter(BankTest.class);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/FlatFileProcessorTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,112 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.samples.loanbroker.banks;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
+import org.junit.Test;
+
+public class FlatFileProcessorTest {
+
+ private Logger logger = Logger.getLogger(this.getClass());
+ private static String FLAT_FILE = "FlatFileProcessorTest.txt";
+ /**
+ * Tests the processing of flat file containing a loan quote request. First
+ * we try to find a temporary directory. When this succeeds we drop a
+ * loan request file in there and try to process it.
+ *
+ */
+ @Test public void processRequest()
+ {
+ File writableDir=null;
+ logger.log(Priority.INFO, "Check to see if I can write to /tmp");
+ File tmpDir = new File("/tmp");
+ if (tmpDir.exists() && tmpDir.canWrite()) {
+ writableDir=tmpDir;
+ } else {
+ File tempDir = new File("C:/temp");
+ if (tempDir.exists() && tempDir.canWrite()) {
+ writableDir=tempDir;
+ } else {
+ logger.log(Priority.ERROR, "Could not find either /tmp or C:\\Temp for a temporary "
+ + "writing space.");
+ assertTrue(false);
+ }
+ }
+// We found a temp space so now we can drop in a load request file.
+ try {
+ logger.log(Priority.INFO, "Creating " + FLAT_FILE + " file in " + writableDir.getAbsolutePath());
+ File loanRequestFile = new File(writableDir.getAbsolutePath() + "/"+ FLAT_FILE);
+ if (loanRequestFile.exists()) {
+ loanRequestFile.delete();
+ }
+ loanRequestFile.createNewFile();
+ String str="23456890,3,4,20000,5,unique";
+ FileUtil.writeTextFile(loanRequestFile, str);
+
+ logger.log(Priority.INFO, "Processing FlatFileProcessorTest.txt");
+ ManagerFlatFile pollManager = new ManagerFlatFile();
+ pollManager.processFile(loanRequestFile);
+
+ //Check to see if the file is now moved.
+ assertFalse(loanRequestFile.exists());
+
+ File processedFile = new File(writableDir.getAbsolutePath() + "/"
+ + ManagerFlatFile.PROCESSED_DIR + "/" + FLAT_FILE);
+ logger.log(Priority.INFO, "Check to see if " + processedFile.getAbsolutePath()
+ + " exists");
+ assertTrue(processedFile.exists());
+ logger.log(Priority.INFO, "OK");
+
+ File replyToFile = new File(writableDir.getAbsolutePath() + "/"
+ + ManagerFlatFile.OUTGOING_DIR + "/" + ManagerFlatFile.PREFIX
+ + FLAT_FILE);
+ logger.log(Priority.INFO, "Check to see if " + replyToFile.getAbsolutePath()
+ + " exists");
+ assertTrue(replyToFile.exists());
+ logger.log(Priority.INFO, "OK");
+
+ //Checking the content of the reply
+ logger.log(Priority.INFO, "Check the reply, should be ('8.29,FileBasedBank-0,0,unique'");
+ assertTrue("8.29,FileBasedBank-0,0,unique".equals(FileUtil.readTextFile(replyToFile)));
+ logger.log(Priority.INFO, "OK");
+ //Cleaning up
+ processedFile.delete();
+ replyToFile.delete();
+
+ } catch (Throwable e) {
+ logger.log(Priority.ERROR,e.getMessage(),e);
+ assertTrue(false);
+ }
+ }
+
+ public static junit.framework.Test suite() {
+ return new JUnit4TestAdapter(FlatFileProcessorTest.class);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/banks/test/org/jboss/soa/esb/samples/loanbroker/banks/JmsProcessorTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,99 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.samples.loanbroker.banks;
+
+import static org.junit.Assert.assertTrue;
+
+import java.util.Properties;
+
+import javax.jms.Queue;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueSender;
+import javax.jms.QueueSession;
+import javax.jms.TextMessage;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
+import org.junit.Test;
+
+import com.thoughtworks.xstream.XStream;
+
+public class JmsProcessorTest {
+
+ private Logger logger = Logger.getLogger(this.getClass());
+
+ /**
+ * This can be activate if the server is running and you want
+ * to drop a message on the queue
+ *
+ */
+ @Test public void sendLoanRequestXML()
+ {
+
+ // Building a BankQuote
+ BankQuoteRequest bankQuoteRequest = new BankQuoteRequest();
+ bankQuoteRequest.setSsn(123456890);
+ bankQuoteRequest.setCreditScore(3);
+ bankQuoteRequest.setHistoryLength(4);
+ bankQuoteRequest.setLoanTerm(72);
+ bankQuoteRequest.setLoanAmount(20000);
+ bankQuoteRequest.setCustomerUID("unique");
+ logger.log(Priority.INFO, bankQuoteRequest);
+ XStream xstream = new XStream();
+ String bankQuoteRequestXml=xstream.toXML(bankQuoteRequest);
+
+ QueueSession sess;
+ Queue queue;
+ try {
+ Properties properties = new Properties();
+ properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
+ properties.put(Context.URL_PKG_PREFIXES , "org.jnp.interfaces");
+ properties.put(Context.PROVIDER_URL , "localhost");
+ InitialContext ctx = new InitialContext(properties);
+ queue = (Queue) ctx.lookup("queue/C");
+ QueueConnectionFactory factory = (QueueConnectionFactory) ctx
+ .lookup("ConnectionFactory");
+ QueueConnection cnn = factory.createQueueConnection();
+ sess = cnn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
+ TextMessage msg = sess.createTextMessage(bankQuoteRequestXml);
+ QueueSender sender = sess.createSender(queue);
+ sender.send(msg);
+ //if the test gets here without errors it passes.
+ assertTrue(true);
+ } catch (Exception e) {
+ //if it fails it may be because the server is not up and the Queue is not found
+ //I'm not letting the test fail, since we may want to do nightly build/test runs
+ //which may not have the server up.
+ logger.log(Priority.ERROR, e.getMessage(), e);
+ logger.log(Priority.ERROR, "Is the server up and running?");
+ }
+ }
+
+ public static junit.framework.Test suite() {
+ return new JUnit4TestAdapter(JmsProcessorTest.class);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/build.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/build.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/build.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,278 @@
+<project name="LOANBROKER" default="compile" basedir=".">
+
+ <property file="loanbroker.properties"/>
+ <property name="org.jboss.soa.esb.samples.loanbroker.esb_home" value="../../../" />
+ <!-- Some default build locations -->
+
+ <property name="org.jboss.esb.samples.loanbroker.dest" value="${basedir}/build"/>
+ <property name="org.jboss.esb.samples.loanbroker.classes.dir" value="${basedir}/build/classes/loanbroker/"/>
+ <property name="org.jboss.esb.samples.loanbroker.testclasses.dir" value="${basedir}/build/classes/tests/"/>
+ <property name="org.jboss.esb.samples.loanbroker.src.dir" value="${basedir}/java/src"/>
+ <property name="org.jboss.esb.samples.loanbroker.test.dir" value="${basedir}/test"/>
+ <property name="org.jboss.esb.samples.loanbroker.lib.ext.dir" value="${basedir}/lib"/>
+ <property name="org.jboss.esb.samples.loanbroker.smooks" value="${basedir}/transform/smooks"/>
+ <property name="org.jboss.esb.samples.loanbroker.tests.report.dir" value="${basedir}/build/tests"/>
+ <property environment="env" />
+
+ <!-- Build from ESB source? -->
+ <property name="org.jboss.soa.esb.lib.dir" value="${org.jboss.soa.esb.samples.loanbroker.esb_home}/build/dist"/>
+ <condition property="org.jboss.soa.esb.lib.dir" value="${org.jboss.soa.esb.samples.loanbroker.esb_home}/lib">
+ <equals arg1="${org.jboss.soa.esb.buildfrom.distribution}" arg2="yes"/>
+ </condition>
+
+ <!--
+ TODO: Can these classpaths be cleaned up any???
+ -->
+
+ <path id="org.jboss.esb.samples.loanbroker.classpath">
+ <pathelement location="${org.jboss.esb.samples.loanbroker.smooks}"/>
+ <fileset dir="${org.jboss.esb.samples.loanbroker.lib.ext.dir}" includes="*.jar"/>
+ <fileset dir="${org.jboss.soa.esb.samples.loanbroker.jboss_home}/client"
+ includes="jbossall-client.jar jbossws-client.jar mail.jar"/>
+ <fileset dir="${org.jboss.soa.esb.samples.loanbroker.jboss_home}/server/default/deploy/ejb3.deployer/"
+ includes="jboss-annotations-ejb3.jar jboss-ejb3.jar jboss-ejb3x.jar"/>
+ <fileset dir="${org.jboss.soa.esb.samples.loanbroker.jboss_home}/server/default/deploy/jboss-aop-jdk50.deployer/"
+ includes="jboss-aop-jdk50.jar jboss-aspect-library-jdk50.jar jboss-aop-jdk50.deployer/trove.jar"/>
+ <fileset dir="${org.jboss.soa.esb.lib.dir}/lib"
+ includes="jbossesb-rosetta.jar jbossesb-listeners.jar jbossesb-common.jar jbossesb-services.jar"/>
+ <fileset dir="${org.jboss.soa.esb.samples.loanbroker.esb_home}/lib/ext"
+ includes="milyn*.jar commons*.jar xerces*.jar xalan*.jar xml-apis*.jar jbossts-rosetta.jar"/>
+ </path>
+ <path id="org.jboss.esb.samples.loanbroker.testclasspath">
+ <pathelement location="${org.jboss.esb.samples.loanbroker.smooks}"/>
+
+ <fileset dir="${org.jboss.esb.samples.loanbroker.lib.ext.dir}" includes="*.jar"/>
+ <fileset dir="${org.jboss.soa.esb.samples.loanbroker.jboss_home}/client"
+ includes="jbossall-client.jar jbossws-client.jar mail.jar activation.jar"/>
+ <fileset dir="${org.jboss.soa.esb.samples.loanbroker.jboss_home}/server/default/deploy/ejb3.deployer/"
+ includes="jboss-annotations-ejb3.jar jboss-ejb3.jar jboss-ejb3x.jar"/>
+ <fileset dir="${org.jboss.soa.esb.samples.loanbroker.jboss_home}/server/default/deploy/jboss-aop-jdk50.deployer/"
+ includes="jboss-aop-jdk50.jar jboss-aspect-library-jdk50.jar jboss-aop-jdk50.deployer/trove.jar"/>
+ <fileset dir="${org.jboss.soa.esb.lib.dir}/lib"
+ includes="jbossesb-rosetta.jar jbossesb-listeners.jar jbossesb-processors.jar jbossesb-services.jar"/>
+ <fileset dir="${org.jboss.soa.esb.samples.loanbroker.esb_home}/lib/ext"
+ includes="milyn*.jar commons*.jar xerces*.jar xalan*.jar xml-apis*.jar jbossts-common.jar"/>
+ <pathelement location="${org.jboss.esb.samples.loanbroker.classes.dir}"/>
+ </path>
+
+ <target name="clean">
+ <delete dir="${org.jboss.esb.samples.loanbroker.dest}" />
+ </target>
+ <!-- =================================================================== -->
+ <!-- Prepares the directory structure -->
+ <!-- =================================================================== -->
+ <target name="org.jboss.esb.samples.loanbroker.prepare">
+ <mkdir dir="${org.jboss.esb.samples.loanbroker.dest}"/>
+ <mkdir dir="${org.jboss.esb.samples.loanbroker.dest}/dist"/>
+ <mkdir dir="${org.jboss.esb.samples.loanbroker.dest}/classes/loanbroker"/>
+ <mkdir dir="${org.jboss.esb.samples.loanbroker.dest}/classes/tests"/>
+ <mkdir dir="${org.jboss.esb.samples.loanbroker.dest}/tests"/>
+ <mkdir dir="${org.jboss.esb.samples.loanbroker.dest}/dist/lib"/>
+ </target>
+
+ <!-- Compilation targets -->
+ <target name="org.jboss.esb.samples.loanbroker.compile" depends="org.jboss.esb.samples.loanbroker.prepare"
+ description="Compile all classes">
+
+ <javac
+ destdir="${org.jboss.esb.samples.loanbroker.classes.dir}"
+ classpathref="org.jboss.esb.samples.loanbroker.classpath"
+ debug="true"
+ >
+ <src path="${org.jboss.esb.samples.loanbroker.src.dir}"/>
+ </javac>
+
+ </target>
+
+ <!-- javadocs paths -->
+ <path id="org.jboss.esb.samples.loanbroker.javadocs.path">
+ <pathelement path="esb/classes"/>
+ </path>
+
+ <!-- configure the web.xml -->
+ <target name="org.jboss.esb.samples.loanbroker.webxml">
+ <copy file="java/resources/web.xml" overwrite="true"
+ todir="${org.jboss.esb.samples.loanbroker.dest}">
+ <filterset>
+ <filter token="LoanBrokerConfigFile" value="${basedir}/conf/LoanBrokerConfig.xml" />
+ </filterset>
+ </copy>
+ </target>
+
+ <!-- Jar targets -->
+ <target name="org.jboss.esb.samples.loanbroker.jar" depends="org.jboss.esb.samples.loanbroker.compile, org.jboss.esb.samples.loanbroker.webxml" >
+ <echo message="Building jar file"/>
+ <delete file="${org.jboss.esb.samples.loanbroker.dest}/dist/lib/loanbroker.jar" />
+ <jar destfile="${org.jboss.esb.samples.loanbroker.dest}/dist/lib/loanbroker.jar"
+ basedir="${org.jboss.esb.samples.loanbroker.classes.dir}"
+ includes="**/*.class" excludes="**/web/*.class"
+ />
+ <delete file="${org.jboss.esb.samples.loanbroker.dest}/dist/lib/loanbroker.war" />
+ <war warfile="${org.jboss.esb.samples.loanbroker.dest}/dist/lib/loanbroker.war"
+ webxml="${org.jboss.esb.samples.loanbroker.dest}/web.xml">
+ <classes dir="build/classes/loanbroker" includes="**/web/**/*.class"/>
+ <lib dir="${org.jboss.soa.esb.lib.dir}/lib">
+ <include name="*.jar"/>
+ </lib>
+ <lib dir="${org.jboss.esb.samples.loanbroker.dest}/dist/lib">
+ <include name="loanbroker.jar"/>
+ </lib>
+ <lib dir="lib">
+ <include name="axis.jar"/>
+ <include name="commons-discovery.jar"/>
+ <include name="jbossts-common.jar"/>
+ </lib>
+ <fileset dir="jsp">
+ <include name="**/*.jsp"/>
+ </fileset>
+ </war>
+ </target>
+
+ <!-- Deploy the loanbroker.war -->
+ <target name="deploy" depends="jar">
+ <copy file="${org.jboss.esb.samples.loanbroker.dest}/dist/lib/loanbroker.war"
+ todir="${org.jboss.soa.esb.samples.loanbroker.jboss_home}/server/${org.jboss.soa.esb.samples.loanbroker.jboss_server}/deploy"/>
+ </target>
+
+ <!-- Short target names -->
+ <target name="compile" depends="org.jboss.esb.samples.loanbroker.compile"/>
+ <target name="jar" depends="org.jboss.esb.samples.loanbroker.jar"/>
+
+ <target name="runFileBank">
+ <ant dir="banks" target="runFileBank"/>
+ </target>
+
+ <target name="runJMSBank">
+ <ant dir="banks" target="runJMSBank"/>
+ </target>
+
+ <target name="runListener" depends="org.jboss.esb.samples.loanbroker.jar">
+ <echo>Running Loan Broker Listsner</echo>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.loanbroker.web.Launcher" failonerror="true">
+ <classpath refid="org.jboss.esb.samples.loanbroker.testclasspath"/>
+ <sysproperty key="org.apache.commons.logging.LogFactory" value="org.apache.commons.logging.impl.Log4jFactory"/>
+ </java>
+ </target>
+
+ <!-- Compile the ant task used to convert file paths to fully qualified file URIs -->
+ <target name="compile-antx">
+ <mkdir dir="ant/classes" />
+ <javac srcdir="ant/src" destdir="ant/classes" />
+ </target>
+
+ <target name="configure" depends="compile-antx">
+ <taskdef name="touri" classname="org.jboss.antx.ToURI" classpath="ant/classes"/>
+ <taskdef name="strreplace" classname="org.jboss.antx.StringReplace" classpath="ant/classes"/>
+
+ <touri path="./" property="cwd.uri" />
+ <dirname file="${ant.file}" property="cwd.dir.tmp"/>
+ <strreplace string="${cwd.dir.tmp}" find="\" replace="/" property="cwd.dir" />
+
+ <property name="trail.runtime.dir" value="TrailBlazer-rtfiles"/>
+
+ <available file="config.cache" property="config.cache.available"/>
+ <ant target="check.create.default.config_cache" />
+
+ <ant target="capture.user.input" />
+
+ <mkdir dir="${trail.runtime.dir}"/>
+ <mkdir dir="${trail.runtime.dir}/BankInput/outgoing"/>
+ <mkdir dir="${trail.runtime.dir}/notification_output_files"/>
+ <mkdir dir="${trail.runtime.dir}/outgoing/errorDir"/>
+ <mkdir dir="${trail.runtime.dir}/outgoing/inputDoneDir"/>
+
+ <ant target="deploy"/>
+
+ <echo message="" />
+ <echo message="" />
+ <input message="That's it, the Trailblazer is now configured! You can reconfigure the Trailblazer at any time by re-running this script. ${line.separator}Press enter to finish..." />
+ <echo message="" />
+ <echo message="" />
+ </target>
+
+ <target name="capture.user.input">
+ <property file="config.cache"/>
+
+ <echo message="----------------------------------------------------------------------------------------------------------------" />
+ <echo message="| |" />
+ <echo message="| J B O S S E S B T R A I L B L A Z E R C O N F I G U R A T I O N |" />
+ <echo message="| |" />
+ <echo message="----------------------------------------------------------------------------------------------------------------" />
+ <echo message="" />
+ <echo message="" />
+ <input message="This script will help you configure your local project for running the JBoss ESB LoanBroker Trailblazer. You can reconfigure the Trailblazer at any time by re-running this script. ${line.separator}Press enter to start..." />
+ <echo message="" />
+ <input addproperty="jndi.host.frominput" message='Enter the host address of the JBoss Application Server on which your deployed JBoss ESB is running (for "${jndi.host}" simply press return):' defaultvalue="${jndi.host}" />
+ <echo message="" />
+ <input addproperty="jboss.as.installdir.frominput" message='Enter the path to the root of your local JBoss Application Server Installation (for "${jboss.as.installdir}" simply press return)(required for access to JBoss libraries):' defaultvalue="${jboss.as.installdir}" />
+ <echo message="" />
+ <echo message="" />
+ <input message="The following questions will configure the email notification parameters required by the Trailblazer.${line.separator}Press enter to continue..." />
+ <echo message="" />
+ <input addproperty="smtp.host.frominput" message='Enter the SMTP Host Name (for "${smtp.host}" simply press return):' defaultvalue="${smtp.host}" />
+ <echo message="" />
+ <input addproperty="smtp.port.frominput" message='Enter the SMTP Host Port (for "${smtp.port}" simply press return):' defaultvalue="${smtp.port}" />
+ <echo message="" />
+ <input addproperty="smtp.user.frominput" message='Enter the SMTP User Name of your user account on "${smtp.host.frominput}" (for "${smtp.user}" simply press return):' defaultvalue="${smtp.user}" />
+ <echo message="" />
+ <input addproperty="smtp.password.frominput" message='Enter the password associated with your SMTP User account "${smtp.user.frominput}" (for "${smtp.password}" simply press return):' defaultvalue="${smtp.password}" />
+ <echo message="" />
+ <input addproperty="smtp.auth.frominput" message='Is authentication of the SMTP User account "${smtp.user.frominput}" required by your SMTP host "${smtp.host.frominput}" (for "${smtp.auth}" simply press return): (true,false)' defaultvalue="${smtp.auth}" />
+ <echo message="" />
+ <input addproperty="smtp.from.frominput" message='Enter the "From" address for email notifications from your user account "${smtp.user.frominput}" on "${smtp.host.frominput}" (for "${smtp.from}" simply press return):' defaultvalue="${smtp.from}" />
+
+ <ant target="create.config_cache" />
+ <ant target="filter-files" />
+ </target>
+
+ <target name="filter-files">
+ <ant target="filter-file">
+ <property name="file" value="loanbroker.properties.template"/>
+ <property name="toFile" value="loanbroker.properties"/>
+ </ant>
+ <ant target="filter-file">
+ <property name="file" value="conf/LoanBrokerConfig.xml.template"/>
+ <property name="toFile" value="conf/LoanBrokerConfig.xml"/>
+ </ant>
+ <ant target="filter-file">
+ <property name="file" value="banks/bank.properties.template"/>
+ <property name="toFile" value="banks/bank.properties"/>
+ </ant>
+ </target>
+
+ <target name="filter-file">
+ <copy file="${file}" tofile="${toFile}" overwrite="true">
+ <filterset filtersfile="config.cache" />
+ </copy>
+ </target>
+
+ <target name="create.config_cache">
+ <delete file="config.cache" />
+ <echo message="cwd.uri=${cwd.uri}${line.separator}" file="config.cache" append="true" />
+ <echo message="cwd.dir=${cwd.dir}${line.separator}" file="config.cache" append="true" />
+ <echo message="trail.runtime.dir=${trail.runtime.dir}${line.separator}" file="config.cache" append="true" />
+ <echo message="jndi.host=${jndi.host.frominput}${line.separator}" file="config.cache" append="true"/>
+ <strreplace string="${jboss.as.installdir.frominput}" find="\" replace="/" property="jboss.as.installdir.fixedup" />
+ <echo message="jboss.as.installdir=${jboss.as.installdir.fixedup}${line.separator}" file="config.cache" append="true" />
+ <echo message="smtp.host=${smtp.host.frominput}${line.separator}" file="config.cache" append="true" />
+ <echo message="smtp.port=${smtp.port.frominput}${line.separator}" file="config.cache" append="true" />
+ <echo message="smtp.from=${smtp.from.frominput}${line.separator}" file="config.cache" append="true" />
+ <echo message="smtp.user=${smtp.user.frominput}${line.separator}" file="config.cache" append="true" />
+ <echo message="smtp.password=${smtp.password.frominput}${line.separator}" file="config.cache" append="true" />
+ <echo message="smtp.auth=${smtp.auth.frominput}${line.separator}" file="config.cache" append="true" />
+ </target>
+
+ <target name="check.create.default.config_cache" unless="config.cache.available">
+ <echo message="cwd.dir=${cwd.dir}${line.separator}" file="config.cache" append="true" />
+ <echo message="trail.runtime.dir=${trail.runtime.dir}${line.separator}" file="config.cache" append="true" />
+ <echo message="jndi.host=localhost${line.separator}" file="config.cache" append="true" />
+ <echo message="jboss.as.installdir=/jboss-4.0.4.GA${line.separator}" file="config.cache" append="true" />
+ <echo message="smtp.host=localhost${line.separator}" file="config.cache" append="true" />
+ <echo message="smtp.port=25${line.separator}" file="config.cache" append="true" />
+ <echo message="smtp.user=${user.name}${line.separator}" file="config.cache" append="true" />
+ <echo message="smtp.password=password${line.separator}" file="config.cache" append="true" />
+ <echo message="smtp.auth=true${line.separator}" file="config.cache" append="true" />
+ <echo message="smtp.from=${user.name}@localhost${line.separator}" file="config.cache" append="true" />
+ </target>
+
+</project>
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/conf/LoanBrokerConfig.xml.template
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/conf/LoanBrokerConfig.xml.template 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/conf/LoanBrokerConfig.xml.template 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,182 @@
+<JBossESB-LoanBroker-TrailBlazer
+ commandConnFactoryClass="ConnectionFactory"
+ commandJndiType="jboss"
+ commandJndiURL="@jndi.host@"
+ commandIsTopic="false"
+ messageSelector="esbApp='esbApp'"
+ commandJndiName="queue/A"
+ parameterReloadSecs="60"
+ loanbrokerJndiUrl="localhost"
+ loanbrokerJndiType="jboss"
+ loanbrokerCreditQueue="queue/A"
+ loanbrokerJmsRequestQueue="queue/C"
+ loanbrokerRequestDir="@cwd.dir@/@trail.runtime.dir@/BankInput"
+ loanbrokerEmailTemplatePath="@cwd.dir@/template"
+ loanbrokerEmailTemplateFile="quotes"
+>
+
+
+<CreditAgencyJMSInput
+ listenerClass="org.jboss.soa.esb.listeners.JmsQueueListener"
+
+ actions="ProcessCreditCheckRequest, Route-CreditCheckResponse-To-CreditCheckResponseProcessor"
+
+ maxThreads="3"
+ queueConnFactoryClass="ConnectionFactory"
+ listenJndiType="jboss"
+ listenJndiURL="@jndi.host@"
+ listenQueue="queue/A"
+ listenMsgSelector="sample_loanbroker_servicecode='creditRequest'"
+>
+ </CreditAgencyJMSInput>
+
+<CreditAgencyJMSOutput
+ listenerClass="org.jboss.soa.esb.listeners.JmsQueueListener"
+
+ actions="CreditCheckResponse-To-BankQuote, BankQuote-To-CSV, Route-BankQuote-CSV-To-FileBank, Route-BankQuote-CSV-To-JMSBank-Router"
+
+ maxThreads="1"
+ queueConnFactoryClass="ConnectionFactory"
+ listenJndiType="jboss"
+ listenJndiURL="@jndi.host@"
+ listenQueue="queue/A"
+ listenMsgSelector="sample_loanbroker_servicecode='creditResponse'"
+>
+ <NotificationList type="OK">
+ <target class="NotifyFiles">
+ <file URI="@cwd.uri@@trail.runtime.dir@/notification_output_files/creditAgency.notifOK" append="true"/>
+ </target>
+ </NotificationList>
+</CreditAgencyJMSOutput>
+
+<ToJMSBankRouter
+ listenerClass="org.jboss.soa.esb.listeners.JmsQueueListener"
+
+ actions="BankQuote-CSV-To-JMSBankXML, Route-BankQuote-XML-To-JMSBank"
+
+ maxThreads="1"
+ queueConnFactoryClass="ConnectionFactory"
+ listenJndiType="jboss"
+ listenJndiURL="@jndi.host@"
+ listenQueue="queue/A"
+ listenMsgSelector="sample_loanbroker_servicecode='BankQuoteCSV'"
+>
+</ToJMSBankRouter>
+
+<BanksJMSResponse
+ listenerClass="org.jboss.soa.esb.listeners.JmsQueueListener"
+
+ actions="BankQuoteResponseXML-To-BankQuoteResponse, Process-BankQuote"
+
+ maxThreads="1"
+ queueConnFactoryClass="ConnectionFactory"
+ listenJndiType="jboss"
+ listenJndiURL="@jndi.host@"
+ listenQueue="queue/D"
+>
+ <NotificationList type="OK">
+ <target class="NotifyFiles">
+ <file URI="@cwd.uri@@trail.runtime.dir@/notification_output_files/JMSBanksResponse.notifOK" append="true"/>
+ </target>
+ </NotificationList>
+</BanksJMSResponse>
+
+<BanksFilePoller
+ listenerClass="org.jboss.soa.esb.listeners.DirectoryPoller"
+
+ actions="FileToByteArray, Bytes-To-UTF-8-String, BankQuoteResponseCSV-To-BankQuoteResponse, Process-BankQuote"
+
+ pollLatencySecs="5"
+ maxThreads="2"
+ inputDirURI="@cwd.uri@@trail.runtime.dir@/BankInput/outgoing"
+ inputSuffix=".dat"
+ workSuffix=".INPROC"
+ errorDirURI="@cwd.uri@@trail.runtime.dir@/outgoing/errorDir"
+ errorSuffix=".ERR"
+ postDirURI="@cwd.uri@@trail.runtime.dir@/outgoing/inputDoneDir"
+ postSuffix=".DONE"
+ postDelete="n"
+ >
+ <NotificationList type="OK">
+ <target class="NotifyFiles">
+ <file URI="@cwd.uri@@trail.runtime.dir@/notification_output_files/FileBanksResponse.notifOK" append="true"/>
+ append="true"
+ />
+ </target>
+ </NotificationList>
+
+ <NotificationList type="err">
+ <target class="NotifyFiles">
+ <file URI="@cwd.uri@@trail.runtime.dir@/notification_output_files/FileBanksResponse.notifErr" append="true"/>
+ append="true"
+ />
+ </target>
+ </NotificationList>
+</BanksFilePoller>
+
+ <Actions>
+ <Action name="ProcessCreditCheckRequest" processor="CreditRequestProcessor" />
+
+ <Action name="Route-CreditCheckResponse-To-CreditCheckResponseProcessor" processor="JMSRouter">
+ <property name="jndiName" value="queue/A" />
+ <property name="message-prop:sample_loanbroker_servicecode" value="creditResponse" />
+ </Action>
+
+ <Action name="CreditCheckResponse-To-BankQuote" processor="CreditResponseProcessor" />
+
+ <Action name="BankQuote-To-CSV" processor="ObjectToCSVString">
+ <property name="bean-properties" value="ssn,creditScore,creditHistoryLen,amount,term,customerUniqueId" />
+ </Action>
+ <Action name="Route-BankQuote-CSV-To-FileBank" processor="ObjectToFileWriter">
+ <property name="file" value="./@trail.runtime.dir@/BankInput" />
+ <property name="ext" value="dat" />
+ </Action>
+ <Action name="Route-BankQuote-CSV-To-JMSBank-Router" processor="JMSRouter">
+ <property name="jndiName" value="queue/A" />
+ <property name="message-prop:sample_loanbroker_servicecode" value="BankQuoteCSV" />
+ </Action>
+ <Action name="BankQuote-CSV-To-JMSBankXML" processor="SmooksTransformer">
+ <property name="message-type" value="BankQuote-CSV" />
+ <property name="message-from" value="LoanBroker" />
+ <property name="message-to" value="JMSBank" />
+ </Action>
+ <Action name="Route-BankQuote-XML-To-JMSBank" processor="JMSRouter">
+ <property name="jndiName" value="queue/C" />
+ </Action>
+
+ <Action name="FileToByteArray" processor="FileToByteArray" />
+
+ <Action name="Bytes-To-UTF-8-String" processor="ByteArrayToString">
+ <property name="encoding" value="UTF-8" />
+ </Action>
+
+ <Action name="BankQuoteResponseCSV-To-BankQuoteResponse" processor="ToBankQuoteResponse" />
+ <Action name="BankQuoteResponseXML-To-BankQuoteResponse" processor="ToBankQuoteResponse" />
+
+ <Action name="Process-BankQuote" processor="ProcessBanksResponse" />
+
+ <ProcessorAliases>
+ <Alias name="CreditRequestProcessor" class="org.jboss.soa.esb.samples.loanbroker.actions.ProcessCreditRequest" />
+ <Alias name="JMSRouter" class="org.jboss.soa.esb.actions.routing.JMSRouter" />
+ <Alias name="CreditResponseProcessor" class="org.jboss.soa.esb.samples.loanbroker.actions.ProcessCreditResponse" />
+ <Alias name="ObjectToCSVString" class="org.jboss.soa.esb.actions.converters.ObjectToCSVString" />
+ <Alias name="ObjectToFileWriter" class="org.jboss.soa.esb.actions.routing.ObjectToFileWriter" />
+ <Alias name="FileToByteArray" class="org.jboss.soa.esb.actions.converters.FileToByteArray" />
+ <Alias name="ByteArrayToString" class="org.jboss.soa.esb.actions.converters.ByteArrayToString" />
+ <Alias name="ObjectToXStream" class="org.jboss.soa.esb.actions.converters.ObjectToXStream" />
+ <Alias name="SmooksTransformer" class="org.jboss.soa.esb.actions.converters.SmooksTransformer" />
+ <Alias name="ToBankQuoteResponse" class="org.jboss.soa.esb.samples.loanbroker.actions.ToBankQuoteResponse" />
+ <Alias name="ProcessBanksResponse" class="org.jboss.soa.esb.samples.loanbroker.actions.ProcessBanksResponse" />
+ </ProcessorAliases>
+ </Actions>
+
+<EmailProperties
+ org.jboss.soa.esb.mail.smtp.host="@smtp.host@"
+ org.jboss.soa.esb.mail.smtp.port="@smtp.port@"
+ org.jboss.soa.esb.mail.smtp.from="@smtp.from@"
+ org.jboss.soa.esb.mail.smtp.user="@smtp.user@"
+ org.jboss.soa.esb.mail.smtp.password="@smtp.password@"
+ org.jboss.soa.esb.mail.smtp.auth="@smtp.auth@"
+/>
+
+</JBossESB-LoanBroker-TrailBlazer>
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/conf/ObjStore.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/conf/ObjStore.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/conf/ObjStore.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,19 @@
+<ObjectStore
+ dataSourceJndiName="java:JBossESBDS"
+ uidTable="uid_table"
+ batchTable="batches" >
+
+ <Class name="org.jboss.soa.esb.common.bizclasses.Person"
+ table="object_snap"
+ type="Person"
+ encrypt="false" >
+ <Index table="people_index" />
+ </Class>
+
+ <Class name="org.jboss.soa.esb.samples.loanbroker.domain.Customer"
+ table="object_snap"
+ type="Customer"
+ encrypt="false" >
+ <Index table="customer_index" />
+ </Class>
+</ObjectStore>
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/resources/LoanBrokerWS-wsdl.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/resources/LoanBrokerWS-wsdl.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/resources/LoanBrokerWS-wsdl.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,43 @@
+<definitions name='LoanBrokerWSService' targetNamespace='http://localhost/loanbroker' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://localhost/loanbroker' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
+ <types>
+ <schema elementFormDefault='qualified' targetNamespace='http://localhost/loanbroker' xmlns='http://www.w3.org/2001/XMLSchema' xmlns:soap11-enc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:tns='http://localhost/loanbroker' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
+ <complexType name='WebCustomer'>
+ <sequence>
+ <element name='address' nillable='true' type='string'/>
+ <element name='employerName' nillable='true' type='string'/>
+ <element name='loanAmount' type='double'/>
+ <element name='loanDuration' type='int'/>
+ <element name='name' nillable='true' type='string'/>
+ <element name='salary' type='double'/>
+ </sequence>
+ </complexType>
+ </schema>
+ </types>
+ <message name='LoanBrokerWS_RequestLoan'>
+ <part name='WebCustomer_1' type='tns:WebCustomer'/>
+ </message>
+ <message name='LoanBrokerWS_RequestLoanResponse'></message>
+ <portType name='LoanBrokerWS'>
+ <operation name='RequestLoan' parameterOrder='WebCustomer_1'>
+ <input message='tns:LoanBrokerWS_RequestLoan'/>
+ <output message='tns:LoanBrokerWS_RequestLoanResponse'/>
+ </operation>
+ </portType>
+ <binding name='LoanBrokerWSBinding' type='tns:LoanBrokerWS'>
+ <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
+ <operation name='RequestLoan'>
+ <soap:operation soapAction=''/>
+ <input>
+ <soap:body namespace='http://localhost/loanbroker' use='literal'/>
+ </input>
+ <output>
+ <soap:body namespace='http://localhost/loanbroker' use='literal'/>
+ </output>
+ </operation>
+ </binding>
+ <service name='LoanBrokerWSService'>
+ <port binding='tns:LoanBrokerWSBinding' name='LoanBrokerWSPort'>
+ <soap:address location='http://localhost:8080/loanbroker/LoanBrokerWS'/>
+ </port>
+ </service>
+</definitions>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/resources/web.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/resources/web.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/resources/web.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
+<servlet>
+<servlet-name>LoanBrokerWS</servlet-name>
+<servlet-class>org.jboss.soa.esb.samples.loanbroker.web.LoanBrokerWS</servlet-class>
+</servlet>
+<servlet-mapping>
+<servlet-name>LoanBrokerWS</servlet-name>
+<url-pattern>/LoanBrokerWS</url-pattern>
+</servlet-mapping>
+<env-entry>
+ <description>LoanBroker Config File</description>
+ <env-entry-name>LoanBrokerConfigFile</env-entry-name>
+ <env-entry-type>java.lang.String</env-entry-type>
+ <env-entry-value>@LoanBrokerConfigFile@</env-entry-value>
+ </env-entry>
+</web-app>
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/jboss/loanbroker/util/FileUtil.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/jboss/loanbroker/util/FileUtil.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/jboss/loanbroker/util/FileUtil.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,66 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.jboss.loanbroker.util;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+/**
+ * Utility class for reading a file into a String and back.
+ * @author kstam
+ */
+public class FileUtil {
+ /**
+ * Read the file into a String.
+ * @param file - the file to be read
+ * @return String with the content of the file
+ * @throws IOException - when we can't read the file
+ */
+ public static String readTextFile(File file) throws IOException
+ {
+ StringBuffer sb = new StringBuffer(1024);
+ BufferedReader reader = new BufferedReader(new FileReader(file.getPath()));
+ char[] chars = new char[1];
+ while( (reader.read(chars)) > -1){
+ sb.append(String.valueOf(chars));
+ chars = new char[1];
+ }
+ reader.close();
+ return sb.toString();
+ }
+ /**
+ * Write a String into a file.
+ * @param file - File to which we write the String
+ * @param str - string which will be written
+ * @throws IOException - when we can't write to the file
+ */
+ public static void writeTextFile(File file, String str) throws IOException
+ {
+ BufferedWriter writer = new BufferedWriter(new FileWriter(file.getPath()));
+ writer.write(str);
+ writer.close();
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/loanbroker/LoanBrokerException.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/loanbroker/LoanBrokerException.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/loanbroker/LoanBrokerException.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,28 @@
+package org.jboss.soa.esb.loanbroker;
+
+import org.jboss.soa.esb.BaseException;
+
+/**
+ * {@link org.jboss.soa.esb.parameters.ParamRepository} access Exception.
+ */
+public class LoanBrokerException extends BaseException {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Public Constructor.
+ * @param message Exception message.
+ */
+ public LoanBrokerException(String message) {
+ super(message);
+ }
+
+ /**
+ * Public Constructor.
+ * @param message Exception message.
+ * @param cause Exception cause.
+ */
+ public LoanBrokerException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/BankQuote.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/BankQuote.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/BankQuote.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,127 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.samples.loanbroker;
+
+import java.io.Serializable;
+
+
+public class BankQuote implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+ public int ssn;
+ public int creditScore;
+ public int historyLength;
+ public int loanAmount;
+ public int loanTerm;
+ public String customerUID;
+
+ /**
+ * Gets for the credit score.
+ * @return credit score
+ */
+ public int getCreditScore() {
+ return creditScore;
+ }
+ /**
+ * Sets the credit score.
+ * @param creditScore
+ */
+ public void setCreditScore(int creditScore) {
+ this.creditScore = creditScore;
+ }
+ /**
+ * Gets the credit history length (in months).
+ * @return credit history length
+ */
+ public int getHistoryLength() {
+ return historyLength;
+ }
+ /**
+ * Sets the credit history length (in months).
+ * @param historyLength
+ */
+ public void setHistoryLength(int historyLength) {
+ this.historyLength = historyLength;
+ }
+ /**
+ * Gets the requested loan amount (in dollar).
+ * @return the loan amount
+ */
+ public int getLoanAmount() {
+ return loanAmount;
+ }
+ /**
+ * Sets the loan amount.
+ * @param loanAmount - the loan amount (in dollar).
+ */
+ public void setLoanAmount(int loanAmount) {
+ this.loanAmount = loanAmount;
+ }
+ /**
+ * Gets the duration of the loan, the term, (in months).
+ * @return loanTerm
+ */
+ public int getLoanTerm() {
+ return loanTerm;
+ }
+ /**
+ * Sets the term (duration) of the loan (in months)
+ * @param loanTerm
+ */
+ public void setLoanTerm(int loanTerm) {
+ this.loanTerm = loanTerm;
+ }
+ /**
+ * Sets the Social Security Number (SSN).
+ * @return ssn
+ */
+ public int getSsn() {
+ return ssn;
+ }
+ /**
+ * Sets the Social Security Number (SSN).
+ * @param ssn
+ */
+ public void setSsn(int ssn) {
+ this.ssn = ssn;
+ }
+ /**
+ * Returns a human readable string representation of this object.
+ * @return toString
+ */
+ public String toString() {
+ return this.getClass().getSimpleName() + "=["
+ + "ssn=" + ssn
+ + ", creditScore=" + creditScore
+ + ", historyLength=" + historyLength
+ + ", loanAmount=" + loanAmount
+ + ", loanTerm=" + loanTerm
+ + ", customerUID="+ customerUID + "]";
+ }
+
+ public String getCustomerUID() {
+ return customerUID;
+ }
+ public void setCustomerUID(String customerUID) {
+ this.customerUID = customerUID;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/QuoteRequest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/QuoteRequest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/QuoteRequest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,127 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.samples.loanbroker;
+
+import java.io.Serializable;
+
+
+public class QuoteRequest implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+ public int ssn;
+ public int creditScore;
+ public int creditHistoryLen;
+ public int amount;
+ public int term;
+ public String customerUniqueId;
+
+ /**
+ * Gets for the credit score.
+ * @return credit score
+ */
+ public int getCreditScore() {
+ return creditScore;
+ }
+ /**
+ * Sets the credit score.
+ * @param creditScore
+ */
+ public void setCreditScore(int creditScore) {
+ this.creditScore = creditScore;
+ }
+ /**
+ * Gets the credit history length (in months).
+ * @return credit history length
+ */
+ public int getCreditHistoryLen() {
+ return creditHistoryLen;
+ }
+ /**
+ * Sets the credit history length (in months).
+ * @param creditHistoryLen
+ */
+ public void setCreditHistoryLen(int historyLength) {
+ this.creditHistoryLen = historyLength;
+ }
+ /**
+ * Gets the requested loan amount (in dollar).
+ * @return the loan amount
+ */
+ public int getAmount() {
+ return amount;
+ }
+ /**
+ * Sets the loan amount.
+ * @param amount - the loan amount (in dollar).
+ */
+ public void setAmount(int loanAmount) {
+ this.amount = loanAmount;
+ }
+ /**
+ * Gets the duration of the loan, the term, (in months).
+ * @return term
+ */
+ public int getTerm() {
+ return term;
+ }
+ /**
+ * Sets the term (duration) of the loan (in months)
+ * @param term
+ */
+ public void setTerm(int loanTerm) {
+ this.term = loanTerm;
+ }
+ /**
+ * Sets the Social Security Number (SSN).
+ * @return ssn
+ */
+ public int getSsn() {
+ return ssn;
+ }
+ /**
+ * Sets the Social Security Number (SSN).
+ * @param ssn
+ */
+ public void setSsn(int ssn) {
+ this.ssn = ssn;
+ }
+ /**
+ * Returns a human readable string representation of this object.
+ * @return toString
+ */
+ public String toString() {
+ return this.getClass().getSimpleName() + "=["
+ + "ssn=" + ssn
+ + ", creditScore=" + creditScore
+ + ", creditHistoryLen=" + creditHistoryLen
+ + ", amount=" + amount
+ + ", term=" + term
+ + ", customerUniqueId="+ customerUniqueId + "]";
+ }
+
+ public String getCustomerUniqueId() {
+ return customerUniqueId;
+ }
+ public void setCustomerUniqueId(String customerUID) {
+ this.customerUniqueId = customerUID;
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessBanksResponse.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessBanksResponse.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessBanksResponse.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,105 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.actions;
+
+import java.io.Serializable;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteResponse;
+import org.jboss.soa.esb.samples.loanbroker.domain.Customer;
+import org.jboss.soa.esb.samples.loanbroker.domain.LoanOffer;
+import org.jboss.soa.esb.services.PersistHandlerFactory;
+import org.jboss.soa.esb.services.PersistManager;
+import org.jboss.soa.esb.message.Message;
+
+public class ProcessBanksResponse implements ActionProcessor {
+
+ private static Logger logger = Logger.getLogger(ProcessBanksResponse.class);
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
+ */
+ public Message process(Message message) throws ActionProcessingException {
+ BankQuoteResponse bankResponse;
+
+ Object oCurr = ActionUtils.getTaskObject(message);
+ try {
+ bankResponse = (BankQuoteResponse) oCurr;
+ } catch(ClassCastException e) {
+ throw new ActionProcessingException
+ ("Message must be a "+ BankQuoteResponse.class.getName()
+ + ". Is " + oCurr.getClass().getName());
+ }
+
+ try {
+ // get handle to the JBossESB Event object store
+ PersistManager esbHandler = PersistHandlerFactory.getPersistHandler("remote",
+ Configuration.getJndiServerType(),
+ Configuration.getJndiServerURL());
+
+ logger.info("Looking up Customer Object - UID=[" + bankResponse.customerUID + "]");
+ Customer customer = (Customer) esbHandler.getObject(org.jboss.soa.esb.samples.loanbroker.domain.Customer.class, bankResponse.customerUID);
+ logger.info(" -- Business Object BEFORE Loan Offer is added: \n" + customer.toDTO().toXml());
+
+ //now update this Customer with a LoanOffer based on the response from the Bank
+ LoanOffer offer = new LoanOffer((String)null);
+ offer.setField(LoanOffer.ATTRIB.interestRate, (bankResponse.interestRate).toString());
+ offer.setField(LoanOffer.ATTRIB.quoteId, bankResponse.quoteId);
+ offer.setField(LoanOffer.ATTRIB.errorCode, Integer.toString(bankResponse.errorCode));
+ //
+ customer.addOffer(offer);
+ esbHandler.rplObject(customer); //update the object store
+ logger.info(this.getClass().getSimpleName() + " -- Business Object AFTER Loan Offer is added: \n" + customer.toDTO().toXml());
+
+
+ if (customer.getOfferCount() >= 2) //no more quotes expected so send an email
+ {
+ // TODO: Break the email sending out into a standalone action...
+ ProcessEmail email = new ProcessEmail(customer);
+ email.sendEmail();
+ }
+ return message;
+ } catch (Exception e) {
+ throw new ActionProcessingException("Exception processing quote.", e);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
+ */
+ public Serializable getOkNotification(Message arg0) {
+ return "OK NOTIF: " + this.getClass().getSimpleName();
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
+ */
+ public Serializable getErrorNotification(Message arg0) {
+ return "ERR NOTIFICATION: "+this.getClass().getSimpleName();
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditRequest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditRequest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditRequest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,78 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.actions;
+
+import java.io.Serializable;
+import java.util.Random;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.samples.loanbroker.creditagency.CreditCheckRequest;
+import org.jboss.soa.esb.samples.loanbroker.creditagency.CreditCheckResponseNotification;
+import org.jboss.soa.esb.message.Message;
+
+public class ProcessCreditRequest implements ActionProcessor {
+
+ private static Logger logger = Logger.getLogger(ProcessCreditRequest.class);
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
+ */
+ public Message process(Message message) throws ActionProcessingException {
+
+ Object oCurr = ActionUtils.getTaskObject(message);
+ logger.info("processObject was called with <<" +oCurr.toString()+">>");
+
+ CreditCheckRequest creditRequest;
+ try {
+ creditRequest = (CreditCheckRequest)oCurr;
+ } catch (ClassCastException e) {
+ throw new ActionProcessingException("Current object in message must be of type " + CreditCheckRequest.class.getName(), e);
+ }
+
+ //use a dummy score between 0 and 10
+ Random generator = new Random();
+ Integer creditScore = new Integer(generator.nextInt(10));
+ //create our Response
+
+ Object oResult = new CreditCheckResponseNotification(creditRequest.requestID, creditScore, creditRequest.customerID);
+ ActionUtils.setTaskObject(message,oResult);
+ return message;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
+ */
+ public Serializable getOkNotification(Message message) {
+ return "OK NOTIFICATION: "+this.getClass();
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
+ */
+ public Serializable getErrorNotification(Message message) {
+ return "ERR NOTIFICATION: "+this.getClass();
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditResponse.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditResponse.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditResponse.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,100 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.actions;
+
+import java.io.Serializable;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.samples.loanbroker.QuoteRequest;
+import org.jboss.soa.esb.samples.loanbroker.adapters.CustomerAdapter;
+import org.jboss.soa.esb.samples.loanbroker.creditagency.CreditCheckResponseNotification;
+import org.jboss.soa.esb.samples.loanbroker.domain.CreditRating;
+import org.jboss.soa.esb.samples.loanbroker.domain.Customer;
+import org.jboss.soa.esb.services.PersistHandlerFactory;
+import org.jboss.soa.esb.services.PersistManager;
+import org.jboss.soa.esb.message.Message;
+
+public class ProcessCreditResponse implements ActionProcessor {
+
+ private static Logger logger = Logger.getLogger(ProcessCreditRequest.class);
+
+ private PersistManager esbHandler;
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
+ */
+ public Message process(Message message) throws ActionProcessingException {
+
+ Object oCurr = ActionUtils.getTaskObject(message);
+ logger.info("processObject was called with <<" + oCurr + ">>");
+
+ CreditCheckResponseNotification response;
+ try {
+ response = (CreditCheckResponseNotification)oCurr;
+ } catch(ClassCastException e) {
+ throw new ActionProcessingException("Message must be a " + CreditCheckResponseNotification.class.getName());
+ }
+
+ try {
+ // get handle to the JBossESB Event object store
+ esbHandler = PersistHandlerFactory.getPersistHandler("remote",
+ Configuration.getJndiServerType(),
+ Configuration.getJndiServerURL());
+
+ logger.info("Looking up Customer Object - UID=[" + response.customerUID + "]");
+ Customer customer = (Customer) esbHandler.getObject(org.jboss.soa.esb.samples.loanbroker.domain.Customer.class, response.customerUID);
+ logger.info(this.getClass().getSimpleName() + " -- Business Object BEFORE Credit Rating is added: \n" + customer.toDTO().toXml());
+ CreditRating rating = new CreditRating((String)null);
+ rating.setScore(response.score);
+ customer.setRating(rating);
+ esbHandler.rplObject(customer); //update the object store
+ // Customer customer2 = (Customer) esbHandler.getObject(org.jboss.soa.esb.samples.loanbroker.domain.Customer.class, response.customerUID);
+ logger.info(this.getClass().getSimpleName() + " -- Business Object AFTER Credit Rating is added: \n" + customer.toDTO().toXml());
+ // m_oLogger.info(this.getClass().getSimpleName() + " -- Customer2 TEST DEBUG customer2: \n" + customer2.toDTO().toXml());
+
+ QuoteRequest quote = CustomerAdapter.bankQuoteFromCustomer(customer);
+ ActionUtils.setTaskObject(message,quote);
+ return message;
+ } catch(Exception e) {
+ throw new ActionProcessingException("Failed to process credit check response.", e);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
+ */
+ public Serializable getOkNotification(Message message) {
+ return "OK NOTIF: " + this.getClass();
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
+ */
+ public Serializable getErrorNotification(Message message) {
+ return "ERR NOTIFICATION: "+this.getClass();
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessEmail.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessEmail.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessEmail.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,89 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.actions;
+
+import org.antlr.stringtemplate.StringTemplate;
+import org.antlr.stringtemplate.StringTemplateGroup;
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.common.bizclasses.Person;
+import org.jboss.soa.esb.helpers.Email;
+import org.jboss.soa.esb.loanbroker.LoanBrokerException;
+import org.jboss.soa.esb.samples.loanbroker.domain.Customer;
+import org.jboss.soa.esb.samples.loanbroker.domain.LoanBrokerConstants;
+import org.jboss.soa.esb.samples.loanbroker.domain.LoanOffer;
+
+public class ProcessEmail {
+
+ private Logger logger = Logger.getLogger(this.getClass());
+ private Customer customer;
+
+ public ProcessEmail(Customer customer) {
+ this.customer=customer;
+ }
+
+ public void sendEmail() {
+ try {
+ String address = customer.getPerson().getEmailRole("loan");
+ if (null==address) {
+ logger.info("no email address found for customerUniqueId: "+customer.getUid()+" - no email being sent");
+ return;
+ }
+ logger.info("customerUniqueId " + customer.getUid() + " - sending email to: " + address);
+ Email email = new Email();
+ email.setSendTo(address);
+ email.setSubject("LoanBroker - TrailBlazer Quotes from Banks");
+// File emailTemplate = new File(LoanBrokerConstants.EMAIL_TEMPLATE);
+// String quoteMsg=FileUtil.readTextFile(emailTemplate);
+ email.setMessage(fillTemplate());
+ email.sendMessage();
+ }catch (Exception e) {
+ logger.error("error sending email - " + e);
+ e.printStackTrace();
+ }
+ }
+
+ private String fillTemplate() throws LoanBrokerException{
+ StringTemplateGroup group = new StringTemplateGroup("loan",
+ LoanBrokerConstants.getInstance().getEmailTemplatePath());
+ StringTemplate email = group.getInstanceOf(
+ LoanBrokerConstants.getInstance().getEmailTemplateFile());
+ email.setAttribute("uid", customer.getUid());
+ email.setAttribute("name", customer.getPerson().getField(Person.ATTRIB.fmlyN));
+ email.setAttribute("address", customer.getPerson().getAddressRole("loan"));
+ email.setAttribute("ssn", customer.getField(Customer.ATTRIB.ssn));
+ email.setAttribute("email", customer.getPerson().getEmailRole("loan"));
+ email.setAttribute("salary", customer.getField(Customer.ATTRIB.salary));
+ email.setAttribute("amount", customer.getField(Customer.ATTRIB.loanAmt));
+ email.setAttribute("duration", customer.getField(Customer.ATTRIB.loanDur));
+ email.setAttribute("quote1", customer.getOfferAt(0).getField(LoanOffer.ATTRIB.quoteId));
+ email.setAttribute("rate1", customer.getOfferAt(0).getField(LoanOffer.ATTRIB.interestRate));
+ email.setAttribute("code1", customer.getOfferAt(0).getField(LoanOffer.ATTRIB.errorCode));
+ email.setAttribute("quote2", customer.getOfferAt(1).getField(LoanOffer.ATTRIB.quoteId));
+ email.setAttribute("rate2", customer.getOfferAt(1).getField(LoanOffer.ATTRIB.interestRate));
+ email.setAttribute("code2", customer.getOfferAt(1).getField(LoanOffer.ATTRIB.errorCode));
+ return email.toString();
+
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ToBankQuoteResponse.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ToBankQuoteResponse.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ToBankQuoteResponse.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,132 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.actions;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.helpers.DomElement;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteResponse;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * To {@link org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteResponse} processor.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class ToBankQuoteResponse implements ActionProcessor {
+
+ private static Logger logger = Logger.getLogger(ToBankQuoteResponse.class);
+ public static final String BANK_QUOTE_RESPONSE_CSV_TO_BANK_QUOTE_RESPONSE = "BankQuoteResponseCSV-To-BankQuoteResponse";
+ public static final String BANK_QUOTE_RESPONSE_XML_TO_BANK_QUOTE_RESPONSE = "BankQuoteResponseXML-To-BankQuoteResponse";
+
+ private String actionName;
+
+ public ToBankQuoteResponse(String actionName, List<KeyValuePair> properties) {
+ this.actionName = actionName;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
+ */
+ public Message process(Message messageIn) throws ActionProcessingException {
+ BankQuoteResponse bankResponse;
+ String message;
+
+ Object oCurr = ActionUtils.getTaskObject(messageIn);
+ try {
+ message = (String)oCurr;
+ } catch(ClassCastException e) {
+ throw new ActionProcessingException
+ ("Message must be a " + String.class.getName()
+ + ". Is " + oCurr.getClass().getName());
+ }
+
+ logger.info("Deserialising [" + message + "] to an instance of "
+ + BankQuoteResponse.class.getName());
+
+ if(actionName.equalsIgnoreCase(BANK_QUOTE_RESPONSE_XML_TO_BANK_QUOTE_RESPONSE)) {
+ bankResponse = fromXML(message);
+ } else if(actionName.equalsIgnoreCase(BANK_QUOTE_RESPONSE_CSV_TO_BANK_QUOTE_RESPONSE)) {
+ bankResponse = fromCSV(message);
+ } else {
+ throw new ActionProcessingException("Unsupported Transformation: " + actionName);
+ }
+
+ ActionUtils.setTaskObject(messageIn,bankResponse);
+ return messageIn;
+ }
+
+ private BankQuoteResponse fromXML(String message) throws ActionProcessingException {
+ DomElement oEl=null;
+ BankQuoteResponse response = new BankQuoteResponse();
+
+ try {
+ oEl = DomElement.fromXml(message);
+
+ response.interestRate = BigDecimal.valueOf(Double.parseDouble(oEl.getTextChildren("interestRate")[0]));
+ response.quoteId = oEl.getTextChildren("quoteId")[0];
+ response.errorCode = Integer.parseInt(oEl.getTextChildren("errorCode")[0]);
+ response.customerUID = Long.parseLong(oEl.getTextChildren("customerUID")[0]);
+ } catch (Exception e) {
+ throw new ActionProcessingException("Failed to parse BankQuoteResponse XML:\n" + message, e);
+ }
+
+ return response;
+ }
+
+ private BankQuoteResponse fromCSV(String message) {
+ BankQuoteResponse response = new BankQuoteResponse();
+ String[] csvParts = message.split(","); // TODO: This is obviously very dodgy - there should a decoding step!!
+
+ response.interestRate = BigDecimal.valueOf(Double.parseDouble(csvParts[0]));
+ response.quoteId = csvParts[1];
+ response.errorCode = Integer.parseInt(csvParts[2]);
+ response.customerUID = Long.parseLong(csvParts[3]);
+
+ return response;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
+ */
+ public Serializable getOkNotification(Message message) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
+ */
+ public Serializable getErrorNotification(Message message) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/adapters/CustomerAdapter.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/adapters/CustomerAdapter.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/adapters/CustomerAdapter.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,137 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.adapters;
+
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+
+import org.jboss.soa.esb.common.bizclasses.Address;
+import org.jboss.soa.esb.common.bizclasses.OneValue;
+import org.jboss.soa.esb.common.bizclasses.Person;
+import org.jboss.soa.esb.helpers.DomElement;
+import org.jboss.soa.esb.samples.loanbroker.QuoteRequest;
+import org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteResponse;
+import org.jboss.soa.esb.samples.loanbroker.domain.CreditRating;
+import org.jboss.soa.esb.samples.loanbroker.domain.Customer;
+import org.jboss.soa.esb.samples.loanbroker.web.WebCustomer;
+import org.jboss.soa.esb.util.Util;
+
+public class CustomerAdapter
+{
+ // No objects of this class - only static methods
+ private CustomerAdapter() {}
+
+ private static final NumberFormat s_NF = new DecimalFormat("#########0");
+ //private static final NumberFormat s_NFBanks = new DecimalFormat("#########0");
+
+
+ public static Customer esbFromWeb (WebCustomer p_o)
+ {
+ Person oP = new Person((String)null);
+ oP.setField(Person.ATTRIB.fmlyN, p_o.name);
+
+ Address oAdd = new Address((String)null);
+ oAdd.setField(Address.ATTRIB.strLine1, p_o.address);
+ oAdd.setRole("loan");
+ oP.addAddress(oAdd);
+ oP.addEmail(OneValue.getStringValue(p_o.email, "loan"));
+
+ Customer oRet = new Customer((String)null);
+ oRet.setField(Customer.ATTRIB.empName ,p_o.employerName);
+ oRet.setperson(oP);
+ oRet.setField(Customer.ATTRIB.salary ,s_NF.format(p_o.salary));
+ oRet.setField(Customer.ATTRIB.loanDur ,Integer.toString(p_o.loanDuration));
+ oRet.setField(Customer.ATTRIB.loanAmt ,s_NF.format(p_o.loanAmount));
+ oRet.setField(Customer.ATTRIB.ssn ,Integer.toString(p_o.ssn));
+
+
+ return oRet;
+ }//_________________________________________
+
+ public static WebCustomer webFromEsb (Customer p_o)
+ {
+ String sName = null;
+ String sAddr = null;
+ String email = null;
+ Person oP = p_o.getPerson();
+ if (null!=oP)
+ { sName = oP.getField(Person.ATTRIB.fmlyN);
+ Address oAdd = oP.getAddressRole("loan");
+ sAddr = (null==oAdd) ? null : oAdd.getField(Address.ATTRIB.strLine1);
+ email = oP.getEmailRole("loan");
+ }
+
+ String sEmployer = p_o.getField(Customer.ATTRIB.empName);
+ String sAux = p_o.getField(Customer.ATTRIB.salary);
+ double dSalary = 0.;
+ if (! Util.isNullString(sAux))
+ try {dSalary = s_NF.parse(sAux).doubleValue();}
+ catch (Exception e) {/* OK leave it at zero */ }
+
+ sAux = p_o.getField(Customer.ATTRIB.loanDur);
+ int iLoanDur = (null==sAux)? 0 : Integer.parseInt(sAux);
+ sAux = p_o.getField(Customer.ATTRIB.ssn);
+ int ssn = (null==sAux)? 0 : Integer.parseInt(sAux);
+
+ double dAmount = 0.;
+ sAux = p_o.getField(Customer.ATTRIB.loanAmt);
+ if (! Util.isNullString(sAux))
+ try {dAmount = s_NF.parse(sAux).doubleValue();}
+ catch (Exception e) {/* OK leave it at zero */ }
+
+ return new WebCustomer(sName,sAddr,sEmployer,dSalary,iLoanDur,dAmount,ssn,email);
+ }//_________________________________________
+
+ public static QuoteRequest bankQuoteFromCustomer(Customer p_o) {
+ QuoteRequest bankRequest = new QuoteRequest();
+ CreditRating rating = p_o.getRating();
+ bankRequest.creditScore = rating.getScore();
+ String sVal = new DecimalFormat("########0").format(Double.parseDouble(p_o.getField(Customer.ATTRIB.loanAmt)));
+ bankRequest.amount = Integer.parseInt(sVal);
+ bankRequest.term = Integer.parseInt(p_o.getField(Customer.ATTRIB.loanDur));
+ bankRequest.ssn = Integer.parseInt(p_o.getField(Customer.ATTRIB.ssn));
+ bankRequest.customerUniqueId = Long.toString(p_o.getUid());
+
+ return bankRequest;
+ }
+
+ //convert from the XMLStream object into a quote object
+ public static BankQuoteResponse bankQuoteFromXML(String xml) {
+ DomElement oEl=null;
+ BankQuoteResponse response = new BankQuoteResponse();
+
+ try {
+ oEl = DomElement.fromXml(xml);
+ } catch (Exception e) {e.printStackTrace();}
+
+ response.interestRate = BigDecimal.valueOf(Double.parseDouble(oEl.getTextChildren("interestRate")[0]));
+ response.quoteId = oEl.getTextChildren("quoteId")[0];
+ response.errorCode = Integer.parseInt(oEl.getTextChildren("errorCode")[0]);
+ response.customerUID = Long.parseLong(oEl.getTextChildren("customerUniqueId")[0]);
+
+ return response;
+ }
+
+
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteResponse.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteResponse.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/banks/BankQuoteResponse.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,18 @@
+package org.jboss.soa.esb.samples.loanbroker.banks;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+public class BankQuoteResponse implements Serializable{
+
+ private static final long serialVersionUID = 1L;
+ public BigDecimal interestRate;
+ public String quoteId;
+ public int errorCode;
+ public long customerUID;
+
+ public BankQuoteResponse() {
+ super();
+ }
+
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditAgency.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditAgency.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditAgency.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.creditagency;
+
+public class CreditAgency {
+
+ public static CreditCheckResponseNotification getScore(CreditCheckRequest cr) {
+ //return a score based on some random formula here
+
+ return null;
+
+ }
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditCheckRequest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditCheckRequest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditCheckRequest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,64 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.creditagency;
+
+import java.io.Serializable;
+import java.util.Random;
+
+/*
+ * class used internally by the CreditAgency
+ */
+
+public class CreditCheckRequest implements Serializable{
+
+ private static final long serialVersionUID = 1L;
+ public long requestID;
+ public long timestamp;
+ public double amount, salary;
+ public int duration;
+ public long customerID;
+
+ private static Random generator = new Random();
+
+
+ public CreditCheckRequest(double salary, int duration, long customerID) {
+ this.requestID=generator.nextLong() ; //generate some fake random number for the request ID
+ this.timestamp=System.currentTimeMillis();
+ this.salary=salary;
+ this.duration=duration;
+ this.customerID=customerID;
+ }
+
+ public String toString() {
+ StringBuffer buff = new StringBuffer("-- JBossESB: CreditRequest message --");
+ buff.append("\t requestID: " + this.requestID + "\n");
+ buff.append("\t customer ID: " + this.customerID + "\n");
+ buff.append("\t amount: " + this.amount + "\n");
+ buff.append("\t duration: " + this.duration + "\n");
+ buff.append("\t salary: " + this.salary + "\n");
+
+ return buff.toString();
+
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditCheckResponseNotification.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditCheckResponseNotification.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/creditagency/CreditCheckResponseNotification.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.creditagency;
+
+import java.io.Serializable;
+
+public class CreditCheckResponseNotification implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+ public long customerUID;
+ public long requestID;
+ public long timestamp;
+ public int score;
+
+ public CreditCheckResponseNotification(long requestID, int score, long customerUID) {
+ this.requestID=requestID;
+ this.timestamp=System.currentTimeMillis();
+ this.score = score;
+ this.customerUID=customerUID;
+ }
+
+ private CreditCheckResponseNotification(long requestID, long timestamp, int score, long customerUID) {
+ this.requestID=requestID;
+ this.timestamp=timestamp;
+ this.score = score;
+ this.customerUID=customerUID;
+ }
+
+ public String[] toArray() {
+ return new String[] {Long.toString(requestID),Long.toString(timestamp),Integer.toString(score),Long.toString(customerUID) };
+ }
+
+ public static CreditCheckResponseNotification fromArray(String[] array) {
+ return new CreditCheckResponseNotification(Long.parseLong(array[0]), Long.parseLong(array[1]), Integer.parseInt(array[2]), Long.parseLong(array[3]));
+ }
+
+ public String toString() {
+ return "CreditCheckResponseNotification: " + this.requestID + " >> " + this.score + " >> " + this.timestamp + " >> " + this.customerUID;
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/CreditRating.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/CreditRating.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/CreditRating.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,80 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.domain;
+
+import java.util.EnumMap;
+
+import org.jboss.soa.esb.util.BaseBusinessObject;
+import org.jboss.soa.esb.util.BobjStdDTO;
+import org.jboss.soa.esb.util.Util;
+
+public class CreditRating extends BaseBusinessObject
+{
+ public enum ATTRIB
+ {score
+ };
+ private EnumMap<ATTRIB,String>m_oData;
+
+ public CreditRating(String p_sElem) {super(p_sElem);}
+ public CreditRating(String p_sElem, long p_lUid){super(p_sElem, p_lUid);}
+
+ @SuppressWarnings("unchecked")
+ public CreditRating(BobjStdDTO p_oDto) throws Exception
+ { super(p_oDto);
+
+ for (ATTRIB oCurr : ATTRIB.values())
+ setField(oCurr,p_oDto.getAttr(oCurr.toString()));
+ } //__________________________________
+
+ public BobjStdDTO toDTO() throws Exception
+ { BobjStdDTO oRet = super.toDTO();
+
+ for (ATTRIB oCurr : ATTRIB.values())
+ oRet.addAttr(oCurr.toString(), getField(oCurr));
+ return oRet;
+ }//_________________________________________
+
+ public String setField(ATTRIB pKey, String pVal)
+ { if (null==pKey) return null;
+ String sRet = (null==m_oData)? null : m_oData.remove(pKey);
+ if (! Util.isNullString(pVal))
+ { if (null==m_oData)
+ m_oData = new EnumMap<ATTRIB,String>(ATTRIB.class);
+ m_oData.put(pKey,pVal);
+ }
+ return sRet;
+ } //__________________________________
+
+ public String getField(ATTRIB pKey)
+ { if (null==pKey) return null;
+ if (null==m_oData) return null;
+ return m_oData.get(pKey);
+ } //__________________________________
+
+ public void setScore(int pI) {setField(ATTRIB.score, Integer.toString(pI)); }
+ public int getScore()
+ { try { return Integer.getInteger(getField(ATTRIB.score)); }
+ catch (Exception e) { return 0; }
+ } //__________________________________
+}
+
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/Customer.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/Customer.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/Customer.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,180 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.domain;
+
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+import java.util.ArrayList;
+import java.util.EnumMap;
+import java.util.List;
+
+import org.jboss.soa.esb.common.bizclasses.Address;
+import org.jboss.soa.esb.common.bizclasses.Person;
+import org.jboss.soa.esb.util.BaseBusinessObject;
+import org.jboss.soa.esb.util.BobjStdDTO;
+import org.jboss.soa.esb.util.Util;
+
+public class Customer extends BaseBusinessObject
+{
+ public enum ATTRIB
+ {empName
+ ,salary
+ ,loanDur
+ ,loanAmt
+ ,ssn
+ };
+ private EnumMap<ATTRIB,String>m_oData;
+
+ public enum OBJ
+ {person
+ ,rating
+ }
+ public enum CHLD_LIST
+ {Loffers
+ };
+
+ private Person person;
+ private CreditRating rating;
+ private List<LoanOffer> offers;
+
+ public Customer(String p_sElem) {super(p_sElem);}
+ public Customer(String p_sElem, long p_lUid){super(p_sElem, p_lUid);}
+
+ @SuppressWarnings("unchecked")
+ public Customer(BobjStdDTO p_oDto) throws Exception
+ { super(p_oDto);
+
+ for (ATTRIB oCurr : ATTRIB.values())
+ setField(oCurr,p_oDto.getAttr(oCurr.toString()));
+
+ BobjStdDTO oDto = p_oDto.getDTO(OBJ.person.toString());
+ if (null!=oDto)
+ person = new Person(oDto);
+
+ oDto = p_oDto.getDTO(OBJ.rating.toString());
+ if (null!=oDto)
+ rating = new CreditRating(oDto);
+
+ offers = (List<LoanOffer>)p_oDto
+ .getChildObjList(CHLD_LIST.Loffers.toString() ,LoanOffer.class);
+ } //__________________________________
+
+ public BobjStdDTO toDTO() throws Exception
+ { BobjStdDTO oRet = super.toDTO();
+
+ for (ATTRIB oCurr : ATTRIB.values())
+ oRet.addAttr(oCurr.toString(), getField(oCurr));
+ if (null!=person)
+ oRet.addDto(OBJ.person.toString(),person.toDTO());
+ if (null!=rating)
+ oRet.addDto(OBJ.rating.toString(),rating.toDTO());
+ oRet.addDto(CHLD_LIST.Loffers.toString()
+ ,getDtoList(LoanOffer.class ,offers));
+ return oRet;
+ }//_________________________________________
+
+ private static final NumberFormat s_NF = new DecimalFormat("#########0");
+ public Customer(String name, String address, String employerName, double salary, int loanDuration, double loanAMount)
+ {
+ getPerson();
+ person.setField(Person.ATTRIB.fmlyN, name);
+
+ Address oAdd = new Address((String)null);
+ oAdd.setField(Address.ATTRIB.strLine1, address);
+ person.addAddress(oAdd);
+
+ setField(ATTRIB.empName ,employerName);
+ setField(ATTRIB.salary ,s_NF.format(salary));
+ setField(ATTRIB.loanDur ,Integer.toString(loanDuration));
+ setField(ATTRIB.loanAmt ,s_NF.format(loanAMount));
+ setField(ATTRIB.ssn ,Integer.toString(loanDuration));
+ }//_________________________________________
+
+ public String setField(ATTRIB pKey, String pVal)
+ { if (null==pKey) return null;
+ String sRet = (null==m_oData)? null : m_oData.remove(pKey);
+ if (! Util.isNullString(pVal))
+ { if (null==m_oData)
+ m_oData = new EnumMap<ATTRIB,String>(ATTRIB.class);
+ m_oData.put(pKey,pVal);
+ }
+ return sRet;
+ } //__________________________________
+
+ public String getField(ATTRIB pKey)
+ { if (null==pKey) return null;
+ if (null==m_oData) return null;
+ return m_oData.get(pKey);
+ } //__________________________________
+
+ public void setperson(Person pO) { person = pO; }
+ public Person getPerson()
+ { return (null!=person)? person : (person=new Person((String)null));
+ }
+
+ public void setRating(CreditRating pO) { rating = pO;
+ try {
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ public CreditRating getRating()
+ { return (null!=rating)? rating : (rating=new CreditRating((String)null));
+ }
+
+ public String[] locator() {
+ if (null==person) return new String[] {"","",""};
+ return person.locator();
+ }
+ // LoanOffer List handling
+
+ public int getOfferCount ()
+ { return (null == offers)? 0 : offers.size(); }
+
+ public LoanOffer getOfferAt (int p_i)
+ { if (null == offers) return null;
+ if(p_i < 0 || p_i >=offers.size()) return null;
+ return offers.get(p_i);
+ }//_____________________________________________
+
+ public void addOffer(LoanOffer p_oPh)
+ { if(null==p_oPh) return;
+ if(null==offers)
+ offers = new ArrayList<LoanOffer>();
+ offers.add(p_oPh);
+ }//_____________________________________________
+
+ public LoanOffer rmvOfferAt (int p_i)
+ { if (null == offers) return null;
+ if(p_i < 0 || p_i >=offers.size()) return null;
+ return offers.remove(p_i);
+ }//_____________________________________________
+
+ public LoanOffer getOfferRole(String p_sRole)
+ { return (LoanOffer)BaseBusinessObject.getRoleFromList(p_sRole,offers);
+ }//_____________________________________________
+
+
+}
+
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/LoanBrokerConstants.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/LoanBrokerConstants.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/LoanBrokerConstants.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,197 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.domain;
+
+import java.io.File;
+import java.io.IOException;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
+import org.jboss.soa.esb.helpers.DomElement;
+import org.jboss.soa.esb.loanbroker.LoanBrokerException;
+import org.jboss.soa.esb.parameters.ParamRepository;
+import org.jboss.soa.esb.parameters.ParamRepositoryException;
+import org.jboss.soa.esb.parameters.ParamRepositoryFactory;
+import org.xml.sax.SAXException;
+
+
+public class LoanBrokerConstants {
+ private static Logger logger = Logger.getLogger(LoanBrokerConstants.class);
+ private static final String CONFIG_FILE = "conf/LoanBrokerConfig.xml";
+ private static final String CONFIG_FILE_NAME = "LoanBrokerConfigFile";
+ private static LoanBrokerConstants loanBrokerConstants;
+
+ /** The name of the service. In case the loan broker sample service */
+ public static final String SELECTOR_SERVICE = "sample_loanbroker_servicecode";
+ /** The name of the request for credit */
+ public static final String CREDIT_CHECK_REQUEST = "creditRequest";
+ // public static final String CREDIT_CHECK_RESPONSE = "creditResponse"; not used?
+ private static final String JNDI_URL = "loanbrokerJndiUrl";
+ private static final String JNDI_TYPE = "loanbrokerJndiType";
+ private static final String CREDIT_CHECK_QUEUE = "loanbrokerCreditQueue";
+ public static final String BANK_JMS_REQUEST_QUEUE = "loanbrokerJmsRequestQueue";
+ //public static final int MAX_LOAN_OFFERS = 2; Not used?
+ public static final String BANK_REQUEST_DIR = "loanbrokerRequestDir";
+ public static final String EMAIL_TEMPLATE_PATH = "loanbrokerEmailTemplatePath";
+ public static final String EMAIL_TEMPLATE_FILE = "loanbrokerEmailTemplateFile";
+
+ private String jndiUrl;
+ private String jndiType;
+ private String creditCheckQueue;
+ private String bankJMSRequestQueue;
+ private String bankRequestDir;
+ private String emailTemplatePath;
+ private String emailTemplateFile;
+
+ private LoanBrokerConstants() throws LoanBrokerException{
+ super();
+ try {
+ File file = new File(CONFIG_FILE);
+ if (file.exists()) {
+ readingConfiguration(CONFIG_FILE);
+ } else {
+ Context context = new InitialContext();
+ Context envContext = (Context) context.lookup("java:comp/env");
+ String loanBrokerConfigFile = (String) envContext
+ .lookup(CONFIG_FILE_NAME);
+ logger.log(Priority.INFO, "Loan broker config file: "
+ + loanBrokerConfigFile);
+ readingConfiguration(loanBrokerConfigFile);
+ }
+ } catch (NamingException ne) {
+ logger.log(Priority.FATAL,"Could not find the LoanBroker configuration file name:"
+ + CONFIG_FILE, ne);
+ throw new LoanBrokerException(ne.getMessage(), ne);
+ } catch (IOException ioe) {
+ logger.log(Priority.FATAL,"Could not open the Loan Broker Config file:" +
+ "+ CONFIG_FILE." + " for reading", ioe);
+ throw new LoanBrokerException(ioe.getMessage(), ioe);
+ } catch (SAXException se) {
+ logger.log(Priority.FATAL,"Could not parse XML of the Loan Broker Config file named:" +
+ CONFIG_FILE, se);
+ throw new LoanBrokerException(se.getMessage(), se);
+ } catch (ParamRepositoryException pre) {
+ logger.log(Priority.FATAL,"Could not extract parameters from the Loan Broker " +
+ " Config XML, file name: " + CONFIG_FILE, pre);
+ throw new LoanBrokerException(pre.getMessage(), pre);
+ }
+ }
+
+ /**
+ * Reads the Loan Broker configuration. It sets the values in the LoanBrokerConstants
+ * class.
+ *
+ * @param loanBrokerConfigFile - Filename, including absolute path, of the config file.
+ */
+ private void readingConfiguration(String loanBrokerConfigFile)
+ throws ParamRepositoryException, IOException, SAXException
+ {
+ //Reading the config file
+ ParamRepository parmRepository = ParamRepositoryFactory.getInstance();
+ String sXml = parmRepository.get(loanBrokerConfigFile);
+ DomElement parameters = DomElement.fromXml(sXml);
+ //Setting the parameter
+ setJndiUrl(parameters.getAttr(LoanBrokerConstants.JNDI_URL));
+ logger.log(Priority.INFO, LoanBrokerConstants.JNDI_URL + "=" + getJndiUrl());
+ setJndiType(parameters.getAttr(LoanBrokerConstants.JNDI_TYPE));
+ logger.log(Priority.INFO, LoanBrokerConstants.JNDI_TYPE + "=" + getJndiType());
+ setCreditCheckQueue(parameters.getAttr(LoanBrokerConstants.CREDIT_CHECK_QUEUE));
+ logger.log(Priority.INFO, LoanBrokerConstants.CREDIT_CHECK_QUEUE + "=" + getCreditCheckQueue());
+ setBankJMSRequestQueue(parameters.getAttr(LoanBrokerConstants.BANK_JMS_REQUEST_QUEUE));
+ logger.log(Priority.INFO, LoanBrokerConstants.BANK_JMS_REQUEST_QUEUE + "=" + getBankJMSRequestQueue());
+ setBankRequestDir(parameters.getAttr(LoanBrokerConstants.BANK_REQUEST_DIR));
+ logger.log(Priority.INFO, LoanBrokerConstants.BANK_REQUEST_DIR + "=" + getBankRequestDir());
+ setEmailTemplatePath(parameters.getAttr(LoanBrokerConstants.EMAIL_TEMPLATE_PATH));
+ logger.log(Priority.INFO, LoanBrokerConstants.EMAIL_TEMPLATE_PATH + "=" + getEmailTemplatePath());
+ setEmailTemplateFile(parameters.getAttr(LoanBrokerConstants.EMAIL_TEMPLATE_FILE));
+ logger.log(Priority.INFO, LoanBrokerConstants.EMAIL_TEMPLATE_FILE + "=" + getEmailTemplateFile());
+ }
+
+ public String getJndiType() {
+ return jndiType;
+ }
+
+ public void setJndiType(String jndiType) {
+ this.jndiType = jndiType;
+ }
+
+ public String getJndiUrl() {
+ return jndiUrl;
+ }
+
+ public void setJndiUrl(String jndiUrl) {
+ this.jndiUrl = jndiUrl;
+ }
+
+ public static LoanBrokerConstants getInstance() throws LoanBrokerException{
+ if (loanBrokerConstants==null) {
+ loanBrokerConstants=new LoanBrokerConstants();
+ }
+ return loanBrokerConstants;
+ }
+
+ public String getCreditCheckQueue() {
+ return creditCheckQueue;
+ }
+
+ public void setCreditCheckQueue(String creditCheckQueue) {
+ this.creditCheckQueue = creditCheckQueue;
+ }
+
+ public String getBankJMSRequestQueue() {
+ return bankJMSRequestQueue;
+ }
+
+ public void setBankJMSRequestQueue(String bankJMSRequestQueue) {
+ this.bankJMSRequestQueue = bankJMSRequestQueue;
+ }
+
+ public String getBankRequestDir() {
+ return bankRequestDir;
+ }
+
+ public void setBankRequestDir(String bankRequestDir) {
+ this.bankRequestDir = bankRequestDir;
+ }
+
+ public String getEmailTemplateFile() {
+ return emailTemplateFile;
+ }
+
+ public void setEmailTemplateFile(String emailTemplateFile) {
+ this.emailTemplateFile = emailTemplateFile;
+ }
+
+ public String getEmailTemplatePath() {
+ return emailTemplatePath;
+ }
+
+ public void setEmailTemplatePath(String emailTemplatePath) {
+ this.emailTemplatePath = emailTemplatePath;
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/LoanOffer.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/LoanOffer.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/domain/LoanOffer.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,77 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.domain;
+
+import java.util.EnumMap;
+
+import org.jboss.soa.esb.util.BaseBusinessObject;
+import org.jboss.soa.esb.util.BobjStdDTO;
+import org.jboss.soa.esb.util.Util;
+
+public class LoanOffer extends BaseBusinessObject
+{
+ public enum ATTRIB
+ {interestRate
+ ,quoteId
+ ,errorCode
+ };
+ private EnumMap<ATTRIB,String>m_oData;
+
+ public LoanOffer(String p_sElem) {super(p_sElem);}
+ public LoanOffer(String p_sElem, long p_lUid){super(p_sElem, p_lUid);}
+
+ @SuppressWarnings("unchecked")
+ public LoanOffer(BobjStdDTO p_oDto) throws Exception
+ { super(p_oDto);
+
+ for (ATTRIB oCurr : ATTRIB.values())
+ setField(oCurr,p_oDto.getAttr(oCurr.toString()));
+ } //__________________________________
+
+ public BobjStdDTO toDTO() throws Exception
+ { BobjStdDTO oRet = super.toDTO();
+
+ for (ATTRIB oCurr : ATTRIB.values())
+ oRet.addAttr(oCurr.toString(), getField(oCurr));
+ return oRet;
+ }//_________________________________________
+
+ public String setField(ATTRIB pKey, String pVal)
+ { if (null==pKey) return null;
+ String sRet = (null==m_oData)? null : m_oData.remove(pKey);
+ if (! Util.isNullString(pVal))
+ { if (null==m_oData)
+ m_oData = new EnumMap<ATTRIB,String>(ATTRIB.class);
+ m_oData.put(pKey,pVal);
+ }
+ return sRet;
+ } //__________________________________
+
+ public String getField(ATTRIB pKey)
+ { if (null==pKey) return null;
+ if (null==m_oData) return null;
+ return m_oData.get(pKey);
+ } //__________________________________
+
+}
+
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/Launcher.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/Launcher.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/Launcher.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.web;
+
+import org.apache.log4j.xml.DOMConfigurator;
+import org.jboss.soa.esb.listeners.GpListener;
+
+public class Launcher {
+
+ /**
+ * @param args
+ */
+ public static void main(String[] args) throws Exception
+ {
+ DOMConfigurator.configure("log4j.xml");
+ final String CONFIG_FILE = "conf/LoanBrokerConfig.xml";
+ String configFile=null;
+ if (args.length < 1) {
+ System.out.println("Going to use default path to config file:" + CONFIG_FILE);
+ configFile=CONFIG_FILE;
+ } else {
+ configFile=args[0];
+ }
+ System.out.println("Using configFile=" + configFile);
+ GpListener oProc = new GpListener(configFile);
+ oProc.run();
+ GpListener.State oS = oProc.getState();
+
+ if (null!=oS.getException())
+ {
+ org.apache.log4j.Logger.getLogger(Launcher.class).error
+ ("GpListener <"+args[0]+"> FAILED\n",oS.getException());
+ }
+ System.exit(oS.getCompletionCode());
+
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/LoanBrokerWS.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/LoanBrokerWS.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/LoanBrokerWS.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,114 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.web;
+
+import javax.jms.MessageProducer;
+import javax.jms.ObjectMessage;
+import javax.jms.Queue;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueSession;
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+import javax.naming.Context;
+
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.helpers.AppServerContext;
+import org.jboss.soa.esb.samples.loanbroker.adapters.CustomerAdapter;
+import org.jboss.soa.esb.samples.loanbroker.creditagency.CreditCheckRequest;
+import org.jboss.soa.esb.samples.loanbroker.domain.LoanBrokerConstants;
+import org.jboss.soa.esb.services.PersistHandlerFactory;
+import org.jboss.soa.esb.services.PersistManager;
+
+/**
+ * The Loan broker web service, which will handle a loan request. First a credit
+ * score is obtained from a credit agency. Then 2 banks are send request for
+ * an interest rate quote.
+ */
+ at WebService(name = "LoanBrokerWS", targetNamespace = "http://localhost/loanbroker")
+ at SOAPBinding(style = SOAPBinding.Style.RPC)
+public class LoanBrokerWS
+{
+ @WebMethod
+ // method name is .NET friendly
+ public void RequestLoan(WebCustomer customer) {
+ try {
+
+ // get handle to the JBossESB Event object store
+ PersistManager esbHandler = PersistHandlerFactory
+ .getPersistHandler("remote", Configuration
+ .getJndiServerType(), Configuration
+ .getJndiServerURL());
+
+ // convert the WebCustomer to an ESB Customer capable of being
+ // persisted to the event store
+ long lUid = esbHandler.addObject(CustomerAdapter
+ .esbFromWeb(customer));
+
+ // create the CreditCheckRequest object expected by the CreditAgency
+ // service
+ // we are not going to persist this request to the CreditAgency, but
+ // you might want to...
+ CreditCheckRequest creditRequest = new CreditCheckRequest(
+ customer.salary, customer.loanDuration, lUid);
+
+ // Send the CreditRequest to the queue which the JMSListener process
+ // is listening to
+ Context ctx = AppServerContext
+ .getServerContext(LoanBrokerConstants.getInstance().getJndiType()
+ , LoanBrokerConstants.getInstance().getJndiUrl());
+ Queue queue = (Queue) ctx
+ .lookup(LoanBrokerConstants.getInstance().getCreditCheckQueue());
+ QueueConnectionFactory factory = (QueueConnectionFactory) ctx
+ .lookup("ConnectionFactory");
+ QueueConnection cnn = factory.createQueueConnection();
+ QueueSession sess = cnn.createQueueSession(false,
+ QueueSession.AUTO_ACKNOWLEDGE);
+ ObjectMessage msg = sess.createObjectMessage(creditRequest);
+ MessageProducer sender = sess.createSender(queue);
+ sender = sess.createSender(queue);
+ msg.setStringProperty(LoanBrokerConstants.SELECTOR_SERVICE,
+ LoanBrokerConstants.CREDIT_CHECK_REQUEST);
+ sender.send(msg);
+
+ // only for test here
+ // msg.setStringProperty(LoanBrokerConstants.SELECTOR_SERVICE,
+ // LoanBrokerConstants.CREDIT_CHECK_RESPONSE);
+ // sender.send(msg);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ public static void main(String args[]) throws Exception {
+
+ LoanBrokerWS ws = new LoanBrokerWS();
+ WebCustomer customer = new WebCustomer("John Doe", "123 My St.",
+ "JBoss", 50.00, 12, 100.00, 123456, "john at cashisking.com");
+ ws.RequestLoan(customer);
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/WebCustomer.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/WebCustomer.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/WebCustomer.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.
+ */
+
+
+/*
+ * a simple web Customer to use in the web services call and not expose the internal esb Customer object
+ */
+package org.jboss.soa.esb.samples.loanbroker.web;
+
+public class WebCustomer
+{
+ public String name ,address ,employerName;
+ public double salary ,loanAmount;
+ public int loanDuration;
+ //private int creditScore;
+ public int ssn;
+ public String email;
+
+
+ public WebCustomer(){}
+
+ public WebCustomer(String name, String address, String employerName, double salary, int loanDuration, double loanAmount, int ssn,String email)
+ {
+ this.name = name;
+ this.address = address;
+ this.employerName = employerName;
+ this.salary = salary;
+ this.loanAmount = loanAmount;
+ this.loanDuration = loanDuration;
+ //this.creditScore = 0;
+ this.ssn = ssn;
+ this.email = email;
+
+
+ }//_________________________________________
+
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/LoanBrokerWS.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/LoanBrokerWS.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/LoanBrokerWS.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,27 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.web.client;
+
+public interface LoanBrokerWS extends java.rmi.Remote {
+ public void requestLoan(org.jboss.soa.esb.samples.loanbroker.web.client.WebCustomer webCustomer_1) throws java.rmi.RemoteException;
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/LoanBrokerWSBindingStub.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/LoanBrokerWSBindingStub.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/LoanBrokerWSBindingStub.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,162 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.web.client;
+
+public class LoanBrokerWSBindingStub extends org.apache.axis.client.Stub implements org.jboss.soa.esb.samples.loanbroker.web.client.LoanBrokerWS {
+ private java.util.Vector cachedSerClasses = new java.util.Vector();
+ private java.util.Vector cachedSerQNames = new java.util.Vector();
+ private java.util.Vector cachedSerFactories = new java.util.Vector();
+ private java.util.Vector cachedDeserFactories = new java.util.Vector();
+
+ static org.apache.axis.description.OperationDesc [] _operations;
+
+ static {
+ _operations = new org.apache.axis.description.OperationDesc[1];
+ _initOperationDesc1();
+ }
+
+ private static void _initOperationDesc1(){
+ org.apache.axis.description.OperationDesc oper;
+ oper = new org.apache.axis.description.OperationDesc();
+ oper.setName("RequestLoan");
+ oper.addParameter(new javax.xml.namespace.QName("", "WebCustomer_1"), new javax.xml.namespace.QName("http://localhost/loanbroker", "WebCustomer"), org.jboss.soa.esb.samples.loanbroker.web.client.WebCustomer.class, org.apache.axis.description.ParameterDesc.IN, false, false);
+ oper.setReturnType(org.apache.axis.encoding.XMLType.AXIS_VOID);
+ oper.setStyle(org.apache.axis.constants.Style.RPC);
+ oper.setUse(org.apache.axis.constants.Use.LITERAL);
+ _operations[0] = oper;
+
+ }
+
+ public LoanBrokerWSBindingStub() throws org.apache.axis.AxisFault {
+ this(null);
+ }
+
+ public LoanBrokerWSBindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+ this(service);
+ super.cachedEndpoint = endpointURL;
+ }
+
+ public LoanBrokerWSBindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+ if (service == null) {
+ super.service = new org.apache.axis.client.Service();
+ } else {
+ super.service = service;
+ }
+// java.lang.Class cls;
+// javax.xml.namespace.QName qName;
+// java.lang.Class beansf = org.apache.axis.encoding.ser.BeanSerializerFactory.class;
+// java.lang.Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class;
+// java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class;
+// java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class;
+// java.lang.Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class;
+// java.lang.Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class;
+// java.lang.Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class;
+// java.lang.Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class;
+// qName = new javax.xml.namespace.QName("http://localhost/loanbroker", "WebCustomer");
+// cachedSerQNames.add(qName);
+// cls = org.jboss.soa.esb.samples.loanbroker.web.client.WebCustomer.class;
+// cachedSerClasses.add(cls);
+// cachedSerFactories.add(beansf);
+// cachedDeserFactories.add(beandf);
+
+ }
+
+ private org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
+ try {
+ org.apache.axis.client.Call _call =
+ (org.apache.axis.client.Call) super.service.createCall();
+ if (super.maintainSessionSet) {
+ _call.setMaintainSession(super.maintainSession);
+ }
+ if (super.cachedUsername != null) {
+ _call.setUsername(super.cachedUsername);
+ }
+ if (super.cachedPassword != null) {
+ _call.setPassword(super.cachedPassword);
+ }
+ if (super.cachedEndpoint != null) {
+ _call.setTargetEndpointAddress(super.cachedEndpoint);
+ }
+ if (super.cachedTimeout != null) {
+ _call.setTimeout(super.cachedTimeout);
+ }
+ if (super.cachedPortName != null) {
+ _call.setPortName(super.cachedPortName);
+ }
+ java.util.Enumeration keys = super.cachedProperties.keys();
+ while (keys.hasMoreElements()) {
+ java.lang.String key = (java.lang.String) keys.nextElement();
+ _call.setProperty(key, super.cachedProperties.get(key));
+ }
+ // All the type mapping information is registered
+ // when the first call is made.
+ // The type mapping information is actually registered in
+ // the TypeMappingRegistry of the service, which
+ // is the reason why registration is only needed for the first call.
+ synchronized (this) {
+ if (firstCall()) {
+ // must set encoding style before registering serializers
+ _call.setEncodingStyle(null);
+ for (int i = 0; i < cachedSerFactories.size(); ++i) {
+ java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i);
+ javax.xml.namespace.QName qName =
+ (javax.xml.namespace.QName) cachedSerQNames.get(i);
+ java.lang.Class sf = (java.lang.Class)
+ cachedSerFactories.get(i);
+ java.lang.Class df = (java.lang.Class)
+ cachedDeserFactories.get(i);
+ _call.registerTypeMapping(cls, qName, sf, df, false);
+ }
+ }
+ }
+ return _call;
+ }
+ catch (java.lang.Throwable t) {
+ throw new org.apache.axis.AxisFault("Failure trying to get the Call object", t);
+ }
+ }
+
+ public void requestLoan(org.jboss.soa.esb.samples.loanbroker.web.client.WebCustomer webCustomer_1) throws java.rmi.RemoteException {
+ if (super.cachedEndpoint == null) {
+ throw new org.apache.axis.NoEndPointException();
+ }
+ org.apache.axis.client.Call _call = createCall();
+ _call.setOperation(_operations[0]);
+ _call.setUseSOAPAction(true);
+ _call.setSOAPActionURI("");
+ _call.setEncodingStyle(null);
+ _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
+ _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+ _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+ _call.setOperationName(new javax.xml.namespace.QName("http://localhost/loanbroker", "RequestLoan"));
+
+ setRequestHeaders(_call);
+ setAttachments(_call);
+ java.lang.Object _resp = _call.invoke(new java.lang.Object[] {webCustomer_1});
+
+ if (_resp instanceof java.rmi.RemoteException) {
+ throw (java.rmi.RemoteException)_resp;
+ }
+ extractAttachments(_call);
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/LoanBrokerWSService.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/LoanBrokerWSService.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/LoanBrokerWSService.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,30 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.web.client;
+
+public interface LoanBrokerWSService extends javax.xml.rpc.Service {
+ public java.lang.String getLoanBrokerWSPortAddress();
+
+ public org.jboss.soa.esb.samples.loanbroker.web.client.LoanBrokerWS getLoanBrokerWSPort() throws javax.xml.rpc.ServiceException;
+
+ public org.jboss.soa.esb.samples.loanbroker.web.client.LoanBrokerWS getLoanBrokerWSPort(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/LoanBrokerWSServiceLocator.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/LoanBrokerWSServiceLocator.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/LoanBrokerWSServiceLocator.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,143 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.web.client;
+
+public class LoanBrokerWSServiceLocator extends org.apache.axis.client.Service implements org.jboss.soa.esb.samples.loanbroker.web.client.LoanBrokerWSService {
+
+ private static final long serialVersionUID = 1L;
+ // Use to get a proxy class for LoanBrokerWSPort
+ private java.lang.String LoanBrokerWSPort_address = "http://localhost:8080/loanbroker/LoanBrokerWS";
+
+ public java.lang.String getLoanBrokerWSPortAddress() {
+ return LoanBrokerWSPort_address;
+ }
+
+ // The WSDD service name defaults to the port name.
+ private java.lang.String LoanBrokerWSPortWSDDServiceName = "LoanBrokerWSPort";
+
+ public java.lang.String getLoanBrokerWSPortWSDDServiceName() {
+ return LoanBrokerWSPortWSDDServiceName;
+ }
+
+ public void setLoanBrokerWSPortWSDDServiceName(java.lang.String name) {
+ LoanBrokerWSPortWSDDServiceName = name;
+ }
+
+ public org.jboss.soa.esb.samples.loanbroker.web.client.LoanBrokerWS getLoanBrokerWSPort() throws javax.xml.rpc.ServiceException {
+ java.net.URL endpoint;
+ try {
+ endpoint = new java.net.URL(LoanBrokerWSPort_address);
+ }
+ catch (java.net.MalformedURLException e) {
+ throw new javax.xml.rpc.ServiceException(e);
+ }
+ return getLoanBrokerWSPort(endpoint);
+ }
+
+ public org.jboss.soa.esb.samples.loanbroker.web.client.LoanBrokerWS getLoanBrokerWSPort(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {
+ try {
+ org.jboss.soa.esb.samples.loanbroker.web.client.LoanBrokerWSBindingStub _stub = new org.jboss.soa.esb.samples.loanbroker.web.client.LoanBrokerWSBindingStub(portAddress, this);
+ _stub.setPortName(getLoanBrokerWSPortWSDDServiceName());
+ return _stub;
+ }
+ catch (org.apache.axis.AxisFault e) {
+ return null;
+ }
+ }
+
+ public void setLoanBrokerWSPortEndpointAddress(java.lang.String address) {
+ LoanBrokerWSPort_address = address;
+ }
+
+ /**
+ * For the given interface, get the stub implementation.
+ * If this service has no port for the given interface,
+ * then ServiceException is thrown.
+ */
+ public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
+ try {
+ if (org.jboss.soa.esb.samples.loanbroker.web.client.LoanBrokerWS.class.isAssignableFrom(serviceEndpointInterface)) {
+ org.jboss.soa.esb.samples.loanbroker.web.client.LoanBrokerWSBindingStub _stub = new org.jboss.soa.esb.samples.loanbroker.web.client.LoanBrokerWSBindingStub(new java.net.URL(LoanBrokerWSPort_address), this);
+ _stub.setPortName(getLoanBrokerWSPortWSDDServiceName());
+ return _stub;
+ }
+ }
+ catch (java.lang.Throwable t) {
+ throw new javax.xml.rpc.ServiceException(t);
+ }
+ throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface: " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));
+ }
+
+ /**
+ * For the given interface, get the stub implementation.
+ * If this service has no port for the given interface,
+ * then ServiceException is thrown.
+ */
+ public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
+ if (portName == null) {
+ return getPort(serviceEndpointInterface);
+ }
+ String inputPortName = portName.getLocalPart();
+ if ("LoanBrokerWSPort".equals(inputPortName)) {
+ return getLoanBrokerWSPort();
+ }
+ else {
+ java.rmi.Remote _stub = getPort(serviceEndpointInterface);
+ ((org.apache.axis.client.Stub) _stub).setPortName(portName);
+ return _stub;
+ }
+ }
+
+ public javax.xml.namespace.QName getServiceName() {
+ return new javax.xml.namespace.QName("http://localhost/loanbroker", "LoanBrokerWSService");
+ }
+
+ private java.util.HashSet<javax.xml.namespace.QName> ports = null;
+
+ public java.util.Iterator getPorts() {
+ if (ports == null) {
+ ports = new java.util.HashSet<javax.xml.namespace.QName>();
+ ports.add(new javax.xml.namespace.QName("LoanBrokerWSPort"));
+ }
+ return ports.iterator();
+ }
+
+ /**
+ * Set the endpoint address for the specified port name.
+ */
+ public void setEndpointAddress(java.lang.String portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
+ if ("LoanBrokerWSPort".equals(portName)) {
+ setLoanBrokerWSPortEndpointAddress(address);
+ }
+ else { // Unknown Port Name
+ throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName);
+ }
+ }
+
+ /**
+ * Set the endpoint address for the specified port name.
+ */
+ public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
+ setEndpointAddress(portName.getLocalPart(), address);
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/WebCustomer.java
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/WebCustomer.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/web/client/WebCustomer.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,310 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.samples.loanbroker.web.client;
+
+public class WebCustomer implements java.io.Serializable {
+
+ private static final long serialVersionUID = 1L;
+ private java.lang.String address;
+ private String email;
+ private java.lang.String employerName;
+ private double loanAmount;
+ private int loanDuration;
+ private java.lang.String name;
+ private double salary;
+ private int ssn;
+
+
+ public WebCustomer() {
+ }
+
+
+ /**
+ * Gets the address value for this WebCustomer.
+ *
+ * @return address
+ */
+ public java.lang.String getAddress() {
+ return address;
+ }
+
+
+ /**
+ * Sets the address value for this WebCustomer.
+ *
+ * @param address
+ */
+ public void setAddress(java.lang.String address) {
+ this.address = address;
+ }
+
+
+ /**
+ * Gets the employerName value for this WebCustomer.
+ *
+ * @return employerName
+ */
+ public java.lang.String getEmployerName() {
+ return employerName;
+ }
+
+
+ /**
+ * Sets the employerName value for this WebCustomer.
+ *
+ * @param employerName
+ */
+ public void setEmployerName(java.lang.String employerName) {
+ this.employerName = employerName;
+ }
+
+
+ /**
+ * Gets the loanAmount value for this WebCustomer.
+ *
+ * @return loanAmount
+ */
+ public double getLoanAmount() {
+ return loanAmount;
+ }
+
+
+ /**
+ * Sets the amountValue for this WebCustomer.
+ *
+ * @param loanAmount
+ */
+ public void setLoanAmount(double loanAmount) {
+ this.loanAmount = loanAmount;
+ }
+
+
+ /**
+ * Gets the loanDuration value for this WebCustomer.
+ *
+ * @return loanDuration
+ */
+ public int getLoanDuration() {
+ return loanDuration;
+ }
+
+
+ /**
+ * Sets the loanDuration value for this WebCustomer.
+ *
+ * @param loanDuration
+ */
+ public void setLoanDuration(int loanDuration) {
+ this.loanDuration = loanDuration;
+ }
+
+
+ /**
+ * Gets the name value for this WebCustomer.
+ *
+ * @return name
+ */
+ public java.lang.String getName() {
+ return name;
+ }
+
+
+ /**
+ * Sets the name value for this WebCustomer.
+ *
+ * @param name
+ */
+ public void setName(java.lang.String name) {
+ this.name = name;
+ }
+
+
+ /**
+ * Gets the salary value for this WebCustomer.
+ *
+ * @return salary
+ */
+ public double getSalary() {
+ return salary;
+ }
+
+
+ /**
+ * Sets the salary value for this WebCustomer.
+ *
+ * @param salary
+ */
+ public void setSalary(double salary) {
+ this.salary = salary;
+ }
+
+ private java.lang.Object __equalsCalc = null;
+ public synchronized boolean equals(java.lang.Object obj) {
+ if (!(obj instanceof WebCustomer)) return false;
+ WebCustomer other = (WebCustomer) obj;
+ if (obj == null) return false;
+ if (this == obj) return true;
+ if (__equalsCalc != null) {
+ return (__equalsCalc == obj);
+ }
+ __equalsCalc = obj;
+ boolean _equals;
+ _equals = true &&
+ ((this.address==null && other.getAddress()==null) ||
+ (this.address!=null &&
+ this.address.equals(other.getAddress()))) &&
+ ((this.employerName==null && other.getEmployerName()==null) ||
+ (this.employerName!=null &&
+ this.employerName.equals(other.getEmployerName()))) &&
+ this.loanAmount == other.getLoanAmount() &&
+ this.loanDuration == other.getLoanDuration() &&
+ ((this.name==null && other.getName()==null) ||
+ (this.name!=null &&
+ this.name.equals(other.getName()))) &&
+ this.salary == other.getSalary();
+ __equalsCalc = null;
+ return _equals;
+ }
+
+ private boolean __hashCodeCalc = false;
+ public synchronized int hashCode() {
+ if (__hashCodeCalc) {
+ return 0;
+ }
+ __hashCodeCalc = true;
+ int _hashCode = 1;
+ if (getAddress() != null) {
+ _hashCode += getAddress().hashCode();
+ }
+ if (getEmployerName() != null) {
+ _hashCode += getEmployerName().hashCode();
+ }
+ _hashCode += new Double(getLoanAmount()).hashCode();
+ _hashCode += getLoanDuration();
+ if (getName() != null) {
+ _hashCode += getName().hashCode();
+ }
+ _hashCode += new Double(getSalary()).hashCode();
+ __hashCodeCalc = false;
+ return _hashCode;
+ }
+
+ // Type metadata
+ private static org.apache.axis.description.TypeDesc typeDesc =
+ new org.apache.axis.description.TypeDesc(WebCustomer.class, true);
+
+ static {
+ typeDesc.setXmlType(new javax.xml.namespace.QName("http://localhost/loanbroker", "WebCustomer"));
+ org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+ elemField.setFieldName("address");
+ elemField.setXmlName(new javax.xml.namespace.QName("http://localhost/loanbroker", "address"));
+ elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+ typeDesc.addFieldDesc(elemField);
+ elemField = new org.apache.axis.description.ElementDesc();
+ elemField.setFieldName("email");
+ elemField.setXmlName(new javax.xml.namespace.QName("http://localhost/loanbroker", "email"));
+ elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+ typeDesc.addFieldDesc(elemField);
+ elemField = new org.apache.axis.description.ElementDesc();
+ elemField.setFieldName("employerName");
+ elemField.setXmlName(new javax.xml.namespace.QName("http://localhost/loanbroker", "employerName"));
+ elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+ typeDesc.addFieldDesc(elemField);
+ elemField = new org.apache.axis.description.ElementDesc();
+ elemField.setFieldName("loanAmount");
+ elemField.setXmlName(new javax.xml.namespace.QName("http://localhost/loanbroker", "loanAmount"));
+ elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "double"));
+ typeDesc.addFieldDesc(elemField);
+ elemField = new org.apache.axis.description.ElementDesc();
+ elemField.setFieldName("loanDuration");
+ elemField.setXmlName(new javax.xml.namespace.QName("http://localhost/loanbroker", "loanDuration"));
+ elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+ typeDesc.addFieldDesc(elemField);
+ elemField = new org.apache.axis.description.ElementDesc();
+ elemField.setFieldName("name");
+ elemField.setXmlName(new javax.xml.namespace.QName("http://localhost/loanbroker", "name"));
+ elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+ typeDesc.addFieldDesc(elemField);
+ elemField = new org.apache.axis.description.ElementDesc();
+ elemField.setFieldName("salary");
+ elemField.setXmlName(new javax.xml.namespace.QName("http://localhost/loanbroker", "salary"));
+ elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "double"));
+ typeDesc.addFieldDesc(elemField);
+ elemField = new org.apache.axis.description.ElementDesc();
+ elemField.setFieldName("ssn");
+ elemField.setXmlName(new javax.xml.namespace.QName("http://localhost/loanbroker", "ssn"));
+ elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+ typeDesc.addFieldDesc(elemField);
+ }
+
+ /**
+ * Return type metadata object
+ */
+ public static org.apache.axis.description.TypeDesc getTypeDesc() {
+ return typeDesc;
+ }
+
+ /**
+ * Get Custom Serializer
+ */
+ public static org.apache.axis.encoding.Serializer getSerializer(
+ java.lang.String mechType,
+ java.lang.Class _javaType,
+ javax.xml.namespace.QName _xmlType) {
+ return
+ new org.apache.axis.encoding.ser.BeanSerializer(
+ _javaType, _xmlType, typeDesc);
+ }
+
+ /**
+ * Get Custom Deserializer
+ */
+ public static org.apache.axis.encoding.Deserializer getDeserializer(
+ java.lang.String mechType,
+ java.lang.Class _javaType,
+ javax.xml.namespace.QName _xmlType) {
+ return
+ new org.apache.axis.encoding.ser.BeanDeserializer(
+ _javaType, _xmlType, typeDesc);
+ }
+
+
+ public String getEmail() {
+ return email;
+ }
+
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+
+ public int getSsn() {
+ return ssn;
+ }
+
+
+ public void setSsn(int ssn) {
+ this.ssn = ssn;
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/jsp/index.jsp
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/jsp/index.jsp 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/jsp/index.jsp 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,151 @@
+<%
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.
+ */
+
+String[] formHeader = {"Name", "Address", "SSN", "Email", "Salary", "Employer", "LoanAmount", "LoanDuration"};
+String[] formValue = new String[formHeader.length];
+
+String errors = "";
+int errorCount=0;
+
+for (int i=0; i<formValue.length;i++) {
+ formValue[i] = String.valueOf(request.getParameter(formHeader[i]));
+ //out.write(formHeader[i] + "=" + formValue[i] + "<br>");
+ if ("null".equals(formValue[i]) || formValue[i]==null || "".equals(formValue[i])) {
+ formValue[i]="";
+ errorCount++;
+ errors += formHeader[i] + " is a required field<br>";
+ }
+}
+//It's a new form. Let's set some default values.
+if (errorCount==formHeader.length) {
+ formValue[0]="Joe Broke";
+ formValue[1]="1 Spenditall Str., BrokeTown 99999 DC";
+ formValue[2]="1234567890";
+ formValue[3]="joe at iliketospendit.com";
+ formValue[4]="50000.00";
+ formValue[5]="Wesayso & Co";
+ formValue[6]="1000.00";
+ formValue[7]="12";
+}
+
+%>
+<html>
+<head>
+<title>JBossESB Loan Broker</title>
+<link rel="shortcut icon" href="/favicon.ico"/>
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/custom.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/global.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/headings.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/layout.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/navigation.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/pagelayout.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/tables.css" type="text/css" media="all">
+
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/screen.css" type="text/css" media="screen">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/print.css" type="text/css" media="print">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/common.css" type="text/css" media="all">
+</head>
+<body>
+
+<div id="TopLogo">
+ <a href="http://www.jboss.com"><img src="http://www.jboss.com/themes/jbosstheme/img/logo.gif" alt="JBoss - The Professional Open Source Company" border="0" /></a>
+</div>
+
+<div id="TopMenu">
+ <table cellpadding="0" cellspacing="0">
+ <tr>
+ <td class="menu_JBnetwork"><a href="http://network.jboss.com/">subscription</a></td>
+ <td class="menu_JBcom"><a href="http://www.jboss.com/">jboss.com</a></td>
+
+ <td class="menu_JBorg"><a href="http://labs.jboss.com">jboss.org</a></td>
+ <td class="menu_RH"><a href="http://www.redhat.com">redhat.com</a></td>
+ </tr>
+ </table>
+</div>
+
+
+<% if (errorCount!=0) { %>
+<form id="formLoanBrokerRequest" action="index.jsp" method="post">
+
+<table width="100%" border="0" cellpadding="10" cellspacing="3">
+ <tr><td colspan="2"><br><br><br><br>
+ <tr><td colspan="2"><h1>Loan Broker Request Form</h1></td></tr>
+ <% if (errorCount < formHeader.length) { %>
+ <tr><td colspan="2"><font color="red"><%=errors %></font></td></tr>
+ <% } %>
+ <% for (int i=0; i<formHeader.length;i++) { %>
+ <tr>
+ <td width="30%" nowrap><%=formHeader[i] %></td>
+ <td width="70%"><input id="<%=formHeader[i] %>" name="<%=formHeader[i] %>" type="text"
+ class="textBox" tabindex="1" size="60" value="<%=formValue[i] %>" /></td>
+ </tr>
+ <% } %>
+
+ <tr>
+ <td><INPUT TYPE="submit" VALUE="submit loan request"> </td>
+ </tr>
+</table>
+
+</form>
+
+<% } else {
+
+ org.jboss.soa.esb.samples.loanbroker.web.client.LoanBrokerWSBindingStub binding=null;
+ try {
+ binding = (org.jboss.soa.esb.samples.loanbroker.web.client.LoanBrokerWSBindingStub)
+ new org.jboss.soa.esb.samples.loanbroker.web.client.LoanBrokerWSServiceLocator().getLoanBrokerWSPort();
+ }
+ catch (javax.xml.rpc.ServiceException jre) {
+ if(jre.getLinkedCause()!=null)
+ jre.getLinkedCause().printStackTrace();
+
+ }
+ // Time out after a minute
+ binding.setTimeout(60000);
+
+ //Setting the values in the request
+ org.jboss.soa.esb.samples.loanbroker.web.client.WebCustomer webCustomer = new org.jboss.soa.esb.samples.loanbroker.web.client.WebCustomer();
+ webCustomer.setName(formValue[0]);
+ webCustomer.setAddress(formValue[1]);
+ webCustomer.setSsn(Integer.valueOf(formValue[2]).intValue());
+ webCustomer.setEmail(formValue[3]);
+ webCustomer.setSalary(Double.valueOf(formValue[4]).doubleValue());
+ webCustomer.setEmployerName(formValue[5]);
+ webCustomer.setLoanAmount(Double.valueOf(formValue[6]).doubleValue());
+ webCustomer.setLoanDuration(Integer.valueOf(formValue[7]).intValue());
+
+ binding.requestLoan(webCustomer); %>
+
+ <table width="100%" border="0" cellpadding="10" cellspacing="3">
+ <tr><td><br><br><br><br>
+ <tr><td><h1>Loan Broker</h1></td></tr>
+ <tr><td><h2>Request was submitted</h2></td></tr>
+ <tr><td><a href="index.jsp">Fill out another request</a></td></tr>
+
+ <% } %>
+
+
+
+
+</body>
+</html>
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/Licenses.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/Licenses.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/Licenses.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,479 @@
+The jars in this directory are covered by a range of licences, as described
+below.
+
+JBoss jars:
+
+/*
+ *
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ */
+
+
+Apache Jakarta Commons Collections/Commons Logging/Axis/Log4j:
+
+Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ 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.
+
+
+ JUnit
+
+ Common Public License Version 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+ a) in the case of the initial Contributor, the initial code and
+documentation distributed under this Agreement, and
+
+ b) in the case of each subsequent Contributor:
+
+ i) changes to the Program, and
+
+ ii) additions to the Program;
+
+ where such changes and/or additions to the Program originate from and are
+distributed by that particular Contributor. A Contribution 'originates' from a
+Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to
+the Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are
+necessarily infringed by the use or sale of its Contribution alone or when
+combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement,
+including all Contributors.
+
+2. GRANT OF RIGHTS
+
+ a) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free copyright license to
+reproduce, prepare derivative works of, publicly display, publicly perform,
+distribute and sublicense the Contribution of such Contributor, if any, and such
+derivative works, in source code and object code form.
+
+ b) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
+Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form.
+This patent license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the
+Licensed Patents. The patent license shall not apply to any other combinations
+which include the Contribution. No hardware per se is licensed hereunder.
+
+ c) Recipient understands that although each Contributor grants the licenses
+to its Contributions set forth herein, no assurances are provided by any
+Contributor that the Program does not infringe the patent or other intellectual
+property rights of any other entity. Each Contributor disclaims any liability to
+Recipient for claims brought by any other entity based on infringement of
+intellectual property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, each Recipient hereby assumes sole
+responsibility to secure any other intellectual property rights needed, if any.
+For example, if a third party patent license is required to allow Recipient to
+distribute the Program, it is Recipient's responsibility to acquire that license
+before distributing the Program.
+
+ d) Each Contributor represents that to its knowledge it has sufficient
+copyright rights in its Contribution, if any, to grant the copyright license set
+forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its
+own license agreement, provided that:
+
+ a) it complies with the terms and conditions of this Agreement; and
+
+ b) its license agreement:
+
+ i) effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title and
+non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+ ii) effectively excludes on behalf of all Contributors all liability for
+damages, including direct, indirect, special, incidental and consequential
+damages, such as lost profits;
+
+ iii) states that any provisions which differ from this Agreement are offered
+by that Contributor alone and not by any other party; and
+
+ iv) states that source code for the Program is available from such
+Contributor, and informs licensees how to obtain it in a reasonable manner on or
+through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+ a) it must be made available under this Agreement; and
+
+ b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the
+Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if
+any, in a manner that reasonably allows subsequent Recipients to identify the
+originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with
+respect to end users, business partners and the like. While this license is
+intended to facilitate the commercial use of the Program, the Contributor who
+includes the Program in a commercial product offering should do so in a manner
+which does not create potential liability for other Contributors. Therefore, if
+a Contributor includes the Program in a commercial product offering, such
+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+every other Contributor ("Indemnified Contributor") against any losses, damages
+and costs (collectively "Losses") arising from claims, lawsuits and other legal
+actions brought by a third party against the Indemnified Contributor to the
+extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to
+control, and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may participate in
+any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product
+offering, Product X. That Contributor is then a Commercial Contributor. If that
+Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such
+Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a court
+requires any other Contributor to pay any damages as a result, the Commercial
+Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+Recipient is solely responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its exercise of
+rights under this Agreement, including but not limited to the risks and costs of
+program errors, compliance with applicable laws, damage to or loss of data,
+programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable
+law, it shall not affect the validity or enforceability of the remainder of the
+terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such
+provision valid and enforceable.
+
+If Recipient institutes patent litigation against a Contributor with respect to
+a patent applicable to software (including a cross-claim or counterclaim in a
+lawsuit), then any patent licenses granted by that Contributor to such Recipient
+under this Agreement shall terminate as of the date such litigation is filed. In
+addition, if Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the Program
+itself (excluding combinations of the Program with other software or hardware)
+infringes such Recipient's patent(s), then such Recipient's rights granted under
+Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to
+comply with any of the material terms or conditions of this Agreement and does
+not cure such failure in a reasonable period of time after becoming aware of
+such noncompliance. If all Recipient's rights under this Agreement terminate,
+Recipient agrees to cease use and distribution of the Program as soon as
+reasonably practicable. However, Recipient's obligations under this Agreement
+and any licenses granted by Recipient relating to the Program shall continue and
+survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in
+order to avoid inconsistency the Agreement is copyrighted and may only be
+modified in the following manner. The Agreement Steward reserves the right to
+publish new versions (including revisions) of this Agreement from time to time.
+No one other than the Agreement Steward has the right to modify this Agreement.
+IBM is the initial Agreement Steward. IBM may assign the responsibility to serve
+as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the Agreement
+under which it was received. In addition, after a new version of the Agreement
+is published, Contributor may elect to distribute the Program (including its
+Contributions) under the new version. Except as expressly stated in Sections
+2(a) and 2(b) above, Recipient receives no rights or licenses to the
+intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the
+intellectual property laws of the United States of America. No party to this
+Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial in
+any resulting litigation.
+
+
+
+XStream, Antlr, Stingtemplate BSD License
+
+Copyright (c) 2003-2005, Joe Walnes
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list of
+conditions and the following disclaimer. Redistributions in binary form must reproduce
+the above copyright notice, this list of conditions and the following disclaimer in
+the documentation and/or other materials provided with the distribution.
+
+Neither the name of XStream nor the names of its contributors may be used to endorse
+or promote products derived from this software without specific prior written
+permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
+WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/antlr.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/antlr.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/axis.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/axis.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/commons-discovery.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/commons-discovery.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/jbossts-common.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/jbossts-common.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/junit.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/junit.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/log4j.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/log4j.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/milyn-smooks-core-0.8-SNAPSHOT.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/milyn-smooks-core-0.8-SNAPSHOT.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/milyn-smooks-csv-0.1.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/milyn-smooks-csv-0.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/milyn-smooks-templating-0.2.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/milyn-smooks-templating-0.2.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/opencsv-1.6.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/opencsv-1.6.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/stringtemplate.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/lib/stringtemplate.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/loanbroker.properties.template
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/loanbroker.properties.template 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/loanbroker.properties.template 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,15 @@
+# The home of your JBoss Appserver Install
+org.jboss.soa.esb.samples.loanbroker.jboss_home=@jboss.as.installdir@
+
+# The home of your JBoss server configuration
+org.jboss.soa.esb.samples.loanbroker.jboss_server=default
+
+# A reference to the root dir where you checked out your
+# copy of the esb project. Note the default assumes you checked
+# out and are building the LoanBroker from inside the ESB Project
+# Structure. If you've checked out the LoanBroker seperately, you'll need
+# to modify this property.
+org.jboss.soa.esb.samples.loanbroker.esb_home=../../../
+
+# Is this an ESB build from source, or a distribution?
+org.jboss.soa.esb.buildfrom.distribution=no
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/log4j.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/log4j.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/log4j.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,312 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.10 2006/04/21 17:29:20 csuconic Exp $ -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- A time/date based rolling appender -->
+ <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="./trailblazer.log"/>
+ <param name="Append" value="false"/>
+
+ <!-- Rollover at midnight each day -->
+ <param name="DatePattern" value="'.'yyyy-MM-dd"/>
+
+ <!-- Rollover at the top of each hour
+ <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
+ -->
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+
+ <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
+ <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
+ -->
+ </layout>
+ </appender>
+
+ <!-- A size based file rolling appender
+ <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="${jboss.server.log.dir}/server.log"/>
+ <param name="Append" value="false"/>
+ <param name="MaxFileSize" value="500KB"/>
+ <param name="MaxBackupIndex" value="1"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Target" value="System.out"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ====================== -->
+ <!-- More Appender examples -->
+ <!-- ====================== -->
+
+ <!-- Buffer events and log them asynchronously
+ <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <appender-ref ref="FILE"/>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="SMTP"/>
+ </appender>
+ -->
+
+ <!-- EMail events to an administrator
+ <appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Threshold" value="ERROR"/>
+ <param name="To" value="admin at myhost.domain.com"/>
+ <param name="From" value="nobody at myhost.domain.com"/>
+ <param name="Subject" value="JBoss Sever Errors"/>
+ <param name="SMTPHost" value="localhost"/>
+ <param name="BufferSize" value="10"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- Syslog events
+ <appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Facility" value="LOCAL7"/>
+ <param name="FacilityPrinting" value="true"/>
+ <param name="SyslogHost" value="localhost"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- Log events to JMS (requires a topic to be created)
+ <appender name="JMS" class="org.apache.log4j.net.JMSAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Threshold" value="ERROR"/>
+ <param name="TopicConnectionFactoryBindingName" value="java:/ConnectionFactory"/>
+ <param name="TopicBindingName" value="topic/MyErrorsTopic"/>
+ </appender>
+ -->
+
+ <!-- Log events through SNMP
+ <appender name="TRAP_LOG" class="org.apache.log4j.ext.SNMPTrapAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="ImplementationClassName" value="org.apache.log4j.ext.JoeSNMPTrapSender"/>
+ <param name="ManagementHost" value="127.0.0.1"/>
+ <param name="ManagementHostTrapListenPort" value="162"/>
+ <param name="EnterpriseOID" value="1.3.6.1.4.1.24.0"/>
+ <param name="LocalIPAddress" value="127.0.0.1"/>
+ <param name="LocalTrapSendPort" value="161"/>
+ <param name="GenericTrapType" value="6"/>
+ <param name="SpecificTrapType" value="12345678"/>
+ <param name="CommunityString" value="public"/>
+ <param name="ForwardStackTraceWithTrap" value="true"/>
+ <param name="Threshold" value="DEBUG"/>
+ <param name="ApplicationTrapOID" value="1.3.6.1.4.1.24.12.10.22.64"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d,%p,[%t],[%c],%m%n"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- Emit events as JMX notifications
+ <appender name="JMX" class="org.jboss.monitor.services.JMXNotificationAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+
+ <param name="Threshold" value="WARN"/>
+ <param name="ObjectName" value="jboss.system:service=Logging,type=JMXNotificationAppender"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%c] %m"/>
+ </layout>
+ </appender>
+ -->
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
+ <category name="org.apache">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit the org.jboss.serial (jboss-serialization) to INFO as its DEBUG is verbose -->
+ <category name="org.jboss.serial">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
+ <category name="org.jgroups">
+ <priority value="WARN"/>
+ </category>
+
+ <!-- Limit the jacorb category to WARN as its INFO is verbose -->
+ <category name="jacorb">
+ <priority value="WARN"/>
+ </category>
+
+ <!-- Limit JBoss categories
+ <category name="org.jboss">
+ <priority value="INFO"/>
+ </category><
+ -->
+
+ <!-- Limit the JSR77 categories -->
+ <category name="org.jboss.management">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit Axis based webservice category -->
+ <category name="org.jboss.webservice">
+ <priority value="DEBUG"/>
+ </category>
+ <category name="org.jboss.axis">
+ <priority value="INFO"/>
+ </category>
+
+ <category name="org.milyn">
+ <priority value="INFO"/>
+ </category>
+ <category name="org.milyn.delivery.SmooksXML">
+ <priority value="DEBUG"/>
+ </category>
+ <category name="org.milyn.delivery.serialize.Serializer">
+ <priority value="DEBUG"/>
+ </category>
+ <category name="org.milyn.cdr.XMLConfigDigester">
+ <priority value="INFO"/>
+ </category>
+
+ <!-- Limit JBossWS webservice category
+ <category name="org.jboss.ws">
+ <priority value="DEBUG"/>
+ </category>
+ -->
+
+ <!-- Decrease the priority threshold for the org.jboss.varia category
+ <category name="org.jboss.varia">
+ <priority value="DEBUG"/>
+ </category>
+ -->
+
+ <!-- Show the evolution of the DataSource pool in the logs [inUse/Available/Max]
+ <category name="org.jboss.resource.connectionmanager.JBossManagedConnectionPool">
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ </category>
+ -->
+
+ <!--
+ | An example of enabling the custom TRACE level priority that is used
+ | by the JBoss internals to diagnose low level details. This example
+ | turns on TRACE level msgs for the org.jboss.ejb.plugins package and its
+ | subpackages. This will produce A LOT of logging output.
+ <category name="org.jboss.system">
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ </category>
+ <category name="org.jboss.ejb.plugins">
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/>
+ </category>
+ -->
+
+ <!--
+ | Logs these events to SNMP:
+ - server starts/stops
+ - cluster evolution (node death/startup)
+ - When an EJB archive is deployed (and associated verified messages)
+ - When an EAR archive is deployed
+
+ <category name="org.jboss.system.server.Server">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.ha.framework.interfaces.HAPartition.lifecycle">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.deployment.MainDeployer">
+ <priority value="ERROR" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.ejb.EJBDeployer">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ <category name="org.jboss.deployment.EARDeployer">
+ <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/>
+ </category>
+
+ -->
+
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="FILE"/>
+ </root>
+
+ <!-- Clustering logging -->
+ <!-- Uncomment the following to redirect the org.jgroups and
+ org.jboss.ha categories to a cluster.log file.
+
+ <appender name="CLUSTER" class="org.jboss.logging.appender.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="${jboss.server.log.dir}/cluster.log"/>
+ <param name="Append" value="false"/>
+ <param name="MaxFileSize" value="500KB"/>
+ <param name="MaxBackupIndex" value="1"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+ </layout>
+ </appender>
+ <category name="org.jgroups">
+ <priority value="DEBUG" />
+ <appender-ref ref="CLUSTER"/>
+ </category>
+ <category name="org.jboss.ha">
+ <priority value="DEBUG" />
+ <appender-ref ref="CLUSTER"/>
+ </category>
+ -->
+
+</log4j:configuration>
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/template/quotes.html
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/template/quotes.html 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/template/quotes.html 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title> JBossESB TrailBlazer - LoanBroker Quote Results </title>
+
+
+
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/custom.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/global.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/headings.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/layout.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/navigation.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/pagelayout.css" type="text/css" media="all">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/tables.css" type="text/css" media="all">
+
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/screen.css" type="text/css" media="screen">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/print.css" type="text/css" media="print">
+<link rel="stylesheet" href="http://www.jboss.com/themes/jbosstheme/style/common.css" type="text/css" media="all">
+
+</head>
+
+<body>
+
+<div id="TopLogo">
+ <a href="http://www.jboss.com"><img src="http://www.jboss.com/themes/jbosstheme/img/logo.gif" alt="JBoss - The Professional Open Source Company" border="0" /></a>
+</div>
+
+<div id="TopMenu">
+ <table cellpadding="0" cellspacing="0">
+ <tr>
+ <td class="menu_JBnetwork"><a href="http://network.jboss.com/">subscription</a></td>
+ <td class="menu_JBcom"><a href="http://www.jboss.com/">jboss.com</a></td>
+
+ <td class="menu_JBorg"><a href="http://labs.jboss.com">jboss.org</a></td>
+ <td class="menu_RH"><a href="http://www.redhat.com">redhat.com</a></td>
+ </tr>
+ </table>
+</div>
+
+<br><br><br><br><br><br><br><br><br><br><br><br>
+<a href="http://labs.jboss.com/portal/jbossesb"><img src="http://labs.jboss.com/file-access/default/members/jbossesb/images/jboss_esb.gif" alt="JBoss - The Professional Open Source Company" border="0" /></a>
+
+
+<hr>
+<i><b>CUSTOMER INFORMATION</b></i><br><br>
+<b>CustomerID:</b> $customerUID$<br>
+<b>Customer Name: </b> $customerName$<br>
+<b>Customer Email: </b> $customerEmail$<br>
+<b>Customer SSN: </b> $customerSSN$<br>
+<b>Customer Salaryl: </b> $customerSalary$<br>
+<b>Loan Amount Requested: </b> $loanAmtl$<br>
+<b>Loan Duration: </b> $loanDur$<br>
+
+
+<br><br>
+<b>BANK QUOTES RECEIVED:<b><br><br>
+
+<!-- hard coded for 2 responses -->
+
+<table width="300" border="1" cellspacing="0" cellpadding="0">
+<tr>
+ <td>QUOTE ID</td>
+ <td>RATE</td>
+</tr>
+<tr>
+ <td>$quoteID1$</td>
+ <td>$rate1$</td>
+</tr>
+<tr>
+ <td>$quoteID2$</td>
+ <td>$rate2$</td>
+</tr>
+</table>
+
+
+
+
+</body>
+</html>
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/template/quotes.st
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/template/quotes.st 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/template/quotes.st 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,35 @@
+JBossESB - TrailBlazer LoanBroker Scenario
+
+
+-- CUSTOMER INFORMATION --
+
+CustomerID: $uid$
+Customer Name: $name$
+Customer Address: $address$
+Customer SSN: $ssn$
+Customer Email: $email$
+Customer Salary: $salary$
+Loan Amount Requested: $amount$
+Loan Duration: $duration$ months
+
+
+-- BANK QUOTES RECEIVED --
+
+QUOTE ID: $quote1$
+RATE: $rate1$
+BANK CODE: $code1$
+
+QUOTE ID: $quote2$
+RATE: $rate2$
+BANK CODE: $code2$
+
+
+-- BANK CODES --
+0 - success
+1 - loan term exceeds the maximum available loan term
+2 - invalid SSN
+3 - invalid credit score
+4 - invalid credit history length
+5 - invalid loan term
+6 - invalid message
+7 - invalid customer ID
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/transform/smooks/from__loanbroker.cdrl
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/transform/smooks/from__loanbroker.cdrl 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/transform/smooks/from__loanbroker.cdrl 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,16 @@
+<?xml version='1.0'?>
+<!DOCTYPE smooks-resource-list PUBLIC '-//MILYN//DTD SMOOKS 1.0//EN' 'http://milyn.org/dtd/smooksres-list-1.0.dtd'>
+
+<smooks-resource-list>
+
+ <!--
+ Bank Quotes from the loan broker are always in CSV format. Need to enable a CSV to SAX parser
+ to enable transformation of these messages.
+
+ See: http://milyn.codehaus.org/javadoc/smooks-cartridges/csv/org/milyn/csv/CSVParser.html
+ -->
+ <smooks-resource useragent="type:BankQuote-CSV AND from:LoanBroker" selector="org.xml.sax.driver" path="org.milyn.csv.CSVParser" >
+ <param name="fields" type="string-list">ssn,creditScore,creditHistoryLen,amount,term,customerUniqueId</param>
+ </smooks-resource>
+
+</smooks-resource-list>
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/transform/smooks/smooks-cdr.lst
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/transform/smooks/smooks-cdr.lst 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/transform/smooks/smooks-cdr.lst 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,31 @@
+#################################################################################################################################################
+#
+# OVERVIEW:
+# =========
+# This is the Smooks configuration file "list file" i.e. it lists all the Smooks resource configuration files. One should think of these
+# configuration files as being the Smooks configuration database. These configurations may/will eventually be maintained in a database
+# with a graphical UI to aid comprehension.
+#
+# THINGS TO NOTE:
+# ===============
+# 1. Don't try to apply any significance to the fact that there are multiple .cdrl files. This does not mean they are
+# separate transformations. All these files are loaded by Smooks to make up a "database" of transformation
+# resource configurations. Smooks will dynamically select the resource configurations that apply in a given situation
+# based on the profiles associated with the requested transformation "useragent" e.g. message type, message producer,
+# message consumer.
+#
+# 2. The .cdrl list entries in this file are resource references on the *classpath* i.e. they're not filesystem paths.
+# These .cdrl files should all be located in the "transform" folder.
+#
+#################################################################################################################################################
+
+################################################################################
+# Message transformation resource definitions
+################################################################################
+/from__loanbroker.cdrl
+/to____jmsbank.cdrl
+
+################################################################################
+# Common transformation support resource definitions.
+################################################################################
+/org/milyn/templating/templating-cdu-creators-0.1.cdrl
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/transform/smooks/to____jmsbank.cdrl
===================================================================
--- labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/transform/smooks/to____jmsbank.cdrl 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/product/samples/trailblazer/bankloanbrokerdemo/transform/smooks/to____jmsbank.cdrl 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,40 @@
+<?xml version='1.0'?>
+<!DOCTYPE smooks-resource-list PUBLIC '-//MILYN//DTD SMOOKS 1.0//EN' 'http://milyn.org/dtd/smooksres-list-1.0.dtd'>
+
+<smooks-resource-list>
+
+ <!--
+ 1. Bank Quotes from the loan broker are always XML'ified CSV records.
+ See from__loanbroker.cdrl
+ 2. The JMSBank needs this data as XML, but the XML produced by CSVParser needs the following
+ modifications:
+ i) A general restructuring of the <csv-record> elements to fit the format requirements of the JMSBank.
+ (See http://milyn.codehaus.org/javadoc/smooks-cartridges/templating/org/milyn/templating/xslt/XslContentDeliveryUnitCreator.html)
+ ii) Remove the root <csv-set>. We know that there's only one CSV record in this set and the JMSBank
+ expects the root to be "org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteRequest".
+ (See http://milyn.codehaus.org/javadoc/smooks-cartridges/misc/org/milyn/cdres/trans/RemoveElementTU.html)
+ Note of course that this particular transformation could be easily avoided by simply targeting the XSLT
+ transformation at the <csv-set> element. However, if multiple <csv-record> elements were present and
+ supported by the JMS Bank, a configuration like this would be more appropriate - the only difference being
+ that the <csv-set> would more like get renamed than removed.
+ -->
+ <smooks-resource useragent="type:BankQuote-CSV AND from:LoanBroker AND to:JMSBank" selector="csv-record">
+ <param name="restype">xsl</param>
+ <param name="resdata">
+ <![CDATA[
+ <org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteRequest>
+ <ssn><xsl:value-of select="ssn"/></ssn>
+ <creditScore><xsl:value-of select="creditScore"/></creditScore>
+ <historyLength><xsl:value-of select="creditHistoryLen"/></historyLength>
+ <loanAmount><xsl:value-of select="amount"/></loanAmount>
+ <loanTerm><xsl:value-of select="term"/></loanTerm>
+ <customerUID><xsl:value-of select="customerUniqueId"/></customerUID>
+ </org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteRequest>
+ ]]>
+ </param>
+ </smooks-resource>
+ <smooks-resource useragent="type:BankQuote-CSV AND from:LoanBroker AND to:JMSBank" selector="csv-set" path="org.milyn.cdres.trans.RemoveElementTU">
+ <param name="keepChildContent">true</param>
+ </smooks-resource>
+
+</smooks-resource-list>
Added: labs/jbossesb/workspace/b_georges/product/samples/trailblazer2/docs/sequence-diagram-overview.JPG
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/product/samples/trailblazer2/docs/sequence-diagram-overview.JPG
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/Copyright.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/Copyright.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/Copyright.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,19 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ */
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/qa/README.TXT
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/README.TXT 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/README.TXT 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,33 @@
+OVERVIEW
+=============
+This file hierarchy contains QA tests. Note that the JUnit based tests here are NOT "Unit Tests", we're simply utilising the
+Ant and JUnit frameworks for running QA level tests.
+
+These tests depend on a running JBoss AS, installed JBoss ESB (and whatever it depends on - DB etc), configured
+JMS Queues etc. Each test should outline whatever its dependencies.
+
+RUNNING THE TESTS
+====================
+1. Run the "earinstr" ant build target from the "product" folder.
+2. Run the "deploy" ant build target from the "product" folder.
+3. Start your JBossAS server.
+4. Run the "test" ant build target from the "qa" folder.
+
+Note that because these tests are QA based tests (with filesystem dependencies etc), it is not recommended to run the
+JUnit based tests from within your IDE.
+
+ADDING JUNIT TESTS
+=====================
+Simply add the tests to the junit/src tree making sure that all "TestCase" files have the "Test" suffix. Use and add to
+the utility classes (in the org.jboss.soa.esb.util package) as much as possible. Always run the tests through the ant
+scripts i.e. not through your IDE (as outlined above).
+
+See the org.jboss.soa.esb.listeners.DirectoryPollerTest and org.jboss.soa.esb.listeners.DirectoryPollerConfig1.xml
+files as examples.
+
+Notes on Listener Configurations:
+1. All Listener configurations must be located in the src folder (just put them in the same package as your TestCase class).
+2. When specifying directory URI attributes on the Listener configurations (e.g. DirectoryPoller input dirs), be sure
+ not to commit absolute URIs relative to your file system. Instead, use "@qa.build@" tokens in conjunction with the
+ ListenerUtils and FileUtils classes. Again, see the org.jboss.soa.esb.listeners.DirectoryPollerTest and
+ org.jboss.soa.esb.listeners.DirectoryPollerConfig1.xml files as examples.
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/listeners/DirectoryPollerTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/listeners/DirectoryPollerTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/listeners/JmsQueueListenerTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/listeners/JmsQueueListenerTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/listeners/ListenerManagerTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/listeners/ListenerManagerTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/listeners/MessageBox.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/listeners/MessageBox.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/listeners/SQLTablePollerTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/listeners/SQLTablePollerTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/objpersist/DrainQueuesAndTopics.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/objpersist/DrainQueuesAndTopics.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/objpersist/ObjStoreTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/objpersist/ObjStoreTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/objpersist/TestPersonAddrPhone.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/objpersist/TestPersonAddrPhone.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/rosetta/MessageAttachmentSerializeTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/rosetta/MessageAttachmentSerializeTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/rosetta/MessagePropertiesSerializeTest.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/rosetta/MessagePropertiesSerializeTest.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/rosetta/Util.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/rosetta/Util.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/ClassUtils.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/ClassUtils.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/DbUtils$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/DbUtils$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/DbUtils$DbResources.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/DbUtils$DbResources.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/DbUtils$ResultSetInvocationHandler.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/DbUtils$ResultSetInvocationHandler.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/DbUtils.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/DbUtils.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/FileUtils$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/FileUtils$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/FileUtils.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/FileUtils.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/JMSClientUtil$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/JMSClientUtil$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/JMSClientUtil$JMSSendQueueSetup.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/JMSClientUtil$JMSSendQueueSetup.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/JMSClientUtil$QUEUE.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/JMSClientUtil$QUEUE.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/JMSClientUtil.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/JMSClientUtil.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/ListenerUtils$1.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/ListenerUtils$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/ListenerUtils$ListenersManagerExecThread.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/ListenerUtils$ListenersManagerExecThread.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/ListenerUtils.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/ListenerUtils.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/TestCaseUtils.class
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/build/junit/classes/org/jboss/soa/esb/util/TestCaseUtils.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/report/TEST-org.jboss.soa.esb.listeners.DirectoryPollerTest.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/build/junit/report/TEST-org.jboss.soa.esb.listeners.DirectoryPollerTest.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/build/junit/report/TEST-org.jboss.soa.esb.listeners.DirectoryPollerTest.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<testsuite errors="0" failures="0" name="org.jboss.soa.esb.listeners.DirectoryPollerTest" tests="1" time="1.89">
+ <properties>
+ <property name="java.vendor" value="Sun Microsystems Inc."></property>
+ <property name="org.jboss.esb.db.create.db" value="off"></property>
+ <property name="sun.management.compiler" value="HotSpot Client Compiler"></property>
+ <property name="org.jboss.esb.db.user" value="sa"></property>
+ <property name="build.lib" value="../../product/lib"></property>
+ <property name="os.name" value="Linux"></property>
+ <property name="sun.boot.class.path" value="/opt/jdk1.5.0_09/jre/lib/rt.jar:/opt/jdk1.5.0_09/jre/lib/i18n.jar:/opt/jdk1.5.0_09/jre/lib/sunrsasign.jar:/opt/jdk1.5.0_09/jre/lib/jsse.jar:/opt/jdk1.5.0_09/jre/lib/jce.jar:/opt/jdk1.5.0_09/jre/lib/charsets.jar:/opt/jdk1.5.0_09/jre/classes"></property>
+ <property name="org.jboss.esb.test.db.driver.jar" value="hsqldb.jar"></property>
+ <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"></property>
+ <property name="sun.desktop" value="gnome"></property>
+ <property name="java.vm.specification.vendor" value="Sun Microsystems Inc."></property>
+ <property name="ant.home" value="/opt/ant"></property>
+ <property name="java.runtime.version" value="1.5.0_09-b01"></property>
+ <property name="org.jboss.esb.db.driver" value="org.hsqldb.jdbcDriver"></property>
+ <property name="org.jboss.esb.config.objstore" value="/data/jboss/jbesb/conf/ObjStore.xml"></property>
+ <property name="product.build" value="../../product/build"></property>
+ <property name="product.lib" value="../../product/build/dist/lib"></property>
+ <property name="user.name" value="b_georges"></property>
+ <property name="product" value="../../product"></property>
+ <property name="org.jboss.soa.esb.jndi.server.type" value="jboss"></property>
+ <property name="ant.file.JUnit" value="/home/b_georges/projects/jboss/jbossesb/trunk/qa/junit/build.xml"></property>
+ <property name="org.jboss.esb.appserver.home" value="/opt/jboss/server/jboss-4.0.4SP1/bin"></property>
+ <property name="user.language" value="en"></property>
+ <property name="sun.boot.library.path" value="/opt/jdk1.5.0_09/jre/lib/i386"></property>
+ <property name="org.jboss.esb.test.db.password" value=""></property>
+ <property name="ant.project.name" value="JUnit"></property>
+ <property name="java.version" value="1.5.0_09"></property>
+ <property name="user.timezone" value=""></property>
+ <property name="org.jboss.esb.test.db.driver" value="org.hsqldb.jdbcDriver"></property>
+ <property name="sun.arch.data.model" value="32"></property>
+ <property name="org.jboss.esb.test.db.user" value="sa"></property>
+ <property name="java.endorsed.dirs" value="/opt/jdk1.5.0_09/jre/lib/endorsed"></property>
+ <property name="ant.file.JBESB-QA" value="/home/b_georges/projects/jboss/jbossesb/trunk/qa/build.xml"></property>
+ <property name="sun.cpu.isalist" value=""></property>
+ <property name="sun.jnu.encoding" value="UTF-8"></property>
+ <property name="file.encoding.pkg" value="sun.io"></property>
+ <property name="qa.junit.src" value="src"></property>
+ <property name="file.separator" value="/"></property>
+ <property name="java.specification.name" value="Java Platform API Specification"></property>
+ <property name="java.class.version" value="49.0"></property>
+ <property name="org.jboss.soa.esb.paramsRepository.file.root" value="junit/src"></property>
+ <property name="user.country" value="US"></property>
+ <property name="java.home" value="/opt/jdk1.5.0_09/jre"></property>
+ <property name="java.vm.info" value="mixed mode, sharing"></property>
+ <property name="ant.file" value="/home/b_georges/projects/jboss/jbossesb/trunk/qa/junit/build.xml"></property>
+ <property name="os.version" value="2.6.15-1.2054_FC5smp"></property>
+ <property name="org.jboss.soa.esb.mail.smtp.port" value="25"></property>
+ <property name="path.separator" value=":"></property>
+ <property name="java.vm.version" value="1.5.0_09-b01"></property>
+ <property name="org.jboss.esb.db.url" value="jdbc:hsqldb:hsql://localhost:1701"></property>
+ <property name="ant.library.dir" value="/opt/ant/lib"></property>
+ <property name="coverage" value="../../product/build/tests/coverage"></property>
+ <property name="java.awt.printerjob" value="sun.print.PSPrinterJob"></property>
+ <property name="qa.junit.classes" value="../build/junit/classes"></property>
+ <property name="sun.io.unicode.encoding" value="UnicodeLittle"></property>
+ <property name="tests.filter" value="*"></property>
+ <property name="org.jboss.soa.esb.mail.smtp.password" value=""></property>
+ <property name="qa.junit.report" value="../build/junit/report"></property>
+ <property name="user.home" value="/home/b_georges"></property>
+ <property name="org.jboss.soa.esb.mail.smtp.user" value=""></property>
+ <property name="java.specification.vendor" value="Sun Microsystems Inc."></property>
+ <property name="qa.lib" value="../lib"></property>
+ <property name="java.library.path" value="/opt/jdk1.5.0_09/jre/lib/i386/client:/opt/jdk1.5.0_09/jre/lib/i386:/opt/jdk1.5.0_09/jre/../lib/i386"></property>
+ <property name="org.jboss.soa.esb.jndi.server.url" value="localhost"></property>
+ <property name="java.vendor.url" value="http://java.sun.com/"></property>
+ <property name="java.vm.vendor" value="Sun Microsystems Inc."></property>
+ <property name="org.jboss.esb.test.db.url" value="jdbc:hsqldb:."></property>
+ <property name="java.runtime.name" value="Java(TM) 2 Runtime Environment, Standard Edition"></property>
+ <property name="java.class.path" value="/home/b_georges/projects/jboss/jbossesb/trunk/qa/build/junit/classes:/home/b_georges/projects/jboss/jbossesb/trunk/product/build/dist/lib/jbossesb-listeners.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/build/dist/lib/jbossesb-rosetta.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/build/dist/lib/jbossesb-services.jar:/home/b_georges/projects/jboss/jbossesb/trunk/qa/lib/ext/jboss-aop-jdk50-client.jar:/home/b_georges/projects/jboss/jbossesb/trunk/qa/lib/ext/jboss-aspect-library-jdk50.jar:/home/b_georges/projects/jboss/jbossesb/trunk/qa/lib/ext/jboss-ejb3.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/activation.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/cglib-full-2.0-RC2.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/commons-collections-3.2.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/commons-dbcp-1.2.1.jar:/home/b_georges/proje!
cts/jboss/jbossesb/trunk/product/lib/ext/commons-lang-2.1.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/commons-logging.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/commons-pool-1.3.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/edtftpj.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/emma.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/emma_ant.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/hsqldb.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/jakarta-oro-2.0.8.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/jaxr-api-1.0.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/jboss-jmx.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/jbossts-common.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/juddi-client.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/juddi-e!
mbedded.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/
ext/junit-4.1.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/log4j.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/mail.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/milyn-commons-0.7.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/milyn-smooks-core-0.8-SNAPSHOT.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/milyn-smooks-misc-0.2.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/milyn-tinak-0.7.1.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/mockejb.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/postgresql-8.1-407.jdbc2ee.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/properties-plugin.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/scout-0.7rc2-embedded.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/xalan-2.7.0.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/!
ext/xbean-1.0.4.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/xercesImpl-2.7.1.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/xml-apis-1.3.02.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/xstream-1.1.3.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/ejb3/jboss-annotations-ejb3.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/ejb3/jboss-ejb3x.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/ejb3/jbossall-client.jar:/home/b_georges/projects/jboss/jbossesb/trunk/qa:/home/b_georges/projects/jboss/jbossesb/trunk/qa/junit/src:/opt/apache-ant-1.6.5/lib/ant-launcher.jar:/opt/ant/lib/ant.jar:/opt/ant/lib/ant-junit.jar"></property>
+ <property name="ant.version" value="Apache Ant version 1.6.5 compiled on June 2 2005"></property>
+ <property name="java.vm.specification.name" value="Java Virtual Machine Specification"></property>
+ <property name="java.vm.specification.version" value="1.0"></property>
+ <property name="sun.os.patch.level" value="unknown"></property>
+ <property name="sun.cpu.endian" value="little"></property>
+ <property name="java.io.tmpdir" value="/tmp"></property>
+ <property name="java.vendor.url.bug" value="http://java.sun.com/cgi-bin/bugreport.cgi"></property>
+ <property name="org.jboss.esb.db.password" value=""></property>
+ <property name="java.awt.graphicsenv" value="sun.awt.X11GraphicsEnvironment"></property>
+ <property name="os.arch" value="i386"></property>
+ <property name="java.ext.dirs" value="/opt/jdk1.5.0_09/jre/lib/ext"></property>
+ <property name="user.dir" value="/home/b_georges/projects/jboss/jbossesb/trunk/qa"></property>
+ <property name="line.separator" value="
+"></property>
+ <property name="java.vm.name" value="Java HotSpot(TM) Client VM"></property>
+ <property name="qa.build" value="../build"></property>
+ <property name="basedir" value="/home/b_georges/projects/jboss/jbossesb/trunk/qa/junit"></property>
+ <property name="ant.java.version" value="1.5"></property>
+ <property name="file.encoding" value="UTF-8"></property>
+ <property name="org.jboss.esb.db.driver.jar" value="hsqldb.jar"></property>
+ <property name="org.jboss.esb.appserver.config" value="esb"></property>
+ <property name="java.specification.version" value="1.5"></property>
+ </properties>
+ <testcase classname="org.jboss.soa.esb.listeners.DirectoryPollerTest" name="test" time="1.583"></testcase>
+ <system-out><![CDATA[18:54:00,985 INFO [main][ParamFileRepository] Setting parameter repository root dir to [/home/b_georges/projects/jboss/jbossesb/trunk/qa/junit/src].
+18:54:01,335 DEBUG [main][SpyConnectionFactoryObjectFactory] Extracting SpyConnectionFactory from reference
+18:54:01,407 DEBUG [main][SpyConnectionFactoryObjectFactory] The GenericConnectionFactory is: GenericConnectionFactory[server=org.jboss.mq.il.uil2.UILServerIL at 186768e connectionProperties={ClientILService=org.jboss.mq.il.uil2.UILClientILService, UIL_TCPNODELAY_KEY=yes, UIL_CHUNKSIZE_KEY=1000000, UIL_CONNECTADDRESS_KEY=null, UIL_CONNECTPORT_KEY=0, UIL_SOTIMEOUT_KEY=120000, UIL_RECEIVE_REPLIES_KEY=No, UIL_ADDRESS_KEY=127.0.0.1, UIL_PORT_KEY=8093, PingPeriod=60000, UIL_BUFFERSIZE_KEY=2048}]
+18:54:01,458 DEBUG [main][Connection] Setting the clockDaemon's thread factory
+18:54:01,522 DEBUG [UIL2.SocketManager.ReadTask#1 client=127.0.0.1:8093][SocketManager] Begin ReadTask.run
+18:54:01,525 DEBUG [UIL2.SocketManager.WriteTask#2 client=127.0.0.1:8093][SocketManager] Begin WriteTask.run
+18:54:01,526 DEBUG [UIL2.SocketManager.WriteTask#2 client=127.0.0.1:8093][SocketManager] Created ObjectOutputStream
+18:54:01,530 DEBUG [UIL2.SocketManager.ReadTask#1 client=127.0.0.1:8093][SocketManager] Created ObjectInputStream
+18:54:01,543 DEBUG [main][UILClientILService] Starting
+18:54:01,574 DEBUG [main][SpyDestinationObjectFactory] SpyDestinationObjectFactory->getObjectInstance()
+18:54:01,746 INFO [main][ActionDefinitionFactory] Added alias [FileCopier] for ActionProcessor class [org.jboss.soa.esb.actions.routing.FileCopier].
+18:54:01,749 INFO [main][ActionDefinitionFactory] Added ActionDefinition [FileCopy1] for processor [FileCopier:org.jboss.soa.esb.actions.routing.FileCopier]. Num properties: 2
+18:54:01,750 INFO [main][ActionDefinitionFactory] Added ActionDefinition [FileCopy2] for processor [FileCopier:org.jboss.soa.esb.actions.routing.FileCopier]. Num properties: 2
+18:54:01,750 INFO [main][ActionDefinitionFactory] ActionDefinition Factory initialisation complete.
+18:54:01,751 INFO [main][ListenerUtils] Waiting on Listener Manager the start...
+18:54:01,810 INFO [main][ListenerUtils] Listener Manager running (Thread: Thread-1)! Note this does not mean all the Listeners are up and running!
+18:54:01,953 INFO [Thread-1][GpListener] Waiting for command ... timeout=179783 millis
+18:54:01,990 DEBUG [Thread-3][FileCopier] Successfully copied file /home/b_georges/projects/jboss/jbossesb/trunk/qa/./build/inputDir/infile1.inp.WORKING to file /home/b_georges/projects/jboss/jbossesb/trunk/qa/./build/copiedTo/infile1.inp.outFromFirst
+18:54:01,992 DEBUG [Thread-3][FileCopier] Successfully copied file /home/b_georges/projects/jboss/jbossesb/trunk/qa/./build/inputDir/infile1.inp.WORKING to file /home/b_georges/projects/jboss/jbossesb/trunk/qa/./build/copiedTo/infile1.inp.outFromSecond
+18:54:02,066 DEBUG [main][SpyConnectionFactoryObjectFactory] Extracting SpyConnectionFactory from reference
+18:54:02,078 DEBUG [main][SpyConnectionFactoryObjectFactory] The GenericConnectionFactory is: GenericConnectionFactory[server=org.jboss.mq.il.uil2.UILServerIL at e6ff0d connectionProperties={ClientILService=org.jboss.mq.il.uil2.UILClientILService, UIL_TCPNODELAY_KEY=yes, UIL_CHUNKSIZE_KEY=1000000, UIL_CONNECTADDRESS_KEY=null, UIL_CONNECTPORT_KEY=0, UIL_SOTIMEOUT_KEY=120000, UIL_RECEIVE_REPLIES_KEY=No, UIL_ADDRESS_KEY=127.0.0.1, UIL_PORT_KEY=8093, PingPeriod=60000, UIL_BUFFERSIZE_KEY=2048}]
+18:54:02,081 DEBUG [UIL2.SocketManager.ReadTask#3 client=127.0.0.1:8093][SocketManager] Begin ReadTask.run
+18:54:02,081 DEBUG [UIL2.SocketManager.WriteTask#4 client=127.0.0.1:8093][SocketManager] Begin WriteTask.run
+18:54:02,096 DEBUG [UIL2.SocketManager.WriteTask#4 client=127.0.0.1:8093][SocketManager] Created ObjectOutputStream
+18:54:02,100 DEBUG [UIL2.SocketManager.ReadTask#3 client=127.0.0.1:8093][SocketManager] Created ObjectInputStream
+18:54:02,101 DEBUG [main][UILClientILService] Starting
+18:54:02,134 DEBUG [main][SpyDestinationObjectFactory] SpyDestinationObjectFactory->getObjectInstance()
+18:54:02,149 INFO [main][JMSClientUtil] Queue Setup for sending: queue/A
+18:54:02,161 INFO [main][JMSClientUtil] Sending Text message: [shutdown]
+18:54:02,186 INFO [main][JMSClientUtil] Message sent: [shutdown]
+18:54:02,186 INFO [main][JMSClientUtil] Closing Queue Setup: queue/A
+18:54:02,198 INFO [Thread-1][GpListener] Shutdown has been requested
+18:54:02,199 INFO [Thread-1][GpListener] Finishing_____________________________________________________
+18:54:02,218 DEBUG [Thread-1][UILClientILService] Stopping
+18:54:02,219 DEBUG [UIL2.SocketManager.WriteTask#2 client=127.0.0.1:8093][SocketManager] End WriteTask.run
+18:54:02,219 DEBUG [UIL2.SocketManager.ReadTask#1 client=127.0.0.1:8093][SocketManager] End ReadTask.run
+18:54:02,298 INFO [main][ListenerUtils] Shutdown was successful. Listener Manager Thread: Thread-1
+]]></system-out>
+ <system-err><![CDATA[]]></system-err>
+</testsuite>
Added: labs/jbossesb/workspace/b_georges/qa/build/junit/report/TEST-org.jboss.soa.esb.listeners.JmsQueueListenerTest.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/build/junit/report/TEST-org.jboss.soa.esb.listeners.JmsQueueListenerTest.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/build/junit/report/TEST-org.jboss.soa.esb.listeners.JmsQueueListenerTest.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<testsuite errors="0" failures="1" name="org.jboss.soa.esb.listeners.JmsQueueListenerTest" tests="1" time="11.962">
+ <properties>
+ <property name="java.vendor" value="Sun Microsystems Inc."></property>
+ <property name="org.jboss.esb.db.create.db" value="off"></property>
+ <property name="sun.management.compiler" value="HotSpot Client Compiler"></property>
+ <property name="org.jboss.esb.db.user" value="sa"></property>
+ <property name="build.lib" value="../../product/lib"></property>
+ <property name="os.name" value="Linux"></property>
+ <property name="sun.boot.class.path" value="/opt/jdk1.5.0_09/jre/lib/rt.jar:/opt/jdk1.5.0_09/jre/lib/i18n.jar:/opt/jdk1.5.0_09/jre/lib/sunrsasign.jar:/opt/jdk1.5.0_09/jre/lib/jsse.jar:/opt/jdk1.5.0_09/jre/lib/jce.jar:/opt/jdk1.5.0_09/jre/lib/charsets.jar:/opt/jdk1.5.0_09/jre/classes"></property>
+ <property name="org.jboss.esb.test.db.driver.jar" value="hsqldb.jar"></property>
+ <property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"></property>
+ <property name="sun.desktop" value="gnome"></property>
+ <property name="java.vm.specification.vendor" value="Sun Microsystems Inc."></property>
+ <property name="ant.home" value="/opt/ant"></property>
+ <property name="java.runtime.version" value="1.5.0_09-b01"></property>
+ <property name="org.jboss.esb.db.driver" value="org.hsqldb.jdbcDriver"></property>
+ <property name="org.jboss.esb.config.objstore" value="/data/jboss/jbesb/conf/ObjStore.xml"></property>
+ <property name="product.build" value="../../product/build"></property>
+ <property name="product.lib" value="../../product/build/dist/lib"></property>
+ <property name="user.name" value="b_georges"></property>
+ <property name="product" value="../../product"></property>
+ <property name="org.jboss.soa.esb.jndi.server.type" value="jboss"></property>
+ <property name="ant.file.JUnit" value="/home/b_georges/projects/jboss/jbossesb/trunk/qa/junit/build.xml"></property>
+ <property name="org.jboss.esb.appserver.home" value="/opt/jboss/server/jboss-4.0.4SP1/bin"></property>
+ <property name="user.language" value="en"></property>
+ <property name="sun.boot.library.path" value="/opt/jdk1.5.0_09/jre/lib/i386"></property>
+ <property name="org.jboss.esb.test.db.password" value=""></property>
+ <property name="ant.project.name" value="JUnit"></property>
+ <property name="java.version" value="1.5.0_09"></property>
+ <property name="user.timezone" value=""></property>
+ <property name="org.jboss.esb.test.db.driver" value="org.hsqldb.jdbcDriver"></property>
+ <property name="sun.arch.data.model" value="32"></property>
+ <property name="org.jboss.esb.test.db.user" value="sa"></property>
+ <property name="java.endorsed.dirs" value="/opt/jdk1.5.0_09/jre/lib/endorsed"></property>
+ <property name="ant.file.JBESB-QA" value="/home/b_georges/projects/jboss/jbossesb/trunk/qa/build.xml"></property>
+ <property name="sun.cpu.isalist" value=""></property>
+ <property name="sun.jnu.encoding" value="UTF-8"></property>
+ <property name="file.encoding.pkg" value="sun.io"></property>
+ <property name="qa.junit.src" value="src"></property>
+ <property name="file.separator" value="/"></property>
+ <property name="java.specification.name" value="Java Platform API Specification"></property>
+ <property name="java.class.version" value="49.0"></property>
+ <property name="org.jboss.soa.esb.paramsRepository.file.root" value="junit/src"></property>
+ <property name="user.country" value="US"></property>
+ <property name="java.home" value="/opt/jdk1.5.0_09/jre"></property>
+ <property name="java.vm.info" value="mixed mode, sharing"></property>
+ <property name="ant.file" value="/home/b_georges/projects/jboss/jbossesb/trunk/qa/junit/build.xml"></property>
+ <property name="os.version" value="2.6.15-1.2054_FC5smp"></property>
+ <property name="org.jboss.soa.esb.mail.smtp.port" value="25"></property>
+ <property name="path.separator" value=":"></property>
+ <property name="java.vm.version" value="1.5.0_09-b01"></property>
+ <property name="org.jboss.esb.db.url" value="jdbc:hsqldb:hsql://localhost:1701"></property>
+ <property name="ant.library.dir" value="/opt/ant/lib"></property>
+ <property name="coverage" value="../../product/build/tests/coverage"></property>
+ <property name="java.awt.printerjob" value="sun.print.PSPrinterJob"></property>
+ <property name="qa.junit.classes" value="../build/junit/classes"></property>
+ <property name="sun.io.unicode.encoding" value="UnicodeLittle"></property>
+ <property name="tests.filter" value="*"></property>
+ <property name="org.jboss.soa.esb.mail.smtp.password" value=""></property>
+ <property name="qa.junit.report" value="../build/junit/report"></property>
+ <property name="user.home" value="/home/b_georges"></property>
+ <property name="org.jboss.soa.esb.mail.smtp.user" value=""></property>
+ <property name="java.specification.vendor" value="Sun Microsystems Inc."></property>
+ <property name="qa.lib" value="../lib"></property>
+ <property name="java.library.path" value="/opt/jdk1.5.0_09/jre/lib/i386/client:/opt/jdk1.5.0_09/jre/lib/i386:/opt/jdk1.5.0_09/jre/../lib/i386"></property>
+ <property name="org.jboss.soa.esb.jndi.server.url" value="localhost"></property>
+ <property name="java.vendor.url" value="http://java.sun.com/"></property>
+ <property name="java.vm.vendor" value="Sun Microsystems Inc."></property>
+ <property name="org.jboss.esb.test.db.url" value="jdbc:hsqldb:."></property>
+ <property name="java.runtime.name" value="Java(TM) 2 Runtime Environment, Standard Edition"></property>
+ <property name="java.class.path" value="/home/b_georges/projects/jboss/jbossesb/trunk/qa/build/junit/classes:/home/b_georges/projects/jboss/jbossesb/trunk/product/build/dist/lib/jbossesb-listeners.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/build/dist/lib/jbossesb-rosetta.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/build/dist/lib/jbossesb-services.jar:/home/b_georges/projects/jboss/jbossesb/trunk/qa/lib/ext/jboss-aop-jdk50-client.jar:/home/b_georges/projects/jboss/jbossesb/trunk/qa/lib/ext/jboss-aspect-library-jdk50.jar:/home/b_georges/projects/jboss/jbossesb/trunk/qa/lib/ext/jboss-ejb3.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/activation.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/cglib-full-2.0-RC2.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/commons-collections-3.2.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/commons-dbcp-1.2.1.jar:/home/b_georges/proje!
cts/jboss/jbossesb/trunk/product/lib/ext/commons-lang-2.1.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/commons-logging.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/commons-pool-1.3.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/edtftpj.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/emma.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/emma_ant.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/hsqldb.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/jakarta-oro-2.0.8.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/jaxr-api-1.0.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/jboss-jmx.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/jbossts-common.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/juddi-client.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/juddi-e!
mbedded.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/
ext/junit-4.1.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/log4j.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/mail.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/milyn-commons-0.7.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/milyn-smooks-core-0.8-SNAPSHOT.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/milyn-smooks-misc-0.2.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/milyn-tinak-0.7.1.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/mockejb.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/postgresql-8.1-407.jdbc2ee.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/properties-plugin.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/scout-0.7rc2-embedded.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/xalan-2.7.0.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/!
ext/xbean-1.0.4.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/xercesImpl-2.7.1.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/xml-apis-1.3.02.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/xstream-1.1.3.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/ejb3/jboss-annotations-ejb3.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/ejb3/jboss-ejb3x.jar:/home/b_georges/projects/jboss/jbossesb/trunk/product/lib/ext/ejb3/jbossall-client.jar:/home/b_georges/projects/jboss/jbossesb/trunk/qa:/home/b_georges/projects/jboss/jbossesb/trunk/qa/junit/src:/opt/apache-ant-1.6.5/lib/ant-launcher.jar:/opt/ant/lib/ant.jar:/opt/ant/lib/ant-junit.jar"></property>
+ <property name="ant.version" value="Apache Ant version 1.6.5 compiled on June 2 2005"></property>
+ <property name="java.vm.specification.name" value="Java Virtual Machine Specification"></property>
+ <property name="java.vm.specification.version" value="1.0"></property>
+ <property name="sun.os.patch.level" value="unknown"></property>
+ <property name="sun.cpu.endian" value="little"></property>
+ <property name="java.io.tmpdir" value="/tmp"></property>
+ <property name="java.vendor.url.bug" value="http://java.sun.com/cgi-bin/bugreport.cgi"></property>
+ <property name="org.jboss.esb.db.password" value=""></property>
+ <property name="java.awt.graphicsenv" value="sun.awt.X11GraphicsEnvironment"></property>
+ <property name="os.arch" value="i386"></property>
+ <property name="java.ext.dirs" value="/opt/jdk1.5.0_09/jre/lib/ext"></property>
+ <property name="user.dir" value="/home/b_georges/projects/jboss/jbossesb/trunk/qa"></property>
+ <property name="line.separator" value="
+"></property>
+ <property name="java.vm.name" value="Java HotSpot(TM) Client VM"></property>
+ <property name="qa.build" value="../build"></property>
+ <property name="basedir" value="/home/b_georges/projects/jboss/jbossesb/trunk/qa/junit"></property>
+ <property name="ant.java.version" value="1.5"></property>
+ <property name="file.encoding" value="UTF-8"></property>
+ <property name="org.jboss.esb.db.driver.jar" value="hsqldb.jar"></property>
+ <property name="org.jboss.esb.appserver.config" value="esb"></property>
+ <property name="java.specification.version" value="1.5"></property>
+ </properties>
+ <testcase classname="org.jboss.soa.esb.listeners.JmsQueueListenerTest" name="test" time="11.655">
+ <failure message="File [/home/b_georges/projects/jboss/jbossesb/trunk/qa/./build/notifyDir/JmsQueueListenerExample.notifOK] doesn't exist. Waited for 10000ms." type="junit.framework.AssertionFailedError">junit.framework.AssertionFailedError: File [/home/b_georges/projects/jboss/jbossesb/trunk/qa/./build/notifyDir/JmsQueueListenerExample.notifOK] doesn't exist. Waited for 10000ms.
+ at org.jboss.soa.esb.util.TestCaseUtils.logAndFail(TestCaseUtils.java:43)
+ at org.jboss.soa.esb.util.FileUtils.assertFileExists(FileUtils.java:113)
+ at org.jboss.soa.esb.listeners.JmsQueueListenerTest.test(JmsQueueListenerTest.java:63)
+</failure>
+ </testcase>
+ <system-out><![CDATA[18:54:03,957 INFO [main][ParamFileRepository] Setting parameter repository root dir to [/home/b_georges/projects/jboss/jbossesb/trunk/qa/junit/src].
+18:54:04,312 DEBUG [main][SpyConnectionFactoryObjectFactory] Extracting SpyConnectionFactory from reference
+18:54:04,390 DEBUG [main][SpyConnectionFactoryObjectFactory] The GenericConnectionFactory is: GenericConnectionFactory[server=org.jboss.mq.il.uil2.UILServerIL at 186768e connectionProperties={ClientILService=org.jboss.mq.il.uil2.UILClientILService, UIL_TCPNODELAY_KEY=yes, UIL_CHUNKSIZE_KEY=1000000, UIL_CONNECTADDRESS_KEY=null, UIL_CONNECTPORT_KEY=0, UIL_SOTIMEOUT_KEY=120000, UIL_RECEIVE_REPLIES_KEY=No, UIL_ADDRESS_KEY=127.0.0.1, UIL_PORT_KEY=8093, PingPeriod=60000, UIL_BUFFERSIZE_KEY=2048}]
+18:54:04,448 DEBUG [main][Connection] Setting the clockDaemon's thread factory
+18:54:04,526 DEBUG [UIL2.SocketManager.ReadTask#1 client=127.0.0.1:8093][SocketManager] Begin ReadTask.run
+18:54:04,531 DEBUG [UIL2.SocketManager.WriteTask#2 client=127.0.0.1:8093][SocketManager] Begin WriteTask.run
+18:54:04,533 DEBUG [UIL2.SocketManager.WriteTask#2 client=127.0.0.1:8093][SocketManager] Created ObjectOutputStream
+18:54:04,543 DEBUG [UIL2.SocketManager.ReadTask#1 client=127.0.0.1:8093][SocketManager] Created ObjectInputStream
+18:54:04,552 DEBUG [main][UILClientILService] Starting
+18:54:04,608 DEBUG [main][SpyDestinationObjectFactory] SpyDestinationObjectFactory->getObjectInstance()
+18:54:04,784 INFO [main][ActionDefinitionFactory] Added alias [MessageBox] for ActionProcessor class [org.jboss.soa.esb.listeners.MessageBox].
+18:54:04,786 INFO [main][ActionDefinitionFactory] Added ActionDefinition [CaptureMessage] for processor [MessageBox:org.jboss.soa.esb.listeners.MessageBox]. Num properties: 0
+18:54:04,786 INFO [main][ActionDefinitionFactory] ActionDefinition Factory initialisation complete.
+18:54:04,787 INFO [main][ListenerUtils] Waiting on Listener Manager the start...
+18:54:04,846 INFO [main][ListenerUtils] Listener Manager running (Thread: Thread-1)! Note this does not mean all the Listeners are up and running!
+18:54:04,887 DEBUG [main][SpyConnectionFactoryObjectFactory] Extracting SpyConnectionFactory from reference
+18:54:04,900 DEBUG [main][SpyConnectionFactoryObjectFactory] The GenericConnectionFactory is: GenericConnectionFactory[server=org.jboss.mq.il.uil2.UILServerIL at 1c695a6 connectionProperties={ClientILService=org.jboss.mq.il.uil2.UILClientILService, UIL_TCPNODELAY_KEY=yes, UIL_CHUNKSIZE_KEY=1000000, UIL_CONNECTADDRESS_KEY=null, UIL_CONNECTPORT_KEY=0, UIL_SOTIMEOUT_KEY=120000, UIL_RECEIVE_REPLIES_KEY=No, UIL_ADDRESS_KEY=127.0.0.1, UIL_PORT_KEY=8093, PingPeriod=60000, UIL_BUFFERSIZE_KEY=2048}]
+18:54:04,905 DEBUG [UIL2.SocketManager.ReadTask#3 client=127.0.0.1:8093][SocketManager] Begin ReadTask.run
+18:54:04,906 DEBUG [UIL2.SocketManager.WriteTask#4 client=127.0.0.1:8093][SocketManager] Begin WriteTask.run
+18:54:04,911 DEBUG [UIL2.SocketManager.WriteTask#4 client=127.0.0.1:8093][SocketManager] Created ObjectOutputStream
+18:54:04,917 DEBUG [UIL2.SocketManager.ReadTask#3 client=127.0.0.1:8093][SocketManager] Created ObjectInputStream
+18:54:04,927 DEBUG [main][UILClientILService] Starting
+18:54:05,028 DEBUG [main][SpyDestinationObjectFactory] SpyDestinationObjectFactory->getObjectInstance()
+18:54:05,042 INFO [main][JMSClientUtil] Queue Setup for sending: queue/A
+18:54:05,054 INFO [main][JMSClientUtil] Sending Text message: [hello is anyone there?]
+18:54:05,073 INFO [main][JMSClientUtil] Message sent: [hello is anyone there?]
+18:54:05,074 INFO [main][JMSClientUtil] Closing Queue Setup: queue/A
+18:54:05,130 DEBUG [Thread-1][SpyConnectionFactoryObjectFactory] Extracting SpyConnectionFactory from reference
+18:54:05,187 DEBUG [Thread-1][SpyConnectionFactoryObjectFactory] The GenericConnectionFactory is: GenericConnectionFactory[server=org.jboss.mq.il.uil2.UILServerIL at 1e97f9f connectionProperties={ClientILService=org.jboss.mq.il.uil2.UILClientILService, UIL_TCPNODELAY_KEY=yes, UIL_CHUNKSIZE_KEY=1000000, UIL_CONNECTADDRESS_KEY=null, UIL_CONNECTPORT_KEY=0, UIL_SOTIMEOUT_KEY=120000, UIL_RECEIVE_REPLIES_KEY=No, UIL_ADDRESS_KEY=127.0.0.1, UIL_PORT_KEY=8093, PingPeriod=60000, UIL_BUFFERSIZE_KEY=2048}]
+18:54:05,192 DEBUG [UIL2.SocketManager.ReadTask#5 client=127.0.0.1:8093][SocketManager] Begin ReadTask.run
+18:54:05,193 DEBUG [UIL2.SocketManager.WriteTask#6 client=127.0.0.1:8093][SocketManager] Begin WriteTask.run
+18:54:05,194 DEBUG [UIL2.SocketManager.WriteTask#6 client=127.0.0.1:8093][SocketManager] Created ObjectOutputStream
+18:54:05,198 DEBUG [UIL2.SocketManager.ReadTask#5 client=127.0.0.1:8093][SocketManager] Created ObjectInputStream
+18:54:05,199 DEBUG [Thread-1][UILClientILService] Starting
+18:54:05,208 DEBUG [Thread-1][SpyDestinationObjectFactory] SpyDestinationObjectFactory->getObjectInstance()
+18:54:05,220 INFO [Thread-1][GpListener] Waiting for command ... timeout=19557 millis
+18:54:05,248 INFO [Thread-3][MessageBox] MessageBox received message: org.jboss.internal.soa.esb.message.format.xml.MessageImpl at 1b000e7
+18:54:05,453 DEBUG [Thread-3][SecurityAssociation] Using ThreadLocal: false
+18:54:05,533 DEBUG [Thread-3][Client] invoke called, but our invoker is disconnected, discarding and fetching another fresh invoker for: InvokerLocator [socket://127.0.0.1:3873/]
+18:54:05,534 DEBUG [Thread-3][SocketClientInvoker] connect called for: org.jboss.remoting.transport.socket.SocketClientInvoker at 949f69
+18:54:05,654 ERROR [Thread-3][JmsQueueListener] Premature termination of action processing pipeline [[CaptureMessage]]. Action [CaptureMessage] threw an exception.
+java.lang.NoClassDefFoundError
+ at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
+ at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
+ at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
+ at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
+ at org.jboss.ejb3.EJBContainer.construct(EJBContainer.java:459)
+ at org.jboss.ejb3.AbstractPool.create(AbstractPool.java:62)
+ at org.jboss.ejb3.ThreadlocalPool.get(ThreadlocalPool.java:48)
+ at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:54)
+ at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
+ at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78)
+ at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
+ at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
+ at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
+ at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
+ at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
+ at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:225)
+ at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
+ at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
+ at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:828)
+ at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:681)
+ at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:358)
+ at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:398)
+ at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:239)
+ at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:190)
+ at org.jboss.remoting.Client.invoke(Client.java:525)
+ at org.jboss.remoting.Client.invoke(Client.java:488)
+ at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:55)
+ at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
+ at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
+ at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
+ at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:55)
+ at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
+ at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:65)
+ at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
+ at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:102)
+ at $Proxy0.create(Unknown Source)
+ at org.jboss.soa.esb.services.NotifHandlerBsDelegateRemote.<init>(NotifHandlerBsDelegateRemote.java:40)
+ at org.jboss.soa.esb.services.NotificationHandlerFactory.getNotifHandler(NotificationHandlerFactory.java:58)
+ at org.jboss.soa.esb.services.NotificationHandlerFactory.getNotifHandler(NotificationHandlerFactory.java:49)
+ at org.jboss.soa.esb.listeners.GpListener.getNotifHandler(GpListener.java:649)
+ at org.jboss.soa.esb.listeners.GpListener.notifyOK(GpListener.java:588)
+ at org.jboss.soa.esb.listeners.AbstractListener$ActionProcessingPipeline.run(AbstractListener.java:244)
+ at java.lang.Thread.run(Thread.java:595)
+18:54:15,321 ERROR [main][FileUtils] File [/home/b_georges/projects/jboss/jbossesb/trunk/qa/./build/notifyDir/JmsQueueListenerExample.notifOK] doesn't exist. Waited for 10000ms.
+java.lang.Exception
+ at org.jboss.soa.esb.util.FileUtils.assertFileExists(FileUtils.java:113)
+ at org.jboss.soa.esb.listeners.JmsQueueListenerTest.test(JmsQueueListenerTest.java:63)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
+ at java.lang.reflect.Method.invoke(Method.java:585)
+ at junit.framework.TestCase.runTest(TestCase.java:164)
+ at junit.framework.TestCase.runBare(TestCase.java:130)
+ at junit.framework.TestResult$1.protect(TestResult.java:110)
+ at junit.framework.TestResult.runProtected(TestResult.java:128)
+ at junit.framework.TestResult.run(TestResult.java:113)
+ at junit.framework.TestCase.run(TestCase.java:120)
+ at junit.framework.TestSuite.runTest(TestSuite.java:228)
+ at junit.framework.TestSuite.run(TestSuite.java:223)
+ at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:297)
+ at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:672)
+ at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:567)
+]]></system-out>
+ <system-err><![CDATA[]]></system-err>
+</testsuite>
Added: labs/jbossesb/workspace/b_georges/qa/build.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/build.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/build.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,19 @@
+<project name="JBESB-QA" default="test" basedir=".">
+
+ <property file="test.properties" />
+ <property file="../product/install/deployment.properties" />
+
+ <target name="test" depends="test.junit" description="Run all QA tests." />
+
+ <target name="test.junit" description="Run JUnit based QA tests.">
+ <ant dir="junit" target="test" />
+ </target>
+
+ <target name="clean" description="Clean the QA env">
+ <echo message="Cleaning..."/>
+
+ <delete dir="build" />
+ <delete file="qatests.log" />
+ </target>
+
+</project>
Added: labs/jbossesb/workspace/b_georges/qa/jbossesb-unittest-properties.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/jbossesb-unittest-properties.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/jbossesb-unittest-properties.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2006, JBoss Inc., and others contributors as indicated
+ by the @authors tag. All rights reserved.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ 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,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2005-2006,
+ @author JBoss Inc.
+-->
+<!-- $Id: default-jbossesb-properties.xml $ -->
+<!--
+ These options are described in the JBossESB manual.
+ Defaults are provided here for convenience only.
+
+ Please read through this file prior to using the system, and consider
+ updating the specified entries.
+-->
+<esb
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+ <properties name="core">
+ <property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
+ <property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
+ </properties>
+ <properties name="registry">
+ <property name="org.jboss.soa.esb.registry.queryManagerURI" value="org.apache.juddi.registry.local.InquiryService#inquire"/>
+ <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI" value="org.apache.juddi.registry.local.PublishService#publish"/>
+ <property name="org.jboss.soa.esb.registry.factoryClass" value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+ <property name="org.jboss.soa.esb.registry.user" value="jbossesb"/>
+ <property name="org.jboss.soa.esb.registry.password" value="password"/>
+ <!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
+ <property name="org.jboss.soa.esb.scout.proxy.transportClass" value="org.apache.ws.scout.transport.LocalTransport"/>
+ </properties>
+ <properties name="transports" depends="core">
+ <property name="org.jboss.soa.esb.mail.smtp.host" value="@org.jboss.soa.esb.mail.smtp.host@"/>
+ <property name="org.jboss.soa.esb.mail.smtp.user" value="@org.jboss.soa.esb.mail.smtp.user@"/>
+ <property name="org.jboss.soa.esb.mail.smtp.password" value="@org.jboss.soa.esb.mail.smtp.password@"/>
+ <property name="org.jboss.soa.esb.mail.smtp.port" value="@org.jboss.soa.esb.mail.smtp.port@"/>
+ </properties>
+ <properties name="connection">
+ <property name="min-pool-size" value="5"/>
+ <property name="max-pool=size" value="10"/>
+ <property name="blocking-timeout-millis" value="5000"/>
+ <property name="abandoned-connection-timeout" value="10000"/>
+ <property name="abandoned-connection-time-interval" value="30000"/>
+ </properties>
+ <properties name="dbstore">
+ <property name="org.jboss.soa.esb.persistence.db.connection.url" value="jdbc:postgresql://localhost:5432/jbossesb"/>
+ <!-- Hypersonic: value="jdbc:hsqldb:hsql://localhost:1701" -->
+ <property name="org.jboss.soa.esb.persistence.db.jdbc.driver" value="org.postgresql.Driver"/>
+ <!-- Hypersonic: value="org.hsqldb.jdbcDriver" -->
+ <property name="org.jboss.soa.esb.persistence.db.user" value="postgres"/>
+ <property name="org.jboss.soa.esb.persistence.db.pwd" value="postgres"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
+ <property name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
+ <!--table managed by pool to test for valid connections - created by pool automatically -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
+ <!-- # of milliseconds to timeout waiting for a connection from pool -->
+ <property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
+
+ </properties>
+</esb>
Added: labs/jbossesb/workspace/b_georges/qa/junit/build.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/build.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/build.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,150 @@
+<?xml version="1.0"?>
+<project name="JUnit" default="test" basedir=".">
+
+ <property name="product" value="../../product"/>
+ <property name="product.build" value="${product}/build"/>
+ <property name="product.lib" value="${product.build}/dist/lib"/>
+ <property name="coverage" value="${product.build}/tests/coverage"/>
+ <property name="build.lib" value="${product}/lib"/>
+ <property name="qa.build" value="../build"/>
+ <property name="qa.lib" value="../lib"/>
+ <property name="qa.junit.src" value="src"/>
+ <property name="qa.junit.classes" value="${qa.build}/junit/classes"/>
+ <property name="qa.junit.report" value="${qa.build}/junit/report" />
+
+ <path id="base.cp">
+ <fileset dir="${qa.lib}/ext" includes="*.jar" />
+ <fileset dir="${build.lib}/ext" includes="*.jar" />
+ <fileset dir="${build.lib}/ext/ejb3" includes="*.jar" />
+ <pathelement location="../" />
+ </path>
+
+ <path id="qa.junit.cp">
+ <fileset dir="${product.lib}" includes="*.jar" />
+ <path refid="base.cp"/>
+ </path>
+
+ <path id="qa.junit.emma.cp">
+ <fileset dir="${coverage}/all" includes="jbossesb-instr-all.jar" />
+ <path refid="base.cp"/>
+ </path>
+
+ <target name="test">
+ <echo message="Running JUnit based QA tests..."/>
+
+ <!-- Build the tests... -->
+ <mkdir dir="${qa.junit.classes}"/>
+ <javac srcdir="${qa.junit.src}" destdir="${qa.junit.classes}" classpathref="qa.junit.cp" debug="on" />
+
+ <echo message="" />
+ <echo message="" />
+ <input message='Which tests? (Press return to run all tests - Wildcards Supported - already assumes test cases end with the "Test" suffix)'
+ addproperty="tests.filter"
+ defaultvalue="*"/>
+
+ <!-- Run the tests... -->
+ <mkdir dir="${qa.junit.report}"/>
+ <junit printsummary="yes" haltonerror="yes" haltonfailure="yes" showoutput="yes" fork="true">
+ <formatter type="plain" usefile="false"/>
+ <formatter type="xml"/>
+ <batchtest todir="${qa.junit.report}">
+ <fileset dir="${qa.junit.src}">
+ <include name="**/${tests.filter}Test.java"/>
+ </fileset>
+ </batchtest>
+ <classpath>
+ <pathelement location="${qa.junit.classes}"/>
+ <path refid="qa.junit.cp"/>
+ <pathelement location="${qa.junit.src}"/>
+ </classpath>
+
+ <!-- Listener Sys Props... -->
+ <sysproperty key="org.jboss.soa.esb.paramsRepository.file.root" value="junit/src" />
+
+ <!-- Sys Props from the test.properties file... -->
+ <sysproperty key="org.jboss.soa.esb.jndi.server.type" value="${org.jboss.soa.esb.jndi.server.type}" />
+ <sysproperty key="org.jboss.soa.esb.jndi.server.url" value="${org.jboss.soa.esb.jndi.server.url}" />
+
+ <!-- Sys Props from the deployment.properties file... -->
+ <sysproperty key="org.jboss.esb.db.driver" value="${org.jboss.esb.db.driver}" />
+ <sysproperty key="org.jboss.esb.db.url" value="${org.jboss.esb.db.url}" />
+ <sysproperty key="org.jboss.esb.db.user" value="${org.jboss.esb.db.user}" />
+ <sysproperty key="org.jboss.esb.db.password" value="${org.jboss.esb.db.password}" />
+ </junit>
+
+ <!-- Remove all "fixed-up" listener configuration files -->
+ <delete><fileset dir="${qa.junit.src}" includes="**/*.conftmp" /></delete>
+
+ <!-- Report on the tests (format results) ... -->
+ <junitreport todir="${qa.junit.report}">
+ <fileset dir="${qa.junit.report}">
+ <include name="*.xml"/>
+ </fileset>
+ <report format="frames" todir="${qa.junit.report}"/>
+ <report format="noframes" todir="${qa.junit.report}"/>
+ </junitreport>
+
+ </target>
+
+ <target name="test-emma">
+ <echo message="Running JUnit based QA tests (with ema enabled) ..."/>
+
+ <!-- Build the tests... -->
+ <mkdir dir="${qa.junit.classes}"/>
+ <javac srcdir="${qa.junit.src}" destdir="${qa.junit.classes}" classpathref="qa.junit.emma.cp" debug="on" />
+
+ <echo message="" />
+ <echo message="" />
+ <input message='Which tests? (Press return to run all tests - Wildcards Supported - already assumes test cases end with the "Test" suffix)'
+ addproperty="tests.filter"
+ defaultvalue="*"/>
+
+ <!-- Run the tests... -->
+ <mkdir dir="${qa.junit.report}"/>
+ <junit printsummary="yes" haltonerror="yes" haltonfailure="yes" showoutput="yes" fork="true">
+ <formatter type="plain" usefile="false"/>
+ <formatter type="xml"/>
+ <batchtest todir="${qa.junit.report}">
+ <fileset dir="${qa.junit.src}">
+ <include name="**/${tests.filter}Test.java"/>
+ </fileset>
+ </batchtest>
+ <classpath>
+ <pathelement location="${qa.junit.classes}"/>
+ <path refid="qa.junit.emma.cp"/>
+ <pathelement location="${qa.junit.src}"/>
+ </classpath>
+
+ <!-- emma jvm args -->
+ <jvmarg value="-Demma.coverage.out.file=../product/build/tests/coverage/all/coverage.emma" />
+ <jvmarg value="-Demma.coverage.out.merge=true" />
+
+ <!-- Listener Sys Props... -->
+ <sysproperty key="org.jboss.soa.esb.paramsRepository.file.root" value="junit/src" />
+
+ <!-- Sys Props from the test.properties file... -->
+ <sysproperty key="org.jboss.soa.esb.jndi.server.type" value="${org.jboss.soa.esb.jndi.server.type}" />
+ <sysproperty key="org.jboss.soa.esb.jndi.server.url" value="${org.jboss.soa.esb.jndi.server.url}" />
+
+ <!-- Sys Props from the deployment.properties file... -->
+ <sysproperty key="org.jboss.esb.db.driver" value="${org.jboss.esb.db.driver}" />
+ <sysproperty key="org.jboss.esb.db.url" value="${org.jboss.esb.db.url}" />
+ <sysproperty key="org.jboss.esb.db.user" value="${org.jboss.esb.db.user}" />
+ <sysproperty key="org.jboss.esb.db.password" value="${org.jboss.esb.db.password}" />
+ </junit>
+
+ <!-- Remove all "fixed-up" listener configuration files -->
+ <delete><fileset dir="${qa.junit.src}" includes="**/*.conftmp" /></delete>
+
+ <!-- Report on the tests (format results) ... -->
+ <junitreport todir="${qa.junit.report}">
+ <fileset dir="${qa.junit.report}">
+ <include name="*.xml"/>
+ </fileset>
+ <report format="frames" todir="${qa.junit.report}"/>
+ <report format="noframes" todir="${qa.junit.report}"/>
+ </junitreport>
+
+ </target>
+
+</project>
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/DirectoryPollerConfig1.xml.conftmp
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/DirectoryPollerConfig1.xml.conftmp 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/DirectoryPollerConfig1.xml.conftmp 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,39 @@
+<FileCopierExample
+ commandConnFactoryClass="ConnectionFactory"
+ commandJndiType="jboss"
+ commandJndiURL="localhost"
+ commandIsTopic="false"
+ messageSelector="gpMsgSelector='test'"
+ commandJndiName="queue/A"
+>
+ <PollDirectoryExample
+ listenerClass="org.jboss.soa.esb.listeners.DirectoryPoller"
+ actions="FileCopy1, FileCopy2"
+ pollLatencySecs="2"
+ maxThreads="2"
+ inputDirURI="file:/home/b_georges/projects/jboss/jbossesb/trunk/qa/./build//inputDir"
+ inputSuffix=".inp"
+ workSuffix=".WORKING"
+ errorSuffix=".PROCERR"
+ postDirURI="file:/home/b_georges/projects/jboss/jbossesb/trunk/qa/./build//inputDoneDir"
+ postSuffix=".DONE"
+ postDelete="n"
+ >
+ </PollDirectoryExample>
+
+ <Actions>
+ <Action name="FileCopy1" processor="FileCopier">
+ <property name="copyToDirURI" value="file:/home/b_georges/projects/jboss/jbossesb/trunk/qa/./build//copiedTo"/>
+ <property name="copyToSuffix" value=".outFromFirst"/>
+ </Action>
+ <Action name="FileCopy2" processor="FileCopier">
+ <property name="copyToDirURI" value="file:/home/b_georges/projects/jboss/jbossesb/trunk/qa/./build//copiedTo"/>
+ <property name="copyToSuffix" value=".outFromSecond"/>
+ </Action>
+
+ <ProcessorAliases>
+ <Alias name="FileCopier" class="org.jboss.soa.esb.actions.routing.FileCopier" />
+ </ProcessorAliases>
+ </Actions>
+
+</FileCopierExample>
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/JmsQueueListenerConfig.xml.conftmp
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/JmsQueueListenerConfig.xml.conftmp 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/JmsQueueListenerConfig.xml.conftmp 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,47 @@
+<JmsListenerExample
+ commandConnFactoryClass="ConnectionFactory"
+ commandJndiType="jboss"
+ commandJndiURL="localhost"
+ commandIsTopic="false"
+ messageSelector="gpMsgSelector='zambia'"
+ commandJndiName="queue/A"
+ parameterReloadSecs="20"
+>
+
+
+ <QueueExample
+ listenerClass="org.jboss.soa.esb.listeners.JmsQueueListener"
+ actions="CaptureMessage"
+ maxThreads="1"
+ queueConnFactoryClass="ConnectionFactory"
+ listenJndiType="jboss"
+ listenJndiURL="localhost"
+ listenQueue="queue/A"
+ listenMsgSelector="listener='zambia'"
+ >
+ <NotificationList type="OK">
+ <target class="NotifyFiles">
+ <file URI="file:/home/b_georges/projects/jboss/jbossesb/trunk/qa/./build//notifyDir/JmsQueueListenerExample.notifOK"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+
+ <NotificationList type="err">
+ <target class="NotifyFiles">
+ <file URI="file:/home/b_georges/projects/jboss/jbossesb/trunk/qa/./build//notifyDir/JmsQueueListenerExample.notifErr"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+ </QueueExample>
+
+ <Actions>
+ <Action name="CaptureMessage" processor="MessageBox" />
+
+ <ProcessorAliases>
+ <Alias name="MessageBox" class="org.jboss.soa.esb.listeners.MessageBox" />
+ </ProcessorAliases>
+ </Actions>
+
+</JmsListenerExample>
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig1.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig1.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig1.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,41 @@
+<!-- Invalid commandConnFactoryClass -->
+
+<FileCopierExample
+ commandConnFactoryClass="X"
+ commandJndiType="jboss"
+ commandJndiURL="localhost"
+ commandIsTopic="false"
+ messageSelector="gpMsgSelector='test'"
+ commandJndiName="queue/A"
+>
+ <PollDirectoryExample
+ listenerClass="org.jboss.soa.esb.listeners.old.DirectoryPoller"
+ actions="FileCopy1, FileCopy2"
+ pollLatencySecs="2"
+ maxThreads="2"
+ inputDirURI="@qa.build@/inputDir"
+ inputSuffix=".inp"
+ workSuffix=".WORKING"
+ errorSuffix=".PROCERR"
+ postDirURI="@qa.build@/inputDoneDir"
+ postSuffix=".DONE"
+ postDelete="n"
+ >
+ </PollDirectoryExample>
+
+ <Actions>
+ <Action name="FileCopy1" processor="FileCopier">
+ <property name="copyToDirURI" value="@qa.build@/copiedTo"/>
+ <property name="copyToSuffix" value=".outFromFirst"/>
+ </Action>
+ <Action name="FileCopy2" processor="FileCopier">
+ <property name="copyToDirURI" value="@qa.build@/copiedTo"/>
+ <property name="copyToSuffix" value=".outFromSecond"/>
+ </Action>
+
+ <ProcessorAliases>
+ <Alias name="FileCopier" class="org.jboss.soa.esb.actions.routing.FileCopier" />
+ </ProcessorAliases>
+ </Actions>
+
+</FileCopierExample>
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig2.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig2.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig2.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,41 @@
+<!-- Invalid commandJndiType -->
+
+<FileCopierExample
+ commandConnFactoryClass="ConnectionFactory"
+ commandJndiType="X"
+ commandJndiURL="localhost"
+ commandIsTopic="false"
+ messageSelector="gpMsgSelector='test'"
+ commandJndiName="queue/A"
+>
+ <PollDirectoryExample
+ listenerClass="org.jboss.soa.esb.listeners.old.DirectoryPoller"
+ actions="FileCopy1, FileCopy2"
+ pollLatencySecs="2"
+ maxThreads="2"
+ inputDirURI="@qa.build@/inputDir"
+ inputSuffix=".inp"
+ workSuffix=".WORKING"
+ errorSuffix=".PROCERR"
+ postDirURI="@qa.build@/inputDoneDir"
+ postSuffix=".DONE"
+ postDelete="n"
+ >
+ </PollDirectoryExample>
+
+ <Actions>
+ <Action name="FileCopy1" processor="FileCopier">
+ <property name="copyToDirURI" value="@qa.build@/copiedTo"/>
+ <property name="copyToSuffix" value=".outFromFirst"/>
+ </Action>
+ <Action name="FileCopy2" processor="FileCopier">
+ <property name="copyToDirURI" value="@qa.build@/copiedTo"/>
+ <property name="copyToSuffix" value=".outFromSecond"/>
+ </Action>
+
+ <ProcessorAliases>
+ <Alias name="FileCopier" class="org.jboss.soa.esb.actions.routing.FileCopier" />
+ </ProcessorAliases>
+ </Actions>
+
+</FileCopierExample>
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig3.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig3.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig3.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,41 @@
+<!-- Invalid commandJndiURL -->
+
+<FileCopierExample
+ commandConnFactoryClass="ConnectionFactory"
+ commandJndiType="jboss"
+ commandJndiURL="X"
+ commandIsTopic="false"
+ messageSelector="gpMsgSelector='test'"
+ commandJndiName="queue/A"
+>
+ <PollDirectoryExample
+ listenerClass="org.jboss.soa.esb.listeners.old.DirectoryPoller"
+ actions="FileCopy1, FileCopy2"
+ pollLatencySecs="2"
+ maxThreads="2"
+ inputDirURI="@qa.build@/inputDir"
+ inputSuffix=".inp"
+ workSuffix=".WORKING"
+ errorSuffix=".PROCERR"
+ postDirURI="@qa.build@/inputDoneDir"
+ postSuffix=".DONE"
+ postDelete="n"
+ >
+ </PollDirectoryExample>
+
+ <Actions>
+ <Action name="FileCopy1" processor="FileCopier">
+ <property name="copyToDirURI" value="@qa.build@/copiedTo"/>
+ <property name="copyToSuffix" value=".outFromFirst"/>
+ </Action>
+ <Action name="FileCopy2" processor="FileCopier">
+ <property name="copyToDirURI" value="@qa.build@/copiedTo"/>
+ <property name="copyToSuffix" value=".outFromSecond"/>
+ </Action>
+
+ <ProcessorAliases>
+ <Alias name="FileCopier" class="org.jboss.soa.esb.actions.routing.FileCopier" />
+ </ProcessorAliases>
+ </Actions>
+
+</FileCopierExample>
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig4.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig4.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig4.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,41 @@
+<!-- Invalid commandIsTopic -->
+
+<FileCopierExample
+ commandConnFactoryClass="ConnectionFactory"
+ commandJndiType="jboss"
+ commandJndiURL="localhost"
+ commandIsTopic="X"
+ messageSelector="gpMsgSelector='test'"
+ commandJndiName="queue/A"
+>
+ <PollDirectoryExample
+ listenerClass="org.jboss.soa.esb.listeners.old.DirectoryPoller"
+ actions="FileCopy1, FileCopy2"
+ pollLatencySecs="2"
+ maxThreads="2"
+ inputDirURI="@qa.build@/inputDir"
+ inputSuffix=".inp"
+ workSuffix=".WORKING"
+ errorSuffix=".PROCERR"
+ postDirURI="@qa.build@/inputDoneDir"
+ postSuffix=".DONE"
+ postDelete="n"
+ >
+ </PollDirectoryExample>
+
+ <Actions>
+ <Action name="FileCopy1" processor="FileCopier">
+ <property name="copyToDirURI" value="@qa.build@/copiedTo"/>
+ <property name="copyToSuffix" value=".outFromFirst"/>
+ </Action>
+ <Action name="FileCopy2" processor="FileCopier">
+ <property name="copyToDirURI" value="@qa.build@/copiedTo"/>
+ <property name="copyToSuffix" value=".outFromSecond"/>
+ </Action>
+
+ <ProcessorAliases>
+ <Alias name="FileCopier" class="org.jboss.soa.esb.actions.routing.FileCopier" />
+ </ProcessorAliases>
+ </Actions>
+
+</FileCopierExample>
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig5.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig5.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig5.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,41 @@
+<!-- Invalid messageSelector -->
+
+<FileCopierExample
+ commandConnFactoryClass="ConnectionFactory"
+ commandJndiType="jboss"
+ commandJndiURL="localhost"
+ commandIsTopic="false"
+ messageSelector="X"
+ commandJndiName="queue/A"
+>
+ <PollDirectoryExample
+ listenerClass="org.jboss.soa.esb.listeners.old.DirectoryPoller"
+ actions="FileCopy1, FileCopy2"
+ pollLatencySecs="2"
+ maxThreads="2"
+ inputDirURI="@qa.build@/inputDir"
+ inputSuffix=".inp"
+ workSuffix=".WORKING"
+ errorSuffix=".PROCERR"
+ postDirURI="@qa.build@/inputDoneDir"
+ postSuffix=".DONE"
+ postDelete="n"
+ >
+ </PollDirectoryExample>
+
+ <Actions>
+ <Action name="FileCopy1" processor="FileCopier">
+ <property name="copyToDirURI" value="@qa.build@/copiedTo"/>
+ <property name="copyToSuffix" value=".outFromFirst"/>
+ </Action>
+ <Action name="FileCopy2" processor="FileCopier">
+ <property name="copyToDirURI" value="@qa.build@/copiedTo"/>
+ <property name="copyToSuffix" value=".outFromSecond"/>
+ </Action>
+
+ <ProcessorAliases>
+ <Alias name="FileCopier" class="org.jboss.soa.esb.actions.routing.FileCopier" />
+ </ProcessorAliases>
+ </Actions>
+
+</FileCopierExample>
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig6.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig6.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfig6.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,41 @@
+<!-- Invalid commandJndiName -->
+
+<FileCopierExample
+ commandConnFactoryClass="ConnectionFactory"
+ commandJndiType="jboss"
+ commandJndiURL="localhost"
+ commandIsTopic="false"
+ messageSelector="gpMsgSelector='test'"
+ commandJndiName="X"
+>
+ <PollDirectoryExample
+ listenerClass="org.jboss.soa.esb.listeners.old.DirectoryPoller"
+ actions="FileCopy1, FileCopy2"
+ pollLatencySecs="2"
+ maxThreads="2"
+ inputDirURI="@qa.build@/inputDir"
+ inputSuffix=".inp"
+ workSuffix=".WORKING"
+ errorSuffix=".PROCERR"
+ postDirURI="@qa.build@/inputDoneDir"
+ postSuffix=".DONE"
+ postDelete="n"
+ >
+ </PollDirectoryExample>
+
+ <Actions>
+ <Action name="FileCopy1" processor="FileCopier">
+ <property name="copyToDirURI" value="@qa.build@/copiedTo"/>
+ <property name="copyToSuffix" value=".outFromFirst"/>
+ </Action>
+ <Action name="FileCopy2" processor="FileCopier">
+ <property name="copyToDirURI" value="@qa.build@/copiedTo"/>
+ <property name="copyToSuffix" value=".outFromSecond"/>
+ </Action>
+
+ <ProcessorAliases>
+ <Alias name="FileCopier" class="org.jboss.soa.esb.actions.routing.FileCopier" />
+ </ProcessorAliases>
+ </Actions>
+
+</FileCopierExample>
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfigX.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfigX.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/BadConfigX.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,34 @@
+<!-- Invalid ? -->
+
+<FileCopierExample
+ commandConnFactoryClass="ConnectionFactory"
+ commandJndiType="jboss"
+ commandJndiURL="localhost"
+ commandIsTopic="false"
+ messageSelector="gpMsgSelector='test'"
+ commandJndiName="queue/A"
+>
+ <PollDirectoryExample
+ listenerClass="org.jboss.soa.esb.listeners.old.DirectoryPoller"
+ actionClass="org.jboss.soa.esb.actions.routing.FileCopier"
+ pollLatencySecs="2"
+ maxThreads="2"
+ inputDirURI="@qa.build@/inputDir"
+ inputSuffix=".inp"
+ workSuffix=".COPYING"
+ errorSuffix=".COPYERR"
+ postDirURI="@qa.build@/inputDoneDir"
+ postSuffix=".DONE"
+ postDelete="n"
+ >
+ <CopyTo
+ copyToDirURI="@qa.build@/copiedTo"
+ copyToSuffix=".outFromFirst"
+ />
+ <CopyTo
+ copyToDirURI="@qa.build@/copiedTo"
+ copyToSuffix=".outFromSecond"
+ />
+ </PollDirectoryExample>
+
+</FileCopierExample>
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/DirectoryPollerConfig1.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/DirectoryPollerConfig1.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/DirectoryPollerConfig1.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,39 @@
+<FileCopierExample
+ commandConnFactoryClass="ConnectionFactory"
+ commandJndiType="jboss"
+ commandJndiURL="localhost"
+ commandIsTopic="false"
+ messageSelector="gpMsgSelector='test'"
+ commandJndiName="queue/A"
+>
+ <PollDirectoryExample
+ listenerClass="org.jboss.soa.esb.listeners.old.DirectoryPoller"
+ actions="FileCopy1, FileCopy2"
+ pollLatencySecs="2"
+ maxThreads="2"
+ inputDirURI="@qa.build@/inputDir"
+ inputSuffix=".inp"
+ workSuffix=".WORKING"
+ errorSuffix=".PROCERR"
+ postDirURI="@qa.build@/inputDoneDir"
+ postSuffix=".DONE"
+ postDelete="n"
+ >
+ </PollDirectoryExample>
+
+ <Actions>
+ <Action name="FileCopy1" processor="FileCopier">
+ <property name="copyToDirURI" value="@qa.build@/copiedTo"/>
+ <property name="copyToSuffix" value=".outFromFirst"/>
+ </Action>
+ <Action name="FileCopy2" processor="FileCopier">
+ <property name="copyToDirURI" value="@qa.build@/copiedTo"/>
+ <property name="copyToSuffix" value=".outFromSecond"/>
+ </Action>
+
+ <ProcessorAliases>
+ <Alias name="FileCopier" class="org.jboss.soa.esb.actions.routing.FileCopier" />
+ </ProcessorAliases>
+ </Actions>
+
+</FileCopierExample>
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/DirectoryPollerTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/DirectoryPollerTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/DirectoryPollerTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,85 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.listeners.old;
+
+import java.io.File;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.util.ClassUtils;
+import org.jboss.soa.esb.util.FileUtils;
+import org.jboss.soa.esb.util.JMSClientUtil;
+import org.jboss.soa.esb.util.ListenerUtils;
+import org.jboss.soa.esb.util.ListenerUtils.ListenersManagerExecThread;
+
+/**
+ * QA Tests for the DirectoryPoller.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class DirectoryPollerTest extends TestCase {
+
+ private ListenersManagerExecThread listenersMgr;
+ File inputDir, inputDoneDir, copiedTo;
+
+ protected void setUp() throws Exception {
+ // Create the directories required by the test...
+ inputDir = FileUtils.createTestDir("inputDir");
+ inputDoneDir = FileUtils.createTestDir("inputDoneDir");
+ copiedTo = FileUtils.createTestDir("copiedTo");
+
+ // Start the listener...
+ listenersMgr = ListenerUtils.startListeners(ClassUtils.toResourcePath(getClass().getPackage()) + "/DirectoryPollerConfig1.xml");
+ }
+
+ public void test() throws InterruptedException {
+ // Write the input file...
+ FileUtils.writeDataToFile(new File(inputDir, "infile1.inp"), "Great goal by Maradona!!".getBytes());
+ // Make sure the input gets processed to the "inputDoneDir"
+ FileUtils.assertFileExists(new File(inputDoneDir, "infile1.inp.DONE"), 10000);
+ // Make sure the input gets removed from the "inputDir"...
+ FileUtils.assertFileDoesntExists(new File(inputDir, "infile1.inp"), 10000);
+ // Make sure the notifications appear in the "copiedTo" dir...
+ FileUtils.assertFileExists(new File(copiedTo, "infile1.inp.outFromFirst"), 10000);
+ FileUtils.assertFileExists(new File(copiedTo, "infile1.inp.outFromSecond"), 10000);
+
+ // Make sure there's no open file handles on the files created/copied by the ESB...
+ FileUtils.assertCanDelete(new File(inputDoneDir, "infile1.inp.DONE"), 10000);
+ FileUtils.assertCanDelete(new File(copiedTo, "infile1.inp.outFromFirst"), 10000);
+ FileUtils.assertCanDelete(new File(copiedTo, "infile1.inp.outFromSecond"), 10000);
+
+ // There should have been no exceptions...
+ listenersMgr.assertNotInException();
+
+ // Send a Shutdown message to the command queue...
+ JMSClientUtil.sendMessageToQueue("shutdown", JMSClientUtil.QUEUE.A, new KeyValuePair[] {new KeyValuePair("gpMsgSelector", "test")});
+ // Make sure the Shutdown was successful...
+ listenersMgr.assertShutdownOK(10000);
+ }
+
+ protected void tearDown() throws Exception {
+ // Remove the directories required by the test...
+ FileUtils.assertCanDelete(inputDir, 10000);
+ FileUtils.assertCanDelete(inputDoneDir, 10000);
+ FileUtils.assertCanDelete(copiedTo, 10000);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/JmsQueueListenerConfig.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/JmsQueueListenerConfig.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/JmsQueueListenerConfig.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,47 @@
+<JmsListenerExample
+ commandConnFactoryClass="ConnectionFactory"
+ commandJndiType="jboss"
+ commandJndiURL="localhost"
+ commandIsTopic="false"
+ messageSelector="gpMsgSelector='zambia'"
+ commandJndiName="queue/A"
+ parameterReloadSecs="20"
+>
+
+
+ <QueueExample
+ listenerClass="org.jboss.soa.esb.listeners.old.JmsQueueListener"
+ actions="CaptureMessage"
+ maxThreads="1"
+ queueConnFactoryClass="ConnectionFactory"
+ listenJndiType="jboss"
+ listenJndiURL="localhost"
+ listenQueue="queue/A"
+ listenMsgSelector="listener='zambia'"
+ >
+ <NotificationList type="OK">
+ <target class="NotifyFiles">
+ <file URI="@qa.build@/notifyDir/JmsQueueListenerExample.notifOK"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+
+ <NotificationList type="err">
+ <target class="NotifyFiles">
+ <file URI="@qa.build@/notifyDir/JmsQueueListenerExample.notifErr"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+ </QueueExample>
+
+ <Actions>
+ <Action name="CaptureMessage" processor="MessageBox" />
+
+ <ProcessorAliases>
+ <Alias name="MessageBox" class="org.jboss.soa.esb.listeners.old.MessageBox" />
+ </ProcessorAliases>
+ </Actions>
+
+</JmsListenerExample>
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/JmsQueueListenerTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/JmsQueueListenerTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/JmsQueueListenerTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,81 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* 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.soa.esb.listeners.old;
+
+import java.io.File;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.util.ClassUtils;
+import org.jboss.soa.esb.util.FileUtils;
+import org.jboss.soa.esb.util.JMSClientUtil;
+import org.jboss.soa.esb.util.ListenerUtils;
+
+/**
+ * QA Tests for the JmsQueueListener.
+ *
+ */
+public class JmsQueueListenerTest extends TestCase {
+
+ private ListenerUtils.ListenersManagerExecThread listenersMgr;
+ File notifyDir;
+
+ protected void setUp() throws Exception {
+ // Create the directories required by the test...
+ notifyDir = FileUtils.createTestDir("notifyDir");
+ // Start the listener...
+ listenersMgr = ListenerUtils.startListeners(ClassUtils.toResourcePath(getClass().getPackage()) + "/JmsQueueListenerConfig.xml");
+ }
+
+ public void test() throws InterruptedException {
+ // There should have been no exceptions...
+ listenersMgr.assertNotInException();
+
+ MessageBox.messages.clear();
+
+ // Send a request via jms
+ JMSClientUtil.sendMessageToQueue("hello is anyone there?", JMSClientUtil.QUEUE.A, new KeyValuePair[] {new KeyValuePair("listener", "zambia")});
+
+ // Check did the messagebox recevive the message from the JMSListener...
+ MessageBox.assertMessageCount(1, 10000);
+
+ // Make sure the notifications appear in the "notifyDir" dir...
+ FileUtils.assertFileExists(new File(notifyDir, "JmsQueueListenerExample.notifOK"), 10000);
+ FileUtils.assertCanDelete(new File(notifyDir, "JmsQueueListenerExample.notifOK"), 10000);
+
+ // There should have been no exceptions...
+ listenersMgr.assertNotInException();
+
+ // Send a Shutdown message to the command queue...
+ JMSClientUtil.sendMessageToQueue("shutdown", JMSClientUtil.QUEUE.A, new KeyValuePair[] {new KeyValuePair("gpMsgSelector", "zambia")});
+ listenersMgr.assertShutdownOK(10000);
+ }
+
+ protected void tearDown() throws Exception {
+ // Remove the directories required by the test...
+ FileUtils.assertCanDelete(notifyDir, 10000);
+ }
+
+
+
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/ListenerManagerTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/ListenerManagerTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/ListenerManagerTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,75 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.listeners.old;
+
+import javax.naming.CommunicationException;
+import javax.naming.NameNotFoundException;
+
+import junit.framework.AssertionFailedError;
+import junit.framework.TestCase;
+
+import org.jboss.internal.soa.esb.command.CommandQueueException;
+import org.jboss.soa.esb.util.ClassUtils;
+import org.jboss.soa.esb.util.ListenerUtils;
+
+/**
+ * QA tests for the Listener Manager class - otherwise known as the {@link org.jboss.soa.esb.listeners.old.GpListener}.
+ * <p/>
+ * General tests around the command queue, bad configurations etc.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class ListenerManagerTest extends TestCase {
+
+ protected void setUp() throws Exception {
+ }
+
+ public void test_BadConfigurations() throws Exception {
+ test_BadConfigurations("BadConfig1.xml", "commandConnFactoryClass", NameNotFoundException.class); // REVIEW: Usability - Not getting a specific error message here. How about a "BadListenerConfigurationException"??
+ test_BadConfigurations("BadConfig2.xml", "commandJndiType", IllegalArgumentException.class); // REVIEW: Usability - Not getting a specific error message here. How about a "BadListenerConfigurationException"??
+ test_BadConfigurations("BadConfig3.xml", "commandJndiURL", CommunicationException.class); // REVIEW: Usability - Not getting a specific error message here. How about a "BadListenerConfigurationException"??
+ test_BadConfigurations("BadConfig4.xml", "commandIsTopic", null); // BUG: Exception getting swallowed here!!! Should only accept boolean values.
+ test_BadConfigurations("BadConfig5.xml", "messageSelector", null); // BUG: Exception getting swallowed here!!! Sould only accept NV Pairs.
+ test_BadConfigurations("BadConfig6.xml", "commandJndiName", NameNotFoundException.class); // REVIEW: Usability - Not getting a specific error message here. How about a "BadListenerConfigurationException"??
+ }
+
+ public void test_BadConfigurations(String config, String paramName, Class expectedException) throws Exception {
+ try {
+ ListenerUtils.createGpListener(ClassUtils.toResourcePath(getClass().getPackage()) + "/" + config);
+ if(expectedException != null) {
+ fail("[Param '" + paramName + "' test] No exception being thrown for bad param config!! Expected Exception: " + expectedException.getName());
+ }
+ } catch(AssertionFailedError e) {
+ throw e;
+ } catch(CommandQueueException e) {
+ if(expectedException == null) {
+ fail("[Param '" + paramName + "' test] Unexpected Exception: " + e.getClass().getName() + ": " + e.getMessage());
+ } else if(!expectedException.isInstance(e) && !expectedException.isInstance(e.getCause())) {
+ fail("[Param '" + paramName + "' test] Expected Exception: " + expectedException.getName() + ". Got " + e.getClass().getName() + ": " + e.getMessage());
+ }
+ // Is the expected Exception!!
+ }
+ }
+
+ protected void tearDown() throws Exception {
+ }
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/MessageBox.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/MessageBox.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/MessageBox.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,91 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.listeners.old;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Vector;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @since Version 4.0
+ */
+public class MessageBox implements ActionProcessor {
+
+ private static Logger logger = Logger.getLogger(MessageBox.class);
+ public static List<Object> messages = new Vector<Object>();
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
+ */
+ public Message process(Message message) throws ActionProcessingException {
+ Object oCurr = ActionUtils.getTaskObject(message);
+ if (null==oCurr)
+ oCurr="<null>";
+ logger.info("MessageBox received message: " + message);
+ messages.add(oCurr);
+ return message;
+ }
+
+ public static void assertMessageCount(int count, long maxWait) {
+ long endTime = System.currentTimeMillis() + maxWait;
+
+ while(System.currentTimeMillis() < endTime) {
+ if(messages.size() == count) {
+ return;
+ }
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {
+ logger.error("Thread interupt...", e);
+ }
+ }
+ String errorMsg = "MessageBox failed to receive " + count + " messages. Message count = " + messages.size() + ". Waited for " + maxWait + "ms.";
+ logger.error(errorMsg);
+ TestCase.fail(errorMsg);
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
+ */
+ public Serializable getOkNotification(Message message) {
+ return "OK" + ActionUtils.getTaskObject(message);
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
+ */
+ public Serializable getErrorNotification(Message message) {
+ return "Error" + ActionUtils.getTaskObject(message);
+ }
+
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/MultiPollerConfig1.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/MultiPollerConfig1.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/MultiPollerConfig1.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,100 @@
+<LoanBrokerExample
+ commandConnFactoryClass="ConnectionFactory"
+ commandJndiType="jboss"
+ commandJndiURL="localhost"
+ commandIsTopic="false"
+ messageSelector="gpMsgSelector='test'"
+ commandJndiName="queue/A"
+ parameterReloadSecs="20"
+>
+ <PollDirectoryExample
+ listenerClass="org.jboss.soa.esb.listeners.old.DirectoryPoller"
+ actionClass="org.jboss.soa.esb.actions.templates.MockFileAction"
+ pollLatencySecs="5"
+ maxThreads="2"
+ inputDirURI="@qa.build@/inputDir"
+ inputSuffix=".inp"
+ workSuffix=".INPROC"
+ errorDirURI="@qa.build@/errorDir"
+ errorSuffix=".ERR"
+ postDirURI="@qa.build@/inputDoneDir"
+ postSuffix=".DONE"
+ postDelete="n"
+ >
+ <NotificationList type="OK">
+ <target class="NotifyFiles">
+ <file URI="@qa.build@/notifyDir/GpListenerExample.notifOK"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+
+ <NotificationList type="err">
+ <target class="NotifyFiles">
+ <file URI="@qa.build@/notifyDir/GpListenerExample.notifErr"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+ </PollDirectoryExample>
+
+ <PollSqlTableExample
+ listenerClass="org.jboss.soa.esb.listeners.old.SqlTablePoller"
+ actionClass="org.jboss.soa.esb.actions.templates.MockSqlRowAction"
+ pollLatencySecs="2"
+ maxThreads="2"
+ connection-url="jdbc:postgresql://lavasca:5432/rosetta"
+ driver-class="org.postgresql.Driver"
+ user-name="postgres"
+ password=""
+ tableName="test_notif_table"
+ selectFields="oid,ref,msg"
+ keyFields="oid,ref"
+ inProcessField="status"
+ whereCondition="src='pepe'"
+ >
+ <NotificationList type="OK">
+ <target class="NotifyFiles">
+ <file URI="@qa.build@/notifyDir/GpListenerExample.notifOK"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+
+ <NotificationList type="err">
+ <target class="NotifyFiles">
+ <file URI="@qa.build@/notifyDir/GpListenerExample.notifErr"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+ </PollSqlTableExample>
+
+ <ListenJmsQueueExample
+ listenerClass="org.jboss.soa.esb.listeners.old.JmsQueueListener"
+ actionClass="org.jboss.soa.esb.actions.templates.MockAction"
+ maxThreads="1"
+ queueConnFactoryClass="ConnectionFactory"
+ listenJndiType="jboss"
+ listenJndiURL="localhost"
+ listenQueue="queue/A"
+ listenMsgSelector="listener='maradona'"
+ >
+ <NotificationList type="OK">
+ <target class="NotifyFiles">
+ <file URI="@qa.build@/notifyDir/GpListenerExample.notifOK"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+
+ <NotificationList type="err">
+ <target class="NotifyFiles">
+ <file URI="@qa.build@/notifyDir/GpListenerExample.notifErr"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+ </ListenJmsQueueExample>
+
+</LoanBrokerExample>
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/SQLTablePollerConfig1.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/SQLTablePollerConfig1.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/SQLTablePollerConfig1.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,55 @@
+<LoanBrokerExample
+ commandConnFactoryClass="ConnectionFactory"
+ commandJndiType="jboss"
+ commandJndiURL="localhost"
+ commandIsTopic="false"
+ messageSelector="gpMsgSelector='test'"
+ commandJndiName="queue/A"
+>
+
+ <PollSqlTableExample
+ listenerClass="org.jboss.soa.esb.listeners.old.SqlTablePoller"
+ actions="CaptureMessage, ProcessMessageFromSQL"
+ pollLatencySecs="2"
+ maxThreads="2"
+ connection-url="@db.url@"
+ driver-class="@db.driver@"
+ user-name="@db.user@"
+ password="@db.password@"
+
+ tableName="test_poll_table"
+ selectFields="ref,msg,val2"
+ keyFields="ref"
+ inProcessField="status"
+ whereCondition="src='pepe'"
+ >
+ <NotificationList type="OK">
+ <target class="NotifyFiles">
+ <file URI="@qa.build@/notifyDir/GpListenerExample.notifOK"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+
+ <NotificationList type="err">
+ <target class="NotifyFiles">
+ <file URI="@qa.build@/notifyDir/GpListenerExample.notifErr"
+ append="true"
+ />
+ </target>
+ </NotificationList>
+
+
+ </PollSqlTableExample>
+
+ <Actions>
+ <Action name="CaptureMessage" processor="MessageBox" />
+ <Action name="ProcessMessageFromSQL" processor="SQLProcessor"/>
+
+ <ProcessorAliases>
+ <Alias name="MessageBox" class="org.jboss.soa.esb.listeners.old.MessageBox" />
+ <Alias name="SQLProcessor" class="org.jboss.soa.esb.actions.templates.MockSqlRowAction" />
+ </ProcessorAliases>
+ </Actions>
+
+</LoanBrokerExample>
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/SQLTablePollerTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/SQLTablePollerTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/listeners/old/SQLTablePollerTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,105 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.listeners.old;
+
+import java.io.File;
+import java.sql.SQLException;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.actions.templates.MockSqlRowAction;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.util.ClassUtils;
+import org.jboss.soa.esb.util.DbUtils;
+import org.jboss.soa.esb.util.FileUtils;
+import org.jboss.soa.esb.util.JMSClientUtil;
+import org.jboss.soa.esb.util.ListenerUtils;
+import org.jboss.soa.esb.util.ListenerUtils.ListenersManagerExecThread;
+
+/**
+ * QA tests for the SQLTablePoller.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class SQLTablePollerTest extends TestCase {
+
+ private ListenersManagerExecThread listenersMgr;
+ File notifyDir;
+
+ protected void setUp() throws Exception {
+ // Create the directories required by the test...
+ notifyDir = FileUtils.createTestDir("notifyDir");
+
+ createTable();
+
+ // Start the listener...
+ listenersMgr = ListenerUtils.startListeners(ClassUtils.toResourcePath(getClass().getPackage()) + "/SQLTablePollerConfig1.xml");
+ }
+
+ public void test() throws InterruptedException, SQLException {
+ MessageBox.messages.clear();
+ MockSqlRowAction.params.clear();
+
+ // Insert the row into the table and wait for the status to go to "P" (Pending) to "D" (Done)...
+ int insertCount = DbUtils.executeUpdate("insert into test_poll_table values ('pepe','ref1','An arbitrary message', '1111111111','2222222222','P')");
+
+ assertEquals("Failed to create row in table.", 1, insertCount);
+
+ // FIXME: This assertion is broken - prob something wrong with the listener config - it's status isn't changing to "D" (Done)
+ DbUtils.assertNonEmptyResultSet("select * from test_poll_table where src='pepe' and ref='ref1' and status='D'", 10000);
+
+ // Check did the messagebox recevive the message from the JMSListener...
+ MessageBox.assertMessageCount(1, 10000);
+ assertEquals(1, MockSqlRowAction.params.size());
+ Map pollResult = MockSqlRowAction.params.get(0);
+
+ // Check the rowset values...
+ assertEquals("ref1", pollResult.get("ref"));
+ assertEquals("An arbitrary message", pollResult.get("msg"));
+ assertEquals("2222222222", pollResult.get("val2"));
+
+ // Make sure the notifications appear in the "notifyDir" dir...
+ FileUtils.assertFileExists(new File(notifyDir, "GpListenerExample.notifOK"), 10000);
+ FileUtils.assertCanDelete(new File(notifyDir, "GpListenerExample.notifOK"), 10000);
+
+ // There should have been no exceptions...
+ listenersMgr.assertNotInException();
+
+ // Send a Shutdown message to the command queue...
+ JMSClientUtil.sendMessageToQueue("shutdown", JMSClientUtil.QUEUE.A, new KeyValuePair[] {new KeyValuePair("gpMsgSelector", "test")});
+ listenersMgr.assertShutdownOK(10000);
+ }
+
+ protected void tearDown() throws Exception {
+ dropTable();
+
+ // Remove the directories required by the test...
+ FileUtils.assertCanDelete(notifyDir, 10000);
+ }
+
+ private void createTable() {
+ DbUtils.execute("CREATE TABLE test_poll_table (src text, ref text, msg text, val1 text, val2 text, status text)");
+ }
+ private void dropTable() {
+ DbUtils.execute("DROP TABLE test_poll_table");
+ }
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/HsqldbUtil.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/HsqldbUtil.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/HsqldbUtil.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,66 @@
+package org.jboss.soa.esb.messagestore;
+
+import java.sql.DriverManager;
+import java.sql.Statement;
+
+import org.hsqldb.Server;
+/**
+ * Utility to start and stop a hsql Database.
+ *
+ * @author <a href="mailto:kurt.stam at jboss.com">Kurt Stam</a>
+ *
+ */
+public class HsqldbUtil
+{
+ final private static String THREAD_NAME = "hypersonic-unittest";
+ /**
+ * Starts the hsql database in it's own thread.
+ * Don't forget to shut it down when you're done.
+ *
+ * @param databaseFile - i.e. build/hsqltestdb
+ * @param databaseName - i.e. jbossesb
+ * @throws Exception
+ */
+ public static void startHsqldb(final String databaseFile,
+ final String databaseName) throws Exception
+ {
+ // Start DB in new thread, or else it will block us
+ Thread serverThread = new Thread(THREAD_NAME) {
+ public void run() {
+ try {
+ // Create startup arguments
+ String[] args = new String[4];
+ args[0] = "-database.0";
+ args[1] = databaseFile;
+ args[2] = "-dbname.0";
+ args[3] = databaseName;
+
+ System.out.println("creating db from this script: " + databaseFile);
+
+ // Start server
+ Server.main(args);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+// log.error("Failed to start database", e);
+ }
+ };
+ serverThread.run();
+ }
+ /**
+ *
+ * @param url
+ * @param username
+ * @param password
+ * @throws Exception
+ */
+ public static void stopHsqldb(String url, String username, String password) throws Exception {
+ java.sql.Connection connection = DriverManager.getConnection(
+ url, username, password);
+ Statement statement = connection.createStatement();
+ String shutdownCommand = "SHUTDOWN COMPACT";
+ statement.executeQuery(shutdownCommand);
+ }
+
+
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStoreClient.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStoreClient.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStoreClient.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,93 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author daniel.brum at jboss.com
+ */
+
+package org.jboss.soa.esb.messagestore;
+
+import java.net.URI;
+import java.util.Random;
+import java.util.Vector;
+
+import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.persistence.format.MessageStoreType;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.jboss.soa.esb.services.persistence.MessageStore;
+import org.jboss.soa.esb.services.persistence.MessageStoreFactory;
+
+
+
+/**
+ * @author dbrum
+ *
+ */
+public class MessageStoreClient implements Runnable{
+
+ private static Logger logger = Logger.getLogger(MessageStoreTest.class);
+
+
+ public void run() {
+ long startTime=System.currentTimeMillis();
+
+ int requestors = 1000; //number of persist calls to make
+ Vector<URI> writeList = new Vector<URI>();
+
+// get the database store
+ MessageStore store = MessageStoreFactory.getInstance().getMessageStore(MessageStoreType.DATABASE);
+
+ //messages to persist
+ Message msg[] = { MessageFactory.getInstance().getMessage(MessageType.JBOSS_XML),
+ MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED)};
+
+ //set some content inside the Messages
+ for (int x=0; x<msg.length; x++) {
+ msg[x].getBody().setContents("TEST BODY".getBytes());
+ msg[x].getProperties().setProperty("prop"+x, "val"+x);
+ msg[x].getAttachment().addItem(new String("TEST ATTACHMENT"));
+ }
+
+ //loop through adding the messages
+
+ Random rndMsg = new Random();
+ for (int x=0; x<=requestors; x++) {
+ URI uid = store.addMessage(msg[rndMsg.nextInt(2)]);
+ if (uid != null)
+ writeList.add(uid);
+ else
+ System.out.println("null was found... not adding uid to list...");
+ }
+
+ logger.info("total messages persisted to db: " + (writeList.size()-1));
+
+ //loop back reading the messages from the db
+ Vector<Message> readList = new Vector<Message> ();
+ for (int x=0; x<writeList.size(); x++) {
+ try {
+ readList.add(store.getMessage(writeList.get(x)));
+ } catch (Exception e) {
+ logger.error(e);
+ }
+ }
+ logger.info("total messages read from db: " + (readList.size()-1));
+ logger.info("time to finish write/read for this client: " + (System.currentTimeMillis()-startTime) + " milliseconds.");
+
+ }
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStoreTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStoreTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStoreTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,170 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author daniel.brum at jboss.com
+ */
+
+package org.jboss.soa.esb.messagestore;
+
+import java.io.File;
+import java.net.URI;
+import java.sql.Connection;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.persistence.format.MessageStoreType;
+import org.jboss.internal.soa.esb.persistence.format.db.DBConnectionManager;
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.jboss.soa.esb.services.persistence.MessageStore;
+import org.jboss.soa.esb.services.persistence.MessageStoreFactory;
+
+/**
+ * @author dbrum
+ *
+ */
+public class MessageStoreTest extends TestCase {
+ private static Logger logger = Logger.getLogger(MessageStoreTest.class);
+
+ public void testMultiClientLoad() throws Exception {
+ TestUtil.setESBPropertiesFileToUse();
+ MessageStoreTest.runBeforeAllTests();
+ int clients = 5;
+
+ Thread[] xx = new Thread[clients];
+ for (int i=0; i<clients; i++) {
+ xx[i] = new Thread(new MessageStoreClient());
+ }
+
+ for (int i=0; i<clients; i++) {
+ xx[i].start();
+ }
+
+ //clean up the threads
+ for (int i=0; i<clients; i++) {
+ xx[i] = null;
+ }
+
+ }
+
+ public void testSingleLoad() throws Exception {
+ long startTime=System.currentTimeMillis();
+ int requestors = 1000; //number of persist calls to make
+
+
+ List<URI> uriList = new ArrayList<URI>();
+
+ TestUtil.setESBPropertiesFileToUse();
+ MessageStoreTest.runBeforeAllTests();
+
+ //get the database store
+ MessageStore store = MessageStoreFactory.getInstance().getMessageStore(MessageStoreType.DATABASE);
+
+ //messages to persist
+ Message msg[] = { MessageFactory.getInstance().getMessage(MessageType.JBOSS_XML),
+ MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED)};
+
+ //set some content inside the Messages
+ for (int x=0; x<msg.length; x++) {
+ msg[x].getBody().setContents("TEST BODY".getBytes());
+ msg[x].getProperties().setProperty("prop"+x, "val"+x);
+ msg[x].getAttachment().addItem(new String("TEST ATTACHMENT"));
+ }
+
+ //loop through adding the messages
+
+ Random rndMsg = new Random();
+ for (int x=0; x<=requestors; x++) {
+ URI uid = store.addMessage(msg[rndMsg.nextInt(2)]);
+ if (uid == null)
+ System.out.println("null returned from addMessage() call to uid");
+ else
+ uriList.add(uid);
+ }
+
+ logger.info("total messages persisted to db: " + (uriList.size()-1));
+
+ //loop back reading the messages from the db
+ List<Message> messages = new ArrayList<Message>();
+ for (int x=0; x<uriList.size(); x++) {
+ messages.add(store.getMessage(uriList.get(x)));
+ }
+
+
+
+ logger.info("total messages read from db: " + (uriList.size()));
+ logger.info("time to finish write/read for this client: " + (System.currentTimeMillis() - startTime) + " milliseconds.");
+
+ MessageStoreTest.runAfterAllTests();
+
+ }
+
+ protected static void runBeforeAllTests() throws Exception{
+
+ TestUtil.setESBPropertiesFileToUse();
+ if (Configuration.getStoreDriver().equals("org.hsqldb.jdbcDriver")) {
+ HsqldbUtil.startHsqldb(TestUtil.getPrefix() + "build/hsqltestdb", "jbossesb");
+ //Get the registry-schema create scripts
+ String database = "hsqldb";
+ String sqlDir = TestUtil.getPrefix() + "install/message-store/sql/" + database + "/";
+ //Drop what is there now, if exists. We want to start fresh.
+ String sqlCreateCmd = TestUtil.readTextFile(new File(sqlDir + "create_database.sql"));
+ String sqlDropCmd = TestUtil.readTextFile(new File(sqlDir + "drop_database.sql"));
+
+ DBConnectionManager mgr = DBConnectionManager.getInstance();
+ Connection con = mgr.getConnection();
+ Statement stmnt = con.createStatement();
+ System.out.println("Dropping the schema if exist");
+ stmnt.execute(sqlDropCmd);
+ System.out.println("Creating the message store schema");
+ stmnt.execute(sqlCreateCmd);
+ }
+
+ }
+
+ private static void runAfterAllTests() throws Exception{
+
+ if (Configuration.getStoreDriver().equals("org.hsqldb.jdbcDriver")) {
+ HsqldbUtil.stopHsqldb(Configuration.getStoreUrl(),
+ Configuration.getStoreUser(),Configuration.getStorePwd() );
+ }
+ }
+
+// public static void main(String args[]) {
+// //fire up the DB connections into the pool and give it 5 seconds to establish the connections
+// DBConnectionManager2.getInstance();
+//
+// MessageStoreTest test = new MessageStoreTest();
+// try {
+//// test.testSingleLoad();
+// test.testMultiClientLoad();
+// } catch (Exception e) {
+// // TODO Auto-generated catch block
+// e.printStackTrace();
+// }
+// }
+
+
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStore_brokentest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStore_brokentest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/MessageStore_brokentest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,118 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author daniel.brum at jboss.com
+ */
+
+package org.jboss.soa.esb.messagestore;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.persistence.format.MessageStoreType;
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.jboss.soa.esb.services.persistence.MessageStore;
+import org.jboss.soa.esb.services.persistence.MessageStoreFactory;
+
+import junit.framework.TestCase;
+
+/**
+ * @author dbrum
+ *
+ */
+public class MessageStore_brokentest extends TestCase {
+ private static Logger logger = Logger.getLogger(MessageStore_brokentest.class);
+
+ public void test() throws Exception {
+ int requestors = 1000; //number of persist calls to make
+ List<URI> uriList = new ArrayList<URI>();
+
+ TestUtil.setESBPropertiesFileToUse();
+ MessageStore_brokentest.runBeforeAllTests();
+
+ //get the database store
+ MessageStore store = MessageStoreFactory.getInstance().getMessageStore(MessageStoreType.DATABASE);
+
+ //messages to persist
+ Message msg[] = { MessageFactory.getInstance().getMessage(MessageType.JBOSS_XML),
+ MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED)};
+
+ //set some content inside the Messages
+ for (int x=0; x<msg.length; x++) {
+ msg[x].getBody().setContents("TEST BODY".getBytes());
+ msg[x].getProperties().setProperty("prop"+x, "val"+x);
+ msg[x].getAttachment().addItem(new String("TEST ATTACHMENT"));
+ }
+
+ //loop through adding the messages
+
+ Random rndMsg = new Random();
+ for (int x=0; x<=requestors; x++) {
+ URI uid = store.addMessage(msg[rndMsg.nextInt(2)]);
+ uriList.add(uid);
+ }
+
+ logger.info("total messages persisted to db: " + (uriList.size()-1));
+
+ //loop back reading the messages from the db
+ List<Message> messages = new ArrayList<Message>();
+ for (int x=0; x<uriList.size(); x++) {
+ messages.add(store.getMessage(uriList.get(x)));
+ }
+ logger.info("total messages read from db: " + (messages.size()-1));
+
+ MessageStore_brokentest.runAfterAllTests();
+
+ }
+
+ protected static void runBeforeAllTests() throws Exception{
+
+ TestUtil.setESBPropertiesFileToUse();
+
+ if (Configuration.getStoreDriver().equals("org.hsqldb.jdbcDriver")) {
+ HsqldbUtil.startHsqldb("home/dbrum/dev/jbossesb/trunk/product/install/message-store/sql/hsqldb/create_database.sql", "jbossesb");
+ }
+
+ }
+
+ private static void runAfterAllTests() throws Exception{
+
+ if (Configuration.getStoreDriver().equals("org.hsqldb.jdbcDriver")) {
+ HsqldbUtil.stopHsqldb(Configuration.getStoreUrl(),
+ Configuration.getStoreUser(),Configuration.getStorePwd() );
+ }
+ }
+
+ public static void main(String args[]) {
+ MessageStore_brokentest test = new MessageStore_brokentest();
+ try {
+ test.test();
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/TestUtil.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/TestUtil.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/messagestore/TestUtil.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,54 @@
+package org.jboss.soa.esb.messagestore;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.Priority;
+
+public class TestUtil
+{
+ private static Logger log = Logger.getLogger(TestUtil.class);
+ private static String _prefix=null;
+ /**
+ * When performing file system interaction, the user.dir may differ (i.e. running the
+ * tests from within eclipse).
+ */
+ public static String getPrefix()
+ {
+ if (_prefix==null) {
+ _prefix="";
+ String baseDir = System.getProperty("user.dir");
+ log.log(Priority.INFO, baseDir);
+ if (!baseDir.endsWith("product")) {
+ _prefix = "product/";
+ }
+ }
+ return _prefix;
+ }
+ /**
+ * Sets the jbossesb-properties.xml to use for test
+ */
+ public static void setESBPropertiesFileToUse()
+ {
+
+// String jbossesbPropertiesFile = getPrefix() + "etc/test/resources/jbossesb-unittest-properties.xml";
+ String jbossesbPropertiesFile = "jbossesb-unittest-properties.xml";
+ System.setProperty("org.jboss.soa.esb.propertyFile", jbossesbPropertiesFile);
+ }
+
+ public static String readTextFile(File file) throws IOException
+ {
+ StringBuffer sb = new StringBuffer(1024);
+ BufferedReader reader = new BufferedReader(new FileReader(file.getPath()));
+ char[] chars = new char[1];
+ while( (reader.read(chars)) > -1){
+ sb.append(String.valueOf(chars));
+ chars = new char[1];
+ }
+ reader.close();
+ return sb.toString();
+ }
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/objpersist/DrainQueuesAndTopics.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/objpersist/DrainQueuesAndTopics.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/objpersist/DrainQueuesAndTopics.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,102 @@
+package org.jboss.soa.esb.objpersist;
+
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueReceiver;
+import javax.jms.QueueSession;
+import javax.jms.Topic;
+import javax.jms.TopicConnection;
+import javax.jms.TopicConnectionFactory;
+import javax.jms.TopicSession;
+import javax.jms.TopicSubscriber;
+import javax.naming.Context;
+
+import org.jboss.soa.esb.helpers.AppServerContext;
+
+public class DrainQueuesAndTopics
+{
+ private static final int MAX_TIMES_NOMSG = 10;
+ private static final String JNDI_URL = "localhost";
+ private static final String JNDI_TYPE
+ = AppServerContext.SERVER_TYPE.jboss.toString();
+
+ private Context m_oCtx;
+
+ public DrainQueuesAndTopics() throws Exception
+ {
+ purgeQueueTopic("queue/A");
+ purgeQueueTopic("queue/B");
+ purgeQueueTopic("topic/testTopic");
+ } //__________________________________
+
+ public int purgeQueueTopic(String p_sName) throws Exception
+ {
+ int iRet = 0;
+ m_oCtx = AppServerContext.getServerContext(JNDI_TYPE,JNDI_URL);
+
+ System.out.println(p_sName);
+ MessageConsumer oCns = null;
+ switch(p_sName.toLowerCase().charAt(0))
+ { case 't' : oCns = getTopic(p_sName); break;
+ case 'q' : oCns = getQueue(p_sName); break;
+ }
+ if (null==oCns)
+ return 0;
+
+ for (int iNoRcv=0; iNoRcv < MAX_TIMES_NOMSG; )
+ { Message oMsg = oCns.receive(200);
+ if (null==oMsg)
+ { iNoRcv++;
+ System.out.print(".");
+ continue;
+ }
+ iRet++;
+ dumpMessage(oMsg);
+ iNoRcv = 0;
+ }
+ System.out.println();
+ return iRet;
+ } //__________________________________
+
+ void dumpMessage(Message pM)
+ {
+ System.out.println(pM);
+ } //__________________________________
+
+ QueueReceiver getQueue(String p_sJndi) throws Exception
+ {
+ QueueConnection oQconn = null;
+ QueueSession oQsess = null;
+ QueueConnectionFactory qcf = (QueueConnectionFactory) m_oCtx
+ .lookup("ConnectionFactory");
+
+ oQconn = qcf.createQueueConnection();
+ oQsess = oQconn.createQueueSession(false
+ ,QueueSession.AUTO_ACKNOWLEDGE);
+ javax.jms.Queue oQueue
+ = (javax.jms.Queue) m_oCtx.lookup(p_sJndi);
+
+ QueueReceiver oRcv = oQsess.createReceiver(oQueue);
+ oQconn.start();
+ return oRcv;
+ } //__________________________________
+
+ TopicSubscriber getTopic(String p_sJndi) throws Exception
+ {
+ TopicConnection oTconn = null;
+ TopicSession oTsess = null;
+ TopicConnectionFactory qcf = (TopicConnectionFactory) m_oCtx
+ .lookup("ConnectionFactory");
+
+ oTconn = qcf.createTopicConnection();
+ oTsess = oTconn.createTopicSession(false
+ ,QueueSession.AUTO_ACKNOWLEDGE);
+ Topic oT = (Topic) m_oCtx.lookup(p_sJndi);
+
+ TopicSubscriber oRcv = oTsess.createSubscriber(oT);
+ oTconn.start();
+ return oRcv;
+ } //__________________________________
+} //____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/objpersist/ObjStore_brokentest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/objpersist/ObjStore_brokentest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/objpersist/ObjStore_brokentest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,45 @@
+package org.jboss.soa.esb.objpersist;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.common.bizclasses.Person;
+import org.jboss.soa.esb.services.PersistHandlerFactory;
+import org.jboss.soa.esb.services.PersistManager;
+
+// DON'T FORGET !!
+// The Rosetta Application server has to be up and running
+// (set JNDI_SERVER appropriately)
+
+public class ObjStore_brokentest extends TestCase {
+
+ private PersistManager m_oH;
+
+ protected void setUp() throws Exception {
+ // get a handle to your business delegate
+ m_oH = PersistHandlerFactory.getPersistHandler("remote",
+ Configuration.getJndiServerType(), Configuration
+ .getJndiServerURL());
+ }
+
+ public void test() throws Exception {
+ // set up a Person (see TestPersonAddrPhone.class)
+ Person oPrs = TestPersonAddrPhone.getPerson();
+ long lUid = m_oH.addObject(oPrs);
+
+ oPrs.setUid(lUid);
+ oPrs.setSnap(lUid);
+
+ // retrieve it from the Object Store
+ Person oP2 = (Person) m_oH.getObject(Person.class, lUid);
+
+ // Zero the timestams because the original object won't have one
+ oPrs.setStamp(0);
+ oP2.setStamp(0);
+
+ assertEquals(oPrs.toDTO().toXml(), oP2.toDTO().toXml());
+ }
+
+ protected void tearDown() throws Exception {
+ }
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/objpersist/TestPersonAddrPhone.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/objpersist/TestPersonAddrPhone.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/objpersist/TestPersonAddrPhone.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,79 @@
+package org.jboss.soa.esb.objpersist;
+
+
+import org.jboss.soa.esb.common.bizclasses.Address;
+import org.jboss.soa.esb.common.bizclasses.OneValue;
+import org.jboss.soa.esb.common.bizclasses.Person;
+import org.jboss.soa.esb.common.bizclasses.Telephone;
+import org.jboss.soa.esb.util.BaseBusinessObject;
+import org.jboss.soa.esb.util.BobjStdDTO;
+
+public class TestPersonAddrPhone
+{
+ public TestPersonAddrPhone() throws Exception
+ { performTest(); }
+
+ static void performTest() throws Exception
+ {
+ BaseBusinessObject o = getPerson();
+ o.setPackage();
+
+ BobjStdDTO oDto = o.toDTO();
+ System.out.println(oDto.toXml());
+
+ o = BaseBusinessObject.getFromDTO(oDto);
+ System.out.println(o.toDTO().toXml());
+ Thread.sleep(500);
+
+ o.toDTO().Dump("Example dump of "+o.getClass().getSimpleName());
+
+ } //________________________________
+
+ static Person getPerson() throws Exception
+ { Person oP = new Person((String)null);
+ oP.setField(Person.ATTRIB.pfx,"Mr.");
+ oP.setField(Person.ATTRIB.fmlyN,"Brum");
+ oP.setField(Person.ATTRIB.givN,"Daniel");
+ oP.setField(Person.ATTRIB.sfx,"the 1st.");
+
+ oP.addAddress(getAddress());
+
+ oP.addEmail(OneValue.getStringValue("myaddr at gmail.com","home"));
+ oP.addEmail(OneValue.getStringValue("john.smith at jboss.com","work"));
+
+ oP.addPhone(newPhone("basement","1","416","555-1212",null));
+ oP.addPhone(newPhone("cell",null,"416","666-4444",null));
+
+ return oP;
+ } //________________________________
+
+ static Address getAddress() throws Exception
+ {
+ Address oP = new Address((String)null);
+ oP.setField(Address.ATTRIB.strNum,"50");
+ oP.setField(Address.ATTRIB.strLine1,"Balcarce");
+ oP.setField(Address.ATTRIB.twnCty1,"San Isidro");
+ oP.setField(Address.ATTRIB.postalZip,"1642");
+ oP.setField(Address.ATTRIB.provSt,"Buenos Aires");
+ oP.setField(Address.ATTRIB.cntry,"Argentina");
+
+ oP.addPhone(newPhone("torIP",null,"416","555-1212",null));
+ oP.addPhone(newPhone("home","54","11","4555-1111","7"));
+
+ return oP;
+ } //________________________________
+
+ public static Telephone newPhone(String p_sRole,
+ String p_sCtry, String p_sCity, String p_sNum, String p_sExt)
+ {
+ Telephone oP = new Telephone((String)null);
+ oP.setRole(p_sRole);
+ oP.setField(Telephone.ATTRIB.cntry,p_sCtry);
+ oP.setField(Telephone.ATTRIB.city,p_sCity);
+ oP.setField(Telephone.ATTRIB.num,p_sNum);
+ oP.setField(Telephone.ATTRIB.ext,p_sExt);
+
+ return oP;
+ }
+
+} //____________________________________________________________________________
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/rosetta/MessageAttachmentSerializeTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/rosetta/MessageAttachmentSerializeTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/rosetta/MessageAttachmentSerializeTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,117 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.rosetta;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.message.Attachment;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+/**
+ * QA tests for the Message interface and implementations.
+ * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
+ */
+public class MessageAttachmentSerializeTest extends TestCase
+{
+
+ protected void setUp() throws Exception
+ {
+ }
+
+ public void runTest() throws Exception
+ {
+ testJavaSerializable();
+ testXml();
+ }
+
+ private static final File TESTFILE = new File("msgAttachment.test");
+ protected void tearDown() throws Exception
+ {
+ TESTFILE.delete();
+ }
+
+ public void testJavaSerializable() throws Exception
+ {
+ org.jboss.internal.soa.esb.message.format.serialized.AttachmentImpl
+ old = new org.jboss.internal.soa.esb.message.format.serialized.AttachmentImpl();
+ populateAttachment(old);
+ ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(TESTFILE));
+ out.writeObject(old);
+ out.close();
+
+ ObjectInputStream inp = new ObjectInputStream(new FileInputStream(TESTFILE));
+ org.jboss.internal.soa.esb.message.format.serialized.AttachmentImpl
+ oNew = (org.jboss.internal.soa.esb.message.format.serialized.AttachmentImpl)
+ inp.readObject();
+ inp.close();
+
+ assertEquals(old,oNew);
+ }
+
+ public void testXml() throws Exception
+ {
+ DocumentBuilder oDB = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ Document oDoc = oDB.newDocument();
+ Element oRoot = oDoc.createElement("root");
+ oDoc.appendChild(oRoot);
+
+ org.jboss.internal.soa.esb.message.format.xml.AttachmentImpl
+ old = new org.jboss.internal.soa.esb.message.format.xml.AttachmentImpl();
+ populateAttachment(old);
+ old.toXML(oRoot);
+
+ org.jboss.internal.soa.esb.message.format.xml.AttachmentImpl
+ oNew = new org.jboss.internal.soa.esb.message.format.xml.AttachmentImpl();
+ oNew.fromXML(oRoot);
+
+ assertEquals(old,oNew);
+
+ Document oD2 = oDB.newDocument();
+ Element oR2 = oD2.createElement("root");
+ oD2.appendChild(oR2);
+ oNew.toXML(oR2);
+
+ String s1 = Util.toString(oRoot);
+ String s2 = Util.toString(oR2);
+ assertEquals(s1,s2);
+
+ }
+
+ private void populateAttachment(Attachment att)
+ {
+ att.addItem("unnamed att 1");
+ att.put("name 2","N2N2N2N2N2N2N2N2");
+ att.addItem("unn 2");
+ att.put("name 1","named att 111111111111111");
+ }
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/rosetta/MessagePropertiesSerializeTest.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/rosetta/MessagePropertiesSerializeTest.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/rosetta/MessagePropertiesSerializeTest.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,114 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.rosetta;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import junit.framework.TestCase;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+/**
+ * QA tests for the Message interface and implementations.
+ * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
+ */
+public class MessagePropertiesSerializeTest extends TestCase
+{
+
+ protected void setUp() throws Exception
+ {
+ }
+
+ public void runTest() throws Exception
+ {
+ testJavaSerializable();
+ testXml();
+ }
+
+ private static final File TESTFILE = new File("msgProperties.test");
+ protected void tearDown() throws Exception
+ {
+ TESTFILE.delete();
+ }
+
+ public void testJavaSerializable() throws Exception
+ {
+ org.jboss.internal.soa.esb.message.format.serialized.PropertiesImpl
+ old = new org.jboss.internal.soa.esb.message.format.serialized.PropertiesImpl();
+ populateProperties(old);
+ ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(TESTFILE));
+ out.writeObject(old);
+ out.close();
+
+ ObjectInputStream inp = new ObjectInputStream(new FileInputStream(TESTFILE));
+ org.jboss.internal.soa.esb.message.format.serialized.PropertiesImpl
+ oNew = (org.jboss.internal.soa.esb.message.format.serialized.PropertiesImpl)
+ inp.readObject();
+ inp.close();
+
+ assertEquals(old,oNew);
+ }
+
+ public void testXml() throws Exception
+ {
+ DocumentBuilder oDB = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ Document oDoc = oDB.newDocument();
+ Element oRoot = oDoc.createElement("root");
+ oDoc.appendChild(oRoot);
+
+ org.jboss.internal.soa.esb.message.format.xml.PropertiesImpl
+ old = new org.jboss.internal.soa.esb.message.format.xml.PropertiesImpl();
+ populateProperties(old);
+ old.toXML(oRoot);
+
+ org.jboss.internal.soa.esb.message.format.xml.PropertiesImpl
+ oNew = new org.jboss.internal.soa.esb.message.format.xml.PropertiesImpl();
+ oNew.fromXML(oRoot);
+
+ assertEquals(old,oNew);
+
+ Document oD2 = oDB.newDocument();
+ Element oR2 = oD2.createElement("root");
+ oD2.appendChild(oR2);
+ oNew.toXML(oR2);
+
+ String s1 = Util.toString(oRoot);
+ String s2 = Util.toString(oR2);
+ assertEquals(s1,s2);
+
+ }
+
+ private void populateProperties(org.jboss.soa.esb.message.Properties props)
+ {
+ props.setProperty("p1","VALUE OF PROP 1");
+ props.setProperty("p2","VALUE 222");
+ }
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/rosetta/Util.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/rosetta/Util.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/rosetta/Util.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,28 @@
+package org.jboss.soa.esb.rosetta;
+
+import java.io.ByteArrayOutputStream;
+
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.w3c.dom.Element;
+
+public class Util
+{
+ public static String toString(Element elem) throws Exception
+ {
+ DOMSource src = new DOMSource(elem.getOwnerDocument());
+
+ ByteArrayOutputStream oStrm = new ByteArrayOutputStream(5000);
+ StreamResult res = new StreamResult(oStrm);
+
+ Transformer TT = TransformerFactory.newInstance().newTransformer();
+ TT.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+ TT.setOutputProperty(OutputKeys.INDENT, "no");
+ TT.transform(src, res);
+ return (oStrm.toString());
+ } // __________________________________
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/ClassUtils.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/ClassUtils.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/ClassUtils.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.util;
+
+/**
+ * Class utilities.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public abstract class ClassUtils {
+
+ /**
+ * Get the resource path representation of the specified packageObj.
+ * @param packageObj Java class Package.
+ * @return Class Package resource path.
+ */
+ public static final String toResourcePath(Package packageObj) {
+ if(packageObj == null) {
+ throw new IllegalArgumentException("null 'packageObj' arg.");
+ }
+ return "/" + packageObj.getName().replace('.', '/');
+ }
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/DbUtils.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/DbUtils.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/DbUtils.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,331 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.util;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.Properties;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.connection.ConnectionProperties;
+
+/**
+ * Database Utilitise.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public abstract class DbUtils
+{
+
+ private static Logger logger = Logger.getLogger(DbUtils.class);
+
+ public static String dbDriver = Configuration.getDbDriver();
+
+ public static String dbUrl = Configuration.getDbUrl();
+
+ public static String dbUser = Configuration.getDbUser();
+
+ public static String dbPassword = Configuration.getDbPassword();
+
+ private static Properties properties = new Properties();
+
+ static
+ {
+ properties.put(ConnectionProperties.DRIVER_CLASSNAME, dbDriver);
+ properties.put(ConnectionProperties.CONNECTION_URL, dbUrl);
+ properties.put(ConnectionProperties.USERNAME, dbUser);
+ properties.put(ConnectionProperties.PASSWORD, dbPassword);
+ }
+
+ /**
+ * Execute an SQL statement. <p/> Calls
+ * {@link Statement#execute(java.lang.String)}. Manages getting and
+ * cleaning up of all DB resources needed to execute the SQL.
+ *
+ * @param sql
+ * SQL to Execute.
+ * @return The return value from {@link Statement#execute(java.lang.String)}.
+ */
+ public static boolean execute(String sql)
+ {
+ DbResources dbResources = null;
+
+ try
+ {
+ dbResources = new DbResources();
+ return dbResources.stat.execute(sql);
+ } catch (SQLException e)
+ {
+ TestCaseUtils.logAndFail("SQL execution failed: " + sql, logger, e);
+ } finally
+ {
+ dbResources.close();
+ }
+
+ return false;
+ }
+
+ /**
+ * Execute an SQL statement. <p/> Calls
+ * {@link Statement#executeQuery(java.lang.String)}. Manages getting and
+ * cleaning up of all DB resources needed to execute the SQL.
+ *
+ * @param query
+ * SQL to Execute.
+ * @return Returns a Proxied {@link ResultSet} object which manages closing
+ * of all associated DB resources on the call to
+ * {@link ResultSet#close()} to the returned {@link ResultSet}
+ * object.
+ */
+ public static ResultSet executeQuery(String query)
+ {
+ DbResources dbResources = null;
+ ResultSet resultSet = null;
+
+ try
+ {
+ dbResources = new DbResources();
+ resultSet = dbResources.stat.executeQuery(query);
+
+ // Proxy the calls to the ResultSet object so we can close the
+ // DbResources
+ // when the call to close the resultset is made.
+ return (ResultSet) Proxy.newProxyInstance(ResultSet.class
+ .getClassLoader(), new Class[]
+ { ResultSet.class }, new ResultSetInvocationHandler(resultSet,
+ dbResources));
+ } catch (SQLException e)
+ {
+ // Close the ResultSet and DbResources objects...
+ closeResultSet(resultSet);
+ dbResources.close();
+ TestCaseUtils.logAndFail("SQL execution failed: " + query, logger,
+ e);
+ }
+
+ return null;
+ }
+
+ /**
+ * Execute an SQL statement. <p/> Calls
+ * {@link Statement#executeUpdate(java.lang.String)}. Manages getting and
+ * cleaning up of all DB resources needed to execute the SQL.
+ *
+ * @param sql
+ * SQL to Execute.
+ * @return The return value from
+ * {@link Statement#executeUpdate(java.lang.String)}.
+ */
+ public static int executeUpdate(String sql)
+ {
+ DbResources dbResources = null;
+
+ try
+ {
+ dbResources = new DbResources();
+ return dbResources.stat.executeUpdate(sql);
+ } catch (SQLException e)
+ {
+ // Close the DbResources objects...
+ dbResources.close();
+ TestCaseUtils.logAndFail("SQL execution failed: " + sql, logger, e);
+ }
+
+ return 0;
+ }
+
+ /**
+ * Convienience method for closing a DB ResultSet. <p/> Handles Exceptions
+ * etc.
+ *
+ * @param resultSet
+ * The ResultSet to close.
+ */
+ public static void closeResultSet(ResultSet resultSet)
+ {
+ if (resultSet != null)
+ {
+ try
+ {
+ resultSet.close();
+ } catch (SQLException e)
+ {
+ TestCaseUtils.logAndFail("Failed to close resultset.", logger,
+ e);
+ }
+ }
+ }
+
+ /**
+ * Assert that the specified query does not return an empty resultset.
+ *
+ * @param query
+ * The query to execute.
+ * @param maxWait
+ * The maximum length of time (ms) to wait for the query to
+ * return a non-empty resultset.
+ */
+ public static void assertNonEmptyResultSet(String query, int maxWait)
+ {
+ long endTime = System.currentTimeMillis() + maxWait;
+
+ while (System.currentTimeMillis() < endTime)
+ {
+ ResultSet resSet = executeQuery(query);
+
+ try
+ {
+ if (resSet.next())
+ {
+ // There were rows in the resultset...
+ return;
+ }
+ Thread.sleep(500);
+ } catch (Exception e)
+ {
+ TestCaseUtils.logAndFail("Error while executing SQL query ["
+ + query + "].", logger, e);
+ } finally
+ {
+ closeResultSet(resSet);
+ }
+ }
+ TestCaseUtils.logAndFail("SQL query [" + query
+ + "] failed to return a non-empty resultset. Waited for "
+ + maxWait + "ms.", logger, null);
+ }
+
+ /**
+ * ResultSet Proxying InvocationHandler. <p/> This class is used simply to
+ * "catch" the close method call on the ResultSet so we can also close the
+ * underlying DbResources.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ private static class ResultSetInvocationHandler implements
+ InvocationHandler
+ {
+ private ResultSet resultSet;
+
+ private DbResources dbResources;
+
+ private ResultSetInvocationHandler(ResultSet resultSet,
+ DbResources dbResources)
+ {
+ this.resultSet = resultSet;
+ this.dbResources = dbResources;
+ }
+
+ public Object invoke(Object proxy, Method method, Object[] args)
+ throws Throwable
+ {
+ if (method.getName().equals("close"))
+ {
+ try
+ {
+ // Caught the call to close the resultset - close the
+ // associated DbResources too!
+ return method.invoke(resultSet, args);
+ } catch (Exception e)
+ {
+ TestCaseUtils.logAndFail(
+ "Failed to close database Resultset. Connection Properties: "
+ + properties, logger, e);
+ } finally
+ {
+ dbResources.close();
+ }
+ }
+
+ // Call to something other than the "close" method.
+ return method.invoke(resultSet, args);
+ }
+ }
+
+ /**
+ * Container Object for a "standard" set of DB resources. <p/> Provides
+ * convienience methods closing the resources etc.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ private static class DbResources
+ {
+ private Connection con = null;
+
+ private Statement stat = null;
+
+ private DbResources()
+ {
+ try
+ {
+ // Register the driver..
+ Class.forName(dbDriver).newInstance();
+ // Create the connection...
+ con = DriverManager.getConnection(dbUrl, dbUser, dbPassword);
+ // Create a regular statement for execution...
+ stat = con.createStatement();
+ } catch (Exception e)
+ {
+ TestCaseUtils.logAndFail(
+ "Failed to connect to database. Connection Properties: "
+ + properties, logger, e);
+ }
+ }
+
+ private void close()
+ {
+ try
+ {
+ if (stat != null)
+ {
+ stat.close();
+ }
+ } catch (SQLException e)
+ {
+ TestCaseUtils.logAndFail(
+ "Failed to close database Statement. Connection Properties: "
+ + properties, logger, e);
+ } finally
+ {
+ if (con != null)
+ {
+ try
+ {
+ con.close();
+ } catch (SQLException e)
+ {
+ TestCaseUtils.logAndFail(
+ "Failed to close database Connection. Connection Properties: "
+ + properties, logger, e);
+ }
+ }
+ }
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/FileUtils.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/FileUtils.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/FileUtils.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,238 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.util;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.regex.Pattern;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.Logger;
+
+/**
+ * File utilities.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public abstract class FileUtils {
+
+ private static Logger logger = Logger.getLogger(FileUtils.class);
+
+ /**
+ * Get the QA environment "build" directory file.
+ * @return QA "build" dir file.
+ */
+ public static File getEnvBuildDir() {
+ return new File("./build");
+ }
+
+ /**
+ * Creates a directory inside the build dir.
+ * <p/>
+ * If the directory already exists, it gets recreated.
+ * @param name Directory name.
+ * @return The newly created/recreated directory.
+ */
+ public static File createTestDir(String name) {
+ File dir = new File(getEnvBuildDir(), name);
+
+ if(dir.exists()) {
+ dir.delete();
+ }
+ dir.mkdirs();
+
+ return dir;
+ }
+
+ /**
+ * Write the supplied data to the specified file.
+ * @param file File to write to.
+ * @param data Data to be written.
+ */
+ public static void writeDataToFile(File file, byte[] data) {
+ FileOutputStream fileStream = null;
+
+ try {
+ fileStream = new FileOutputStream(file);
+ fileStream.write(data);
+ } catch (IOException e) {
+ String errorMsg = "Error writing to file: " + file.getAbsolutePath();
+ logger.error(errorMsg, e);
+ TestCase.fail(errorMsg);
+ } finally {
+ if(fileStream != null) {
+ try {
+ fileStream.flush();
+ fileStream.close();
+ } catch (IOException e) {
+ TestCaseUtils.logAndFail("Error flushing/closing file: " + file.getAbsolutePath(), logger, new Exception());
+ }
+ }
+ }
+ }
+
+ /**
+ * Assert that the specified file exists.
+ * @param file The file in question.
+ * @param maxWait The maximum length of time (ms) to wait for for the file to appear.
+ */
+ public static void assertFileExists(File file, long maxWait) {
+ long endTime = System.currentTimeMillis() + maxWait;
+
+ while(System.currentTimeMillis() < endTime) {
+ if(file.exists()) {
+ return;
+ }
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {
+ logger.error("Thread interupt...", e);
+ }
+ }
+ TestCaseUtils.logAndFail("File [" + file.getAbsolutePath() + "] doesn't exist. Waited for " + maxWait + "ms.", logger, new Exception());
+ }
+
+ /**
+ * Assert that files matching the specified pattern appear in the specified directory.
+ * @param dir Directory to check.
+ * @param pattern Regexp pattern used to perform the matching.
+ * @param maxWait The maximum length of time (ms) to wait for for the files to appear.
+ */
+ public static void asserFilesExist(final File dir, final String pattern, int maxWait) {
+ if(!dir.isDirectory()) {
+ throw new IllegalArgumentException(dir.getAbsolutePath() + " is not a directory.");
+ }
+
+ long endTime = System.currentTimeMillis() + maxWait;
+
+ while(System.currentTimeMillis() < endTime) {
+ if(hasFiles(dir, pattern)) {
+ return;
+ }
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {
+ logger.error("Thread interupt...", e);
+ }
+ }
+ TestCaseUtils.logAndFail("Files matching the pattern [" + pattern + "] not found in directory ["
+ + dir.getAbsolutePath() + "]. Waited for " + maxWait + "ms.", logger, new Exception());
+ }
+
+ /**
+ * Check for files matching the specified pattern appear in the specified directory.
+ * @param dir Directory to check.
+ * @param pattern Regexp pattern used to perform the matching.
+ * @return True if files matching that pattern exist, otherwise false.
+ */
+ public static boolean hasFiles(final File dir, final String pattern) {
+ FileFilter fileFilter = new FileFilter() {
+ public boolean accept(File file) {
+ if(!file.getParentFile().equals(dir)) {
+ return false;
+ }
+ return Pattern.matches(pattern, file.getName());
+ }
+ };
+
+ return dir.listFiles(fileFilter).length > 0;
+ }
+
+ /**
+ * Assert that the specified file doesn't exists.
+ * @param file The file in question.
+ * @param maxWait The maximum length of time (ms) to wait for for the file to disappear.
+ */
+ public static void assertFileDoesntExists(File file, long maxWait) {
+ long endTime = System.currentTimeMillis() + maxWait;
+
+ while(System.currentTimeMillis() < endTime) {
+ if(!file.exists()) {
+ return;
+ }
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {
+ logger.error("Thread interupt...", e);
+ }
+ }
+ TestCaseUtils.logAndFail("File [" + file.getAbsolutePath() + "] exists. Waited for " + maxWait + "ms.", logger, new Exception());
+ }
+
+ /**
+ * Assert that the file/dir can be deleted.
+ * <p/>
+ * Just deletes the file and makes sure the delete worked. This ensures that nothing has an open
+ * handle on the file i.e. that code didn't "forget" to close it. This method will fail the assertion
+ * if the target file is a non-empty directory.
+ *
+ * @param file The file to be deleted.
+ * @param maxWait The maximum length of time (ms) to wait for for the file to disappear after calling the delete method.
+ */
+ public static void assertCanDelete(File file, long maxWait) {
+ if(!file.exists()) {
+ TestCaseUtils.logAndFail("File [" + file.getAbsolutePath() + "] can't be deleted - it doesn't exists.", logger, null);
+ }
+ file.delete();
+ long endTime = System.currentTimeMillis() + maxWait;
+
+ if(file.isDirectory() && hasFiles(file, ".*")) {
+ TestCaseUtils.logAndFail("File [" + file.getAbsolutePath() + "] can't be deleted - it's a directory and isn't empty.", logger, null);
+ }
+
+ while(System.currentTimeMillis() < endTime) {
+ file.delete();
+ if(!file.exists()) {
+ return;
+ }
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {
+ logger.error("Thread interupt...", e);
+ }
+ }
+ TestCaseUtils.logAndFail("File [" + file.getAbsolutePath() + "] can't be deleted - a handle on it (or one of its children) may be open. Waited " + maxWait + "ms", logger, new Exception());
+ }
+
+ /**
+ * Read the file into a String.
+ * @param file - the file to be read
+ * @return String with the content of the file
+ * @throws IOException - when we can't read the file
+ */
+ public static String readTextFile(File file) throws IOException
+ {
+ StringBuffer sb = new StringBuffer(1024);
+ BufferedReader reader = new BufferedReader(new FileReader(file.getPath()));
+ char[] chars = new char[1];
+ while( (reader.read(chars)) > -1){
+ sb.append(String.valueOf(chars));
+ chars = new char[1];
+ }
+ reader.close();
+ return sb.toString();
+ }
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/JMSClientUtil.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/JMSClientUtil.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/JMSClientUtil.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,126 @@
+package org.jboss.soa.esb.util;
+
+import java.io.Serializable;
+
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageProducer;
+import javax.jms.ObjectMessage;
+import javax.jms.Queue;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueSession;
+import javax.jms.TextMessage;
+import javax.naming.Context;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.helpers.AppServerContext;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+
+/**
+ * JMS Client utilities.
+ * @author Esteban
+ */
+public class JMSClientUtil {
+
+ private static Logger logger = Logger.getLogger(JMSClientUtil.class);
+
+ /**
+ * Test queues - correspond to the default queue set e.g. "queue/A", "queue/B" etc.
+ */
+ public enum QUEUE {
+ A, B, C, D, ex
+ };
+
+ /**
+ * Send a message to the specified queue.
+ * @param message The message to be sent (String or other Object).
+ * @param queue The {@link QUEUE} to send the message to.
+ * @param properties The String properties to be set on the message.
+ * @throws Exception
+ */
+ public static void sendMessageToQueue(Serializable message, QUEUE queue, KeyValuePair[] properties) {
+ JMSSendQueueSetup queueSetup = null;
+
+ if(message == null || queue == null) {
+ TestCase.fail("Invalid call to sendMessageToQueue: neither 'message' or 'queue' params can be null.");
+ }
+
+ try {
+ queueSetup = new JMSSendQueueSetup(queue);
+ logger.info("Queue Setup for sending: " + queueSetup.queueName);
+
+ // Send a Text message to the queue...
+ if (message instanceof String) {
+ TextMessage oMsg = queueSetup.jmsSession.createTextMessage();
+
+ logger.info("Sending Text message: [" + message + "]");
+ oMsg.setText((String)message);
+ setStringProperties(oMsg, properties);
+ queueSetup.jmsProducer.send(oMsg);
+ } else {
+ ObjectMessage oMsg = queueSetup.jmsSession.createObjectMessage();
+
+ logger.info("Sending Object message: [" + message + "]");
+ oMsg.setObject(message);
+ setStringProperties(oMsg, properties);
+ queueSetup.jmsProducer.send(oMsg);
+ }
+ logger.info("Message sent: [" + message + "]");
+ } catch(Exception e) {
+ String errorMessage = "Exception while sending message [" + message + "] to queue [" + queue + "].";
+ logger.error(errorMessage, e);
+ TestCase.fail(errorMessage + ": " + e.getMessage());
+ } finally {
+ if(queueSetup != null) {
+ logger.info("Closing Queue Setup: " + queueSetup.queueName);
+ queueSetup.close();
+ }
+ }
+ }
+
+ private static void setStringProperties(Message msg, KeyValuePair[] properties) throws JMSException {
+ if(properties == null) {
+ return;
+ }
+
+ for(KeyValuePair property : properties) {
+ msg.setStringProperty(property.getKey(), property.getValue());
+ }
+ }
+
+
+ private static class JMSSendQueueSetup {
+ QueueSession jmsSession;
+ Queue jmsQueue;
+ MessageProducer jmsProducer;
+ String queueName;
+
+ private JMSSendQueueSetup(QUEUE queue) throws Exception {
+ Context m_oCtx = AppServerContext.getServerContext(
+ Configuration.getJndiServerType(),
+ Configuration.getJndiServerURL());
+ QueueConnectionFactory qcf = (QueueConnectionFactory) m_oCtx.lookup("ConnectionFactory");
+ QueueConnection oQconn = qcf.createQueueConnection();
+
+ queueName = "queue/" + queue.name();
+
+ jmsSession = oQconn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
+ jmsQueue = (Queue) m_oCtx.lookup(queueName);
+ jmsProducer = jmsSession.createSender(jmsQueue);
+ }
+
+ private void close() {
+ try {
+ jmsProducer.close();
+ jmsSession.close();
+ } catch (Exception e) {
+ logger.error("Unable to close JMS Queue Setup.", e);
+ TestCase.fail("Unable to close JMS Queue Setup: " + e.getMessage());
+ }
+ }
+ }
+}
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/ListenerUtils.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/ListenerUtils.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/ListenerUtils.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,186 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.util;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.command.JmsCommandQueue;
+import org.jboss.internal.soa.esb.parameters.ParamFileRepository;
+import org.jboss.soa.esb.listeners.old.GpListener;
+import org.jboss.soa.esb.parameters.ParamRepositoryException;
+import org.jboss.soa.esb.parameters.ParamRepositoryFactory;
+
+/**
+ * Listener utility methods.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public abstract class ListenerUtils {
+
+ private static final String CONFIG_TMP_EXT = ".conftmp";
+ private static Logger logger = Logger.getLogger(ListenerUtils.class);
+
+ /**
+ * Start a list of Listeners based on the supplied configuration.
+ * <p/>
+ * Note the root of the file repos is the root of the junit/src folder.
+ * @param paramName Config classpath.
+ * @return Thread of execution for this Listener configs.
+ */
+ public static ListenersManagerExecThread startListeners(String paramName) throws Exception {
+ ListenersManagerExecThread manager;
+
+ manager = new ListenersManagerExecThread(createGpListener(paramName));
+
+ logger.info("Waiting on Listener Manager the start...");
+ manager.start();
+ while(manager.listenersManager.getState() != GpListener.State.Running) {
+ Thread.sleep(50);
+ if(manager.listenersManager.getState() == GpListener.State.Exception_thrown) {
+ Exception e = manager.listenersManager.getState().getException();
+ logger.error("Failed to start the Listener Manager!", e);
+ TestCase.fail(e.getMessage());
+ }
+ }
+ logger.info("Listener Manager running (Thread: " + manager.getName() + ")! Note this does not mean all the Listeners are up and running!");
+
+ return manager;
+ }
+
+ /**
+ * Create an instance of the {@link GpListener} and instruct it to read the specified configuration
+ * from the ParamRepository.
+ * <p/>
+ * Note the root of the file repos is the root of the junit/src folder.
+ * @param paramName Config classpath.
+ * @return The {@link GpListener} instance.
+ */
+ public static GpListener createGpListener(String paramName) throws Exception {
+ fixUpConfig(paramName);
+ GpListener.setDefaultCommandQueue(new JmsCommandQueue());
+ return new GpListener(paramName + CONFIG_TMP_EXT);
+ }
+
+ /**
+ * Just performs a token replacement on "@qa.build@", "@db.*@" etc tokens in the Listener config and
+ * creates a new repository entry for the Listener Manager to read from..
+ * @param paramName Input config paramName.
+ * @return The file handle for the new "fixed up" config.
+ */
+ private static File fixUpConfig(String paramName) throws ParamRepositoryException, IOException {
+ ParamFileRepository repos = (ParamFileRepository)ParamRepositoryFactory.getInstance();
+ String configXml = repos.get(paramName);
+ File paramFile = repos.toParamFile(paramName);
+ File fixedupFile = new File(paramFile.getAbsolutePath() + CONFIG_TMP_EXT);
+ FileOutputStream fixedUpFileStream = new FileOutputStream(fixedupFile);
+
+ try {
+ // Replace all the "@qa.build@" tokens with the qa "build" dirs file URI, and write to file...
+ configXml = configXml.replaceAll("@qa.build@", FileUtils.getEnvBuildDir().toURI().toString());
+ // Replace all the "@db.*@" tokens with the settings from the deployment.properties...
+ configXml = configXml.replaceAll("@db.driver@", DbUtils.dbDriver);
+ configXml = configXml.replaceAll("@db.url@", DbUtils.dbUrl);
+ configXml = configXml.replaceAll("@db.user@", DbUtils.dbUser);
+ configXml = configXml.replaceAll("@db.password@", DbUtils.dbPassword);
+
+ // Write the fixed up config ro a new file - this new file will be used as the listener config!
+ fixedUpFileStream.write(configXml.getBytes());
+ } finally {
+ fixedUpFileStream.flush();
+ fixedUpFileStream.close();
+ }
+
+ return fixedupFile;
+ }
+
+
+ /**
+ * Execution thread for the Listener Manager.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ public static class ListenersManagerExecThread extends Thread {
+
+ private GpListener listenersManager;
+
+ private ListenersManagerExecThread(GpListener listenersManager) {
+ super(listenersManager);
+ this.listenersManager = listenersManager;
+ }
+
+ /**
+ * Get the {@link GpListener} Listeners Manager class executing in this thread.
+ * @return The listenersManager property value.
+ */
+ public GpListener getListenersManager() {
+ return listenersManager;
+ }
+
+ /**
+ * Assert that the listener Manager is in an Exception state..
+ */
+ public void asserttInException() {
+ if(listenersManager.getState() != GpListener.State.Exception_thrown) {
+ String errorMsg = "ListenerManager not in Exception state. Listener Manager Thread: " + this.getName();
+ logger.error(errorMsg);
+ TestCase.fail(errorMsg);
+ }
+ }
+
+ /**
+ * Assert that the listener Manager is not in an Exception state..
+ */
+ public void assertNotInException() {
+ if(listenersManager.getState() == GpListener.State.Exception_thrown) {
+ String errorMsg = "ListenerManager in Exception state. See log. Listener Manager Thread: " + this.getName();
+ logger.error(errorMsg, listenersManager.getState().getException());
+ TestCase.fail(errorMsg);
+ }
+ }
+
+ /**
+ * Assert that the listener Manager has shutdown.
+ * @param maxWait The maximum length of time (ms) to wait for shutdown before failing the test.
+ */
+ public void assertShutdownOK(long maxWait) {
+ long endTime = System.currentTimeMillis() + maxWait;
+
+ while(System.currentTimeMillis() < endTime) {
+ if(listenersManager.getState() == GpListener.State.Done_OK) {
+ logger.info("Shutdown was successful. Listener Manager Thread: " + this.getName());
+ return;
+ }
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {
+ logger.error("Thread interupt...", e);
+ }
+ }
+ String errorMsg = "ListenerManager failed to shutdown as requested. Waited for " + maxWait + "ms. Listener Manager Thread: " + this.getName();
+ logger.error(errorMsg);
+ TestCase.fail(errorMsg);
+ }
+ }
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/TestCaseUtils.java
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/TestCaseUtils.java 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/junit/src/org/jboss/soa/esb/util/TestCaseUtils.java 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * 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.soa.esb.util;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.Logger;
+
+/**
+ * TestCase utility methods.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public abstract class TestCaseUtils {
+
+
+ /**
+ * Log a message and fail the test with the same message.
+ * @param message The message.
+ * @param logger The Logger instance to use.
+ * @param cause The cause. can be null.
+ */
+ public static void logAndFail(String message, Logger logger, Throwable cause) {
+ logger.error(message, cause);
+ TestCase.fail(message);
+ }
+}
Added: labs/jbossesb/workspace/b_georges/qa/lib/ext/Licenses.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/lib/ext/Licenses.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/lib/ext/Licenses.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,25 @@
+The jars in this directory are covered by a range of licences, as described
+below.
+
+JBoss jars:
+
+/*
+ *
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ */
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/qa/lib/ext/README.txt
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/lib/ext/README.txt 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/lib/ext/README.txt 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,2 @@
+These jars are from JBossAS:
+ jboss-aspect-library-jdk50.jar, jboss-aop-jdk50-client.jar, jboss-ejb3.jar
\ No newline at end of file
Added: labs/jbossesb/workspace/b_georges/qa/lib/ext/edtftpj-pro.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/lib/ext/edtftpj-pro.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/lib/ext/jboss-aop-jdk50-client.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/lib/ext/jboss-aop-jdk50-client.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/lib/ext/jboss-aspect-library-jdk50.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/lib/ext/jboss-aspect-library-jdk50.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/lib/ext/jboss-ejb3.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/lib/ext/jboss-ejb3.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/lib/ext/junit-4.1.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/lib/ext/junit-4.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/lib/ext/license.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/workspace/b_georges/qa/lib/ext/license.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossesb/workspace/b_georges/qa/log4j.xml
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/log4j.xml 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/log4j.xml 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Target" value="System.out"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- A size based file rolling appender -->
+ <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="./qatests.log"/>
+ <param name="Append" value="false"/>
+ <param name="MaxFileSize" value="500KB"/>
+ <param name="MaxBackupIndex" value="1"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <category name="org.jboss.soa.esb">
+ <priority value="DEBUG"/>
+ </category>
+
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="FILE"/>
+ </root>
+
+</log4j:configuration>
Added: labs/jbossesb/workspace/b_georges/qa/qatests.log
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/qatests.log 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/qatests.log 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,18 @@
+2006-10-22 17:56:37,347 DEBUG [main][org.jboss.soa.esb.listeners.RemoteDirectoryPollerTest] ====== setUp ==========
+2006-10-22 17:56:37,413 INFO [main][org.jboss.internal.soa.esb.parameters.ParamFileRepository] Setting parameter repository root dir to [/home/b_georges/projects/jboss/jbossesb/workspace/b_georges/qa/junit/src].
+2006-10-22 17:56:37,751 DEBUG [main][org.jboss.mq.referenceable.SpyConnectionFactoryObjectFactory] Extracting SpyConnectionFactory from reference
+2006-10-22 17:56:37,827 DEBUG [main][org.jboss.mq.referenceable.SpyConnectionFactoryObjectFactory] The GenericConnectionFactory is: GenericConnectionFactory[server=org.jboss.mq.il.uil2.UILServerIL at 1ff7a1e connectionProperties={ClientILService=org.jboss.mq.il.uil2.UILClientILService, UIL_TCPNODELAY_KEY=yes, UIL_CHUNKSIZE_KEY=1000000, UIL_CONNECTADDRESS_KEY=null, UIL_CONNECTPORT_KEY=0, UIL_SOTIMEOUT_KEY=120000, UIL_RECEIVE_REPLIES_KEY=No, UIL_ADDRESS_KEY=127.0.0.1, UIL_PORT_KEY=8093, PingPeriod=60000, UIL_BUFFERSIZE_KEY=2048}]
+2006-10-22 17:56:37,864 DEBUG [main][org.jboss.mq.Connection] Setting the clockDaemon's thread factory
+2006-10-22 17:56:37,929 DEBUG [UIL2.SocketManager.ReadTask#1 client=127.0.0.1:8093][org.jboss.mq.il.uil2.SocketManager] Begin ReadTask.run
+2006-10-22 17:56:37,931 DEBUG [UIL2.SocketManager.WriteTask#2 client=127.0.0.1:8093][org.jboss.mq.il.uil2.SocketManager] Begin WriteTask.run
+2006-10-22 17:56:37,932 DEBUG [UIL2.SocketManager.WriteTask#2 client=127.0.0.1:8093][org.jboss.mq.il.uil2.SocketManager] Created ObjectOutputStream
+2006-10-22 17:56:37,943 DEBUG [UIL2.SocketManager.ReadTask#1 client=127.0.0.1:8093][org.jboss.mq.il.uil2.SocketManager] Created ObjectInputStream
+2006-10-22 17:56:37,962 DEBUG [main][org.jboss.mq.il.uil2.UILClientILService] Starting
+2006-10-22 17:56:38,017 DEBUG [main][org.jboss.mq.referenceable.SpyDestinationObjectFactory] SpyDestinationObjectFactory->getObjectInstance()
+2006-10-22 17:56:38,185 INFO [main][org.jboss.soa.esb.actions.ActionDefinitionFactory] Added alias [FileCopier] for ActionProcessor class [org.jboss.soa.esb.actions.routing.FileCopier].
+2006-10-22 17:56:38,187 INFO [main][org.jboss.soa.esb.actions.ActionDefinitionFactory] Added ActionDefinition [FileCopy] for processor [FileCopier:org.jboss.soa.esb.actions.routing.FileCopier]. Num properties: 2
+2006-10-22 17:56:38,188 INFO [main][org.jboss.soa.esb.actions.ActionDefinitionFactory] ActionDefinition Factory initialisation complete.
+2006-10-22 17:56:38,188 INFO [main][org.jboss.soa.esb.util.ListenerUtils] Waiting on Listener Manager the start...
+2006-10-22 17:56:38,264 INFO [main][org.jboss.soa.esb.util.ListenerUtils] Listener Manager running (Thread: Thread-1)! Note this does not mean all the Listeners are up and running!
+2006-10-22 17:56:38,266 DEBUG [main][org.jboss.soa.esb.listeners.RemoteDirectoryPollerTest] FTP uploading
+2006-10-22 17:56:38,266 DEBUG [main][org.jboss.soa.esb.listeners.RemoteDirectoryPollerTest] actions
Added: labs/jbossesb/workspace/b_georges/qa/test.properties
===================================================================
--- labs/jbossesb/workspace/b_georges/qa/test.properties 2006-10-29 16:30:17 UTC (rev 7195)
+++ labs/jbossesb/workspace/b_georges/qa/test.properties 2006-10-29 16:56:56 UTC (rev 7196)
@@ -0,0 +1,8 @@
+###################################################################################################
+#
+# Env specific test properties.
+#
+###################################################################################################
+
+org.jboss.soa.esb.jndi.server.type=jboss
+org.jboss.soa.esb.jndi.server.url=localhost
\ No newline at end of file
More information about the jboss-svn-commits
mailing list