Skip to content

Instantly share code, notes, and snippets.

View ChinaXing's full-sized avatar
🤣
I may be slow to respond.

chinaxing ChinaXing

🤣
I may be slow to respond.
View GitHub Profile
@ChinaXing
ChinaXing / java-attach-api.java
Last active September 13, 2017 08:10
attach to JVM use java attach API
import com.sun.tools.attach.VirtualMachine;
import com.sun.tools.attach.VirtualMachineDescriptor;
import java.util.List;
public class ListVM{
public static void main(String[] args){
List<VirtualMachineDescriptor> vmList = VirtualMachine.list();
for(VirtualMachineDescriptor vm : vmList){
System.out.println("name: " + vm.displayName() + " id :" + vm.id());
try{
@ChinaXing
ChinaXing / ChinaAgent.java
Created September 24, 2014 09:51
java agent
import java.lang.instrument.Instrumentation;
public class ChinaAgent {
public static void premain(String agentargs, Instrumentation inst){
System.out.println("premain with args : " + agentargs);
System.out.println("premain got instrumentation : " + inst.getClass().getName());
}
public static void premain(String agentargs){
System.out.println("args of premain : " + agentargs);
@ChinaXing
ChinaXing / max-length-limit.sql
Last active August 29, 2015 14:07
query max length of column content with limit
select max(length) from (
select length(description) as length from Table1 order by infoId desc limit 1000
) as T1;
@ChinaXing
ChinaXing / duplicate-insert.sql
Created October 8, 2014 12:32
insert by duplicate row
Insert into stuInfo2(u_id, u_name, u_pwd) select u_id, u_name, u_pwd from stuInfo
@ChinaXing
ChinaXing / maven-jarjar.mkdown
Last active August 29, 2015 14:07
maven jarjar plugin
@ChinaXing
ChinaXing / nc-transfer-dir.sh
Created October 15, 2014 03:37
nc transfer directory
# at source : 10.14.2.129
tar czf - canal-server | nc -l 9093
# at target : 10.14.2.199
nc 10.14.2.129 9093 | tar xzf -
@ChinaXing
ChinaXing / ClientWorkerLoader.java
Created October 17, 2014 16:53
use URLClassLoader to load Jar and add "lib" dir in the jar to the ClassLoader's classPath
package com.mogujie.nicolay.node.client;
import com.mogujie.nicolay.client.Worker;
import com.mogujie.nicolay.node.exception.LoadClientException;
import com.sun.deploy.util.URLUtil;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ChinaXing
ChinaXing / pom.xml
Last active August 29, 2015 14:07
Create Jar ball and includes its dependencies to lib directory
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mogujie.nicolay</groupId>
<artifactId>mini-demo</artifactId>
<version>1.0-SNAPSHOT</version>
@ChinaXing
ChinaXing / jstatd-permission.policy
Last active August 29, 2015 14:08
stated security permission policy
grant codeBase "file:${java.home}/../lib/tools.jar" {
permission java.util.PropertyPermission "java.rmi.server.ignoreSubClasses", "write";
permission "java.lang.RuntimePermission" "accessClassInPackage.sun.tools.jstatd";
permission "java.lang.RuntimePermission" "accessClassInPackage.sun.jvmstat.monitor";
permission "java.util.PropertyPermission" "sun.jvmstat.monitor.package","read";
permission "java.util.PropertyPermission" "sun.jvmstat.monitor.local","read";
permission "java.util.PropertyPermission" "sun.jvmstat.monitor.remote","read";
permission "java.util.PropertyPermission" "sun.jvmstat.monitor.MonitoredHost","read";
permission "java.lang.RuntimePermission" "accessClassInPackage.sun.jvmstat.perfdata.monitor.protocol.local";
permission "java.lang.RuntimePermission" "accessClassInPackage.sun.jvmstat.perfdata.monitor";
@ChinaXing
ChinaXing / RollingFileAppenderFactory
Last active August 29, 2015 14:08
A factory producing RollingFileAppender for SiftingAppender
package com.mogujie.nicolay.node;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.Appender;
import ch.qos.logback.core.Context;
import ch.qos.logback.core.FileAppender;
import ch.qos.logback.core.encoder.Encoder;
import ch.qos.logback.core.joran.spi.JoranException;
import ch.qos.logback.core.rolling.RollingFileAppender;
import ch.qos.logback.core.rolling.RollingPolicy;