Author: chetanm
Date: Thu Sep 28 10:28:18 2017
New Revision: 1809970
URL: http://svn.apache.org/viewvc?rev=1809970&view=rev
Log:
OAK-6736 - Upgrade PojoSR to handle SCR spec 1.3
Modified:
jackrabbit/oak/trunk/oak-pojosr/pom.xml
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/AbstractRepositoryFactoryTest.groovy
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/PropertyIndexReindexingTest.groovy
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/RepositoryClosedTest.groovy
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/SecurityProviderRegistrationTest.groovy
Modified: jackrabbit/oak/trunk/oak-pojosr/pom.xml
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-pojosr/pom.xml?rev=1809970&r1=1809969&r2=1809970&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-pojosr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-pojosr/pom.xml Thu Sep 28 10:28:18 2017
@@ -86,6 +86,16 @@
</build>
<dependencies>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>osgi.core</artifactId>
+ <version>6.0.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>osgi.cmpn</artifactId>
+ <version>6.0.0</version>
+ </dependency>
<!-- Pojo SR -->
<!-- Added first to ensure that in an IDE the transitive dependencies of
the oak modules
@@ -149,7 +159,7 @@
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr</artifactId>
- <version>1.8.2</version>
+ <version>2.0.12</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.mojo</groupId>
@@ -158,9 +168,14 @@
</exclusions>
</dependency>
<dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.dto</artifactId>
+ <version>1.0.0</version>
+ </dependency>
+ <dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.configadmin</artifactId>
- <version>1.8.6</version>
+ <version>1.8.16</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
Modified:
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/AbstractRepositoryFactoryTest.groovy
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/AbstractRepositoryFactoryTest.groovy?rev=1809970&r1=1809969&r2=1809970&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/AbstractRepositoryFactoryTest.groovy
(original)
+++
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/AbstractRepositoryFactoryTest.groovy
Thu Sep 28 10:28:18 2017
@@ -31,6 +31,9 @@ import org.osgi.framework.ServiceEvent
import org.osgi.framework.ServiceListener
import org.osgi.framework.ServiceReference
import org.osgi.service.cm.ConfigurationAdmin
+import org.osgi.service.component.runtime.ServiceComponentRuntime
+import org.osgi.service.component.runtime.dto.ComponentDescriptionDTO
+import org.osgi.util.promise.Promise
import org.osgi.util.tracker.ServiceTracker
import javax.jcr.*
@@ -223,4 +226,24 @@ abstract class AbstractRepositoryFactory
registry.removeServiceListener(listener)
}
}
+
+ protected void disableComponent(String name) {
+ ServiceComponentRuntime scr =
getServiceWithWait(ServiceComponentRuntime.class)
+ ComponentDescriptionDTO dto = getComponentDTO(scr, name)
+ Promise p = scr.disableComponent(dto)
+ p.getValue() //Block on get
+ }
+
+ protected void enableComponent(String name) {
+ ServiceComponentRuntime scr =
getServiceWithWait(ServiceComponentRuntime.class)
+ ComponentDescriptionDTO dto = getComponentDTO(scr, name)
+ Promise p = scr.enableComponent(dto)
+ p.getValue() //Block on get
+ }
+
+ ComponentDescriptionDTO getComponentDTO(ServiceComponentRuntime scr,
String name) {
+ ComponentDescriptionDTO dto = scr.getComponentDescriptionDTOs().find
{ComponentDescriptionDTO d -> (d.name == name) }
+ assert dto : "No component found with name $name"
+ return dto
+ }
}
Modified:
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/PropertyIndexReindexingTest.groovy
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/PropertyIndexReindexingTest.groovy?rev=1809970&r1=1809969&r2=1809970&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/PropertyIndexReindexingTest.groovy
(original)
+++
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/PropertyIndexReindexingTest.groovy
Thu Sep 28 10:28:18 2017
@@ -20,8 +20,6 @@
package org.apache.jackrabbit.oak.run.osgi
import org.apache.felix.connect.launch.PojoServiceRegistry
-import org.apache.felix.scr.Component
-import org.apache.felix.scr.ScrService
import org.apache.jackrabbit.JcrConstants
import org.apache.jackrabbit.commons.JcrUtils
import org.apache.jackrabbit.oak.plugins.index.IndexConstants
@@ -66,17 +64,14 @@ class PropertyIndexReindexingTest extend
s.logout()
//4. Disable the PropertyIndexEditor
- ScrService scr = getService(ScrService.class)
- Component[] c =
scr.getComponents('org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexEditorProvider')
- assert c
-
- c[0].disable()
+ def indexComponent =
'org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexEditorProvider'
+ disableComponent(indexComponent)
TimeUnit.SECONDS.sleep(1)
assert registry.getServiceReference(Repository.class.name) == null :
"Repository should be unregistered " +
"if no property index editor found"
//5. Re-enable the editor and wait untill repository gets re-registered
- c[0].enable()
+ enableComponent(indexComponent)
getServiceWithWait(Repository.class, registry.bundleContext)
//6. Reindex flag should be stable
Modified:
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/RepositoryClosedTest.groovy
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/RepositoryClosedTest.groovy?rev=1809970&r1=1809969&r2=1809970&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/RepositoryClosedTest.groovy
(original)
+++
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/RepositoryClosedTest.groovy
Thu Sep 28 10:28:18 2017
@@ -21,16 +21,12 @@ package org.apache.jackrabbit.oak.run.os
import groovy.util.logging.Slf4j
import org.apache.felix.connect.launch.PojoServiceRegistry
-import org.apache.felix.scr.Component
-import org.apache.felix.scr.ScrService
import org.junit.Assert
import org.junit.Before
-import org.junit.Ignore
import org.junit.Test
import javax.jcr.RepositoryException
import javax.jcr.Session
-import java.util.concurrent.TimeUnit
import static
org.apache.jackrabbit.oak.run.osgi.OakOSGiRepositoryFactory.REPOSITORY_CONFIG_FILE
@@ -51,10 +47,9 @@ class RepositoryClosedTest extends Abstr
Session s = createAdminSession()
//2 Trigger repository shutdown
- disableComponents(
- 'org.apache.jackrabbit.oak.jcr.osgi.RepositoryManager',
- 'org.apache.jackrabbit.oak.plugins.name.NameValidatorProvider'
- )
+
disableComponent('org.apache.jackrabbit.oak.jcr.osgi.RepositoryManager')
+
disableComponent('org.apache.jackrabbit.oak.plugins.name.NameValidatorProvider')
+
log.info("Repository shutdown complete. Proceeding with save")
//Null out repository to prevent shutdown attempt in teardown
@@ -74,15 +69,4 @@ class RepositoryClosedTest extends Abstr
OakOSGiRepositoryFactory.shutdown(registry, 5)
}
- private void disableComponents(String ... names){
- ScrService scr = getService(ScrService.class)
- names.each {String name ->
- Component[] c = scr.getComponents(name)
- assert c : "No component with name '$name' found"
- c[0].componentInstance?.dispose()
- log.info("Disabling {}", name)
- }
-
- TimeUnit.SECONDS.sleep(1)
- }
}
Modified:
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/SecurityProviderRegistrationTest.groovy
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/SecurityProviderRegistrationTest.groovy?rev=1809970&r1=1809969&r2=1809970&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/SecurityProviderRegistrationTest.groovy
(original)
+++
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/SecurityProviderRegistrationTest.groovy
Thu Sep 28 10:28:18 2017
@@ -17,8 +17,6 @@
package org.apache.jackrabbit.oak.run.osgi
import org.apache.felix.connect.launch.PojoServiceRegistry
-import org.apache.felix.scr.Component
-import org.apache.felix.scr.ScrService
import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters
import org.apache.jackrabbit.oak.spi.security.Context
import org.apache.jackrabbit.oak.spi.security.SecurityProvider
@@ -34,17 +32,14 @@ import org.apache.jackrabbit.oak.spi.sec
import
org.apache.jackrabbit.oak.spi.security.user.action.AuthorizableActionProvider
import org.junit.Before
import org.junit.Test
-import org.osgi.framework.Filter
import org.osgi.framework.ServiceEvent
-import org.osgi.framework.ServiceListener
import org.osgi.framework.ServiceReference
import org.osgi.service.cm.ConfigurationAdmin
-import java.util.concurrent.CountDownLatch
-import java.util.concurrent.TimeUnit
import static org.mockito.Mockito.mock
import static org.mockito.Mockito.when
+import static org.osgi.service.component.runtime.ServiceComponentRuntime.*
class SecurityProviderRegistrationTest extends AbstractRepositoryFactoryTest {
@@ -202,17 +197,15 @@ class SecurityProviderRegistrationTest e
//deactivate and its internal state would be reset
UserConfiguration userConfiguration =
getServiceWithWait(UserConfiguration.class)
-
- ScrService scr = getServiceWithWait(ScrService.class)
- Component[] c =
scr.getComponents('org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl')
- assert c
+ def authComponentName =
'org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl'
// 1. Disable AuthenticationConfiguration such that SecurityProvider
is unregistered
awaitServiceEvent({
- c[0].disable()
+ disableComponent(authComponentName)
},
'(objectClass=org.apache.jackrabbit.oak.spi.security.SecurityProvider)',
- ServiceEvent.UNREGISTERING
+ ServiceEvent.UNREGISTERING,
+ 5000
)
assert securityProviderServiceReferences == null
@@ -231,7 +224,7 @@ class SecurityProviderRegistrationTest e
// 3. Enable component again such that SecurityProvider gets
reactivated
awaitServiceEvent({
- c[0].enable()
+ enableComponent(authComponentName)
},
'(objectClass=org.apache.jackrabbit.oak.spi.security.SecurityProvider)',
ServiceEvent.REGISTERED
@@ -271,13 +264,11 @@ class SecurityProviderRegistrationTest e
assertAuthorizationConfig(securityProvider)
assertUserConfig(securityProvider, "jcr:read")
- ScrService scr = getServiceWithWait(ScrService.class)
- Component[] c =
scr.getComponents('org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl')
- assert c
+ String authComponentName =
'org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl'
// 2. Disable AuthenticationConfiguration such that SecurityProvider
is unregistered
awaitServiceEvent({
- c[0].disable()
+ disableComponent(authComponentName)
},
"(objectClass=org.apache.jackrabbit.oak.spi.security.SecurityProvider)",
ServiceEvent.UNREGISTERING
@@ -287,7 +278,7 @@ class SecurityProviderRegistrationTest e
// 3. Enable component again such that SecurityProvider gets
reactivated
awaitServiceEvent({
- c[0].enable()
+ enableComponent(authComponentName)
},
"(objectClass=org.apache.jackrabbit.oak.spi.security.SecurityProvider)",
ServiceEvent.REGISTERED