Commit 78b5a8f2 by QIANGLU

up

parent fcf0e5f4
......@@ -17,7 +17,10 @@ public class DumpClassesService implements ClassFileTransformer {
private static final List<String> SYSTEM_CLASS_PREFIX = Arrays.asList("java", "sum", "jdk");
public static void main(String[] args) throws ClassNotFoundException {
boolean loaderIsAvailable = null != Class.forName("org.apache.dubbo.common.extension.ExtensionLoader");
System.out.println(loaderIsAvailable);
}
@Override
public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException {
if (!isSystemClass(className)) {
......
......@@ -2,46 +2,50 @@
<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>
<parent>
<artifactId>spring-boot-dubbo</artifactId>
<groupId>com.nova</groupId>
<version>1.0-SNAPSHOT</version>
<artifactId>matrix</artifactId>
<groupId>com.secoo.mall</groupId>
<version>1.2.12.RELEASE</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>consumer</artifactId>
<properties>
<revision>2.7.5</revision>
<java.version>1.8</java.version>
<dubbo.version>2.7.0</dubbo.version>
</properties>
<artifactId>consumer</artifactId>
<dependencies>
<dependency>
<groupId>com.matrix</groupId>
<artifactId>dubbo-api</artifactId>
<version>1.0-SNAPSHOT</version>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.5</version>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.5</version>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- Zookeeper dependencies -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>2.7.5</version>
<type>pom</type>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
<groupId>com.matrix</groupId>
<artifactId>dubbo-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.secoo.mall</groupId>
<artifactId>matrix-protocol-dubbo-starter</artifactId>
</dependency>
</dependencies>
......
package com.matrix.dubbo.consumer.controller;
import com.alibaba.dubbo.common.Constants;
import com.matrix.dubbo.api.DemoService;
import com.matrix.dubbo.consumer.service.ConsumerService;
import com.matrix.dubbo.consumer.service.ConsumerServiceImpl;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.extension.ExtensionLoader;
import org.apache.dubbo.common.store.DataStore;
import org.apache.dubbo.common.threadpool.ThreadPool;
import org.apache.dubbo.rpc.Filter;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
/**
* @ClassName DemoController
......@@ -25,4 +36,32 @@ public class ConusmerController {
public String getDemo() {
return consumerService.getConsumer();
}
@RequestMapping("/clazz")
public String clazz() throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {
boolean loaderIsAvailable = null != Class.forName("org.apache.dubbo.common.extension.ExtensionLoader");
if (loaderIsAvailable) {
Class<?> loaderClazz = Class.forName("org.apache.dubbo.common.extension.ExtensionLoader");
Class<?> dataStore = Class.forName("org.apache.dubbo.common.store.DataStore");
Method method = loaderClazz.getDeclaredMethod("getExtensionLoader", Class.class);
Object loader = method.invoke(null, dataStore);
Method def = loaderClazz.getDeclaredMethod("getDefaultExtension");
Object extension = def.invoke(loader);
Class<?> storeClazz = extension.getClass();
Method getstore = storeClazz.getDeclaredMethod("get",String.class);
Map<String, Object> executors = (Map<String, Object>) getstore.invoke(extension, ExecutorService.class.getName());
System.out.println(executors);
// ExtensionLoader extensionLoader = ExtensionLoader.getExtensionLoader(DataStore.class);
// ExtensionLoader extensionLThreadPooloader = ExtensionLoader.getExtensionLoader(ThreadPool.class);
// ExtensionLoader s = ExtensionLoader.getExtensionLoader(ThreadPool.class);
}
return consumerService.getConsumer();
}
}
package com.matrix.dubbo.consumer.service;
import org.apache.dubbo.common.extension.Activate;
import org.apache.dubbo.rpc.*;
/**
* @ClassName TestFilter
* @Author QIANGLU
* @Date 2020/3/5 5:11 下午
* @Version 1.0
*/
@Activate(group ={"consumer","provider"},order = 4 )
public class TestFilter implements Filter {
@Override
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
return null;
}
public static void main(String[] args) throws ClassNotFoundException {
boolean loaderIsAvailable = null != Class.forName("org.apache.dubbo.common.extension.ExtensionLoader");
System.out.println(loaderIsAvailable);
}
}
test=com.matrix.dubbo.consumer.service.TestFilter
\ No newline at end of file
spring:
application:
name: consumer
main:
allow-bean-definition-overriding: true
server:
port: 6081
dubbo:
protocol:
name: dubbo
port: 11135
status: threadpool,memory,load
registry:
address: zookeeper://127.0.0.1:2181
scan:
base-packages: com.matrix.dubbo
application:
qos-enable: true
provider:
status: threadpool,memory,load
demo:
service:
version: 1.0
\ No newline at end of file
version: 1.0
management:
endpoints:
web:
exposure:
include: dubbo,dubbo-configs,dubbo-properties,health
......@@ -3,43 +3,46 @@
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>
<artifactId>provider</artifactId>
<parent>
<artifactId>spring-boot-dubbo</artifactId>
<groupId>com.nova</groupId>
<version>1.0-SNAPSHOT</version>
<artifactId>matrix</artifactId>
<groupId>com.secoo.mall</groupId>
<version>1.2.12.RELEASE</version>
</parent>
<artifactId>provider</artifactId>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.matrix</groupId>
<artifactId>dubbo-api</artifactId>
<version>1.0-SNAPSHOT</version>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.5</version>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.5</version>
<groupId>com.matrix</groupId>
<artifactId>dubbo-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- Zookeeper dependencies -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>2.7.5</version>
<type>pom</type>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
<groupId>com.secoo.mall</groupId>
<artifactId>matrix-protocol-dubbo-starter</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.matrix.dubbo.provider.service;
import com.matrix.dubbo.api.DemoService;
import org.apache.dubbo.common.constants.CommonConstants;
import org.apache.dubbo.common.extension.ExtensionLoader;
import org.apache.dubbo.common.store.DataStore;
import org.apache.dubbo.config.annotation.Service;
import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;
import javax.annotation.Resource;
import java.lang.reflect.Method;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
/**
* @ClassName DemoServiceImpl
......@@ -12,11 +20,34 @@ import javax.annotation.Resource;
* @Version 1.0
*/
@Service(version = "1.0")
public class DemoProviderServiceImpl implements DemoService{
public class DemoProviderServiceImpl implements DemoService {
@Override
public String getDemo() {
return "this is provider";
DataStore s = ExtensionLoader.getExtensionLoader(DataStore.class).getDefaultExtension();
try {
boolean loaderIsAvailable = null != Class.forName("org.apache.dubbo.common.extension.ExtensionLoader");
// if (loaderIsAvailable) {
// Class<?> loaderClazz = Class.forName("org.apache.dubbo.common.extension.ExtensionLoader");
// Class<?> dataStore = Class.forName("org.apache.dubbo.common.store.DataStore");
// Method method = loaderClazz.getDeclaredMethod("getExtensionLoader", Class.class);
// Object loader = method.invoke(null, dataStore);
//
// Method def = loaderClazz.getDeclaredMethod("getDefaultExtension");
// Object extension = def.invoke(loader);
//
// Class<?> storeClazz = extension.getClass();
// Method getstore = storeClazz.getDeclaredMethod("get", String.class);
// Map<String, Object> executors = (Map<String, Object>) getstore.invoke(extension, ExecutorService.class.getName());
// System.out.println(executors);
// }
} catch (Exception e) {
}
return "this is provider ";
}
}
......@@ -7,10 +7,16 @@ dubbo:
protocol:
name: dubbo
port: 11134
threadpool: fixed
threads: 100
registry:
address: zookeeper://127.0.0.1:2181
scan:
base-packages: com.matrix.dubbo.provider.service
application:
qos-enable: true
provider:
status: threadpool,memory,load
demo:
service:
version: 1.0
......@@ -18,4 +24,13 @@ demo:
embedded:
zookeeper:
port: 2181
\ No newline at end of file
port: 2181
management:
endpoints:
dubbo:
enabled: true
status:
defaults: load,threadpool
web:
exposure:
include: matrixlog,health,info,load,threadpool
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment