New JMS Implementation Unit Tests
---------------------------------

         Key: AXIS2-868
         URL: http://issues.apache.org/jira/browse/AXIS2-868
     Project: Apache Axis 2.0 (Axis2)
        Type: Improvement

  Components: Integration  
 Environment: Win2K, JDK 1.4, SonicMQ 7.0
    Reporter: Ali Sadik Kumlali


Hi,

I've created full documented unit tests for the new JMS implementation based on 
JMSEchoRawXMLTest. It may be used to establish a base for discussions found in 
http://www.mail-archive.com/[email protected]/msg18552.html. At a starter 
point, it only addresses authenticated connection discussed[1] in the user-list 
a couple of days ago.

I used in-only services. Therefore, messages are sent to the queue without 
waiting a response. When the message arrives at the queue, listener(at the 
server) retrieves and delegates it to the AxisEngine. Finally, echoOMElement () 
method is invoked.

I created two services: EchoXMLService and SecureEchoXMLService. First one is 
accessed through TEST_QUEUE and the second one is accessed through 
SECURE_TEST_QUEUE. To be able to access SECURE_TEST_QUEUE, username and 
password must be passed. These are different from the principal and the 
credentials defined either in JMS URL or axis2.xml. The principal and the 
credentials are needed to access initial context factory of the JMS server. We 
can retrieve connection factories by using these values. Whereas, if the 
security is enabled, the username and the password are needed to create 
connection by using the retrieved factory. The factory implicitly creates 
connections to the broker. Thus, when the security option of the broker is 
enabled, there will be a need for username and the password. That is what the 
new JMS implementation doesn't support.

There are two unit tests: test01EchoXMLOneWay () and 
test02SecureEchoXMLOneWay(). First one makes call to the EchoXMLService through 
TEST_QUEUE. And the second one makes call to the SecureEchoXMLService through 
SECURE_TEST_QUEUE.

If the original JMSConnectionFactory  and JMSSender are used, 
test02SecureEchoXMLOneWay () test cannot be passed. I made an ugly hack :( to 
these files to show authenticated connection. You may look at the TODO lines of 
the mentioned files.

To much words, huh? :)


SonicMQ Configuration
---------------------------------------------------
- I used SonicMQ as JMS provider.
  - Created two brokers 
    - InsecureBroker (localhost:2507)
      - No username and password requires to connect
      - Created TEST_QUEUE under the broker
    - SecureBroker (localhost:2508)
      - To be able to connect to this broker Username=SecureBroker and 
Password=myPassword must be passed.
      - Created SECURE_TEST_QUEUE under the broker
  - Created two connection factories and JNDI entries for them
     - InsecureQueueConnectionFactory
       - Creates connections to InsecureBroker
     - SecureQueueConnectionFactory 
       - Creates connections to SecureBroker      
  - Created JNDI entries for the queues (TEST_QUEUE and SECURE_TEST_QUEUE)


Content of the Attached Package
---------------------------------------------------
- Unit test class (NewJMSEchoRawXMLTest)
- Security enabled JMSConnectionFactory and JMSSender
- Client and server repositories
- Screen shots of SonicMQ configuration for secure and insecure connection 
factories
- Screen shots of Hermes[2], an application that allows you to interact with 
JMS providers. I did this to make sure the secure and insecure connections can 
be established(while browsing) by a generic tool.

[1] http://www.mail-archive.com/[email protected]/msg15817.html
[2] www.hermesjms.com


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to