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(+)
----------------------------------------------------------------------