jackrabbit-oak-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ju...@apache.org
Subject svn commit: r1437875 - in /jackrabbit/oak/trunk: NOTICE.txt README.md RELEASE-NOTES.txt check-oak-release.sh check-release.sh pom.xml
Date Thu, 24 Jan 2013 07:26:37 GMT
Author: jukka
Date: Thu Jan 24 07:26:37 2013
New Revision: 1437875

URL: http://svn.apache.org/viewvc?rev=1437875&view=rev
0.6: Prepare for the release


Modified: jackrabbit/oak/trunk/NOTICE.txt
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/NOTICE.txt?rev=1437875&r1=1437874&r2=1437875&view=diff
--- jackrabbit/oak/trunk/NOTICE.txt (original)
+++ jackrabbit/oak/trunk/NOTICE.txt Thu Jan 24 07:26:37 2013
@@ -1,5 +1,5 @@
 Apache Jackrabbit Oak
-Copyright 2012 The Apache Software Foundation
+Copyright 2013 The Apache Software Foundation
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).

Modified: jackrabbit/oak/trunk/README.md
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/README.md?rev=1437875&r1=1437874&r2=1437875&view=diff
--- jackrabbit/oak/trunk/README.md (original)
+++ jackrabbit/oak/trunk/README.md Thu Jan 24 07:26:37 2013
@@ -74,7 +74,7 @@ License
 (see [LICENSE.txt](LICENSE.txt) for full license details)
-Collective work: Copyright 2012 The Apache Software Foundation.
+Collective work: Copyright 2013 The Apache Software Foundation.
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with

Modified: jackrabbit/oak/trunk/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/RELEASE-NOTES.txt?rev=1437875&r1=1437874&r2=1437875&view=diff
--- jackrabbit/oak/trunk/RELEASE-NOTES.txt (original)
+++ jackrabbit/oak/trunk/RELEASE-NOTES.txt Thu Jan 24 07:26:37 2013
@@ -1,17 +1,216 @@
-Release Notes -- Apache Jackrabbit Oak -- Version 0.5
+Release Notes -- Apache Jackrabbit Oak -- Version 0.6
-Jackrabbit Oak is an effort to implement a scalable and performant hierarchical content 
-repository for use as the foundation of modern world-class web sites and 
-other demanding content applications.
+Jackrabbit Oak is an effort to implement a scalable and performant
+hierarchical content repository for use as the foundation of modern
+world-class web sites and  other demanding content applications.
 The Oak effort is a part of the Apache Jackrabbit project.
 Apache Jackrabbit is a project of the Apache Software Foundation.
-Jackrabbit Oak 0.5 is to be considered alpha-level software. Use at your own risk 
-with no stability or compatibility guarantees.
+Jackrabbit Oak 0.6 is to be considered alpha-level software. Use at your
+own risk with no stability or compatibility guarantees.
+Changes in Oak 0.6
+New features
+[OAK-61]  - Implement JCR path handling
+[OAK-169] - Support orderable nodes
+[OAK-181] - Observation / indexing: don't create events for index updates
+[OAK-261] - Support querying on property types
+[OAK-352] - Oak builder for simplified repository construction
+[OAK-501] - Add journal support for branches
+[OAK-556] - Query engine: support fulltext conditions with relative paths
+[OAK-140] - PropertyState: data type of empty array property
+[OAK-233] - Query should use the NodeStore abstraction
+[OAK-234] - Review usage of oak path in NodeTypeManagerImpl
+[OAK-249] - Add support for auto created properties and nodes
+[OAK-250] - Enforce jcr constraints for 'protected' items
+[OAK-266] - Clarify Tree interface
+[OAK-288] - QueryTests should use the NodeStore apis
+[OAK-295] - Jackrabbit query with spaces in node names
+[OAK-297] - QueryIndexProvider should use NodeState
+[OAK-300] - Query: QueryResult.getRows().getSize() 
+[OAK-303] - The query engine should use a stable root (not always the head)
+[OAK-304] - Rename ContentSession.getCurrentRoot()
+[OAK-306] - Limit session refresh on namespace registry use
+[OAK-308] - NodeIterator limit and offset don't work as expected
+[OAK-309] - ParentNodeTest fails (XPath parent node navigation using "..")
+[OAK-312] - Use stable root from session in NodeTypeManagerImpl
+[OAK-314] - Align interaction of NamespaceRegistry and NodeTypeManager with Session
+[OAK-317] - NPE in LowerCaseImpl
+[OAK-320] - Query: ability to disable/enable literals in queries to protect against code
+[OAK-325] - QueryEngine can't handle node type hierarchies
+[OAK-326] - Outer Joins test fails
+[OAK-341] - Use Guava preconditions instead of asserts to enforce contract 
+[OAK-344] - Move NodeStore.getBuilder(NodeState) to NodeState.getBuilder()
+[OAK-345] - Split NameMapper into session aware and session less parts
+[OAK-346] - Move ValueImpl and ValueFactoryImpl to core
+[OAK-350] - Unify PropertyState and CoreValue
+[OAK-353] - Remove MicroKernel and revisionId info from the QueryEngine
+[OAK-355] - Move QueryEngine reference from ContentSession to Root
+[OAK-358] - QueryEngine Lucene Index support for reference search 
+[OAK-361] - QueryEngine JCR-SQL 'ESCAPE' parsing & support
+[OAK-362] - Unify all the existing index implementations under one package
+[OAK-363] - Make conflict handler configurable through Oak builder
+[OAK-365] - Add Query Index definition node type
+[OAK-367] - Lucene index cannot handle child properties in queries
+[OAK-368] - Unify all index definitions under oak:index
+[OAK-371] - Query package refactoring
+[OAK-375] - Binaries are kept in memory on write access
+[OAK-383] - Move package value to plugins/value
+[OAK-384] - get rid of add-property json diff syntax
+[OAK-387] - Clarify behavior/state of Root and Tree after calling ContentSession#close()
+[OAK-388] - Add NodeType Index
+[OAK-389] - Simplify code by using PropertyBuilder
+[OAK-390] - Move RootTest and TreeTest to correct package (oak/api)
+[OAK-391] - Avoid weak references in TreeImpl
+[OAK-394] - IndexManagerHook to manage existing indexes
+[OAK-408] - Add Definition for the root node
+[OAK-415] - Add root NodeState param to QueryIndex.getCost()
+[OAK-418] - Reduce/avoid re-resolving the underlying tree instances on every access in Item/Property/NodeDelegate

