Author: jsedding
Date: Thu Sep 28 14:09:26 2017
New Revision: 1810002
URL: http://svn.apache.org/viewvc?rev=1810002&view=rev
Log:
OAK-6741 - Switch to official OSGi component and metatype annotations
- switch oak-core and oak-store-document to official OSGi annotations
Modified:
jackrabbit/oak/trunk/oak-core/pom.xml
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/impl/ConsolidatedCacheStats.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/commit/ConflictValidatorProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/cow/COWNodeStoreService.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexInfoServiceImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexerService.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexPathServiceImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexerMBeanImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/counter/NodeCounterEditorProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/datastore/DataStoreTextProviderService.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/inventory/IndexDefinitionPrinter.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/inventory/IndexPrinter.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/nodetype/NodeTypeIndexProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexEditorProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexInfoProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/jmx/PropertyIndexStats.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceEditorProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndexProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/itemsave/ItemSaveValidatorProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/StatisticsProviderFactory.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditorProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditorProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeCollectorProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionHook.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineSettingsService.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/AuthenticationConfigurationImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenConfigurationImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AuthorizationConfigurationImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/restriction/RestrictionProviderImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistration.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalConfigurationImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeConfigurationImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/RandomAuthorizableNodeName.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserAuthenticationFactoryImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserConfigurationImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/DefaultAuthorizableActionProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/package-info.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistrationTest.java
jackrabbit/oak/trunk/oak-parent/pom.xml
jackrabbit/oak/trunk/oak-store-document/pom.xml
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentDiscoveryLiteService.java
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/SecondaryStoreCacheService.java
jackrabbit/oak/trunk/oak-store-spi/pom.xml
Modified: jackrabbit/oak/trunk/oak-core/pom.xml
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/pom.xml?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-core/pom.xml Thu Sep 28 14:09:26 2017
@@ -143,13 +143,11 @@
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.component.annotations</artifactId>
- <scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.scr.annotations</artifactId>
- <scope>provided</scope>
- </dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.metatype.annotations</artifactId>
+ </dependency>
<!-- Dependencies to other Oak components -->
<dependency>
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/impl/ConsolidatedCacheStats.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/impl/ConsolidatedCacheStats.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/impl/ConsolidatedCacheStats.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/impl/ConsolidatedCacheStats.java
Thu Sep 28 14:09:26 2017
@@ -32,9 +32,6 @@ import javax.management.openmbean.Tabula
import javax.management.openmbean.TabularDataSupport;
import javax.management.openmbean.TabularType;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean;
import org.apache.jackrabbit.oak.api.jmx.ConsolidatedCacheStatsMBean;
import org.apache.jackrabbit.oak.api.jmx.PersistentCacheStatsMBean;
@@ -43,12 +40,15 @@ import org.apache.jackrabbit.oak.spi.whi
import org.apache.jackrabbit.oak.spi.whiteboard.Tracker;
import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard;
import org.osgi.framework.BundleContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
import static org.apache.jackrabbit.oak.cache.CacheStats.timeInWords;
import static org.apache.jackrabbit.oak.commons.IOUtils.humanReadableByteCount;
import static
org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.registerMBean;
-@Component
+@Component(service = {})
public class ConsolidatedCacheStats implements ConsolidatedCacheStatsMBean {
private Tracker<CacheStatsMBean> cacheStats;
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java
Thu Sep 28 14:09:26 2017
@@ -16,9 +16,6 @@
*/
package org.apache.jackrabbit.oak.plugins.atomic;
-import static
org.apache.felix.scr.annotations.ReferenceCardinality.OPTIONAL_UNARY;
-import static org.apache.felix.scr.annotations.ReferencePolicy.DYNAMIC;
-
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadFactory;
@@ -26,14 +23,6 @@ import java.util.concurrent.atomic.Atomi
import javax.annotation.Nullable;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.felix.scr.annotations.ReferencePolicy;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser;
import org.apache.jackrabbit.oak.osgi.OsgiWhiteboard;
@@ -47,26 +36,31 @@ import org.apache.jackrabbit.oak.spi.sta
import org.apache.jackrabbit.oak.spi.state.NodeStore;
import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard;
import org.osgi.framework.BundleContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.base.Supplier;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import static
org.osgi.service.component.annotations.ReferenceCardinality.OPTIONAL;
+import static org.osgi.service.component.annotations.ReferencePolicy.DYNAMIC;
+
/**
* Provide an instance of {@link AtomicCounterEditor}. See {@link
AtomicCounterEditor} for
* behavioural details.
*/
-@Component
-@Property(name = "type", value = "atomicCounter", propertyPrivate = true)
-@Service(EditorProvider.class)
+@Component(
+ property = "type=atomicCounter",
+ service = EditorProvider.class)
public class AtomicCounterEditorProvider implements EditorProvider {
private static final Logger LOG =
LoggerFactory.getLogger(AtomicCounterEditorProvider.class);
- @Reference(policy = ReferencePolicy.DYNAMIC, cardinality =
ReferenceCardinality.OPTIONAL_UNARY, referenceInterface = Clusterable.class)
private AtomicReference<Clusterable> cluster = new
AtomicReference<Clusterable>();
- @Reference(policy = DYNAMIC, cardinality = OPTIONAL_UNARY,
referenceInterface = NodeStore.class)
private volatile AtomicReference<NodeStore> store = new
AtomicReference<NodeStore>();
private volatile AtomicReference<ScheduledExecutorService> scheduler = new
AtomicReference<ScheduledExecutorService>();
@@ -193,6 +187,7 @@ public class AtomicCounterEditorProvider
}
}
+ @Reference(name = "cluster", policy = DYNAMIC, cardinality = OPTIONAL)
protected void bindCluster(Clusterable store) {
this.cluster.set(store);
}
@@ -201,6 +196,7 @@ public class AtomicCounterEditorProvider
this.cluster.compareAndSet(store, null);
}
+ @Reference(name = "store", policy = DYNAMIC, cardinality = OPTIONAL)
protected void bindStore(NodeStore store) {
this.store.set(store);
}
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/commit/ConflictValidatorProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/commit/ConflictValidatorProvider.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/commit/ConflictValidatorProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/commit/ConflictValidatorProvider.java
Thu Sep 28 14:09:26 2017
@@ -16,19 +16,17 @@
*/
package org.apache.jackrabbit.oak.plugins.commit;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
import org.apache.jackrabbit.oak.spi.commit.EditorProvider;
import org.apache.jackrabbit.oak.spi.commit.Validator;
import org.apache.jackrabbit.oak.spi.commit.ValidatorProvider;
import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.osgi.service.component.annotations.Component;
/**
* TODO document
*/
-@Component
-@Service(EditorProvider.class)
+@Component(service = EditorProvider.class)
public class ConflictValidatorProvider extends ValidatorProvider {
@Override
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/cow/COWNodeStoreService.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/cow/COWNodeStoreService.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/cow/COWNodeStoreService.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/cow/COWNodeStoreService.java
Thu Sep 28 14:09:26 2017
@@ -16,14 +16,6 @@
*/
package org.apache.jackrabbit.oak.plugins.cow;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.ConfigurationPolicy;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.felix.scr.annotations.ReferencePolicy;
import org.apache.jackrabbit.oak.api.jmx.CopyOnWriteStoreMBean;
import org.apache.jackrabbit.oak.commons.PropertiesUtil;
import org.apache.jackrabbit.oak.osgi.OsgiWhiteboard;
@@ -36,6 +28,13 @@ import org.apache.jackrabbit.oak.spi.whi
import org.osgi.framework.Constants;
import org.osgi.framework.ServiceRegistration;
import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.ConfigurationPolicy;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -45,18 +44,21 @@ import java.util.Map;
import static
org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.registerMBean;
-@Component(policy = ConfigurationPolicy.REQUIRE)
+@Component(
+ configurationPolicy = ConfigurationPolicy.REQUIRE,
+ service = {})
public class COWNodeStoreService {
private static final Logger LOG =
LoggerFactory.getLogger(COWNodeStoreService.class);
- @Property(
- label = "NodeStoreProvider role",
- description = "Property indicating that this component will not
register as a NodeStore but as a NodeStoreProvider with given role"
- )
+ /**
+ * NodeStoreProvider role
+ * <br>
+ * Property indicating that this component will not register as a
+ * NodeStore but as a NodeStoreProvider with given role
+ */
public static final String PROP_ROLE = "role";
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY, policy =
ReferencePolicy.DYNAMIC, target = "(role=copy-on-write)", bind =
"bindNodeStoreProvider", unbind = "unbindNodeStoreProvider")
private NodeStoreProvider nodeStoreProvider;
private String nodeStoreDescription;
@@ -162,6 +164,11 @@ public class COWNodeStoreService {
}
}
+ @Reference(
+ name = "nodeStoreProvider",
+ cardinality = ReferenceCardinality.MANDATORY,
+ policy = ReferencePolicy.DYNAMIC,
+ target = "(role=copy-on-write)")
protected void bindNodeStoreProvider(NodeStoreProvider ns, Map<String, ?>
config) {
this.nodeStoreProvider = ns;
this.nodeStoreDescription =
PropertiesUtil.toString(config.get("oak.nodestore.description"),
ns.getClass().getName());
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexInfoServiceImpl.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexInfoServiceImpl.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexInfoServiceImpl.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexInfoServiceImpl.java
Thu Sep 28 14:09:26 2017
@@ -25,28 +25,21 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.felix.scr.annotations.ReferencePolicy;
-import org.apache.felix.scr.annotations.ReferencePolicyOption;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.api.jmx.IndexStatsMBean;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
import org.apache.jackrabbit.util.ISO8601;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
+import org.osgi.service.component.annotations.ReferencePolicyOption;
@Component
-@Service
public class AsyncIndexInfoServiceImpl implements AsyncIndexInfoService {
- @Reference(policy = ReferencePolicy.DYNAMIC,
- cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE,
- policyOption = ReferencePolicyOption.GREEDY,
- referenceInterface = IndexStatsMBean.class
- )
private final Map<String, IndexStatsMBean> statsMBeans = new
ConcurrentHashMap<>();
@Reference
@@ -104,6 +97,12 @@ public class AsyncIndexInfoServiceImpl i
return root.getChildNode(AsyncIndexUpdate.ASYNC);
}
+ @Reference(name = "statsMBeans",
+ policy = ReferencePolicy.DYNAMIC,
+ cardinality = ReferenceCardinality.MULTIPLE,
+ policyOption = ReferencePolicyOption.GREEDY,
+ service = IndexStatsMBean.class
+ )
protected void bindStatsMBeans(IndexStatsMBean mBean) {
statsMBeans.put(mBean.getName(), mBean);
}
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexerService.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexerService.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexerService.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexerService.java
Thu Sep 28 14:09:26 2017
@@ -24,19 +24,11 @@ import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import java.util.Map;
import java.util.concurrent.TimeUnit;
import com.google.common.collect.Lists;
import com.google.common.io.Closer;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.ConfigurationPolicy;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
import org.apache.jackrabbit.oak.api.jmx.IndexStatsMBean;
-import org.apache.jackrabbit.oak.commons.PropertiesUtil;
import org.apache.jackrabbit.oak.osgi.OsgiWhiteboard;
import
org.apache.jackrabbit.oak.plugins.index.property.jmx.PropertyIndexAsyncReindex;
import
org.apache.jackrabbit.oak.plugins.index.property.jmx.PropertyIndexAsyncReindexMBean;
@@ -50,6 +42,14 @@ import org.apache.jackrabbit.oak.spi.whi
import org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardExecutor;
import org.apache.jackrabbit.oak.stats.StatisticsProvider;
import org.osgi.framework.BundleContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.ConfigurationPolicy;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -57,48 +57,45 @@ import static com.google.common.base.Pre
import static
org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.registerMBean;
@Component(
- policy = ConfigurationPolicy.REQUIRE,
- metatype = true,
- label = "Apache Jackrabbit Oak Async Indexer Service",
- description = "Configures the async indexer services which performs
periodic indexing of repository content"
-)
+ configurationPolicy = ConfigurationPolicy.REQUIRE,
+ service = {})
+@Designate(ocd = AsyncIndexerService.Configuration.class)
public class AsyncIndexerService {
- @Property(
- value = {
- "async:5"
- },
- cardinality = 1024,
- label = "Async Indexer Configs",
- description = "Async indexer configs in the form of
<name>:<interval in secs> e.g. \"async:5\""
- )
- private static final String PROP_ASYNC_CONFIG = "asyncConfigs";
-
- private static final int PROP_LEASE_TIMEOUT_DEFAULT = 15;
- @Property(
- intValue = PROP_LEASE_TIMEOUT_DEFAULT,
- label = "Lease time out",
- description = "Lease timeout in minutes. AsyncIndexer would wait
for this timeout period before breaking " +
- "async indexer lease"
- )
- private static final String PROP_LEASE_TIME_OUT = "leaseTimeOutMinutes";
- private static final long PROP_FAILING_INDEX_TIMEOUT_DEFAULT = 30 * 60;
- @Property(
- longValue = PROP_FAILING_INDEX_TIMEOUT_DEFAULT,
- label = "Failing Index Timeout (s)",
- description = "Time interval in seconds after which a failing
index is considered as corrupted and " +
- "ignored from further indexing untill reindex. To disable
this set it to 0"
+ @ObjectClassDefinition(
+ name = "Apache Jackrabbit Oak Async Indexer Service",
+ description = "Configures the async indexer services which
performs periodic indexing of repository content"
)
- private static final String PROP_FAILING_INDEX_TIMEOUT =
"failingIndexTimeoutSeconds";
+ @interface Configuration {
- private static final long PROP_ERROR_WARN_INTERVAL_DEFAULT = 15 * 60;
- @Property(
- longValue = PROP_ERROR_WARN_INTERVAL_DEFAULT,
- label = "Error warn interval (s)",
- description = "Time interval in seconds after which a warning log
would be logged for skipped indexes. " +
- "This is done to avoid flooding the log in case of
corrupted index."
- )
- private static final String PROP_ERROR_WARN_INTERVAL =
"errorWarnIntervalSeconds";
+ @AttributeDefinition(
+ cardinality = 1024,
+ name = "Async Indexer Configs",
+ description = "Async indexer configs in the form of
<name>:<interval in secs> e.g. \"async:5\""
+ )
+ String[] asyncConfigs() default {"async:5"};
+
+ @AttributeDefinition(
+ name = "Lease time out",
+ description = "Lease timeout in minutes. AsyncIndexer would
wait for this timeout period before breaking " +
+ "async indexer lease"
+ )
+ int leaseTimeOutMinutes() default 15;
+
+ @AttributeDefinition(
+ name = "Failing Index Timeout (s)",
+ description = "Time interval in seconds after which a failing
index is considered as corrupted and " +
+ "ignored from further indexing untill reindex. To
disable this set it to 0"
+ )
+ long failingIndexTimeoutSeconds() default 30 * 60;
+
+ @AttributeDefinition(
+ name = "Error warn interval (s)",
+ description = "Time interval in seconds after which a warning
log would be logged for skipped indexes. " +
+ "This is done to avoid flooding the log in case of
corrupted index."
+ )
+ long errorWarnIntervalSeconds() default 15 * 60;
+ }
private static final char CONFIG_SEP = ':';
private final Logger log = LoggerFactory.getLogger(getClass());
@@ -120,16 +117,15 @@ public class AsyncIndexerService {
private WhiteboardExecutor executor;
@Activate
- public void activate(BundleContext bundleContext, Map<String, Object>
config) {
- List<AsyncConfig> asyncIndexerConfig =
getAsyncConfig(PropertiesUtil.toStringArray(config.get
- (PROP_ASYNC_CONFIG), new String[0]));
+ public void activate(BundleContext bundleContext, Configuration config) {
+ List<AsyncConfig> asyncIndexerConfig =
getAsyncConfig(config.asyncConfigs());
Whiteboard whiteboard = new OsgiWhiteboard(bundleContext);
indexRegistration = new IndexMBeanRegistration(whiteboard);
indexEditorProvider.start(whiteboard);
executor = new WhiteboardExecutor();
executor.start(whiteboard);
- long leaseTimeOutMin =
PropertiesUtil.toInteger(config.get(PROP_LEASE_TIME_OUT),
PROP_LEASE_TIMEOUT_DEFAULT);
+ long leaseTimeOutMin = config.leaseTimeOutMinutes();
if (!(nodeStore instanceof Clusterable)){
leaseTimeOutMin = 0;
@@ -187,20 +183,17 @@ public class AsyncIndexerService {
//~-------------------------------------------< internal >
- private TrackingCorruptIndexHandler createCorruptIndexHandler(Map<String,
Object> config) {
- long failingIndexTimeoutSeconds =
PropertiesUtil.toLong(config.get(PROP_FAILING_INDEX_TIMEOUT),
- PROP_FAILING_INDEX_TIMEOUT_DEFAULT);
- long errorWarnIntervalSeconds =
PropertiesUtil.toLong(config.get(PROP_ERROR_WARN_INTERVAL),
- PROP_ERROR_WARN_INTERVAL_DEFAULT);
+ private TrackingCorruptIndexHandler
createCorruptIndexHandler(Configuration config) {
+ long failingIndexTimeoutSeconds = config.failingIndexTimeoutSeconds();
+ long errorWarnIntervalSeconds = config.errorWarnIntervalSeconds();
TrackingCorruptIndexHandler corruptIndexHandler = new
TrackingCorruptIndexHandler();
corruptIndexHandler.setCorruptInterval(failingIndexTimeoutSeconds,
TimeUnit.SECONDS);
corruptIndexHandler.setErrorWarnInterval(errorWarnIntervalSeconds,
TimeUnit.SECONDS);
if (failingIndexTimeoutSeconds <= 0){
- log.info("[{}] is set to {}. Auto corrupt index isolation handling
is disabled, warning log would be " +
- "logged every {} s",
- PROP_FAILING_INDEX_TIMEOUT, failingIndexTimeoutSeconds,
errorWarnIntervalSeconds);
+ log.info("[failingIndexTimeoutSeconds] is set to {}. Auto corrupt
index isolation handling is disabled, warning log would be " +
+ "logged every {} s", failingIndexTimeoutSeconds,
errorWarnIntervalSeconds);
} else {
log.info("Auto corrupt index isolation handling is enabled. Any
async index which fails for {}s would " +
"be marked as corrupted and would be skipped from further
indexing. A warning log would be " +
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java
Thu Sep 28 14:09:26 2017
@@ -25,15 +25,14 @@ import java.util.concurrent.ConcurrentHa
import com.google.common.base.Function;
import com.google.common.collect.Iterables;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.felix.scr.annotations.ReferencePolicy;
-import org.apache.felix.scr.annotations.ReferencePolicyOption;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStateUtils;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
+import org.osgi.service.component.annotations.ReferencePolicyOption;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,18 +40,12 @@ import static com.google.common.base.Pre
import static com.google.common.base.Predicates.notNull;
@Component
-@Service
public class IndexInfoServiceImpl implements IndexInfoService{
private final Logger log = LoggerFactory.getLogger(getClass());
@Reference
private IndexPathService indexPathService;
- @Reference(policy = ReferencePolicy.DYNAMIC,
- cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE,
- policyOption = ReferencePolicyOption.GREEDY,
- referenceInterface = IndexInfoProvider.class
- )
private final Map<String, IndexInfoProvider> infoProviders = new
ConcurrentHashMap<>();
@Reference
@@ -110,6 +103,12 @@ public class IndexInfoServiceImpl implem
return infoProvider.isValid(indexPath);
}
+ @Reference(name = "infoProviders",
+ policy = ReferencePolicy.DYNAMIC,
+ cardinality = ReferenceCardinality.MULTIPLE,
+ policyOption = ReferencePolicyOption.GREEDY,
+ service = IndexInfoProvider.class
+ )
public void bindInfoProviders(IndexInfoProvider infoProvider){
infoProviders.put(checkNotNull(infoProvider.getType()), infoProvider);
}
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexPathServiceImpl.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexPathServiceImpl.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexPathServiceImpl.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexPathServiceImpl.java
Thu Sep 28 14:09:26 2017
@@ -22,9 +22,7 @@ package org.apache.jackrabbit.oak.plugin
import java.util.Iterator;
import com.google.common.collect.Iterables;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
+import com.google.common.collect.Iterators;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.plugins.index.nodetype.NodeTypeIndexProvider;
import org.apache.jackrabbit.oak.query.NodeStateNodeTypeInfoProvider;
@@ -41,6 +39,8 @@ import org.apache.jackrabbit.oak.spi.sta
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStateUtils;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -53,7 +53,6 @@ import static org.apache.jackrabbit.oak.
import static
org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_DEFINITIONS_NODE_TYPE;
@Component
-@Service
public class IndexPathServiceImpl implements IndexPathService {
private final Logger log = LoggerFactory.getLogger(getClass());
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexerMBeanImpl.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexerMBeanImpl.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexerMBeanImpl.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexerMBeanImpl.java
Thu Sep 28 14:09:26 2017
@@ -22,10 +22,6 @@ package org.apache.jackrabbit.oak.plugin
import java.io.File;
import java.io.IOException;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Reference;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.api.jmx.IndexerMBean;
import org.apache.jackrabbit.oak.commons.jmx.AnnotatedStandardMBean;
@@ -41,12 +37,16 @@ import org.apache.jackrabbit.oak.spi.whi
import org.apache.jackrabbit.oak.spi.whiteboard.Tracker;
import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard;
import org.osgi.framework.BundleContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static
org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.registerMBean;
-@Component
+@Component(service = {})
public class IndexerMBeanImpl extends AnnotatedStandardMBean implements
IndexerMBean {
private final Logger log = LoggerFactory.getLogger(getClass());
@Reference
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/counter/NodeCounterEditorProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/counter/NodeCounterEditorProvider.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/counter/NodeCounterEditorProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/counter/NodeCounterEditorProvider.java
Thu Sep 28 14:09:26 2017
@@ -23,8 +23,6 @@ import java.util.UUID;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Type;
@@ -35,9 +33,9 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.spi.commit.Editor;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.osgi.service.component.annotations.Component;
-@Component
-@Service(IndexEditorProvider.class)
+@Component(service = IndexEditorProvider.class)
public class NodeCounterEditorProvider implements IndexEditorProvider {
public static final String TYPE = "counter";
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/datastore/DataStoreTextProviderService.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/datastore/DataStoreTextProviderService.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/datastore/DataStoreTextProviderService.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/datastore/DataStoreTextProviderService.java
Thu Sep 28 14:09:26 2017
@@ -21,44 +21,49 @@ package org.apache.jackrabbit.oak.plugin
import java.io.File;
import java.io.IOException;
-import java.util.Map;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.ConfigurationPolicy;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.jackrabbit.oak.commons.PropertiesUtil;
import
org.apache.jackrabbit.oak.plugins.index.fulltext.PreExtractedTextProvider;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.ConfigurationPolicy;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
@Component(
- policy = ConfigurationPolicy.REQUIRE,
- name =
"org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreTextProviderService",
- metatype = true,
- label = "Apache Jackrabbit Oak DataStore PreExtractedTextProvider",
- description = "Configures a PreExtractedTextProvider based on
extracted text stored on FileSystem"
-)
+ configurationPolicy = ConfigurationPolicy.REQUIRE,
+ service = {},
+ configurationPid =
"org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreTextProviderService")
+@Designate(ocd = DataStoreTextProviderService.Configuration.class)
public class DataStoreTextProviderService {
- @Property(
- label = "Path",
- description = "Local file system path where extracted text is
stored in files."
+
+ @ObjectClassDefinition(
+ name = "Apache Jackrabbit Oak DataStore PreExtractedTextProvider",
+ description = "Configures a PreExtractedTextProvider based on
extracted text stored on FileSystem"
)
- private static final String PROP_DIR = "dir";
+ @interface Configuration {
+
+ @AttributeDefinition(
+ name = "Path",
+ description = "Local file system path where extracted text is
stored in files."
+ )
+ String dir();
+ }
private DataStoreTextWriter textWriter;
private ServiceRegistration reg;
@Activate
- private void activate(BundleContext context, Map<String,? > config) throws
IOException {
- String dirPath = PropertiesUtil.toString(config.get(PROP_DIR), null);
-
- checkNotNull(dirPath, "Directory path not configured via '%s",
PROP_DIR);
+ private void activate(BundleContext context, Configuration config) throws
IOException {
+ String dirPath = config.dir();
+ checkNotNull(dirPath, "Directory path not configured via 'dir'");
File dir = new File(dirPath);
checkArgument(dir.exists(), "Directory %s does not exist",
dir.getAbsolutePath());
textWriter = new DataStoreTextWriter(dir, true);
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/inventory/IndexDefinitionPrinter.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/inventory/IndexDefinitionPrinter.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/inventory/IndexDefinitionPrinter.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/inventory/IndexDefinitionPrinter.java
Thu Sep 28 14:09:26 2017
@@ -23,27 +23,23 @@ import java.io.PrintWriter;
import org.apache.felix.inventory.Format;
import org.apache.felix.inventory.InventoryPrinter;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.commons.json.JsopBuilder;
import org.apache.jackrabbit.oak.json.Base64BlobSerializer;
-import org.apache.jackrabbit.oak.json.BlobSerializer;
import org.apache.jackrabbit.oak.json.JsonSerializer;
import org.apache.jackrabbit.oak.plugins.index.IndexPathService;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStateUtils;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
-@Component
-@Service
-@Properties({
- @Property(name = "felix.inventory.printer.name", value =
"oak-index-defn"),
- @Property(name = "felix.inventory.printer.title", value = "Oak Index
Definitions"),
- @Property(name = "felix.inventory.printer.format", value = {"JSON"})
-})
+@Component(
+ service = InventoryPrinter.class,
+ property = {
+ "felix.inventory.printer.name=oak-index-defn",
+ "felix.inventory.printer.title=Oak Index Definitions",
+ "felix.inventory.printer.format=JSON"
+ })
public class IndexDefinitionPrinter implements InventoryPrinter {
@Reference
@@ -51,6 +47,7 @@ public class IndexDefinitionPrinter impl
@Reference
private NodeStore nodeStore;
+
private String filter = "{\"properties\":[\"*\",
\"-:childOrder\"],\"nodes\":[\"*\", \"-:*\"]}";;
public IndexDefinitionPrinter() {
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/inventory/IndexPrinter.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/inventory/IndexPrinter.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/inventory/IndexPrinter.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/inventory/IndexPrinter.java
Thu Sep 28 14:09:26 2017
@@ -29,11 +29,6 @@ import com.google.common.collect.Immutab
import com.google.common.collect.ListMultimap;
import org.apache.felix.inventory.Format;
import org.apache.felix.inventory.InventoryPrinter;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.api.jmx.IndexStatsMBean;
import org.apache.jackrabbit.oak.commons.IOUtils;
import org.apache.jackrabbit.oak.plugins.index.AsyncIndexInfo;
@@ -41,16 +36,18 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.index.IndexInfo;
import org.apache.jackrabbit.oak.plugins.index.IndexInfoService;
import org.apache.jackrabbit.util.ISO8601;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import static com.google.common.base.Preconditions.checkNotNull;
-@Component
-@Service
-@Properties({
- @Property(name = "felix.inventory.printer.name", value =
"oak-index-stats"),
- @Property(name = "felix.inventory.printer.title", value = "Oak Index
Stats"),
- @Property(name = "felix.inventory.printer.format", value = { "TEXT"})
-})
+@Component(
+ service = InventoryPrinter.class,
+ property = {
+ "felix.inventory.printer.name=oak-index-stats",
+ "felix.inventory.printer.title=Oak Index Stats",
+ "felix.inventory.printer.format=TEXT"
+ })
public class IndexPrinter implements InventoryPrinter {
@Reference
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/nodetype/NodeTypeIndexProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/nodetype/NodeTypeIndexProvider.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/nodetype/NodeTypeIndexProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/nodetype/NodeTypeIndexProvider.java
Thu Sep 28 14:09:26 2017
@@ -22,9 +22,6 @@ import java.util.List;
import javax.annotation.Nonnull;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider;
import org.apache.jackrabbit.oak.spi.mount.Mounts;
import org.apache.jackrabbit.oak.spi.query.QueryIndex;
@@ -32,13 +29,14 @@ import org.apache.jackrabbit.oak.spi.que
import org.apache.jackrabbit.oak.spi.state.NodeState;
import com.google.common.collect.ImmutableList;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
/**
* <code>NodeTypeIndexProvider</code> is a {@link QueryIndexProvider} for
* {@link NodeTypeIndex} instances.
*/
-@Component
-@Service(QueryIndexProvider.class)
+@Component(service = QueryIndexProvider.class)
public class NodeTypeIndexProvider implements QueryIndexProvider {
@Reference
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProvider.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProvider.java
Thu Sep 28 14:09:26 2017
@@ -20,8 +20,6 @@ package org.apache.jackrabbit.oak.plugin
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.plugins.index.ContextAwareCallback;
import org.apache.jackrabbit.oak.plugins.index.IndexEditorProvider;
@@ -29,11 +27,11 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.spi.commit.Editor;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.osgi.service.component.annotations.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-@Component
-@Service(IndexEditorProvider.class)
+@Component(service = IndexEditorProvider.class)
public class OrderedPropertyIndexEditorProvider implements
IndexEditorProvider, OrderedIndex {
private static final Logger LOG =
LoggerFactory.getLogger(OrderedPropertyIndexEditorProvider.class);
private int hits;
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexProvider.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexProvider.java
Thu Sep 28 14:09:26 2017
@@ -21,17 +21,17 @@ import static com.google.common.collect.
import java.util.List;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.ConfigurationPolicy;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.spi.query.QueryIndex;
import org.apache.jackrabbit.oak.spi.query.QueryIndexProvider;
import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.ConfigurationPolicy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-@Component(policy = ConfigurationPolicy.REQUIRE)
-@Service(QueryIndexProvider.class)
+@Component(
+ configurationPolicy = ConfigurationPolicy.REQUIRE,
+ service = QueryIndexProvider.class)
public class OrderedPropertyIndexProvider implements QueryIndexProvider {
private static final Logger LOG =
LoggerFactory.getLogger(OrderedPropertyIndexProvider.class);
private static int hits;
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexEditorProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexEditorProvider.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexEditorProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexEditorProvider.java
Thu Sep 28 14:09:26 2017
@@ -18,10 +18,6 @@ package org.apache.jackrabbit.oak.plugin
import javax.annotation.Nonnull;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.plugins.index.IndexConstants;
import org.apache.jackrabbit.oak.plugins.index.IndexEditorProvider;
import org.apache.jackrabbit.oak.spi.commit.Editor;
@@ -30,6 +26,8 @@ import org.apache.jackrabbit.oak.spi.mou
import org.apache.jackrabbit.oak.spi.mount.Mounts;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
/**
* Service that provides PropertyIndex based editors.
@@ -38,9 +36,9 @@ import org.apache.jackrabbit.oak.spi.sta
* @see IndexEditorProvider
*
*/
-@Component
-@Property(name = IndexConstants.TYPE_PROPERTY_NAME , value = "property",
propertyPrivate = true)
-@Service(IndexEditorProvider.class)
+@Component(
+ service = IndexEditorProvider.class,
+ property = IndexConstants.TYPE_PROPERTY_NAME + "=property")
public class PropertyIndexEditorProvider implements IndexEditorProvider {
public static final String TYPE = "property";
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexInfoProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexInfoProvider.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexInfoProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexInfoProvider.java
Thu Sep 28 14:09:26 2017
@@ -21,9 +21,6 @@ package org.apache.jackrabbit.oak.plugin
import java.io.IOException;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.plugins.index.IndexConstants;
import org.apache.jackrabbit.oak.plugins.index.IndexInfo;
import org.apache.jackrabbit.oak.plugins.index.IndexInfoProvider;
@@ -32,11 +29,12 @@ import org.apache.jackrabbit.oak.spi.sta
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStateUtils;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import static com.google.common.base.Preconditions.checkArgument;
@Component
-@Service
public class PropertyIndexInfoProvider implements IndexInfoProvider {
@Reference
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexProvider.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexProvider.java
Thu Sep 28 14:09:26 2017
@@ -20,9 +20,6 @@ import java.util.List;
import javax.annotation.Nonnull;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider;
import org.apache.jackrabbit.oak.spi.mount.Mounts;
import org.apache.jackrabbit.oak.spi.query.QueryIndex;
@@ -30,6 +27,8 @@ import org.apache.jackrabbit.oak.spi.que
import org.apache.jackrabbit.oak.spi.state.NodeState;
import com.google.common.collect.ImmutableList;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
/**
* A provider for property indexes.
@@ -39,8 +38,7 @@ import com.google.common.collect.Immutab
*
* @see PropertyIndex
*/
-@Component
-@Service(QueryIndexProvider.class)
+@Component(service = QueryIndexProvider.class)
public class PropertyIndexProvider implements QueryIndexProvider {
@Reference
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/jmx/PropertyIndexStats.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/jmx/PropertyIndexStats.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/jmx/PropertyIndexStats.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/jmx/PropertyIndexStats.java
Thu Sep 28 14:09:26 2017
@@ -39,10 +39,6 @@ import javax.management.openmbean.Tabula
import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;
import com.google.common.collect.TreeTraverser;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Reference;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.api.Type;
@@ -56,13 +52,17 @@ import org.apache.jackrabbit.oak.spi.sta
import org.apache.jackrabbit.oak.spi.state.NodeStore;
import org.apache.jackrabbit.oak.spi.whiteboard.Registration;
import org.osgi.framework.BundleContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
import static org.apache.jackrabbit.oak.commons.PathUtils.concat;
import static
org.apache.jackrabbit.oak.plugins.index.IndexConstants.INDEX_CONTENT_NODE_NAME;
import static
org.apache.jackrabbit.oak.plugins.index.IndexConstants.UNIQUE_PROPERTY_NAME;
import static
org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.registerMBean;
-@Component
+@Component(service = {})
public class PropertyIndexStats extends AnnotatedStandardMBean implements
PropertyIndexStatsMBean {
@Reference
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceEditorProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceEditorProvider.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceEditorProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceEditorProvider.java
Thu Sep 28 14:09:26 2017
@@ -20,10 +20,6 @@ import static org.apache.jackrabbit.oak.
import javax.annotation.Nonnull;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.plugins.index.IndexConstants;
import org.apache.jackrabbit.oak.plugins.index.IndexEditorProvider;
import org.apache.jackrabbit.oak.plugins.index.IndexUpdateCallback;
@@ -32,10 +28,12 @@ import org.apache.jackrabbit.oak.spi.mou
import org.apache.jackrabbit.oak.spi.mount.Mounts;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
-@Component
-@Service(IndexEditorProvider.class)
-@Property(name = IndexConstants.TYPE_PROPERTY_NAME , value =
NodeReferenceConstants.TYPE, propertyPrivate = true)
+@Component(
+ service = IndexEditorProvider.class,
+ property = IndexConstants.TYPE_PROPERTY_NAME + "=" +
NodeReferenceConstants.TYPE)
public class ReferenceEditorProvider implements IndexEditorProvider {
@Reference
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndexProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndexProvider.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndexProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndexProvider.java
Thu Sep 28 14:09:26 2017
@@ -20,9 +20,6 @@ import java.util.List;
import javax.annotation.Nonnull;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider;
import org.apache.jackrabbit.oak.spi.mount.Mounts;
import org.apache.jackrabbit.oak.spi.query.QueryIndex;
@@ -30,12 +27,13 @@ import org.apache.jackrabbit.oak.spi.que
import org.apache.jackrabbit.oak.spi.state.NodeState;
import com.google.common.collect.ImmutableList;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
/**
* A provider for node references indices.
*/
-@Component
-@Service(QueryIndexProvider.class)
+@Component(service = QueryIndexProvider.class)
public class ReferenceIndexProvider implements QueryIndexProvider {
@Reference
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/itemsave/ItemSaveValidatorProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/itemsave/ItemSaveValidatorProvider.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/itemsave/ItemSaveValidatorProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/itemsave/ItemSaveValidatorProvider.java
Thu Sep 28 14:09:26 2017
@@ -20,21 +20,19 @@ package org.apache.jackrabbit.oak.plugin
import javax.annotation.CheckForNull;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
import org.apache.jackrabbit.oak.spi.commit.EditorProvider;
import org.apache.jackrabbit.oak.spi.commit.Validator;
import org.apache.jackrabbit.oak.spi.commit.ValidatorProvider;
import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.osgi.service.component.annotations.Component;
/**
* This validator checks that all changes are contained within the subtree
* rooted at a given path.
*/
-@Component
-@Service(EditorProvider.class)
+@Component(service = EditorProvider.class)
public class ItemSaveValidatorProvider extends ValidatorProvider {
@Override @CheckForNull
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/StatisticsProviderFactory.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/StatisticsProviderFactory.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/StatisticsProviderFactory.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/StatisticsProviderFactory.java
Thu Sep 28 14:09:26 2017
@@ -24,26 +24,26 @@ import java.io.IOException;
import java.util.Dictionary;
import java.util.Hashtable;
import java.util.List;
-import java.util.Map;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import javax.management.MBeanServer;
import com.google.common.collect.Lists;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.PropertyOption;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.jackrabbit.oak.commons.PropertiesUtil;
import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser;
import org.apache.jackrabbit.oak.stats.DefaultStatisticsProvider;
import org.apache.jackrabbit.oak.stats.StatisticsProvider;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
+import org.osgi.service.metatype.annotations.Option;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,12 +52,27 @@ import org.slf4j.LoggerFactory;
* <a href="http://metrics.dropwizard.io">Metrics</a> library is present or
not. If present
* then it configures a MetricsStatisticsProvider otherwise fallbacks to
DefaultStatisticsProvider
*/
-@Component(metatype = true,
- label = "Apache Jackrabbit Oak StatisticsProviderFactory",
- description = "Creates a statistics providers used by Oak. By default
if checks if Metrics (" +
- "See http://metrics.dropwizard.io) library is present then
that is used. Otherwise it fallbacks " +
- "to default")
+@Component
+@Designate(ocd = StatisticsProviderFactory.Configuration.class)
public class StatisticsProviderFactory {
+
+ @ObjectClassDefinition(
+ name = "Apache Jackrabbit Oak StatisticsProviderFactory",
+ description = "Creates a statistics providers used by Oak. By
default if checks if Metrics (" +
+ "See http://metrics.dropwizard.io) library is present then
that is used. Otherwise it fallbacks " +
+ "to default"
+ )
+ @interface Configuration {
+
+ @AttributeDefinition(options = {
+ @Option(label = TYPE_DEFAULT, value = TYPE_DEFAULT),
+ @Option(label = TYPE_METRIC, value = TYPE_METRIC),
+ @Option(label = TYPE_NONE, value = TYPE_NONE)
+ })
+ String providerType() default TYPE_AUTO;
+
+ }
+
private static final String TYPE_DEFAULT = "DEFAULT";
private static final String TYPE_METRIC = "METRIC";
private static final String TYPE_NONE = "NONE";
@@ -65,11 +80,6 @@ public class StatisticsProviderFactory {
private static final String METRIC_PROVIDER_CLASS =
"com.codahale.metrics.MetricRegistry";
- @Property(value = TYPE_AUTO, options = {
- @PropertyOption(name = TYPE_DEFAULT, value = TYPE_DEFAULT),
- @PropertyOption(name = TYPE_METRIC, value = TYPE_METRIC),
- @PropertyOption(name = TYPE_NONE, value = TYPE_NONE)})
- static final String PROVIDER_TYPE = "providerType";
private final Logger log = LoggerFactory.getLogger(getClass());
@@ -78,18 +88,18 @@ public class StatisticsProviderFactory {
* Further Metrics would bound to default platform MBeanServer is no
explicit
* server is provided.
*/
- @Reference(cardinality = ReferenceCardinality.OPTIONAL_UNARY)
+ @Reference(cardinality = ReferenceCardinality.OPTIONAL)
private MBeanServer server;
+
private StatisticsProvider statisticsProvider;
private List<ServiceRegistration> regs = Lists.newArrayList();
private ScheduledExecutorService executor;
private BundleContext bundleContext;
@Activate
- private void activate(BundleContext context, Map<String, Object> config) {
+ private void activate(BundleContext context, Configuration config) {
this.bundleContext = context;
- String providerType =
PropertiesUtil.toString(config.get(PROVIDER_TYPE), TYPE_AUTO);
- statisticsProvider = createProvider(providerType);
+ statisticsProvider = createProvider(config.providerType());
if (statisticsProvider != null) {
regs.add(context.registerService(StatisticsProvider.class.getName(),
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorProvider.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NameValidatorProvider.java
Thu Sep 28 14:09:26 2017
@@ -16,13 +16,12 @@
*/
package org.apache.jackrabbit.oak.plugins.name;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
import org.apache.jackrabbit.oak.spi.commit.EditorProvider;
import org.apache.jackrabbit.oak.spi.commit.Validator;
import org.apache.jackrabbit.oak.spi.commit.ValidatorProvider;
import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.osgi.service.component.annotations.Component;
import static com.google.common.collect.Sets.newHashSet;
import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
@@ -35,8 +34,7 @@ import static org.apache.jackrabbit.oak.
* as any name values are syntactically valid and that any namespace prefixes
* are properly registered.
*/
-@Component
-@Service(EditorProvider.class)
+@Component(service = EditorProvider.class)
public class NameValidatorProvider extends ValidatorProvider {
@Override
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditorProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditorProvider.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditorProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/name/NamespaceEditorProvider.java
Thu Sep 28 14:09:26 2017
@@ -19,8 +19,6 @@ package org.apache.jackrabbit.oak.plugin
import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
import static
org.apache.jackrabbit.oak.spi.namespace.NamespaceConstants.REP_NAMESPACES;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
import org.apache.jackrabbit.oak.spi.commit.Editor;
@@ -28,14 +26,14 @@ import org.apache.jackrabbit.oak.spi.com
import org.apache.jackrabbit.oak.spi.commit.SubtreeEditor;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.osgi.service.component.annotations.Component;
/**
* Validator service that checks that all node and property names as well
* as any name values are syntactically valid and that any namespace prefixes
* are properly registered.
*/
-@Component
-@Service(EditorProvider.class)
+@Component(service = EditorProvider.class)
public class NamespaceEditorProvider implements EditorProvider {
@Override
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditorProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditorProvider.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditorProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditorProvider.java
Thu Sep 28 14:09:26 2017
@@ -28,8 +28,6 @@ import javax.jcr.RepositoryException;
import javax.jcr.nodetype.NoSuchNodeTypeException;
import javax.jcr.nodetype.NodeType;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory;
@@ -40,11 +38,11 @@ import org.apache.jackrabbit.oak.spi.com
import org.apache.jackrabbit.oak.spi.commit.VisibleEditor;
import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.osgi.service.component.annotations.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-@Component
-@Service(EditorProvider.class)
+@Component(service = EditorProvider.class)
public class TypeEditorProvider implements EditorProvider {
private static final Logger LOG =
LoggerFactory.getLogger(TypeEditorProvider.class);
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeCollectorProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeCollectorProvider.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeCollectorProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeCollectorProvider.java
Thu Sep 28 14:09:26 2017
@@ -19,19 +19,10 @@
package org.apache.jackrabbit.oak.plugins.observation;
import static org.apache.jackrabbit.oak.commons.PathUtils.concat;
-import static org.apache.jackrabbit.oak.commons.PropertiesUtil.toInteger;
-import static org.apache.jackrabbit.oak.commons.PropertiesUtil.toBoolean;
-
-import java.util.Map;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Modified;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.JcrConstants;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.api.PropertyState;
@@ -43,7 +34,12 @@ import org.apache.jackrabbit.oak.spi.com
import org.apache.jackrabbit.oak.spi.observation.ChangeSet;
import org.apache.jackrabbit.oak.spi.observation.ChangeSetBuilder;
import org.apache.jackrabbit.oak.spi.state.NodeState;
-import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Modified;
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -58,38 +54,54 @@ import org.slf4j.LoggerFactory;
*/
@Component(
immediate = true,
- metatype = true,
- label = "Apache Jackrabbit Oak Change Collector Service",
- description = "It hooks into the commit and collects a ChangeSet of
changed items of a commit which " +
- "is then used to speed up observation processing"
-)
-@Property(name = "type", value = ChangeCollectorProvider.TYPE, propertyPrivate
= true)
-@Service({ValidatorProvider.class, EditorProvider.class})
+ service = {ValidatorProvider.class, EditorProvider.class},
+ property = "type=" + ChangeCollectorProvider.TYPE)
+@Designate(ocd = ChangeCollectorProvider.Configuration.class)
public class ChangeCollectorProvider extends ValidatorProvider {
- public static final String TYPE = "changeCollectorProvider";
-
- private static final Logger LOG =
LoggerFactory.getLogger(ChangeCollectorProvider.class);
private static final int DEFAULT_MAX_ITEMS = 50;
- @Property(longValue = DEFAULT_MAX_ITEMS, label = "Maximum Number of
Collected Items (per type)", description = "Integer value indicating maximum
number of individual items of changes - "
- + "such as property, nodeType, node name, path - to be collected.
If there are "
- + "more changes, the collection is considered failed and marked as
such. " + "Default is "
- + DEFAULT_MAX_ITEMS)
- private static final String PROP_MAX_ITEMS = "maxItems";
private static final int DEFAULT_MAX_PATH_DEPTH = 9;
- @Property(longValue = DEFAULT_MAX_PATH_DEPTH, label = "Maximum depth of
paths to collect", description = "Integer value indicating maximum depth of
paths to collect. "
- + "Paths deeper than this will not be individually reported, and
instead "
- + "a path at this max depth will be added. Note that this doesn't
affect "
- + "any other collected item such as property, nodeType - ie those
will "
- + "all be collected irrespective of this config param." + "Default
is " + DEFAULT_MAX_PATH_DEPTH)
- private static final String PROP_MAX_PATH_DEPTH = "maxPathDepth";
private static final boolean DEFAULT_ENABLED = true;
- @Property(boolValue = DEFAULT_ENABLED, label = "enable/disable this
validator",
- description = "Whether this validator is enabled. If disabled no
ChangeSet will be generated. Default is "
- + DEFAULT_ENABLED)
- private static final String PROP_ENABLED = "enabled";
+
+ @ObjectClassDefinition(
+ name = "Apache Jackrabbit Oak Change Collector Service",
+ description = "It hooks into the commit and collects a ChangeSet
of changed items of a commit which " +
+ "is then used to speed up observation processing"
+ )
+ @interface Configuration {
+ @AttributeDefinition(
+ name = "Maximum Number of Collected Items (per type)",
+ description = "Integer value indicating maximum number of
individual items of changes - "
+ + "such as property, nodeType, node name, path - to be
collected. If there are "
+ + "more changes, the collection is considered failed and
marked as such. "
+ + "Default is " + DEFAULT_MAX_ITEMS)
+ int maxItems() default DEFAULT_MAX_ITEMS;
+
+ @AttributeDefinition(
+ name = "Maximum depth of paths to collect",
+ description = "Integer value indicating maximum depth of paths
to collect. "
+ + "Paths deeper than this will not be individually reported,
and instead "
+ + "a path at this max depth will be added. Note that this
doesn't affect "
+ + "any other collected item such as property, nodeType - ie
those will "
+ + "all be collected irrespective of this config param." +
"Default is " + DEFAULT_MAX_PATH_DEPTH)
+ int maxPathDepth() default DEFAULT_MAX_PATH_DEPTH;
+
+ @AttributeDefinition(
+ name = "enable/disable this validator",
+ description = "Whether this validator is enabled. If disabled
no ChangeSet will be generated. Default is "
+ + DEFAULT_ENABLED)
+ boolean enabled() default DEFAULT_ENABLED;
+
+
+ }
+
+ public static final String TYPE = "changeCollectorProvider";
+
+ private static final Logger LOG =
LoggerFactory.getLogger(ChangeCollectorProvider.class);
+
+ public static final String COMMIT_CONTEXT_OBSERVATION_CHANGESET =
"oak.observation.changeSet";
/**
* There is one CollectorSupport per validation process - it is shared
@@ -277,21 +289,21 @@ public class ChangeCollectorProvider ext
private boolean enabled = DEFAULT_ENABLED;
@Activate
- protected void activate(ComponentContext context, Map<String, ?> config) {
+ protected void activate(final Configuration config) {
reconfig(config);
LOG.info("activate: maxItems=" + maxItems + ", maxPathDepth=" +
maxPathDepth + ", enabled=" + enabled);
}
@Modified
- protected void modified(final Map<String, Object> config) {
+ protected void modified(final Configuration config) {
reconfig(config);
LOG.info("modified: maxItems=" + maxItems + ", maxPathDepth=" +
maxPathDepth + ", enabled=" + enabled);
}
- private void reconfig(Map<String, ?> config) {
- maxItems = toInteger(config.get(PROP_MAX_ITEMS), DEFAULT_MAX_ITEMS);
- maxPathDepth = toInteger(config.get(PROP_MAX_PATH_DEPTH),
DEFAULT_MAX_PATH_DEPTH);
- enabled = toBoolean(config.get(PROP_ENABLED), DEFAULT_ENABLED);
+ private void reconfig(final Configuration config) {
+ maxItems = config.maxItems();
+ maxPathDepth = config.maxPathDepth();
+ enabled = config.enabled();
}
/** FOR TESTING-ONLY **/
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionHook.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionHook.java?rev=1810002&r1=1810001&r2=1810002&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionHook.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionHook.java
Thu Sep 28 14:09:26 2017
@@ -19,14 +19,13 @@
package org.apache.jackrabbit.oak.plugins.version;
import com.google.common.base.Function;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.spi.commit.CommitHook;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
import org.apache.jackrabbit.oak.spi.commit.EditorHook;
import org.apache.jackrabbit.oak.spi.commit.EditorProvider;
import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.osgi.service.component.annotations.Component;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -66,8 +65,7 @@ import static org.apache.jackrabbit.oak.
* </ol>
*
*/
-@Component
-@Service(CommitHook.class)
+@Component(service = CommitHook.class)
public class VersionHook implements CommitHook {
@Nonnull