/* * 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.deployment.impl.internal.application; import static java.lang.String.format; import static java.util.Arrays.stream; import static java.util.stream.Collectors.toList; import static org.apache.commons.io.FileUtils.toFile; import org.mule.runtime.deployment.model.api.application.Application; import org.mule.runtime.deployment.model.api.application.ApplicationDescriptor; import org.mule.runtime.deployment.model.api.plugin.ArtifactPluginDescriptor; import org.mule.runtime.module.deployment.impl.internal.artifact.ArtifactStartedSplashScreen; import java.util.Set; /** * Splash screen specific for {@link Application} startup based on it's {@link ApplicationDescriptor}. */ public class ApplicationStartedSplashScreen extends ArtifactStartedSplashScreen<ApplicationDescriptor> { @Override public void createMessage(ApplicationDescriptor descriptor) { doBody(format("Started app '%s'", descriptor.getName())); if (RUNTIME_VERBOSE_PROPERTY.isEnabled()) { listPlugins(descriptor); listLibraries(descriptor); } } private void listPlugins(ApplicationDescriptor descriptor) { Set<ArtifactPluginDescriptor> plugins = descriptor.getPlugins(); if (!plugins.isEmpty()) { doBody("Application plugins:"); for (ArtifactPluginDescriptor plugin : plugins) { doBody(format(VALUE_FORMAT, plugin.getName())); } } } protected void listLibraries(ApplicationDescriptor descriptor) { listItems(stream(descriptor.getClassLoaderModel().getUrls()).map(url -> toFile(url).getName()).collect(toList()), "Application libraries:"); } }