+[OAK-419] - Query: Conditions are not pushed to "outer join" selectors
+[OAK-422] - Replace PurgeListener in TreeImpl with NodeBuilder.reset()
+[OAK-423] - Query: org.apache.jackrabbit.oak.spi.query.Cursor.currentRow called too late
+[OAK-424] - MongoMicroKernel changes
+[OAK-425] - Query Index: pass the query statement to the index for logging purposes
+[OAK-438] - Provide the lucene index as an osgi bundle
+[OAK-441] - Release oak-core-tests
+[OAK-445] - Allow JSON strings to be reclaimed after they've been parsed
+[OAK-451] - Disable update functionality in KernelRootBuilder
+[OAK-452] - MemoryNodeBuilder improvements
+[OAK-456] - RepositoryInitializer for the lucene global index used in tests
+[OAK-468] - Identifier- or hash-based access in the MicroKernel
+[OAK-471] - Use NodeBuilder.setNode() in MergingNodeStateDiff.addChild() instead of explicit
tree traversal
+[OAK-473] - Query tck test NodeNameTest fix
+[OAK-475] - Query tck test SameNodeJoinConditionTest failing with ParseException
+[OAK-483] - Implement AccessControlAction
+[OAK-485] - Store jcr:all in the content and update upon privilege registration
+[OAK-490] - Add EffectiveNodeTypeManager#isNodeType
+[OAK-493] - Drop fallback in Node#getPrimaryType
+[OAK-494] - Cleanup ReadOnlyNodeTypeManager
+[OAK-506] - Avoid extra MK.nodeExists() calls when already cached
+[OAK-511] - Query PropertyIndex that stores the index content as nodes
+[OAK-512] - Caching in MicroKernelImpl
+[OAK-515] - PropertyIndex should be used for "[indexedProperty] is not null"
+[OAK-517] - Property2Index index content store strategy
+[OAK-518] - Avoid streaming binaries to the Microkernel which are already there
+[OAK-524] - Implement PrincipalManager#getPrincipals(int searchType) 
+[OAK-544] - Refactor / cleanup NodeStoreBranch and KernelNodeStoreBranch
+[OAK-545] - PrincipalManager#findPrincipal should not search for exact name
+[OAK-547] - Property2Index: getCost reads all nodes
+[OAK-551] - MongoMK deleted nodes optimization
+[OAK-553] - Add NameMapper#getOakName that never returns null
+[OAK-557] - Configurable caches in MongoNodeStore
+[OAK-558] - Compress affected paths and diff field in MongoCommit
+[OAK-562] - Clean up duplicate name conversion in plugins/nodetype
+[OAK-563] - Rename SessionDelegate...OrThrow methods
+[OAK-564] - Remove duplicate code from NameMapperImpl
+[OAK-568] - Duplicated code in TreeLocation implementations
+[OAK-570] - Move user mgt related index definitions to security/user 
+[OAK-571] - Limit usage of headRevId in sync collection to non-branches
+[OAK-573] - OneLevelDiffCommand inefficient for commits with many affected paths
+[OAK-574] - Ignore hidden NodeStates in VersionHook
+[OAK-576] - Move ArrayUtils to org.apache.jackrabbit.oak.plugins.index.old
+Bug fixes
+[OAK-21]  - Respect expanded JCR names
+[OAK-23]  - Deal with non-standard JCR path passed to the API calls
+[OAK-191] - ChangeExtractor uses interfaces from oak.spi.state
+[OAK-197] - oak-api ConflictHandler defines method using oak.spi.state.NodeState
+[OAK-216] - Occasional org.apache.jackrabbit.mk.store.NotFoundExceptions
+[OAK-218] - Session methods rely on accessibility of root node
+[OAK-225] - Sling I18N queries not supported by Oak
+[OAK-259] - Issues in o.a.j.oak.security.user.UserProviderImpl
+[OAK-267] - Repository fails to start with - "cannot branch off a private branch"
+[OAK-273] - ValueFormatException expected when overwriting single-valued property with multi-value
and vice versa
+[OAK-276] - potential clash of commit id's after restart
+[OAK-302] - Incorrect results when converting binary values
+[OAK-324] - o.a.j.oak.spi.state.AbstractNodeState#toString causes evaluation of complete
+[OAK-337] - Update MongoMK's logger
+[OAK-338] - [MongoMK] Adding duplicate children should throw an error
+[OAK-339] - [MongoMK] Fix GetCommandsMongoTest
+[OAK-340] - Basic reindex support in the lucene index
+[OAK-342] - [MongoMK] Revision id type inconsistency
+[OAK-347] - QueryEngine 'like' interpretation error for paths
+[OAK-348] - QueryEngine fulltext interpretation & tokenization error
+[OAK-349] - [MongoMK] CommitImpl constructor with instructions list should be removed
+[OAK-351] - Inconsistency issue when committing a new node under an old parent
+[OAK-356] - NamespaceValidator must ignore jcr:primaryType
+[OAK-357] - XmlImportHandler creates incorrect hierarchy
+[OAK-360] - TypeValidator must ignore childOrder property
+[OAK-369] - missing support for relative path consisting of parent-element
+[OAK-374] - ConflictHandler must not depend on Oak API
+[OAK-376] - Internal class PropertyValue exposed through Oak API
+[OAK-379] - Query test failures on buildbot
+[OAK-385] - Query: correctly convert values
+[OAK-393] - jcr:primaryType missing on /jcr:system/rep:namespaces
+[OAK-395] - Inconsistency in Node#setProperty in case of null value
+[OAK-397] - PropertyIndex does not respect unique=false
+[OAK-398] - Moving referenceable node fails with 'Uniqueness constraint violated'
+[OAK-400] - The query engine should pick the index with the lowest cost
+[OAK-403] - PropertyIndexLookup does not find indexes
+[OAK-404] - Log (slow) queries
+[OAK-405] - Node/Property getDefinition() returns first residual definition instead of matching
named definition
+[OAK-406] - RepositoryTest#testUniqueness should be moved to oak-level
+[OAK-407] - potential lost update on merge
+[OAK-409] - OSGi related dependencies should be set to provided scoped and not marked as
+[OAK-413] - TreeLocation.getStatus() cost increases as more content is read below this location
+[OAK-421] - NodeBuilder.reset might lead to inconsistent builder
+[OAK-427] - ItemDelegate has dependency to TreeImpl#NullLocation
+[OAK-428] - Binaries might get removed by garbage collection while still referenced
+[OAK-429] - MemoryPropertyBuilder.assignFrom leads to ClassCastException on getPropertyState
with date properties
+[OAK-432] - Repository does not restart with PrivilegeInitializer
+[OAK-435] - Compilation failure due to MongoGridFSBlobStore
+[OAK-437] - PropertyDefinition.getValueConstraints() returns null when no constraint is available.
+[OAK-439] - Query: if a result limit is set, avoid reading all rows in memory to sort
+[OAK-447] - Adding a node with the name of a removed node can lead to an inconsistent hierarchy
of node builders
+[OAK-448] - Node builder for existing node return null for base state
+[OAK-459] - Handle paths with parenthesis
+[OAK-465] - PropertyIndex uses TraversingCursor but should not
+[OAK-466] - OrderByTest.testChildAxisMixedTypes failing
+[OAK-467] - Include Node Type Support changes in jcr commons
+[OAK-469] - KernelNodeStoreBranch should reset the head of the current branch after a failed
+[OAK-472] - NPE on tck query test DescendantNodeJoinConditionTest
+[OAK-478] - NPE in the TypeValidator when using the Lucene Index
+[OAK-479] - Adding a node to a node that doesn't accept children doesn't fail with ConstraintViolationException
+[OAK-487] - FetchHeadRevisionIdAction is inefficient
+[OAK-488] - Concurrency issue with FetchCommitsAction
+[OAK-491] - NodeType#isNodeType: wrong comparision of jcr names
+[OAK-492] - InitialContent: missing jcr primary type with oak:index node
+[OAK-497] - No LoginModules configured error on Java 7
+[OAK-498] - NamePathMapper should fail on absolute paths escaping root
+[OAK-499] - SQL-2 query parser doesn't detect some illegal statements
+[OAK-502] - User.getPropertyNames throws StringIndexOutOfBoundsException
+[OAK-503] - Microkernel.commit throws AssertionError
+[OAK-507] - MicroKernel.commit() throws NotFoundException for an existing node
+[OAK-508] - Query storeAsNode cleanup
+[OAK-513] - Registering a property type does not retain the type
+[OAK-514] - Upgrade scr plugin
+[OAK-520] - IllegalStateException in MemoryNodeBuilder
+[OAK-531] - NodeBuilder deleted child nodes can come back
+[OAK-537] - The Property2Index eagerly and unnecessarily fetches all data
+[OAK-539] - Wrong compareTo in micro-kernel Id class
+[OAK-540] - MongoMK.getHeadRevision() returns branch revision
+[OAK-542] - MongoMK.getNodes() may return changes from other unmerged branch
+[OAK-543] - PutTokenImpl not thread safe
+[OAK-546] - Query: unexpected result on negative limit / offset
+[OAK-549] - PropertyLocation#remove not part of TreeLocation API
+[OAK-554] - PropertyStates#createProperty ignores namespace mappings when creating states
of type NAME and PATH
+[OAK-555] - FetchNodesAction with unlimited depth and same path prefix returns wrong nodes
+[OAK-565] - CommitCommand readExistingNodes/mergeNodes called unnecessarily
+[OAK-572] - Query: improved cost estimation for the P2 and NodeType index
+[OAK-577] - Incorrect usage of WriteResult#getError/getLastError
+[OAK-579] - Query: for joins, sometimes no or the wrong index is used
+[OAK-416] - TokenInfoTest and TokenProviderImplTest occasionally fail
 Changes in Oak 0.5

