admin.pass.file=C:/tmp/ripassword
jndi.fs.dir=C:/tmp/ri_admin_objects
Setup and Configuration |
Previous | Next | Contents |
Note
|
The Jakarta EE Specification process provides for any number of compatible implementations. As additional implementations become available, refer to project or product documentation from those vendors for specific TCK setup and operational guidance. |
This chapter describes how to set up the Messaging TCK and JavaTest harness software. Before proceeding with the instructions in this chapter, be sure to install all required software, as described in Chapter 3, "Installation."
After completing the instructions in this chapter, proceed to Chapter 5, "Executing Tests," for instructions on running the Messaging TCK.
After configuring your environment as described in this section, continue with the instructions in Section 4.6, "Using the JavaTest Harness Software."
Note
|
In these instructions, variables in angle brackets need to be expanded
for each platform. For example, On Windows, you must escape any backslashes with an extra backslash in path separators used in any of the following properties, or use forward slashes as a path separator instead. |
Set the following environment variables in your shell environment:
JAVA_HOME
to the directory in which Java SE 11 is installed
TS_HOME
to the directory in which the Messaging 3.1 software is
installed
JMS_HOME
to the directory in which the Messaging 3.1 CI has been installed
PATH
to include the following directories: JAVA_HOME/bin
,
JMS_HOME/bin
, and ANT_HOME/bin
Copy <TS_HOME>/bin/ts.jte.jdk11 as <TS_HOME>/bin/ts.jte if JAVA_HOME is Java SE 11.
Edit your <TS_HOME>/bin/ts.jte
file and set the following
properties:
jms.home
to the directory in which you installed your Messaging 3.1
implementation
jms.classes
to the JAR file(s) that contain your Messaging 3.1
implementation classes
For example, if you are using the Eclipse OpenMQ 6.3 CI, the jms.classes
property would
be set to jms.classes=${ri.jars}
.
impl.vi
to the Messaging 3.1 implementation being tested
This property signals which configuration script to execute for the
config.vi
and clean.vi
Ant targets. These targets handle starting
and stopping the Messaging implementation under test as well as creating and
deleting all of the Messaging administered objects and Messaging users needed by the
Messaging TCK.
The ts.jte
file supports two Messaging 3.1 Compatible Implementations: Eclipse OpenMQ 6.3
CI and Eclipse GlassFish 6.0 CI.
For example, if using the Eclipse OpenMQ 6.3 CI , the impl.vi
property is set to
impl.vi=ri
. With this setting, the config.vi and clean.vi ant targets
will invoke the script under <TS_HOME>/bin/xml/impl/ri/config.vi.xml
.
user
to a valid user name in the Messaging implementation
password
to the password for the user that was specifiedwith the
user
property
jms_timeout
to the length of time used to receive messages
harness.log.port
to the port number that will be used for logging
porting.ts.jmsObjects.class.1
to point to your porting
implementation, if you implemented the TSJMSObjectInterface interface
If you did not implement the interface, use the default setting.
If your Messaging 3.1 implementation does not support the MY_QUEUE
,
MY_TOPIC
, MyQueueConnectionFactory
, or MyTopicConnectionFactory
JNDI names, you must provide your own implementation of the
TSJMSObjectInterface
interface. See Implementing the Messaging
TCK Porting Package Interface for additional infomation about the
TSJMSObjectInterface interface.
If you are using the Eclipse OpenMQ 6.3 CI on the Windows platform, edit the
<TS_HOME>/bin/ts.jte
file and add the drive letter to the
admin.pass.file
and jndi.fs.dir
properties. The property settings
for the Windows platform are as follows:
admin.pass.file=C:/tmp/ripassword
jndi.fs.dir=C:/tmp/ri_admin_objects
Edit the <TS_HOME>/bin/xml/impl/ri/jndi.properties
file and add the
drive letter to the java.naming.provider.url
property. The property
setting for the Windows platform is as follows:
java.naming.provider.url=file:///C:/tmp/ri_admin_objects
Set JMS_HOME
to the location where your Messaging implementation has
been installed.
Start the JNDI service.
Note
|
A Vendor Implementation is not required to use a JNDI provider as the
object store for Messaging administered objects. For more information, see the
|
Start your Messaging implementation.
Add the following administered objects:
Name | Type |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Note
|
The sections that follow explain how to automatically and manually create these administered objects using the Messaging 3.1 CI. |
This section is optional.
You do not have to start up and configure the Messaging CI as part of the certification process. You may, however, want to do so to familiarize yourself with the testing process.
The steps in this section explain how to automatically handle the configuration and startup procedures, something you may want to do with your implementation, especially if you have want to test repeatedly. You can examine the provided scripts, then modify them for use with the implementaation under test. Section 4.1.4, "Manual Configuration and Startup of the Messaging CI," provides the manual steps for doing what the provided scripts do automatically.
Complete the following steps to automatically configure and start up the Eclipse OpenMQ 6.3 CI:
Set the following environment variables in your shell environment:
JAVA_HOME
to the directory in which the Java SE 11 software has been
installed
IMQ_JAVAHOME
to the value of JAVA_HOME
.
This is needed for {TTechnologyRI} CI commands and scripts.
TS_HOME
to the directory in which the Messaging TCK software has been
installed
JMS_HOME
to the directory in which your Messaging 3.1 implementation has
been installed
PATH
to include the following directories: JAVA_HOME/bin
,
JMS_HOME/bin
, and /bin`
<TS_HOME>/tools/ant`
If you are using the CI Eclipse OpenMQ 6.3 on the Windows platform, edit the
<TS_HOME>/bin/ts.jte
file and add the drive letter to the
admin.pass.file
and jndi.fs.dir
properties. The property settings
for the Windows platform are as follows:
admin.pass.file=C:/tmp/ripassword jndi.fs.dir=C:/tmp/ri_admin_objects
Edit the <TS_HOME>/bin/xml/impl/ri/jndi.properties
file and add the
drive letter to the java.naming.provider.url
property. The property
setting for the Windows platform is as follows:
java.naming.provider.url=file:///C:/tmp/ri_admin_objects
Invoke config.vi
, the Ant configuration script, to start and
configure the Messaging CI.
The Messaging TCK comes with a configuration XML file, which automates
starting and stopping the Messaging service as well as creating and deleting
all of the Messaging administered objects and Messaging users needed by the Messaging TCK.
Use the following command to invoke the configuration XML file to start
and configure the Messaging TCK.
cd $TS_HOME/bin ant config.vi
When used with the Messaging 3.1 CI or the Eclipse OpenMQ 6.3
implementation, this target invokes the
<TS_HOME>/bin/xml/impl/ri/config.vi.xml
script, which starts the Messaging
service and creates the Messaging administered objects and Messaging users needed by
the Messaging TCK. In the ts.jte
file, the Messaging 3.1 implementation property,
impl.vi
, needs to be set to ri
and the jms.classes
property needs
to be set to ${ri.jars}
for the Messaging CI or Eclipse OpenMQ 6.3.
To automate the process of creating the Messaging administered obects and Messaging
users for your Messaging implementation, provide your own Ant-based
configuration file, name it <TS_HOME>/bin/xml/impl/vi/config.vi.xml
,
and set the impl.vi
property to vi in your ts.jte
file. When you
execute the ant config.vi
target, the script invokes and executes your
script <TS_HOME>/bin/xml/impl/vi/config.vi.xml
.
4. Invoke clean.vi
, an Ant configuration script, to stop and
unconfigure the Messaging CI.
The Messaging TCK comes with an XML configuration file that automates starting
and stopping the Messaging service as well as creating and deleting all of the
Messaging administered objects and Messaging users needed by the Messaging TCK. Use the
following command to invoke the configuration XML file to stop and
unconfigure the Messaging CI.
cd $TS_HOME/bin
ant clean.vi
If you are using the CI Eclipse GlassFisn 6 or Eclipse OpenMQ 6.3,
this target invokes the <TS_HOME>/bin/xml/impl/ri/config.vi.xml
script
which stops the Messaging service and deletes all the Messaging administered objects
and Messaging users needed by the Messaging TCK. In the ts.jte
file, set the
impl.vi
property to ri
and the jms.classes
property to
${ri.jars}
for the Messaging CI or Eclipse OpenMQ 6.3.
This section is optional. You do not have to start up and configure the Messaging CI as part of the certification process. You may, however, want to do so to familiarize yourself with the testing process.
The steps in this section explain how to manually configure and start up the Messaging CI, something you will do with your implementation. If you have to test repeatedly, you may want to examine the provided scripts that automate the configuration and startup procedures, then modify them for use with the implementaation under test. Section 4.1.3, "Automatic Configuration and Startup of the Messaging CI," provides the steps for using the provided scripts do perform these steps automatically.
Complete the following steps to manually configure and start up the Messaging CI:
Set the following environment variables in your shell environment:
JAVA_HOME
to the directory in which the Java SE 11 software has been
installed
IMQ_JAVAHOME
to the value of JAVA_HOME
.
This is needed for Messaging 3.1 CI commands and scripts.
TS_HOME
to the directory in which the Messaging TCK Version 3.1 software
has been installed
JMS_HOME
to the directory in which your Messaging 3.1 implementation has
been installed
PATH
to include the following directories: JAVA_HOME/bin
,
JMS_HOME/bin
, and ANT_HOME/bin
Use the following command to start the Eclipse OpenMQ 6.3 Broker Service:
(UNIX) $JMS_HOME/bin/imqbrokerd
Use the following command to create the j2ee
TCK user in the Eclipse OpenMQ 6.3
user repository:
(UNIX) $JMS_HOME/bin/imqusermgr add -f -u j2ee -p j2ee -g admin
Use the following command to create the file system directory as the object store for the Eclipse OpenMQ 6.3 Administered Objects:
(UNIX) mkdir /tmp/ri_admin_objects
This directory must match the jndi.fs.dir
. property setting in the
ts.jte
file and the java.naming.provider.url
property in the
<TS_HOME>/bin/xml/impl/ri/jndi.properties
file.
Create the following Messaging administered objects:
Name | Type |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Use the following commands to create the MY_QUEUE
and MY_TOPIC
JMS
administered objects.
$JMS_HOME/bin/imqobjmgr -f add -l MY_QUEUE -o imqDestinationName=MY_QUEUE -t q \
-j java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory \
-j java.naming.provider.url=file:////tmp/ri_admin_objects
$JMS_HOME/bin/imqobjmgr -f add -l MY_TOPIC -o imqDestinationName=MY_TOPIC -t t \
-j java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory \
-j java.naming.provider.url=file:////tmp/ri_admin_objects
Use the following commands to create the MyConnectionFactory
,
MyQueueConnectionFactory
, and MyTopicConnectionFactory
JMS
administered objects.
$JMS_HOME/bin/imqobjmgr -f add -l MyConnectionFactory -t cf \
-j java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory \
-j java.naming.provider.url=file:////tmp/ri_admin_objects
$JMS_HOME/bin/imqobjmgr -f add -l MyQueueConnectionFactory -t qf \
-j java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory \
-j java.naming.provider.url=file:////tmp/ri_admin_objects
$JMS_HOME/bin/imqobjmgr -f add -l MyTopicConnectionFactory -t tf \
-j java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory \
-j java.naming.provider.url=file:////tmp/ri_admin_objects
The DURABLE_SUB_CONNECTION_FACTORY
administered object must support
durable subscriptions and must be created with clientID=cts
. Use the
following command to create the DURABLE_SUB_CONNECTION_FACTORY
administered object.
$JMS_HOME/bin/imqobjmgr -f add -l DURABLE_SUB_CONNECTION_FACTORY \
-o imqConfiguredClientID=cts -t tf \
-j java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory \
-j java.naming.provider.url=file:////tmp/ri_admin_objects
You may need to provide your own implementation of the
TSJMSObjectsInterface
porting package interface that is provided with
the Messaging TCK.
Note that if you do implement this interface, you will also need to set
the porting.ts.jmsObjects.class.1
property in the ts.jte
file for
accessing your porting implementation class. The default for this
property value is set to the implementation used by the Messaging Compatible
Implementation. You may need to set this value to point to your
implementation of this interface. See Manual Configuration
and Startup of the Messaging CI for information about modifying the ts.jte
file.
The TSJMSObjectsInterface
interface looks like this:
public interface TSJMSObjectsInterface {
public Queue getQueue(java.lang.String name)
throws java.lang.Exception;
public Topic getTopic(java.lang.String name)
throws java.lang.Exception;
public TopicConnectionFactory
getTopicConnectionFactory(java.lang.String name)
throws java.lang.Exception;
public QueueConnectionFactory
getQueueConnectionFactory(java.lang.String name)
throws java.lang.Exception;
public ConnectionFactory
getConnectionFactory(java.lang.String name)
throws java.lang.Exception;
}
where:
The getQueue
method, which is used to get a Queue, accepts the name
of the queue as an input parameter.
The getTopic
method, which is used to get a Topic, accepts the name
of the topic as an input parameter.
The getTopicConnectFactory
method, which is used to get a
TopicConnectionFactory
, accepts the name of the
TopicConnectionFactory
as an input parameter.
The getQueueConnectionFactory
method, which is used to get a
QueueConnectionFactory
, accepts the name of the
QueueConnectionFactory
as an input parameter.
The getConnectionFactory
method, which is used to get a
ConnectionFactory
, accepts the name of the ConnectionFactory
as an
input parameter.
Make sure that you set the value of the porting.ts.jmsObjects.class.1
property in the ts.jte
file to point to your implementation of the
TSJMSObjectsInterface
. Refer to Manual Configuration and
Startup of the Messaging CI for information about the list of administered
objects you may need to manually create.
A sample implementation of the TSJMSObjectsInterface
porting package,
SunRIJMSObjects.java
, is provided with the Messaging TCK and can be found in
the <TS_HOME>/src/com/sun/ts/lib/implementation/sun/jms
. directory.
Configuration handlers are used to configure and unconfigure a Messaging 3.1 implementation during the certification process. These are similar to deployment handlers but used for configuration. A configuration handler is an Ant build file that contains at least the required targets listed below:
config.vi
- to configure the vendor implementation
clean.vi
- to unconfigure the vendor implementation
These targets are called from the <TS_HOME>/bin/build.xml
file and
call down into the implementation-specific configuration handlers.
To provide your own configuration handler, create a config.vi.xml file
with the necessary configuration steps for your implementation and place
the file under the <TS_HOME>/bin/xml/impl/<your_impl>
directory.
For more information, you may wish to view <TS_HOME>/bin/xml/impl/glassfish/config.vi.xml
,
the configuration file for Jakarta EE 10 Compatible Implementation, Eclipse GlassFish.
Deployment handlers are used to deploy and undeploy the WAR files that contain the tests to be run during the certification process. A deployment handler is an Ant build file that contains at least the required targets listed in the table below.
The Messaging TCK provides these deployment handlers:
<TS_HOME>/bin/xml/impl/none/deploy.xml
<TS_HOME>/bin/xml/impl/glassfish/deploy.xml
<TS_HOME>/bin/xml/impl/tomcat/deploy.xml
The deploy.xml
files in each of these directories are used to control
deployment to a specific container (no deployment, deployment to
the Eclipse GlassFish Web container, deployment to the Tomcat Web container)
denoted by the name of the directory in which each deploy.xml
file
resides. The primary build.xml
file in the <TS_HOME>/bin
directory
has a target to invoke any of the required targets (-deploy
, -undeploy
,
-deploy.all
, -undeploy.all
).
To deploy tests to another Messaging implementation, you must create a custom handler.
Create a new directory in the <TS_HOME>/bin/xml/impl
directory tree.
For example, create the <TS_HOME>/bin/xml/impl/my_deployment_handler
directory.
Replace my_deployment_handler with the value of the impl.vi
property that you set in Step 5 of the configuration procedure
described in Section 4.2, "Configuring Your Environment to Repackage
and Run the TCK Against the Vendor Implementation".
Copy the deploy.xml file from the <TS_HOME>/bin/xml/impl/none
directory to the directory that you created.
Modify the required targets in the deploy.xml
file. This is what
the deploy.xml
file for the "none" deployment handler looks like.
<project name="No-op Deployment" default="deploy">
<!-- No-op deployment target -->
<target name="-deploy">
<echo message="No deploy target implemented for this deliverable"/>
</target>
<target name="-undeploy">
<echo message="No undeploy target implemented for this deliverable"/>
</target>
<target name="-deploy.all">
<echo message="No deploy target implemented for this deliverable"/>
</target>
<target name="-undeploy.all">
<echo message="No undeploy target implemented for this deliverable"/>
</target>
</project>
Although this example just echoes messages, it does include the four
required Ant targets (-deploy
, -undeploy
, -deploy.all
, -undeploy.all
)
that your custom deploy.xml
file must contain. With this as your
starting point, look at the required targets in the deploy.xml
files
in the Tomcat and Eclipse Glassfish directories for guidance as you create
the same targets for the Web container in which you will run your
implementation of Messaging.
The following Ant targets can be called from anywhere under the
<TS_HOME>/src
directory:
deploy
undeploy
deploy.all
undeploy.all
The deploy.all
and undeploy.all
targets can also be called from the
<TS_HOME>/bin
directory.
Note
|
The targets in the |
There are two general ways to run the Messaging TCK test suite using the JavaTest harness software:
Through the JavaTest GUI; if using this method, please continue on to Section 4.7, "Using the JavaTest Harness Configuration GUI."
In JavaTest batch mode, from the command line in your shell environment; if using this method, please proceed directly to Chapter 5, "Executing Tests."
You can use the JavaTest harness GUI to modify general test settings and to quickly get started with the default Messaging TCK test environment. This section covers the following topics:
Note
|
It is only necessary to proceed with this section if you want to run the JavaTest harness in GUI mode. If you plan to run the JavaTest harness in command-line mode, skip the remainder of this chapter, and continue with Chapter 5, "Executing Tests." |
In order for the JavaTest harness to execute the test suite, it requires information about how your computing environment is configured. The JavaTest harness requires two types of configuration information:
Test environment: This is data used by the tests. For example, the path to the Java runtime, how to start the product being tested, network resources, and other information required by the tests in order to run. This information does not change frequently and usually stays constant from test run to test run.
Test parameters: This is information used by the JavaTest harness to run the tests. Test parameters are values used by the JavaTest harness that determine which tests in the test suite are run, how the tests should be run, and where the test reports are stored. This information often changes from test run to test run.
The first time you run the JavaTest harness software, you are asked to specify the test suite and work directory that you want to use. (These parameters can be changed later from within the JavaTest harness GUI.)
Once the JavaTest harness GUI is displayed, whenever you choose Start, then Run Tests to begin a test run, the JavaTest harness determines whether all of the required configuration information has been supplied:
If the test environment and parameters have been completely configured, the test run starts immediately.
If any required configuration information is missing, the configuration editor displays a series of questions asking you the necessary information. This is called the configuration interview. When you have entered the configuration data, you are asked if you wish to proceed with running the test.
Before you start the JavaTest harness software, you must have a valid test suite and Java SE 11 installed on your system.
The Messaging TCK includes an Ant script that is used to execute the
JavaTest harness from the <TS_HOME>
directory. Using this Ant script
to start the JavaTest harness is part of the procedure described in
Section 4.7.3, "To Configure the JavaTest Harness to Run the
TCK Tests."
When you execute the JavaTest harness software for the first time, the JavaTest harness displays a Welcome dialog box that guides you through the initial startup configuration.
If it is able to open a test suite, the JavaTest harness displays a Welcome to JavaTest dialog box that guides you through the process of either opening an existing work directory or creating a new work directory as described in the JavaTest online help.
If the JavaTest harness is unable to open a test suite, it displays a Welcome to JavaTest dialog box that guides you through the process of opening both a test suite and a work directory as described in the JavaTest documentation.
After you specify a work directory, you can use the Test Manager to configure and run tests as described in Section 4.7.3, "To Configure the JavaTest Harness to Run the TCK Tests."
The answers you give to some of the configuration interview questions are specific to your site. For example, the name of the host on which the JavaTest harness is running. Other configuration parameters can be set however you wish. For example, where you want test report files to be stored.
Note that you only need to complete all these steps the first time you start the JavaTest test harness. After you complete these steps, you can either run all of the tests by completing the steps in Section 5.1, "Starting JavaTest," or run a subset of the tests by completing the steps in Section 5.2, "Running a Subset of the Tests."
Change to the <TS_HOME>/bin
directory and start the JavaTest test
harness:
cd <TS_HOME>/bin
ant gui
From the File menu, click Open Quick Start Wizard.
The Welcome screen displays.
Select Start a new test run, and then click Next.
You are prompted to create a new configuration or use a configuration
template.
Select Create a new configuration, and then click Next.
You are prompted to select a test suite.
Accept the default suite (<TS_HOME>/src
), and then click Next.
You are prompted to specify a work directory to use to store your test
results.
Type a work directory name or use the Browse button to select a work
directory, and then click Next.
You are prompted to start the configuration editor or start a test run.
At this point, the Messaging TCK is configured to run the
default test suite.
Deselect the Start the configuration editor option, and then click Finish.
Click Run Tests, then click Start.
The JavaTest harness starts running the tests.
To reconfigure the JavaTest test harness, do one of the following:
Click Configuration, then click New Configuration.
Click Configuration, then click Change Configuration.
Click Report, and then click Create Report.
Specify the directory in which the JavaTest test harness will write
the report, and then click OK.
A report is created, and you are asked whether you want to view it.
Click Yes to view the report.
The JavaTest GUI enables you to configure numerous test options. These options are divided into two general dialog box groups:
Group 1: Available from the JavaTest Configure/Change Configuration submenus, the following options are displayed in a tabbed dialog box:
Tests to Run
Exclude List
Keywords
Prior Status
Test Environment
Concurrency
Timeout Factor
Group 2: Available from the JavaTest Configure/Change
Configuration/Other Values submenu, or by pressing Ctrl+E
, the following
options are displayed in a paged dialog box:
Environment Files
Test Environment
Specify Tests to Run
Specify an Exclude List
Note that there is some overlap between the functions in these two dialog boxes; for those functions use the dialog box that is most convenient for you. Please refer to the JavaTest Harness documentation or the online help for complete information about these various options.
Previous | Next | Contents |