ctms-commons-mirror
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:A git mirror of ctms-common's canonical subversion repository
ctms-commons
============

This project is a collection of libraries for shared functionality
across the CTMS workspace, and particularly among the applications in
the Clinical Trials Suite.

Using
-----

ctms-commons is distributed on the [NCI CBIIT public ivy
repository][cbiit-ivy].  The organization is `gov.nih.nci.cabig.ctms`.

It has dependencies from the public caGrid 1.2, NCI-CBIIT, and central
Maven 2 repositories.  See `ivy/ivysettings.xml` for URLs and
patterns.

[cbiit-ivy]: https://wiki.nci.nih.gov/display/BuildandDeploymentAutomation/Ivy-+How+to+retrieve+files+from+Ivy

Development
-----------

### Changes

No commits that affect the public API may be made without an
associated entry in the changelog.

### Building

This library is built with buildr.  As of this writing, it works with
buildr 1.4.6 on jruby 1.6.2.  It uses ivy4r for ivy integration.

To set up a new development environment, install jruby and then use
jruby to run `install_gems.rb` in the root of the project.

#### CI

The CI build is at https://public-ci.nubic.northwestern.edu/job/ctms-commons/ .

Javadoc snapshots are at https://public-ci.nubic.northwestern.edu/job/ctms-commons%20javadoc/javadoc/ .

### Testing

#### Databases

The suite-authorization module has integrated tests that are either
PostgreSQL or Oracle-backed.  In order to run these tests,
successfully, you'll need to

1) Create a database for them to use
2) Create a properties file in `build/` pointing to the
   database. There's a sample in that directory.  Name the first one
   of these files `csm-test-connection.properties` (more on that in a
   moment).
3) Run `buildr ctms-commons:suite:authorization:test:wipe_db` to
   initialize the schema.

You can keep several database configurations (e.g. for testing on
PostgreSQL vs. Oracle).  You can switch between them using the CSM_DB
environment variable:

    $ buildr ctms-commons:suite:authorization:test:wipe_db CSM_DB=csm-oracle
    $ buildr test CSM_DB=csm-oracle

This would look for the configuration in
`build/csm-oracle.properties`.  The default for CSM_DB is
`csm-test-connection`.

##### PostgreSQL

If you get an error like this:

    org.apache.tools.ant.BuildException: org.postgresql.util.PSQLException: ERROR: language "plpgsql" does not exist
     Hint: Use CREATE LANGUAGE to load the language into the database.

Run this command as a database superuser in your PostgreSQL test
database:

    CREATE LANGUAGE plpgsql;

### Releasing

In order to release ctms-commons, you have to build a release package
and submit it to CBIIT. They will review it and include it in the
[Nexus][] release repository.

[Nexus]: https://wiki.nci.nih.gov/display/sysdeploy/Sonatype+Nexus+Maven+Repository+Manager+%28CBIIT%29

#### Versions

ctms-commons tries to follow the rational versioning policy.  In
summary that means that the library version numbers go
[major].[minor].[patch]:

  * [patch] is updated for bugfixes only.
  * [minor] is updated for new features which do not break backwards
    compatibility.
  * [major] is updated for breaking changes.  This should be very rare.

An exception is where the [major] value is 0.  New modules in the
library can be initially released with major=0 while the API is being
hashed out.  Libraries with major=0 are expected to maintain backwards
compatibility only within minor versions (e.g., 0.1.0 -> 0.1.1).  Once
the API is firm, these modules should be released under the same
version scheme as the remainder of the library.

Going forward, ctms-commons will have many minor releases as an
alternative to publishing snapshot builds.

#### Steps to release

 0) Ensure that everything you want to go into the release has been
    committed into trunk.  Ensure that the CHANGELOG is up to date.
 1) Set the version number in the buildfile to the appropriate release
    version.  E.g., 3.9.4.RELEASE.
 2) Commit.
 3) Run `buildr publish:prepare`.  This will do a clean build, and
    stage the artifacts for publication.
 4) Check that the new artifacts (under nexus-staging) are as you
    expect.
 5) Run `buildr publish:zip`.
 6) Upload the resulting ZIP file to any NCI server.
 7) E-mail the application support desk to with the location where you
    uploaded the new release artifacts and request they be added to
    Nexus.
 8) Run `buildr publish:tag`.
 9) Update the version number in the buildfile to the next development
    version.  E.g., 3.9.5.DEV.
10) Commit.

(Note that buildr provides a release process, but we aren't using it
because CBIIT doesn't allow us direct access to the release repo.)

本源码包内暂不包含可直接显示的源代码文件,请下载源码包。