/* * Copyright 2011-2012 the original author or authors. * * Licensed 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.springframework.data.hadoop.impala.provider; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.shell.core.CommandMarker; import org.springframework.shell.core.annotation.CliCommand; import org.springframework.shell.plugin.BannerProvider; import org.springframework.shell.support.util.StringUtils; import org.springframework.stereotype.Component; /** * Banner Provider to customize Spring Shell Banner * * @author Jarred Li * */ @Component @Order(Ordered.LOWEST_PRECEDENCE) public class ImpalaPluginBannerProvider implements BannerProvider, CommandMarker { @CliCommand(value = { "version" }, help = "Displays current CLI version") public String getBanner() { StringBuilder buf = new StringBuilder(); buf.append("_________ _______ ________ _______ _ _______ " + StringUtils.LINE_SEPARATOR); buf.append("\\__ __/( )( ____ )( ___ )( \\ ( ___ )" + StringUtils.LINE_SEPARATOR); buf.append(" ) ( | () () || ( ) || ( ) || ( | ( ) |" + StringUtils.LINE_SEPARATOR); buf.append(" | | | || || || (____) || (___) || | | (___) |" + StringUtils.LINE_SEPARATOR); buf.append(" | | | |(_)| || ______)| ___ || | | ___ |" + StringUtils.LINE_SEPARATOR); buf.append(" | | | | | || ( | ( ) || | | ( ) |" + StringUtils.LINE_SEPARATOR); buf.append("___) (___| ) ( || ) | ) ( || (____/\\| ) ( |" + StringUtils.LINE_SEPARATOR); buf.append("\\_______/|/ \\||/ |/ \\|(_______/|/ \\|" + StringUtils.LINE_SEPARATOR); buf.append("Version:" + this.getVersion()); return buf.toString(); } public String getVersion() { Package pkg = ImpalaPluginBannerProvider.class.getPackage(); String version = (pkg != null ? pkg.getImplementationVersion() : ""); return (StringUtils.hasText(version) ? version : "Unknown Version"); } public String getWelcomeMessage() { return "Welcome to Impala CLI"; } public String name() { return "Impala CLI Banner Provider"; } }