/* * Copyright 2002-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.integration.samples.travel; import java.util.Scanner; import org.apache.log4j.Logger; import org.springframework.context.support.GenericXmlApplicationContext; import org.springframework.core.env.ConfigurableEnvironment; public final class Main { private static final Logger LOGGER = Logger.getLogger(Main.class); /** * Prevent instantiation. */ private Main() {} /** * @param args Not used. */ public static void main(String... args) throws Exception{ final GenericXmlApplicationContext context = new GenericXmlApplicationContext(); final ConfigurableEnvironment env = context.getEnvironment(); boolean mapQuestApiKeyDefined = env.containsProperty("mapquest.apikey"); if (mapQuestApiKeyDefined) { env.setActiveProfiles("mapquest"); } context.load("classpath:META-INF/spring/*.xml"); context.refresh(); final TravelGateway travelGateway = context.getBean("travelGateway", TravelGateway.class); final Scanner scanner = new Scanner(System.in); System.out.println("\n=========================================================" + "\n " + "\n Welcome to the Spring Integration Travel App! " + "\n " + "\n For more information please visit: " + "\n http://www.springintegration.org/ " + "\n " + "\n=========================================================" ); System.out.println("Please select the city, for which you would like to get traffic and weather information:"); for (City city : City.values()) { System.out.println(String.format("\t%s. %s", city.getId(), city.getName())); } System.out.println("\tq. Quit the application"); System.out.print("Enter your choice: "); while (true) { final String input = scanner.nextLine(); if("q".equals(input.trim())) { System.out.println("Exiting application...bye."); System.exit(0); } else { final Integer cityId = Integer.valueOf(input); final City city = City.getCityForId(cityId); final String weatherReply = travelGateway.getWeatherByCity(city); System.out.println("\n=========================================================" + "\n Weather:" + "\n=========================================================" ); System.out.println(weatherReply); if (mapQuestApiKeyDefined) { final String trafficReply = travelGateway.getTrafficByCity(city); System.out.println("\n=========================================================" + "\n Traffic:" + "\n=========================================================" ); System.out.println(trafficReply); } else { LOGGER.warn("Skipping Traffic Information call. Did you setup your MapQuest API Key? " + "e.g. by calling:\n\n $ mvn exec:java -Dmapquest.apikey=\"your_mapquest_api_key_url_decoded\""); } System.out.println("\n=========================================================" + "\n Done." + "\n=========================================================" ); System.out.print("Enter your choice: "); } } } }