You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by de...@apache.org on 2015/03/30 18:16:27 UTC
[1/2] incubator-nifi git commit: NIFI-424 Processors / Controller
Services should not be able to directly call ControllerService.initialize and
ControllerService.onPropertyModified
Repository: incubator-nifi
Updated Branches:
refs/heads/develop ed5fd733d -> e7d6d9458
NIFI-424
Processors / Controller Services should not be able to directly call ControllerService.initialize and ControllerService.onPropertyModified
Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/ac409fd6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/ac409fd6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/ac409fd6
Branch: refs/heads/develop
Commit: ac409fd69aefedbfa72f90d1647da4309cf46dfc
Parents: 3a27c37
Author: Brandon DeVries <br...@gmail.com>
Authored: Mon Mar 30 12:11:15 2015 -0400
Committer: Brandon DeVries <br...@gmail.com>
Committed: Mon Mar 30 12:11:15 2015 -0400
----------------------------------------------------------------------
.../StandardControllerServiceProvider.java | 6 ++
.../StandardControllerServiceProviderTest.java | 71 ++++++++++++++++++++
.../service/util/TestControllerService.java | 61 +++++++++++++++++
...org.apache.nifi.controller.ControllerService | 15 +++++
4 files changed, 153 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/ac409fd6/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java
index a40e43e..7a8e22f 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java
@@ -117,6 +117,12 @@ public class StandardControllerServiceProvider implements ControllerServiceProvi
final InvocationHandler invocationHandler = new InvocationHandler() {
@Override
public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
+
+ final String methodName = method.getName();
+ if("initialize".equals(methodName) || "onPropertyModified".equals(methodName)){
+ throw new UnsupportedOperationException(method + " may only be invoked by the NiFi framework");
+ }
+
final ControllerServiceNode node = serviceNodeHolder.get();
if (node.isDisabled() && !validDisabledMethods.contains(method)) {
// Use nar class loader here because we are implicitly calling toString() on the original implementation.
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/ac409fd6/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/StandardControllerServiceProviderTest.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/StandardControllerServiceProviderTest.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/StandardControllerServiceProviderTest.java
new file mode 100644
index 0000000..b889bc8
--- /dev/null
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/StandardControllerServiceProviderTest.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nifi.controller.service;
+
+import org.apache.nifi.controller.ControllerService;
+import org.apache.nifi.controller.StandardFlowServiceTest;
+import org.apache.nifi.nar.ExtensionManager;
+import org.apache.nifi.nar.NarClassLoaders;
+import org.apache.nifi.reporting.InitializationException;
+import org.apache.nifi.util.NiFiProperties;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class StandardControllerServiceProviderTest {
+
+ private ControllerService proxied;
+ private ControllerService implementation;
+
+ @BeforeClass
+ public static void setupSuite() throws Exception {
+ System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH, StandardFlowServiceTest.class.getResource("/conf/nifi.properties").getFile());
+ NiFiProperties properties = NiFiProperties.getInstance();
+ NarClassLoaders.load(properties);
+ ExtensionManager.discoverExtensions();
+ }
+
+ @Before
+ public void setup() throws Exception {
+ String id = "id";
+ String clazz = "org.apache.nifi.controller.service.util.TestControllerService";
+ ControllerServiceProvider provider = new StandardControllerServiceProvider();
+ ControllerServiceNode node = provider.createControllerService(clazz,id,true);
+ proxied = node.getProxiedControllerService();
+ implementation = node.getControllerServiceImplementation();
+ }
+
+ @Test (expected=UnsupportedOperationException.class)
+ public void testCallProxiedOnPropertyModified() {
+ proxied.onPropertyModified(null, "oldValue", "newValue");
+ }
+
+ @Test
+ public void testCallImplementationOnPropertyModified() {
+ implementation.onPropertyModified(null, "oldValue", "newValue");
+ }
+
+ @Test (expected=UnsupportedOperationException.class)
+ public void testCallProxiedInitialized() throws InitializationException {
+ proxied.initialize(null);
+ }
+
+ @Test
+ public void testCallImplementationInitialized() throws InitializationException {
+ implementation.initialize(null);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/ac409fd6/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/util/TestControllerService.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/util/TestControllerService.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/util/TestControllerService.java
new file mode 100644
index 0000000..95200a0
--- /dev/null
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/util/TestControllerService.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nifi.controller.service.util;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.components.ValidationContext;
+import org.apache.nifi.components.ValidationResult;
+import org.apache.nifi.controller.ControllerService;
+import org.apache.nifi.controller.ControllerServiceInitializationContext;
+import org.apache.nifi.reporting.InitializationException;
+
+public class TestControllerService implements ControllerService {
+
+ @Override
+ public Collection<ValidationResult> validate(ValidationContext context) {
+ return null;
+ }
+
+ @Override
+ public PropertyDescriptor getPropertyDescriptor(String name) {
+ return null;
+ }
+
+ @Override
+ public void onPropertyModified(PropertyDescriptor descriptor,
+ String oldValue, String newValue) {
+ }
+
+ @Override
+ public List<PropertyDescriptor> getPropertyDescriptors() {
+ return null;
+ }
+
+ @Override
+ public String getIdentifier() {
+ return null;
+ }
+
+ @Override
+ public void initialize(ControllerServiceInitializationContext context)
+ throws InitializationException {
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/ac409fd6/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/META-INF/services/org.apache.nifi.controller.ControllerService
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/META-INF/services/org.apache.nifi.controller.ControllerService b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/META-INF/services/org.apache.nifi.controller.ControllerService
new file mode 100644
index 0000000..bd6a4f3
--- /dev/null
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/META-INF/services/org.apache.nifi.controller.ControllerService
@@ -0,0 +1,15 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+org.apache.nifi.controller.service.util.TestControllerService
[2/2] incubator-nifi git commit: Merge branch 'rep3' into develop
Posted by de...@apache.org.
Merge branch 'rep3' into develop
Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/e7d6d945
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/e7d6d945
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/e7d6d945
Branch: refs/heads/develop
Commit: e7d6d94584b3f04e709eeaba532f142d11d75b39
Parents: ed5fd73 ac409fd
Author: Brandon DeVries <br...@gmail.com>
Authored: Mon Mar 30 12:14:20 2015 -0400
Committer: Brandon DeVries <br...@gmail.com>
Committed: Mon Mar 30 12:14:20 2015 -0400
----------------------------------------------------------------------
.../StandardControllerServiceProvider.java | 6 ++
.../StandardControllerServiceProviderTest.java | 71 ++++++++++++++++++++
.../service/util/TestControllerService.java | 61 +++++++++++++++++
...org.apache.nifi.controller.ControllerService | 15 +++++
4 files changed, 153 insertions(+)
----------------------------------------------------------------------