package hudson.plugins.skype; import groovy.lang.Binding; import hudson.Launcher; import hudson.model.AbstractBuild; import hudson.model.BuildListener; import hudson.util.spring.BeanBuilder; import java.io.File; /** * Skype Helper * * @author udagawa */ public class SkypeHelper { static final String JAVA_LIBRAY_PATH = "java.library.path"; static final String GROOVY_HOME = "GROOVY_HOME"; static final String SWT_DLL_WIN32 = "swt-win32-3232.dll"; static final String SKYPE_CONFIG_KEY = "skypeConfig"; public SkypeHelper() { // if GROOVY_HOME is set, error occured. System.setProperty(GROOVY_HOME, ""); // add dll(for Windows) addJavaLibrayPath(SWT_DLL_WIN32); } public String addJavaLibrayPath(final String dll) { String javaLibraryPath = System.getProperty(JAVA_LIBRAY_PATH); if (javaLibraryPath.indexOf(dll) < 0) { javaLibraryPath += File.pathSeparator + dll; System.setProperty(JAVA_LIBRAY_PATH, javaLibraryPath); } return javaLibraryPath; } public SkypeConfig createBinding(final AbstractBuild<?, ?> build, final Launcher launcher, final BuildListener listener) { final SkypeConfig config = new SkypeConfig(); config.build = build; config.launcher = launcher; config.listner = listener; return config; } public void executeScript(final String groovyScriptFile, final SkypeConfig config) { final BeanBuilder builder = new BeanBuilder(getClass().getClassLoader()); final Binding binding = new Binding(); binding.setProperty(SKYPE_CONFIG_KEY, config); builder .parse(getClass().getResourceAsStream(groovyScriptFile), binding); } }