/* * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */ package org.mule.runtime.module.tooling.internal; import org.mule.runtime.deployment.model.api.application.Application; import org.mule.runtime.module.deployment.impl.internal.application.DefaultApplicationFactory; import org.mule.runtime.module.tooling.api.ToolingService; import org.mule.runtime.module.tooling.api.connectivity.ConnectivityTestingServiceBuilder; import java.io.File; import java.io.IOException; /** * Default implementation of {@code ToolingService}. * * @since 4.0 */ public class DefaultToolingService implements ToolingService { private final DefaultApplicationFactory applicationFactory; /** * @param applicationFactory factory for creating the {@link Application} */ public DefaultToolingService(DefaultApplicationFactory applicationFactory) { this.applicationFactory = applicationFactory; } /** * {@inheritDoc} */ @Override public ConnectivityTestingServiceBuilder newConnectivityTestingServiceBuilder() { return new DefaultConnectivityTestingServiceBuilder(applicationFactory); } /** * {@inheritDoc} */ @Override public Application createApplication(File applicationLocation) throws IOException { Application application = applicationFactory.createArtifact(applicationLocation); application.install(); application.lazyInit(); application.start(); return application; } }