Index: docs/reference/src/main/docbook/en-US/content/introduction.xml =================================================================== --- docs/reference/src/main/docbook/en-US/content/introduction.xml (revision 1914) +++ docs/reference/src/main/docbook/en-US/content/introduction.xml (working copy) @@ -227,7 +227,7 @@ ModeShape modules - ModeShape consists quite a few separate modules. Just a few of these make up the essential core components of the system: + ModeShape consists of quite a few separate modules. Just a few of these make up the essential core components of the system: @@ -243,7 +243,7 @@ modeshape-jcr-api - defines a number of interfaces that add a few interfaces or extend several of the JCR API interfaces. + defines a number of interfaces that extend several of the JCR API interfaces. For example, this module defines a &Repositories; interface that defines a way to look up javax.jcr.Repository instances by name, and that is implemented by the ModeShape JcrEngine. It also defines several new interfaces that extend the JCR 2.0 API's Query Object Model with additional behavior, including more criteria options Index: docs/reference/src/main/docbook/en-US/content/jcr/jcr.xml =================================================================== --- docs/reference/src/main/docbook/en-US/content/jcr/jcr.xml (revision 1914) +++ docs/reference/src/main/docbook/en-US/content/jcr/jcr.xml (working copy) @@ -34,14 +34,9 @@ The Content Repository for Java Technology API 2.0 provides a standard Java API for working with content repositories. Abbreviated "JCR", this API was developed as part of the - Java Community Process under JSR-170 (JCR 1.0) and has been revised as JCR 2.0 under JSR-283. - JCR 2.0 is largely This improved version of the JCR API is largely the same as JCR - Some of the improvements make it possible for your application to be written entirely against the JCR 2.0 API + Java Community Process under JSR-170 (JCR 1.0) and has been revised and improved as JCR 2.0 under JSR-283. + Some of the improvements make it possible for your application to be written entirely against the JCR 2.0 API. - - ModeShape implements the JCR 2.0 API, meaning your application implementation that allows you to work with the contents of a repository using the - JCR API. - In the interests of brevity, this chapter does not attempt to reproduce the JSR-283 specification nor provide @@ -64,11 +59,9 @@ What's new in JCR 2.0? Before we get started talking about how to use ModeShape via the standard JCR 2.0 API, it's worth spending a little time talking - about the changes in JCR 2.0 compared with version 1.0. + about the changes in JCR 2.0 compared with JCR 1.0. - First the good news. If your application was written against the JCR 1.0 API, there's a good chance that most functionality will - still work. Generally speaking, many of the methods Although an application written against the JCR 1.0 API will for the most part work very well against a JCR 2.0 repository, there are a few improvements to the JCR 2.0 API that your application will likely want to leverage. @@ -98,7 +91,7 @@ Identifiers - JCR 1.0 used the notion of UUIDs on referenceable nodes - in other words those nodes with the "mix:referencedable" mixin. + JCR 1.0 used the notion of UUIDs on referenceable nodes - in other words those nodes with the "mix:referenceable" mixin. However, there were several disadvantages to this design. First, non-referenceable nodes had no such identifier in the JCR API, leading to difficulties in easily identifying nodes using an immutable and invariant identifier (unlike the path, which can change at any time) and requiring a fair amount of code to check whether a node is referenceable before its UUID could safely be obtained. @@ -213,12 +206,11 @@ try { Observation Applications could use the JCR 1.0 API to be notified of changes to the content, using the optional observation feature. - called "observation". create or destroy workspaces, meaning such operations could only be done through - a non-standard and implementation-specific API. The JCR 2.0 API now standardizes these operations, and although not all - implementations are required to support them, ModeShape does support these (though not all connectors do support them). + However, the JCR 1.0 API required multiple events to be created when a subtree was moved or deleted. + This requirement has been relaxed in JCR 2.0 and ModeShape now fully supports the optional observation feature. - How this affects your application: Your application can now create and remove workspaces using the standard JCR 2.0 API. + How this affects your application: Your application can now use specification-compliant observation with ModeShape. @@ -247,7 +239,7 @@ try { How this affects your application: If your application is already using JCR 1.0 versioning feature, be aware that many of the version-related methods on &Node; were deprecated in JCR 2.0 and moved to the new &VersionManager; interface. - And any reliance upon ModeShape's recursive restore operation must be changed, per the JCR 2.0 specification. + Also, any reliance upon ModeShape's recursive restore operation must be changed, per the JCR 2.0 specification. @@ -342,8 +334,8 @@ for (RepositoryFactory factory : ServiceLoader.load(RepositoryFactory.class)) { Pointing directly to a configuration file often works well in stand-alone applications, while using JNDI works great for applications deployed to server platforms (e.g., an application server or servlet container) where multiple applications - might want to use the same JCR repository. (We'll see in the next section - how to configure ModeShape's &JcrEngine; explicitly and register it in JNDI.) + might want to use the same JCR repository. We'll see in the next section + how to configure ModeShape's &JcrEngine; explicitly and register it in JNDI. So, here's the ServiceLoader example again, but with ModeShape-specific parameters: @@ -705,7 +697,7 @@ final &LoginContext; loginContext = ...; the ability to register (and unregister) node types and namespaces, respectively. The "unlock_any"" permission grants the user the ability to unlock any locked node or branch (as opposed to users without that permission who can only unlock nodes or branches that they have locked themselves or for which they hold the lock token). - And the "create_workspace" and "delete_workspace" permissions grants the user the ability to create workspaces and delete workspaces, respectively, + Finally, the "create_workspace" and "delete_workspace" permissions grant the user the ability to create workspaces and delete workspaces, respectively, using the corresponding methods on &Workspace;. Permissions to perform these actions are aggregated in roles that can be assigned to users. @@ -879,8 +871,8 @@ nodeType.setMixin(true); &NodeDefinitionTemplate; childNode = nodeTypeManager.createNodeDefinitionTemplate(); childNode.setName("source"); childNode.setMandatory(true); -childNode.setRequiredPrimaryTypes(new String[] { "nt:file" }); -childNode.setDefaultPrimaryType("nt:file"); +childNode.setRequiredPrimaryTypeNames(new String[] { "nt:file" }); +childNode.setDefaultPrimaryTypeName("nt:file"); nodeType.getNodeDefinitionTemplates().add(childNode); // Add a multi-valued STRING property named "keywords" @@ -902,7 +894,7 @@ nodeTypeManager.registerNodeType(nodeType,false); [searchable] mixin - keywords (string) multiple -+ source (nt:file) = nt:file ++ source (nt:file) = nt:file mandatory This definition could then be registered as part of the repository configuration, using the &JcrConfiguration; class (see the previous chapter). Or, you can also Index: docs/reference/src/main/docbook/en-US/content/jcr/web_access.xml =================================================================== --- docs/reference/src/main/docbook/en-US/content/jcr/web_access.xml (revision 1914) +++ docs/reference/src/main/docbook/en-US/content/jcr/web_access.xml (working copy) @@ -369,16 +369,16 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/ma | + lucene-core-3.0.0.jar | + lucene-regex-3.0.0.jar | + lucene-snowball-3.0.0.jar - | + modeshape-cnd-2.0.jar - | + modeshape-common-2.0.jar - | + modeshape-graph-2.0.jar - | + modeshape-jcr-2.0.jar - | + modeshape-jcr-api-2.0.jar - | + modeshape-mimetype-detector-aperture-2.0.jar - | + modeshape-repository-2.0.jar - | + modeshape-search-lucene-2.0.jar - | + modeshape-web-jcr-2.0.jar - | + modeshape-web-jcr-webdav-2.0.jar + | + modeshape-cnd-2.0.0.Final.jar + | + modeshape-common-2.0.Final.jar + | + modeshape-graph-2.0.Final.jar + | + modeshape-jcr-2.0.Final.jar + | + modeshape-jcr-api-2.0.Final.jar + | + modeshape-mimetype-detector-aperture-2.0.Final.jar + | + modeshape-repository-2.0.Final.jar + | + modeshape-search-lucene-2.0.Final.jar + | + modeshape-web-jcr-2.0.Final.jar + | + modeshape-web-jcr-webdav-2.0.Final.jar | + rdf2go.api-4.6.2.jar | + slf4j-api-1.5.11.jar | + slf4j-log4j12-1.5.8.jar @@ -873,14 +873,14 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/ma | + lucene-regex-3.0.0.jar | + lucene-snowball-3.0.0.jar | + modeshape-cnd-2.0.jar - | + modeshape-common-2.0.jar - | + modeshape-graph-2.0.jar - | + modeshape-jcr-2.0.jar - | + modeshape-jcr-api-2.0.jar - | + modeshape-repository-2.0.jar - | + modeshape-search-lucene-2.0.jar - | + modeshape-web-jcr-2.0.jar - | + modeshape-web-jcr-rest-2.0.jar + | + modeshape-common-2.0.Final.jar + | + modeshape-graph-2.0.Final.jar + | + modeshape-jcr-2.0.Final.jar + | + modeshape-jcr-api-2.0.Final.jar + | + modeshape-repository-2.0.Final.jar + | + modeshape-search-lucene-2.0.Final.jar + | + modeshape-web-jcr-2.0.Final.jar + | + modeshape-web-jcr-rest-2.0.Final.jar | + resteasy-jaxb-provider-1.2.1.GA.jar | + resteasy-jaxrs-1.2.1.GA.jar | + resteasy-jettison-provider-1.2.1.GA.jar