Author: reschke
Date: Thu Apr 11 11:23:38 2019
New Revision: 1857314
URL: http://svn.apache.org/viewvc?rev=1857314&view=rev
Log:
OAK-8214: RDBDocumentStore may not inherit ReadOnly flag from DocumentNodeStore
Added:
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilderTest.java
(with props)
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilder.java
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilder.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilder.java?rev=1857314&r1=1857313&r2=1857314&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilder.java
(original)
+++
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilder.java
Thu Apr 11 11:23:38 2019
@@ -16,7 +16,7 @@
*/
package org.apache.jackrabbit.oak.plugins.document.rdb;
-import static com.google.common.base.Suppliers.ofInstance;
+import static com.google.common.base.Suppliers.memoize;
import javax.sql.DataSource;
@@ -59,8 +59,8 @@ public class RDBDocumentNodeStoreBuilder
* @return this
*/
public RDBDocumentNodeStoreBuilder setRDBConnection(DataSource ds,
RDBOptions options) {
- this.documentStoreSupplier = ofInstance(new RDBDocumentStore(ds, this,
options));
- if(blobStore == null) {
+ this.documentStoreSupplier = memoize(() -> new RDBDocumentStore(ds,
this, options));
+ if (blobStore == null) {
GarbageCollectableBlobStore s = new RDBBlobStore(ds, options);
setGCBlobStore(s);
}
@@ -74,8 +74,8 @@ public class RDBDocumentNodeStoreBuilder
* @return this
*/
public RDBDocumentNodeStoreBuilder setRDBConnection(DataSource
documentStoreDataSource, DataSource blobStoreDataSource) {
- this.documentStoreSupplier = ofInstance(new
RDBDocumentStore(documentStoreDataSource, this));
- if(blobStore == null) {
+ this.documentStoreSupplier = memoize(() -> new
RDBDocumentStore(documentStoreDataSource, this));
+ if (blobStore == null) {
GarbageCollectableBlobStore s = new
RDBBlobStore(blobStoreDataSource);
setGCBlobStore(s);
}
Added:
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilderTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilderTest.java?rev=1857314&view=auto
==============================================================================
---
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilderTest.java
(added)
+++
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilderTest.java
Thu Apr 11 11:23:38 2019
@@ -0,0 +1,46 @@
+/*
+ * 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.
+ */
+package org.apache.jackrabbit.oak.plugins.document.rdb;
+
+import static org.junit.Assert.fail;
+
+import java.util.UUID;
+
+import javax.sql.DataSource;
+
+import org.apache.jackrabbit.oak.plugins.document.DocumentStoreException;
+import org.junit.Test;
+
+public class RDBDocumentNodeStoreBuilderTest {
+
+ @Test
+ public void testReadOnly() throws Exception {
+ // see OAK-8214
+
+ DataSource dataSource = RDBDataSourceFactory.forJdbcUrl("jdbc:h2:mem:"
+ UUID.randomUUID(), "", "");
+
+ RDBDocumentNodeStoreBuilder b =
RDBDocumentNodeStoreBuilder.newRDBDocumentNodeStoreBuilder();
+ b.setRDBConnection(dataSource);
+ b.setReadOnlyMode();
+
+ try {
+ b.getDocumentStore();
+ fail("should not get here");
+ } catch (DocumentStoreException expected) {
+ }
+ }
+}
Propchange:
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilderTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentNodeStoreBuilderTest.java
------------------------------------------------------------------------------
svn:executable = *