/* * Copyright 2010-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file 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 com.amazonaws.eclipse.lambda.project.classpath; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.jdt.core.ClasspathContainerInitializer; import org.eclipse.jdt.core.IClasspathContainer; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.JavaCore; import com.amazonaws.eclipse.lambda.LambdaPlugin; import com.amazonaws.eclipse.lambda.project.classpath.runtimelibrary.LambdaRuntimeLibraryManager; import com.amazonaws.eclipse.lambda.project.classpath.runtimelibrary.LambdaRuntimeLibraryVersion; /** * The Classpath container containing the AWS Lambda Java runtime JAR file. */ public class LambdaRuntimeClasspathContainerInitializer extends ClasspathContainerInitializer { @Override public void initialize(IPath containerPath, IJavaProject javaProject) throws CoreException { try { LambdaRuntimeLibraryVersion lastestRuntimeJar = LambdaRuntimeLibraryManager.getInstance().getLatestVersion(); LambdaRuntimeClasspathContainer classpathContainer = new LambdaRuntimeClasspathContainer(lastestRuntimeJar); JavaCore.setClasspathContainer( containerPath, new IJavaProject[] {javaProject}, new IClasspathContainer[] {classpathContainer}, null); } catch (Exception e) { String message = "Unable to initialize Lambda Java Runtime classpath."; LambdaPlugin.getDefault().reportException(message, e); } } }