Added: jackrabbit/oak/trunk/check-oak-release.sh
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/check-oak-release.sh?rev=1437875&view=auto
--- jackrabbit/oak/trunk/check-oak-release.sh (added)
+++ jackrabbit/oak/trunk/check-oak-release.sh Thu Jan 24 07:26:37 2013
@@ -0,0 +1,145 @@
+##    Licensed to the Apache Software Foundation (ASF) under one or more
+##    contributor license agreements.  See the NOTICE file distributed with
+##    this work for additional information regarding copyright ownership.
+##    The ASF licenses this file to You under the Apache License, Version 2.0
+##    (the "License"); you may not use this file except in compliance with
+##    the License.  You may obtain a copy of the License at
+##      http://www.apache.org/licenses/LICENSE-2.0
+##    Unless required by applicable law or agreed to in writing, software
+##    distributed under the License is distributed on an "AS IS" BASIS,
+##    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+##    See the License for the specific language governing permissions and
+##    limitations under the License.
+if [ -z "$VERSION" -o -z "$SHA" ]
+ echo "Usage: $0 <version-number> <checksum> [temp-directory]"
+ exit
+WORKDIR=${4:-target/oak-staging-`date +%s`}
+mkdir -p "$WORKDIR"
+echo "[INFO] ------------------------------------------------------------------------"
+echo "[INFO] DOWNLOAD RELEASE CANDIDATE                                              "
+echo "[INFO] ------------------------------------------------------------------------"
+echo "[INFO] "
+echo "[INFO] Downloading release candidate, please wait..."
+if svn --quiet export "$STAGING" "$WORKDIR/$VERSION"; then
+  echo "[INFO] Release downloaded."
+  echo "[ERROR] Unable to download release from $STAGING"
+  exit 1
+echo "[INFO] "
+echo "[INFO] ------------------------------------------------------------------------"
+echo "[INFO] CHECK SIGNATURES AND DIGESTS                                            "
+echo "[INFO] ------------------------------------------------------------------------"
+echo "[INFO] "
+## 1. check sha from release email against src.zip.sha file
+downloaded_sha=$(cat `find "$WORKDIR" -type f | grep "jackrabbit-oak-$VERSION-src.zip.sha"`)
+echo "[INFO] Step 1. Check release cheksum"
+if [ $SHA = $downloaded_sha ]; then
+  echo "[INFO] Release checksum matches provided checksum."
+  echo "[ERROR] Release checksum does not match provided checksum!"
+  exit 1
+echo "[INFO] "
+## 2. check signatures on the artifacts
+echo "[INFO] Step 2. Check individual files"
+for f in `find "${WORKDIR}" -type f | grep '\.\(zip\|rar\|jar\|war\)$'`
+  n=`basename "$f"`
+  if [ ! -f "$f.asc" ]; then
+    echo "[ERROR] $n.asc NOT FOUND"
+    exit 1
+  elif gpg --verify "$f.asc" 2>/dev/null; then
+    echo "[INFO] $n.asc is OK"
+  else
+    echo "[ERROR] $n.asc is NOT OK"
+    exit 1
+  fi
+  for hash in md5 sha1
+  do
+    tp=`echo $hash | cut -c 1-3`
+    if [ ! -f "$f.$tp" ]; then
+      echo "[ERROR] $n.$tp NOT FOUND"
+      exit 1
+    else
+      A="`cat "$f.$tp" 2>/dev/null`"
+      B="`openssl "$hash" "$f" 2>/dev/null | sed 's/.*= *//' `"
+      if [ $A = $B ]; then
+        echo "[INFO] $n.$tp is OK"
+      else
+        echo "[ERROR] $n.$tp is NOT OK"
+        exit 1
+      fi
+    fi
+  done
+## 3. check tag contents vs src archive contents
+echo "[INFO] "
+echo "[INFO] Step 3. Compare svn tag with src zip file contents"
+echo "[INFO] Doing svn checkout, please wait..."
+svn --quiet export "https://svn.apache.org/repos/asf/jackrabbit/oak/tags/$VERSION" "$SVNTAGDIR"
+echo "[INFO] Unzipping src zip file, please wait..."
+unzip -q "$WORKDIR/$VERSION/jackrabbit-oak-$VERSION-src.zip" -d "$ZIPTAG"
+echo "[INFO] Comparing sources, please wait..."
+if [ -n "$DIFFOUT" ]
+  echo "[ERROR] Found some differences!"
+  echo "$DIFFOUT"
+  exit 1
+  echo "[INFO] No differences found."
+echo "[INFO] "
+## 4. run the build with the pedantic profile to have the rat licence check enabled
+echo "[INFO] ------------------------------------------------------------------------"
+echo "[INFO] RUNNING MAVEN BUILD                                                     "
+echo "[INFO] ------------------------------------------------------------------------"
+echo "[INFO] "
+echo "[INFO] Running maven build, please wait..."
+if mvn package -Ppedantic > ../maven-output.txt; then
+  echo "[INFO] Maven build OK"
+  echo "[ERROR] Maven build NOT OK"
+  exit 1
+echo "[INFO] "
+echo "[INFO] ------------------------------------------------------------------------"
+echo "[INFO] ALL CHECKS OK                                                           "
+echo "[INFO] ------------------------------------------------------------------------"
+exit 0

