mirror of https://github.com/apache/nifi.git
Merge branch 'rep3' into develop
This commit is contained in:
commit
e7d6d94584
|
@ -117,6 +117,12 @@ public class StandardControllerServiceProvider implements ControllerServiceProvi
|
||||||
final InvocationHandler invocationHandler = new InvocationHandler() {
|
final InvocationHandler invocationHandler = new InvocationHandler() {
|
||||||
@Override
|
@Override
|
||||||
public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
|
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();
|
final ControllerServiceNode node = serviceNodeHolder.get();
|
||||||
if (node.isDisabled() && !validDisabledMethods.contains(method)) {
|
if (node.isDisabled() && !validDisabledMethods.contains(method)) {
|
||||||
// Use nar class loader here because we are implicitly calling toString() on the original implementation.
|
// Use nar class loader here because we are implicitly calling toString() on the original implementation.
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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 {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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
|
Loading…
Reference in New Issue