Key Information

Register
Submit
The challenge is finished.

Challenge Overview

In this challenge, we want to change the topcoder Direct project build structure by merging related components together, distinguishing EJB service components from normal components, removing the component version and removing the dependencies on SVN. After all these changes, we will host the topcoder Direct project using Git instead of SVN.

Requirements

Merge Related Components Together

  • TopCoder Direct project bases on a lot of components, the TopCoder built components are in lib\tcs folder, the 3rd party components are in lib\third_party folder.
  • Among topcoder components, there are some common ones like Base Exception, DB Connection Factory, Email Engine, Excel Utility etc. which are reused by many projects. While the others like Project Management, Client Project Entities DAO etc are specific to topcoder Direct. These topcoder Direct specific components are defined in subprojects.xml.
  • Among the components defined in subprojects.xml, some are related. For example, scorecard_data_structure, scorecard_management and scorecard_management_persistence: scorecard_data_structure simply defines the object model for scorecard, scorecard_management defines the manager interface and implementation which uses DAO implemented by scorecard_management_persistence. To simply the future build and development, we want to group these related components into ONE component. In this example, merge these 3 component into a single one called scorecard_management. Another example could be the the JPA persistence unit component and EJB service component uses the persistence unit component can be merged into one component. Merging components into one should do the following
    • put the source codes, configuration and test_files toghether. You do NOT need to update the unit test codes, just put them together.
    • Update the build file to make the merged component can be built into jar and copy to direct lib folder. In the lib folder, do not use the path structure like lib/tcs/scorecard_management/1.0.1/scorecard_management.jar, instead, directly use lib/tcs/scorecard_management.jar. The version number and the outter folder with the same name of the component is not needed.
    • Do not create separate build folder under each component's folder, use the common build folder under direct repo (i.e. <direct_root>/build/<component_name>/ folder)
    • Add a new target 'dist_direct' to compile the jar out and then copy to use lib/tcs/ for direct.
  • All these components defined in subprojects, should be put under a new folder called components after merge. (EJB service components are different, see the following)

Distinguish EJB service components

         For  EJB service components

  • They should be put into a new folder called services after merge.
  • They should be distribute to lib/tcs/ejb folder. For example lib/tcs/ejb/contest_service_facade.jar, lib/tcs/ejb/project_services.jar

Update Direct Build Scripts

  • Direct ant build scripts should be updated after the changes above to make sure the structure change does not break anything.
  • Remove all the SVN related targets from the build scripts. The jar libraries used for SVN related tasks should be removed too.
  • Do not package and build admin_service_facade_demo.war, contest_service_facade_demo.war, pipeline_service_facade_demo.war, project_service_facade_demo.war and user_service_facade_demo.war into the direct.ear
  • Do not put the non-EJB service component into the <direct_ear> directly, instead they should be in the <direct_ear>/lib folder.

VM Environment:

You need a TopCoder VM to work on this challenge, please request the VM in the challenge forum.

Information about VM can be found below:

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

  • A deployment guide which mainly describes the changes you made.
    • It should list the which components are merged into which one. 
    • It should list all the EJB service component.
  • The whole package of the direct which can be directly push as a Git repo.

ELIGIBLE EVENTS:

2015 topcoder Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30044586