Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 84 lines (55 sloc) 5.676 kb
5217a4e @rhauch Added README.md for the project
rhauch authored
1 # The ModeShape project
2
3 This is the official Git repository for the ModeShape project.
4
5 ModeShape is an open source implementation of the JCR 2.0 ([JSR-283](http://www.jcp.org/en/jsr/detail?id=283])) specification and standard API.
6 To your applications, ModeShape looks and behaves like a regular JCR repository. Applications can search, query, navigate, change, version, listen for changes, etc.
7 But ModeShape can store that content in a variety of back-end stores (including relational databases, Infinispan data grids, JBoss Cache, etc.), or it can
8 access and update existing content from *other* kinds of systems (including file systems, SVN repositories, JDBC database metadata, and other JCR repositories).
9 ModeShape's connector architecture means that you can write custom connectors to access any kind of system. And ModeShape can even federate multiple back-end systems
10 into a single, unified virtual repository.
11
12 ModeShape repositories can be used in a variety of applications. One of the most obvious ones is in provisioning and management, where it's critical to
13 understand and keep track of the metadata for models, database, services, components, applications, clusters, machines, and other systems used in an enterprise.
14 Governance takes that a step farther, by also tracking the policies and expectations against which performance can be verified. In these cases, a repository
15 is an excellent mechanism for managing this complex and highly-varied information. But a ModeShape repository doesn't have to be large and complex: it
16 could just manage configuration information for an application, or it could just provide a JCR interface on top of a couple of non-JCR systems.
17
18 For more information on ModeShape, including getting started guides, reference guides, and downloadable binaries, visit the project's website at [http://www.modeshape.org](http://www.modeshape.org)
19 or follow us on our [blog](http://modeshape.wordpress.org) or on [Twitter](http://twitter.com/modeshape). Or hop into our [IRC chat room](http://www.jboss.org/modeshape/chat)
20 and talk our community of contributors and users.
21
22 ## Get the code
23
24 The easiest way to get started with the code is to [create your own fork](http://help.github.com/forking/) of this repository, and then clone your fork:
25
26 $ git clone git@github.com:<you>/modeshape.git
27 $ cd modeshape
a53d8b7 @rhauch Corrected the case of the Git repository in the README
rhauch authored
28 $ git remote add upstream git://github.com/ModeShape/modeshape.git
5217a4e @rhauch Added README.md for the project
rhauch authored
29
30 At any time, you can pull changes from the upstream and merge them onto your master:
31
32 $ git checkout master # switches to the 'master' branch
33 $ git pull upstream master # fetches all 'upstream' changes and merges 'upstream/master' onto your 'master' branch
34 $ git push origin # pushes all the updates to your fork, which should be in-sync with 'upstream'
35
36 The general idea is to keep your 'master' branch in-sync with the 'upstream/master'.
37
38 ## Building ModeShape
39
b331f09 @rhauch MODE-1197 Removed JBoss Maven repository settings from our POM
rhauch authored
40 Then, we use Maven 3.x to build our software. The following command compiles all the code, installs the JARs into your local Maven repository, and run all of the unit tests:
5217a4e @rhauch Added README.md for the project
rhauch authored
41
b331f09 @rhauch MODE-1197 Removed JBoss Maven repository settings from our POM
rhauch authored
42 $ mvn clean install -s settings.xml
5217a4e @rhauch Added README.md for the project
rhauch authored
43
b331f09 @rhauch MODE-1197 Removed JBoss Maven repository settings from our POM
rhauch authored
44 BTW, that '-s settings.xml' argument uses the 'settings.xml' file in our codebase, which is set up to use the JBoss Maven repository.
5217a4e @rhauch Added README.md for the project
rhauch authored
45
b331f09 @rhauch MODE-1197 Removed JBoss Maven repository settings from our POM
rhauch authored
46 That command takes a while -- we do have over 12K unit tests. So if need be, your builds can skip the tests:
47
48 $ mvn clean install -s settings.xml -DskipTests
5217a4e @rhauch Added README.md for the project
rhauch authored
49
b331f09 @rhauch MODE-1197 Removed JBoss Maven repository settings from our POM
rhauch authored
50 If you have *any* trouble building (or don't like the '-s settings.xml' usage), check the [detailed build instructions and tips](http://community.jboss.org/wiki/ModeShapeAndMaven).
5217a4e @rhauch Added README.md for the project
rhauch authored
51
52 ## Contribute fixes and features
53
54 ModeShape is open source, and we welcome anybody that wants to participate and contribute!
55
56 If you want to fix a bug or make any changes, please log an issue in the [ModeShape JIRA](https://issues.jboss.org/browse/MODE) describing the bug
57 or new feature. Then we highly recommend making the changes on a topic branch named with the JIRA issue number. For example, this command creates
58 a branch for the MODE-1234 issue:
59
60 $ git checkout -b mode-1234
61
62 After you're happy with your changes and a full build (with unit tests) runs successfully, commit your changes on your topic branch
63 (using [really good comments](http://community.jboss.org/wiki/ModeShapeDevelopmentGuidelines#Commits)). Then it's time to check for
64 and pull any recent changes that were made in the official repository:
65
66 $ git checkout master # switches to the 'master' branch
67 $ git pull upstream master # fetches all 'upstream' changes and merges 'upstream/master' onto your 'master' branch
68 $ git checkout mode-1234 # switches to your topic branch
69 $ git rebase master # reapplies your changes on top of the latest in master
70 (i.e., the latest from master will be the new base for your changes)
71
72 If the pull grabbed a lot of changes, you should rerun your build to make sure your changes are still good.
73 You can then either [create patches](http://progit.org/book/ch5-2.html) (one file per commit, saved in `~/mode-1234`) with
74
75 $ git format-patch -M -o ~/mode-1234 orgin/master
76
77 and upload them to the JIRA issue, or you can push your topic branch and its changes into your public fork repository
78
79 $ git push origin mode-1234 # pushes your topic branch into your public fork of ModeShape
80
81 and [generate a pull-request](http://help.github.com/pull-requests/) for your changes.
82
83 We prefer pull-requests, because we can review the proposed changes, comment on them,
84 discuss them with you, and likely merge the changes right into the official repository.
Something went wrong with that request. Please try again.