use of org.mule.runtime.api.connection.ConnectionValidationResult in project mule by mulesoft.
the class DefaultConnectionManagerTestCase method cachedConnectionProviderConnectivity.
@Test
public void cachedConnectionProviderConnectivity() throws Exception {
ConnectionValidationResult result = connectionManager.testConnectivity(connectionProvider);
assertThat(result.isValid(), is(true));
verify(connectionProvider).connect();
verify(connectionProvider, atLeastOnce()).validate(connection);
verify(connectionProvider, never()).disconnect(connection);
}
use of org.mule.runtime.api.connection.ConnectionValidationResult in project mule by mulesoft.
the class DefaultConnectionManagerTestCase method failingConnectionProviderConnectivity.
@Test
public void failingConnectionProviderConnectivity() throws Exception {
ConnectionValidationResult validationResult = failure("oops", new Exception());
when(testeableConnectionProvider.validate(connection)).thenReturn(validationResult);
ConnectionValidationResult result = connectionManager.testConnectivity(testeableConnectionProvider);
assertThat(result, is(sameInstance(validationResult)));
verify(testeableConnectionProvider).connect();
verify(testeableConnectionProvider).validate(connection);
verify(testeableConnectionProvider).disconnect(connection);
}
use of org.mule.runtime.api.connection.ConnectionValidationResult in project mule by mulesoft.
the class ForwardingSoapClientConnectionProvider method validate.
@Override
public ConnectionValidationResult validate(ForwardingSoapClient connection) {
try {
serviceProvider.validateConfiguration();
MessageDispatcher messageDispatcher;
if (transportProvider instanceof ContextAwareMessageDispatcherProvider) {
messageDispatcher = ((ContextAwareMessageDispatcherProvider) transportProvider).connect(new DefaultDispatchingContext(client));
} else {
messageDispatcher = transportProvider.connect();
}
ConnectionValidationResult result = transportProvider.validate(messageDispatcher, serviceProvider);
transportProvider.disconnect(messageDispatcher);
return result;
} catch (Exception e) {
return failure(e.getMessage(), e);
}
}
use of org.mule.runtime.api.connection.ConnectionValidationResult in project mule by mulesoft.
the class LifecycleAwareConfigurationInstance method testConnectivity.
private void testConnectivity() throws MuleException {
ConnectionProvider provider = connectionProvider.get();
if (provider instanceof NoConnectivityTest) {
return;
}
Scheduler retryScheduler = schedulerService.ioScheduler();
RetryPolicyTemplate retryTemplate = connectionManager.getRetryTemplateFor(provider);
ReconnectionConfig reconnectionConfig = connectionManager.getReconnectionConfigFor(provider);
RetryCallback retryCallback = new RetryCallback() {
@Override
public void doWork(RetryContext context) throws Exception {
Lock lock = testConnectivityLock;
if (lock != null) {
final boolean lockAcquired = lock.tryLock();
if (lockAcquired) {
LOGGER.info("Doing testConnectivity() for config " + getName());
try {
ConnectionValidationResult result = connectionManager.testConnectivity(LifecycleAwareConfigurationInstance.this);
if (result.isValid()) {
context.setOk();
} else {
if ((reconnectionConfig.isFailsDeployment())) {
context.setFailed(result.getException());
throw new ConnectionException(format("Connectivity test failed for config '%s'", getName()), result.getException());
} else {
if (LOGGER.isInfoEnabled()) {
LOGGER.info(format("Connectivity test failed for config '%s'. Application deployment will continue. Error was: ", getName(), result.getMessage()), result.getException());
}
}
}
} finally {
lock.unlock();
}
} else {
LOGGER.warn("There is a testConnectivity() already running for config " + getName());
}
}
}
@Override
public String getWorkDescription() {
return format("Testing connectivity for config '%s'", getName());
}
@Override
public Object getWorkOwner() {
return value;
}
};
try {
retryTemplate.execute(retryCallback, retryScheduler);
} catch (Exception e) {
throw new DefaultMuleException(createStaticMessage(format("Could not perform connectivity testing for config '%s'", getName())), e);
} finally {
if (retryScheduler != null) {
retryScheduler.stop();
}
}
}
use of org.mule.runtime.api.connection.ConnectionValidationResult in project mule by mulesoft.
the class ExtensionConnectivityTestingStrategyTestCase method connectionProviderInConfigWithValidConnection.
@Test
public void connectionProviderInConfigWithValidConnection() throws MuleException {
ConnectionValidationResult connectionResult = testConnectivityWithConnectionProvider(true);
assertThat(connectionResult.isValid(), is(true));
}
Aggregations