Modified: jackrabbit/oak/trunk/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/pom.xml?rev=1437875&r1=1437874&r2=1437875&view=diff
--- jackrabbit/oak/trunk/pom.xml (original)
+++ jackrabbit/oak/trunk/pom.xml Thu Jan 24 07:26:37 2013
@@ -99,7 +99,6 @@
-        <apache.username>${user.name}</apache.username>
         <passphrase />
@@ -163,11 +162,11 @@ Subject: [VOTE] Release Apache Jackrabbi
 A candidate for the Jackrabbit Oak ${project.version} release is available at:
-    http://people.apache.org/~${apache.username}/oak/${project.version}/
+    https://dist.apache.org/repos/dist/dev/jackrabbit/oak/${project.version}/
 The release candidate is a zip archive of the sources in:
-    http://svn.apache.org/repos/asf/jackrabbit/oak/tags/${project.artifactId}-${project.version}/
+    https://svn.apache.org/repos/asf/jackrabbit/oak/tags/${project.artifactId}-${project.version}/
 The SHA1 checksum of the archive is ${checksum}.
@@ -177,7 +176,7 @@ A staged Maven repository is available f
 The command for running automated checks against this release candidate is:
-    $ sh check-release.sh ${apache.username} ${project.version} ${checksum}
+    $ sh check-oak-release.sh ${project.version} ${checksum}
 Please vote on releasing this package as Apache Jackrabbit Oak ${project.version}.
 The vote is open for the next 72 hours and passes if a majority of at
@@ -192,10 +191,11 @@ The release candidate has been prepared 
-Please deploy it to people.apache.org like this:
+Please deploy it to dist.apache.org like this:
-    scp -r ${basedir}/target/${project.version} \
-        ${apache.username}@people.apache.org:public_html/oak/
+    cp -r ${basedir}/target/${project.version} jackrabbit-dev/oak
+    svn add jackrabbit-dev/oak/${project.version}
+    svn commit -m 'Apache Jackrabbit ${project.version} release candidate' jackrabbit-dev/oak/${project.version}
 A release vote template has been generated for you:

View raw message