Challenge Overview
TopCoder is attempting to upgrade the JBoss version for TopCoder Cockpit from JBoss 4 to JBoss 7.
JBoss Application Server 7 is the latest release in a series of JBoss application server offerings. JBoss Application Server 7, is a fast, powerful, implementation of the Java Enterprise Edition 6 specification. The state-of-the-art architecture built on the Modular Service Container enables services on-demand when your application requires them.
The deployment on JBoss 7 is completely different comparing with JBoss 4.
This contest is going to explore the deployment for several components that is related to TopCoder Website and TopCoder Cockpit, and proving that the deployed pieces are working properly through demo or test. so we can get general ideas about how the upgrade for other components too.
Competition Task Overview
For this attempt, following deployment pieces should be properly addressed
- Driver registration and Data Sources configuration (direct-ds.xml)
- Dependent java libraries and configurations (libs.7z and conf.7z)
- Security enterprise application (security.ear)
- components of direct application (catalog_entities and catalog_services components)
Help Info
- The deployment should be underjboss_root/standalone/deployments directory.
- For hot deployment, you just need to create a file name xxxxx.dodeploy under jboss_root/standalone/deployments directory.
Driver Registration and Data Sources Configuration
Before this contest, we have done the initial steps to address the deployment of data sources that needed by TopCoder cockpit application.
You can check http://apps.topcoder.com/wiki/display/~fireice/TopCoder+Cockpit+-+JBoss+7+Migration for detail steps.
Data Source Verification
We actually didn't verify that the data source connection is working properly or not by testing, you are expected to verify that by writing a simple Java application which looks up the data source through JNDI, and make simple query for database, like country_codes table under tcs_catalog.
You should also double check other data source configuration is properly.
You may use the powerful JBoss CLI for verification.
Dependent Java Libraries and Configurations
Unlike JBoss 4, if we wants some java libraries that can be shared by different application, we simply drop the jar files under deploy/default/lib directory.
In JBoss 7, there is so such way to do that. The JBoss 7 uses fully modular system based on JBoss Modules.
What you can do is create a Module, and place it into modules/. Then simply reference that newly created module from our app(s). See http://in.relation.to/Bloggers/ModularizedJavaWithJBossModules for reference.
To reference it, simply add the following to MANIFEST.MF:
Dependencies: my.module
one thought for simply deployment is we can create a customized module that holds all the jars needed by TopCoder Cockpit and reference it in the application.
Please investigate that what is the common way to deploy shared configurations.
Security enterprise application
The application provides some common functionality that is used by TopCoder Cockpit, like login etc.
The main task is to deploy the security.jar.
According to previously investigation, for ejb 2.x deployment, the original jboss.xml will not take affect, instead you should define a jboss-ejb3.xml file, please check https://docs.jboss.org/author/display/AS71/Deployment+Descriptors+used+In+AS7.1 for detail information about configuration.
Source Code
- The source code for security enterprise application can be found at https://coder.topcoder.com/internal/web_module/trunk
- Please refer to the build_security.xml for the general build process.
Components of Direct Application
We are not going to update the whole direct application to make it work under JBoss 7. but explore the way to deploy the catalog_services.jar and catalog_entities.jar components in Jboss, which involves hibernate configuration and ejb configuration update.
To reduce the effort, you can make the component deployed with the Security enterprise application.
Please provide clear steps or program to verify that your updated deployment is working properly.
Source Code
- The source code can be found at https://coder.topcoder.com/tcs/clients/cronos/applications/direct/branches/jboss7
- after checking out the sub projects, you can see the components source code under the root directory.
Documentation Provided
The deployment pieces that are taking from JBoss 4 will be provided in forum.
Resources
There is a Cockpit Site Resource page that contains documentation / instructions for the VM instance you will be issued upon request. It is located here: http://apps.topcoder.com/wiki/display/projects/Direct+VM
Virtual Machine
VM specific information is found here: http://apps.topcoder.com/wiki/display/projects/Direct+VM and http://www.topcoder.com/wiki/display/docs/VM+Image+2.5.
Upon registration as a submitter or reviewer you will need to request a VM based on the new TopCoder Cockpit/Direct image. To request your image, please use the forum.
Before requesting your VM, you need to ensure that you have an SSH key created and in your member profile. Instructions to do so are here: http://www.topcoder.com/wiki/display/projects/Generate+SSH+Key, and instructions to connect afterwards are here: http://www.topcoder.com/wiki/display/projects/Connect+Using+SSH+Key.
Final Submission Guidelines
Submission Deliverables
- Updated deployment pieces that can be easily deployed into JBoss 7 and working properly.
- The competitor should provide a deployment document. This document should include a step-by-step guide on the deployment.
- A document that explains about the changes and relative reference for understanding.
Final Submission
For each member, the final submission should be uploaded to the Online Review Tool.