Remove support for Spring Loaded
Closes gh-7978
This commit is contained in:
@@ -1,58 +0,0 @@
|
||||
/*
|
||||
* Copyright 2012-2014 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.boot.loader.tools;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.management.ManagementFactory;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Utility class to attach an instrumentation agent to the running JVM.
|
||||
*
|
||||
* @author Dave Syer
|
||||
*/
|
||||
public abstract class AgentAttacher {
|
||||
|
||||
private static final String VIRTUAL_MACHINE_CLASS_NAME = "com.sun.tools.attach.VirtualMachine";
|
||||
|
||||
public static void attach(File agent) {
|
||||
try {
|
||||
String name = ManagementFactory.getRuntimeMXBean().getName();
|
||||
String pid = name.substring(0, name.indexOf('@'));
|
||||
ClassLoader classLoader = JvmUtils.getToolsClassLoader();
|
||||
Class<?> vmClass = classLoader.loadClass(VIRTUAL_MACHINE_CLASS_NAME);
|
||||
Method attachMethod = vmClass.getDeclaredMethod("attach", String.class);
|
||||
Object vm = attachMethod.invoke(null, pid);
|
||||
Method loadAgentMethod = vmClass.getDeclaredMethod("loadAgent", String.class);
|
||||
loadAgentMethod.invoke(vm, agent.getAbsolutePath());
|
||||
vmClass.getDeclaredMethod("detach").invoke(vm);
|
||||
}
|
||||
catch (Exception ex) {
|
||||
throw new RuntimeException("Unable to attach agent to the JVM", ex);
|
||||
}
|
||||
}
|
||||
|
||||
public static List<String> commandLineArguments() {
|
||||
return ManagementFactory.getRuntimeMXBean().getInputArguments();
|
||||
}
|
||||
|
||||
public static boolean hasNoVerify() {
|
||||
return commandLineArguments().contains("-Xverify:none");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
/*
|
||||
* Copyright 2012-2014 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.boot.loader.tools;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLClassLoader;
|
||||
|
||||
/**
|
||||
* Java Virtual Machine Utils.
|
||||
*
|
||||
* @author Phillip Webb
|
||||
*/
|
||||
abstract class JvmUtils {
|
||||
|
||||
/**
|
||||
* Various search locations for tools, including the odd Java 6 OSX jar.
|
||||
*/
|
||||
private static final String[] TOOLS_LOCATIONS = { "lib/tools.jar", "../lib/tools.jar",
|
||||
"../Classes/classes.jar" };
|
||||
|
||||
public static ClassLoader getToolsClassLoader() {
|
||||
ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
|
||||
return new URLClassLoader(new URL[] { getToolsJarUrl() }, systemClassLoader);
|
||||
}
|
||||
|
||||
public static URL getToolsJarUrl() {
|
||||
String javaHome = getJavaHome();
|
||||
for (String location : TOOLS_LOCATIONS) {
|
||||
try {
|
||||
URL url = new URL(javaHome + "/" + location);
|
||||
if (new File(url.toURI()).exists()) {
|
||||
return url;
|
||||
}
|
||||
}
|
||||
catch (Exception ex) {
|
||||
// Ignore and try the next location
|
||||
}
|
||||
}
|
||||
throw new IllegalStateException("Unable to locate tools.jar");
|
||||
}
|
||||
|
||||
private static String getJavaHome() {
|
||||
try {
|
||||
return new File(System.getProperty("java.home")).toURI().toURL()
|
||||
.toExternalForm();
|
||||
}
|
||||
catch (MalformedURLException e) {
|
||||
throw new IllegalStateException("Cannot locate java.home", e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
/*
|
||||
* Copyright 2012-2016 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.boot.loader.tools;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.URL;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests for {@link JvmUtils}.
|
||||
*
|
||||
* @author Phillip Webb
|
||||
*/
|
||||
public class JvmUtilsTests {
|
||||
|
||||
@Test
|
||||
public void getToolsJar() throws Exception {
|
||||
URL jarUrl = JvmUtils.getToolsJarUrl();
|
||||
assertThat(jarUrl.toString()).endsWith(".jar");
|
||||
assertThat(new File(jarUrl.toURI()).exists()).isTrue();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user