DUBBO-150 去掉@Extension,改为name=class配置扩展点
git-svn-id: http://code.alibabatech.com/svn/dubbo/trunk@978 1a56cb94-b969-4eaa-88fa-be21384802f2
This commit is contained in:
parent
ae879965bb
commit
cd58a5ecdf
|
|
@ -16,7 +16,7 @@
|
|||
package com.alibaba.dubbo.rpc.cluster;
|
||||
|
||||
import com.alibaba.dubbo.common.Adaptive;
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.Default;
|
||||
import com.alibaba.dubbo.rpc.Invoker;
|
||||
import com.alibaba.dubbo.rpc.RpcException;
|
||||
import com.alibaba.dubbo.rpc.cluster.support.FailoverCluster;
|
||||
|
|
@ -29,7 +29,7 @@ import com.alibaba.dubbo.rpc.cluster.support.FailoverCluster;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension(FailoverCluster.NAME)
|
||||
@Default(FailoverCluster.NAME)
|
||||
public interface Cluster {
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ package com.alibaba.dubbo.rpc.cluster;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.Default;
|
||||
import com.alibaba.dubbo.rpc.Invocation;
|
||||
import com.alibaba.dubbo.rpc.Invoker;
|
||||
import com.alibaba.dubbo.rpc.RpcException;
|
||||
|
|
@ -32,7 +32,7 @@ import com.alibaba.dubbo.rpc.cluster.loadbalance.RandomLoadBalance;
|
|||
* @author qian.lei
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension(RandomLoadBalance.NAME)
|
||||
@Default(RandomLoadBalance.NAME)
|
||||
public interface LoadBalance {
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
package com.alibaba.dubbo.rpc.cluster;
|
||||
|
||||
import com.alibaba.dubbo.common.Adaptive;
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.Default;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.rpc.Invocation;
|
||||
|
||||
|
|
@ -29,7 +29,7 @@ import com.alibaba.dubbo.rpc.Invocation;
|
|||
* @see com.alibaba.dubbo.rpc.cluster.Directory#list(Invocation)
|
||||
* @author chao.liuc
|
||||
*/
|
||||
@Extension
|
||||
@Default
|
||||
public interface RouterFactory {
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -19,17 +19,15 @@ import java.util.List;
|
|||
import java.util.Random;
|
||||
|
||||
import com.alibaba.dubbo.common.Constants;
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.rpc.Invocation;
|
||||
import com.alibaba.dubbo.rpc.Invoker;
|
||||
import com.alibaba.dubbo.rpc.RpcStatus;
|
||||
import com.alibaba.dubbo.rpc.Invocation;
|
||||
|
||||
/**
|
||||
* LeastActiveLoadBalance
|
||||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension(LeastActiveLoadBalance.NAME)
|
||||
public class LeastActiveLoadBalance extends AbstractLoadBalance {
|
||||
public static final String NAME = "leastactive";
|
||||
|
||||
|
|
|
|||
|
|
@ -15,12 +15,11 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.rpc.cluster.loadbalance;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.rpc.Invoker;
|
||||
import com.alibaba.dubbo.rpc.Invocation;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import com.alibaba.dubbo.rpc.Invocation;
|
||||
import com.alibaba.dubbo.rpc.Invoker;
|
||||
|
||||
/**
|
||||
* random load balance.
|
||||
|
|
@ -28,7 +27,6 @@ import com.alibaba.dubbo.rpc.Invocation;
|
|||
* @author qianlei
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension(RandomLoadBalance.NAME)
|
||||
public class RandomLoadBalance extends AbstractLoadBalance {
|
||||
public static final String NAME = "random";
|
||||
|
||||
|
|
|
|||
|
|
@ -15,14 +15,13 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.rpc.cluster.loadbalance;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.utils.AtomicPositiveInteger;
|
||||
import com.alibaba.dubbo.rpc.Invoker;
|
||||
import com.alibaba.dubbo.rpc.Invocation;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
|
||||
import com.alibaba.dubbo.common.utils.AtomicPositiveInteger;
|
||||
import com.alibaba.dubbo.rpc.Invocation;
|
||||
import com.alibaba.dubbo.rpc.Invoker;
|
||||
|
||||
/**
|
||||
* Round robin load balance.
|
||||
|
|
@ -30,7 +29,6 @@ import com.alibaba.dubbo.rpc.Invocation;
|
|||
* @author qian.lei
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension(RoundRobinLoadBalance.NAME)
|
||||
public class RoundRobinLoadBalance extends AbstractLoadBalance {
|
||||
public static final String NAME = "roundrobin";
|
||||
|
||||
|
|
|
|||
|
|
@ -15,15 +15,13 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.rpc.cluster.merger;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.rpc.cluster.Merger;
|
||||
|
||||
import java.lang.reflect.Array;
|
||||
|
||||
import com.alibaba.dubbo.rpc.cluster.Merger;
|
||||
|
||||
/**
|
||||
* @author <a href="mailto:gang.lvg@alibaba-inc.com">kimi</a>
|
||||
*/
|
||||
@Extension( ArrayMerger.NAME )
|
||||
public class ArrayMerger implements Merger<Object> {
|
||||
|
||||
public static final String NAME = "array";
|
||||
|
|
|
|||
|
|
@ -15,9 +15,6 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.rpc.cluster.merger;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.rpc.cluster.Merger;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
|
|
@ -25,10 +22,11 @@ import java.util.Iterator;
|
|||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.alibaba.dubbo.rpc.cluster.Merger;
|
||||
|
||||
/**
|
||||
* @author <a href="mailto:gang.lvg@alibaba-inc.com">kimi</a>
|
||||
*/
|
||||
@Extension( CollectionMerger.NAME )
|
||||
public class CollectionMerger implements Merger<Collection<Object>> {
|
||||
|
||||
public static final String NAME = "collection";
|
||||
|
|
|
|||
|
|
@ -15,16 +15,14 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.rpc.cluster.merger;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.rpc.cluster.Merger;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.alibaba.dubbo.rpc.cluster.Merger;
|
||||
|
||||
/**
|
||||
* @author <a href="mailto:gang.lvg@alibaba-inc.com">kimi</a>
|
||||
*/
|
||||
@Extension( MapMerger.NAME )
|
||||
public class MapMerger implements Merger<Map<Object, Object>> {
|
||||
|
||||
public static final String NAME = "map";
|
||||
|
|
|
|||
|
|
@ -15,18 +15,16 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.rpc.cluster.router;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.utils.IOUtils;
|
||||
import com.alibaba.dubbo.rpc.RpcConstants;
|
||||
import com.alibaba.dubbo.rpc.cluster.Router;
|
||||
import com.alibaba.dubbo.rpc.cluster.RouterFactory;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.utils.IOUtils;
|
||||
import com.alibaba.dubbo.rpc.RpcConstants;
|
||||
import com.alibaba.dubbo.rpc.cluster.Router;
|
||||
import com.alibaba.dubbo.rpc.cluster.RouterFactory;
|
||||
|
||||
@Extension(FileRouterFactory.NAME)
|
||||
public class FileRouterFactory implements RouterFactory {
|
||||
|
||||
public static final String NAME = "file";
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.rpc.cluster.router;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.rpc.cluster.Router;
|
||||
import com.alibaba.dubbo.rpc.cluster.RouterFactory;
|
||||
|
|
@ -34,7 +33,6 @@ import com.alibaba.dubbo.rpc.cluster.RouterFactory;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension(ScriptRouterFactory.NAME)
|
||||
public class ScriptRouterFactory implements RouterFactory {
|
||||
|
||||
public static final String NAME = "script";
|
||||
|
|
|
|||
|
|
@ -17,11 +17,10 @@ package com.alibaba.dubbo.rpc.cluster.support;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.rpc.Invoker;
|
||||
import com.alibaba.dubbo.rpc.RpcException;
|
||||
import com.alibaba.dubbo.rpc.Invocation;
|
||||
import com.alibaba.dubbo.rpc.Invoker;
|
||||
import com.alibaba.dubbo.rpc.Result;
|
||||
import com.alibaba.dubbo.rpc.RpcException;
|
||||
import com.alibaba.dubbo.rpc.cluster.Cluster;
|
||||
import com.alibaba.dubbo.rpc.cluster.Directory;
|
||||
import com.alibaba.dubbo.rpc.cluster.LoadBalance;
|
||||
|
|
@ -31,7 +30,6 @@ import com.alibaba.dubbo.rpc.cluster.LoadBalance;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension(AvailableCluster.NAME)
|
||||
public class AvailableCluster implements Cluster {
|
||||
|
||||
public static final String NAME = "available";
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.rpc.cluster.support;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.rpc.Invoker;
|
||||
import com.alibaba.dubbo.rpc.RpcException;
|
||||
import com.alibaba.dubbo.rpc.cluster.Cluster;
|
||||
|
|
@ -28,7 +27,6 @@ import com.alibaba.dubbo.rpc.cluster.Directory;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension(FailbackCluster.NAME)
|
||||
public class FailbackCluster implements Cluster {
|
||||
|
||||
public final static String NAME = "failback";
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.rpc.cluster.support;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.rpc.Invoker;
|
||||
import com.alibaba.dubbo.rpc.RpcException;
|
||||
import com.alibaba.dubbo.rpc.cluster.Cluster;
|
||||
|
|
@ -28,7 +27,6 @@ import com.alibaba.dubbo.rpc.cluster.Directory;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension(FailfastCluster.NAME)
|
||||
public class FailfastCluster implements Cluster {
|
||||
|
||||
public final static String NAME = "failfast";
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ package com.alibaba.dubbo.rpc.cluster.support;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.Version;
|
||||
import com.alibaba.dubbo.common.utils.NetUtils;
|
||||
import com.alibaba.dubbo.rpc.Invocation;
|
||||
|
|
@ -50,7 +49,7 @@ public class FailfastClusterInvoker<T> extends AbstractClusterInvoker<T>{
|
|||
if (e instanceof RpcException && ((RpcException)e).isBiz()) { // biz exception.
|
||||
throw (RpcException) e;
|
||||
}
|
||||
throw new RpcException(e instanceof RpcException ? ((RpcException)e).getCode() : 0, "Failfast invoke providers " + invoker.getUrl() + " " + loadbalance.getClass().getAnnotation(Extension.class).value() + " select from all providers " + invokers + " for service " + getInterface().getName() + " method " + invocation.getMethodName() + " on consumer " + NetUtils.getLocalHost() + " use dubbo version " + Version.getVersion() + ", but no luck to perform the invocation. Last error is: " + e.getMessage(), e);
|
||||
throw new RpcException(e instanceof RpcException ? ((RpcException)e).getCode() : 0, "Failfast invoke providers " + invoker.getUrl() + " " + loadbalance.getClass().getSimpleName() + " select from all providers " + invokers + " for service " + getInterface().getName() + " method " + invocation.getMethodName() + " on consumer " + NetUtils.getLocalHost() + " use dubbo version " + Version.getVersion() + ", but no luck to perform the invocation. Last error is: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -15,7 +15,6 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.rpc.cluster.support;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.rpc.Invoker;
|
||||
import com.alibaba.dubbo.rpc.RpcException;
|
||||
import com.alibaba.dubbo.rpc.cluster.Cluster;
|
||||
|
|
@ -28,7 +27,6 @@ import com.alibaba.dubbo.rpc.cluster.Directory;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension(FailoverCluster.NAME)
|
||||
public class FailoverCluster implements Cluster {
|
||||
|
||||
public final static String NAME = "failover";
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.rpc.cluster.support;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.rpc.Invoker;
|
||||
import com.alibaba.dubbo.rpc.RpcException;
|
||||
import com.alibaba.dubbo.rpc.cluster.Cluster;
|
||||
|
|
@ -28,7 +27,6 @@ import com.alibaba.dubbo.rpc.cluster.Directory;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension(FailsafeCluster.NAME)
|
||||
public class FailsafeCluster implements Cluster {
|
||||
|
||||
public final static String NAME = "failsafe";
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.rpc.cluster.support;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.rpc.Invoker;
|
||||
import com.alibaba.dubbo.rpc.RpcException;
|
||||
import com.alibaba.dubbo.rpc.cluster.Cluster;
|
||||
|
|
@ -28,7 +27,6 @@ import com.alibaba.dubbo.rpc.cluster.Directory;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension(ForkingCluster.NAME)
|
||||
public class ForkingCluster implements Cluster {
|
||||
|
||||
public final static String NAME = "forking";
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.rpc.cluster.support;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.rpc.Invoker;
|
||||
import com.alibaba.dubbo.rpc.RpcException;
|
||||
import com.alibaba.dubbo.rpc.cluster.Cluster;
|
||||
|
|
@ -24,7 +23,6 @@ import com.alibaba.dubbo.rpc.cluster.Directory;
|
|||
/**
|
||||
* @author <a href="mailto:gang.lvg@alibaba-inc.com">kimi</a>
|
||||
*/
|
||||
@Extension( MergeableCluster.NAME )
|
||||
public class MergeableCluster implements Cluster {
|
||||
|
||||
public static final String NAME = "mergeable";
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
com.alibaba.dubbo.rpc.cluster.support.FailoverCluster
|
||||
com.alibaba.dubbo.rpc.cluster.support.FailfastCluster
|
||||
com.alibaba.dubbo.rpc.cluster.support.FailsafeCluster
|
||||
com.alibaba.dubbo.rpc.cluster.support.FailbackCluster
|
||||
com.alibaba.dubbo.rpc.cluster.support.ForkingCluster
|
||||
com.alibaba.dubbo.rpc.cluster.support.AvailableCluster
|
||||
com.alibaba.dubbo.rpc.cluster.support.MergeableCluster
|
||||
failover=com.alibaba.dubbo.rpc.cluster.support.FailoverCluster
|
||||
failfast=com.alibaba.dubbo.rpc.cluster.support.FailfastCluster
|
||||
failsafe=com.alibaba.dubbo.rpc.cluster.support.FailsafeCluster
|
||||
failback=com.alibaba.dubbo.rpc.cluster.support.FailbackCluster
|
||||
forking=com.alibaba.dubbo.rpc.cluster.support.ForkingCluster
|
||||
available=com.alibaba.dubbo.rpc.cluster.support.AvailableCluster
|
||||
mergeable=com.alibaba.dubbo.rpc.cluster.support.MergeableCluster
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
com.alibaba.dubbo.rpc.cluster.loadbalance.LoadBalanceAdptive
|
||||
com.alibaba.dubbo.rpc.cluster.loadbalance.RandomLoadBalance
|
||||
com.alibaba.dubbo.rpc.cluster.loadbalance.RoundRobinLoadBalance
|
||||
com.alibaba.dubbo.rpc.cluster.loadbalance.LeastActiveLoadBalance
|
||||
adptive=com.alibaba.dubbo.rpc.cluster.loadbalance.LoadBalanceAdptive
|
||||
random=com.alibaba.dubbo.rpc.cluster.loadbalance.RandomLoadBalance
|
||||
roundrobin=com.alibaba.dubbo.rpc.cluster.loadbalance.RoundRobinLoadBalance
|
||||
leastactive=com.alibaba.dubbo.rpc.cluster.loadbalance.LeastActiveLoadBalance
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
com.alibaba.dubbo.rpc.cluster.merger.ArrayMerger
|
||||
com.alibaba.dubbo.rpc.cluster.merger.CollectionMerger
|
||||
com.alibaba.dubbo.rpc.cluster.merger.MapMerger
|
||||
array=com.alibaba.dubbo.rpc.cluster.merger.ArrayMerger
|
||||
collection=com.alibaba.dubbo.rpc.cluster.merger.CollectionMerger
|
||||
map=com.alibaba.dubbo.rpc.cluster.merger.MapMerger
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
com.alibaba.dubbo.rpc.cluster.router.FileRouterFactory
|
||||
com.alibaba.dubbo.rpc.cluster.router.ScriptRouterFactory
|
||||
file=com.alibaba.dubbo.rpc.cluster.router.FileRouterFactory
|
||||
script=com.alibaba.dubbo.rpc.cluster.router.ScriptRouterFactory
|
||||
|
|
@ -28,7 +28,7 @@ import java.lang.annotation.Target;
|
|||
*
|
||||
* @see ExtensionLoader
|
||||
* @see URL
|
||||
* @see Extension
|
||||
* @see Default
|
||||
*/
|
||||
@Documented
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
|
|
@ -38,7 +38,7 @@ public @interface Adaptive {
|
|||
/**
|
||||
* 从{@link URL}的Key名,对应的Value作为要Adapt成的Extension名。
|
||||
* <p>
|
||||
* 如果{@link URL}这些Key都没有Value,使用 用 缺省的扩展(在接口的{@link Extension}中设定的值)。<br>
|
||||
* 如果{@link URL}这些Key都没有Value,使用 用 缺省的扩展(在接口的{@link Default}中设定的值)。<br>
|
||||
* 比如,<code>String[] {"key1", "key2"}</code>,表示
|
||||
* <ol>
|
||||
* <li>先在URL上找key1的Value作为要Adapt成的Extension名;
|
||||
|
|
@ -50,7 +50,7 @@ public @interface Adaptive {
|
|||
* 如果不设置则缺省使用Extension接口类名的点分隔小写字串。<br>
|
||||
* 即对于Extension接口{@code com.alibaba.dubbo.xxx.YyyInvokerWrapper}的缺省值为<code>String[] {"yyy.invoker.wrapper"}</code>
|
||||
*
|
||||
* @see Extension#value()
|
||||
* @see Default#value()
|
||||
*/
|
||||
String[] value() default {};
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
* Copyright 1999-2011 Alibaba Group.
|
||||
*
|
||||
* 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 com.alibaba.dubbo.common;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* 扩展点实现的元信息。
|
||||
*
|
||||
* @author william.liangf
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Documented
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target({ElementType.TYPE})
|
||||
public @interface Default {
|
||||
|
||||
/**
|
||||
* 扩展点名称。<br>
|
||||
*
|
||||
* 如果注解在扩展的接口上,则缺省的扩展点。<p>
|
||||
*/
|
||||
String value() default "";
|
||||
}
|
||||
|
|
@ -24,9 +24,12 @@ import java.lang.annotation.Target;
|
|||
/**
|
||||
* 扩展点实现的元信息。
|
||||
*
|
||||
* @deprecated 请在META-INF/services/配置文件中声明扩展点名称,如:fixed=com.xxx.FixedThreadPool
|
||||
*
|
||||
* @author william.liangf
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Deprecated
|
||||
@Documented
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target({ElementType.TYPE})
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ import com.alibaba.dubbo.common.utils.StringUtils;
|
|||
* @author william.liangf
|
||||
* @author ding.lid
|
||||
*
|
||||
* @see Extension
|
||||
* @see Default
|
||||
* @see Adaptive
|
||||
*/
|
||||
public class ExtensionLoader<T> {
|
||||
|
|
@ -64,6 +64,8 @@ public class ExtensionLoader<T> {
|
|||
private static final ConcurrentMap<Class<?>, ExtensionLoader<?>> EXTENSION_LOADERS = new ConcurrentHashMap<Class<?>, ExtensionLoader<?>>();
|
||||
|
||||
private final Class<?> type;
|
||||
|
||||
private final ConcurrentMap<Class<?>, String> cachedNames = new ConcurrentHashMap<Class<?>, String>();
|
||||
|
||||
private final Reference<Map<String, Class<?>>> cachedClasses = new Reference<Map<String,Class<?>>>();
|
||||
|
||||
|
|
@ -96,7 +98,15 @@ public class ExtensionLoader<T> {
|
|||
private ExtensionLoader(Class<?> type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
|
||||
public String getExtensionName(T extensionInstance) {
|
||||
return getExtensionName(extensionInstance.getClass());
|
||||
}
|
||||
|
||||
public String getExtensionName(Class<?> extensionClass) {
|
||||
return cachedNames.get(extensionClass);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public T getExtension(String name) {
|
||||
if (name == null || name.length() == 0)
|
||||
|
|
@ -277,7 +287,7 @@ public class ExtensionLoader<T> {
|
|||
}
|
||||
|
||||
private Map<String, Class<?>> loadExtensionClasses() {
|
||||
final Extension defaultAnnotation = type.getAnnotation(Extension.class);
|
||||
final Default defaultAnnotation = type.getAnnotation(Default.class);
|
||||
if(defaultAnnotation != null) {
|
||||
String[] names = NAME_SEPARATOR.split(defaultAnnotation.value());
|
||||
if(names.length > 1) {
|
||||
|
|
@ -311,6 +321,12 @@ public class ExtensionLoader<T> {
|
|||
line = line.trim();
|
||||
if (line.length() > 0) {
|
||||
try {
|
||||
String name = null;
|
||||
int i = line.indexOf('=');
|
||||
if (i > 0) {
|
||||
name = line.substring(0, i).trim();
|
||||
line = line.substring(i + 1).trim();
|
||||
}
|
||||
Class<?> clazz = Class.forName(line, true, classLoader);
|
||||
if (! type.isAssignableFrom(clazz)) {
|
||||
throw new IllegalStateException("Error when load extension class(interface: " +
|
||||
|
|
@ -336,16 +352,22 @@ public class ExtensionLoader<T> {
|
|||
wrappers.add(clazz);
|
||||
} catch (NoSuchMethodException e) {
|
||||
clazz.getConstructor();
|
||||
Extension extension = clazz.getAnnotation(Extension.class);
|
||||
if (extension == null) {
|
||||
throw new IllegalStateException("No such @Extension annotation in class " + clazz.getName());
|
||||
}
|
||||
String name = extension.value();
|
||||
if (name == null || name.length() == 0) {
|
||||
throw new IllegalStateException("Illegal @Extension annotation in class " + clazz.getName());
|
||||
name = findAnnotationName(clazz);
|
||||
if (name == null || name.length() == 0) {
|
||||
if (clazz.getSimpleName().length() > type.getSimpleName().length()
|
||||
&& clazz.getSimpleName().endsWith(type.getSimpleName())) {
|
||||
name = clazz.getSimpleName().substring(0, clazz.getSimpleName().length() - type.getSimpleName().length()).toLowerCase();
|
||||
} else {
|
||||
throw new IllegalStateException("No such extension name for the class " + clazz.getName() + " in the config " + url);
|
||||
}
|
||||
}
|
||||
}
|
||||
String[] names = NAME_SEPARATOR.split(name);
|
||||
for (String n : names) {
|
||||
if (! cachedNames.containsKey(clazz)) {
|
||||
cachedNames.put(clazz, n);
|
||||
}
|
||||
Class<?> c = extensionClasses.get(n);
|
||||
if (c == null) {
|
||||
extensionClasses.put(n, clazz);
|
||||
|
|
@ -377,6 +399,12 @@ public class ExtensionLoader<T> {
|
|||
return extensionClasses;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private String findAnnotationName(Class<?> clazz) {
|
||||
Extension extension = clazz.getAnnotation(Extension.class);
|
||||
return extension == null ? null : extension.value();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private T createAdaptiveExtension() {
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import java.io.InputStream;
|
|||
import java.io.OutputStream;
|
||||
|
||||
import com.alibaba.dubbo.common.Adaptive;
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.Default;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
|
||||
/**
|
||||
|
|
@ -29,7 +29,7 @@ import com.alibaba.dubbo.common.URL;
|
|||
* @author ding.lid
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("hessian2")
|
||||
@Default("hessian2")
|
||||
public interface Serialization {
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import java.io.IOException;
|
|||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.serialize.ObjectInput;
|
||||
import com.alibaba.dubbo.common.serialize.ObjectOutput;
|
||||
|
|
@ -28,7 +27,6 @@ import com.alibaba.dubbo.common.serialize.Serialization;
|
|||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension("dubbo")
|
||||
public class DubboSerialization implements Serialization {
|
||||
|
||||
public byte getContentTypeId() {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import java.io.IOException;
|
|||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.serialize.ObjectInput;
|
||||
import com.alibaba.dubbo.common.serialize.ObjectOutput;
|
||||
|
|
@ -28,7 +27,6 @@ import com.alibaba.dubbo.common.serialize.Serialization;
|
|||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension("hessian2")
|
||||
public class Hessian2Serialization implements Serialization {
|
||||
|
||||
public static final byte ID = 2;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import java.io.IOException;
|
|||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.serialize.ObjectInput;
|
||||
import com.alibaba.dubbo.common.serialize.ObjectOutput;
|
||||
|
|
@ -28,7 +27,6 @@ import com.alibaba.dubbo.common.serialize.Serialization;
|
|||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension("compactedjava")
|
||||
public class CompactedJavaSerialization implements Serialization {
|
||||
|
||||
public byte getContentTypeId() {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import java.io.IOException;
|
|||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.serialize.ObjectInput;
|
||||
import com.alibaba.dubbo.common.serialize.ObjectOutput;
|
||||
|
|
@ -28,7 +27,6 @@ import com.alibaba.dubbo.common.serialize.Serialization;
|
|||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension("java")
|
||||
public class JavaSerialization implements Serialization {
|
||||
|
||||
public byte getContentTypeId() {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import java.io.IOException;
|
|||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.serialize.ObjectInput;
|
||||
import com.alibaba.dubbo.common.serialize.ObjectOutput;
|
||||
|
|
@ -30,7 +29,6 @@ import com.alibaba.dubbo.common.serialize.Serialization;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("fastjson")
|
||||
public class FastJsonSerialization implements Serialization {
|
||||
|
||||
public byte getContentTypeId() {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import java.io.IOException;
|
|||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.serialize.ObjectInput;
|
||||
import com.alibaba.dubbo.common.serialize.ObjectOutput;
|
||||
|
|
@ -30,7 +29,6 @@ import com.alibaba.dubbo.common.serialize.Serialization;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("json")
|
||||
public class JsonSerialization implements Serialization {
|
||||
|
||||
public byte getContentTypeId() {
|
||||
|
|
|
|||
|
|
@ -15,14 +15,14 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.status;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.Default;
|
||||
|
||||
/**
|
||||
* StatusChecker
|
||||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension
|
||||
@Default
|
||||
public interface StatusChecker {
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import java.lang.management.ManagementFactory;
|
|||
import java.lang.management.OperatingSystemMXBean;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.status.Status;
|
||||
import com.alibaba.dubbo.common.status.StatusChecker;
|
||||
|
||||
|
|
@ -28,7 +27,6 @@ import com.alibaba.dubbo.common.status.StatusChecker;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("load")
|
||||
public class LoadStatusChecker implements StatusChecker {
|
||||
|
||||
public Status check() {
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.status.support;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.status.Status;
|
||||
import com.alibaba.dubbo.common.status.StatusChecker;
|
||||
|
||||
|
|
@ -24,7 +23,6 @@ import com.alibaba.dubbo.common.status.StatusChecker;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("memory")
|
||||
public class MemoryStatusChecker implements StatusChecker {
|
||||
|
||||
public Status check() {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ import java.util.concurrent.Executor;
|
|||
|
||||
import com.alibaba.dubbo.common.Adaptive;
|
||||
import com.alibaba.dubbo.common.Constants;
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.Default;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
|
||||
/**
|
||||
|
|
@ -27,7 +27,7 @@ import com.alibaba.dubbo.common.URL;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("fixed")
|
||||
@Default("fixed")
|
||||
public interface ThreadPool {
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@ import java.util.concurrent.ThreadPoolExecutor;
|
|||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.alibaba.dubbo.common.Constants;
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.threadpool.ThreadPool;
|
||||
import com.alibaba.dubbo.common.threadpool.support.AbortPolicyWithReport;
|
||||
|
|
@ -34,7 +33,6 @@ import com.alibaba.dubbo.common.utils.NamedThreadFactory;
|
|||
* @see java.util.concurrent.Executors#newCachedThreadPool()
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("cached")
|
||||
public class CachedThreadPool implements ThreadPool {
|
||||
|
||||
public Executor getExecutor(URL url) {
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@ import java.util.concurrent.ThreadPoolExecutor;
|
|||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.alibaba.dubbo.common.Constants;
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.threadpool.ThreadPool;
|
||||
import com.alibaba.dubbo.common.threadpool.support.AbortPolicyWithReport;
|
||||
|
|
@ -34,7 +33,6 @@ import com.alibaba.dubbo.common.utils.NamedThreadFactory;
|
|||
* @see java.util.concurrent.Executors#newFixedThreadPool(int)
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("fixed")
|
||||
public class FixedThreadPool implements ThreadPool {
|
||||
|
||||
public Executor getExecutor(URL url) {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
com.alibaba.dubbo.common.serialize.support.dubbo.DubboSerialization
|
||||
com.alibaba.dubbo.common.serialize.support.hessian.Hessian2Serialization
|
||||
com.alibaba.dubbo.common.serialize.support.java.JavaSerialization
|
||||
com.alibaba.dubbo.common.serialize.support.java.CompactedJavaSerialization
|
||||
com.alibaba.dubbo.common.serialize.support.json.JsonSerialization
|
||||
com.alibaba.dubbo.common.serialize.support.json.FastJsonSerialization
|
||||
dubbo=com.alibaba.dubbo.common.serialize.support.dubbo.DubboSerialization
|
||||
hessian2=com.alibaba.dubbo.common.serialize.support.hessian.Hessian2Serialization
|
||||
java=com.alibaba.dubbo.common.serialize.support.java.JavaSerialization
|
||||
compactedjava=com.alibaba.dubbo.common.serialize.support.java.CompactedJavaSerialization
|
||||
json=com.alibaba.dubbo.common.serialize.support.json.JsonSerialization
|
||||
fastjson=com.alibaba.dubbo.common.serialize.support.json.FastJsonSerialization
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
com.alibaba.dubbo.common.status.support.MemoryStatusChecker
|
||||
com.alibaba.dubbo.common.status.support.LoadStatusChecker
|
||||
memory=com.alibaba.dubbo.common.status.support.MemoryStatusChecker
|
||||
load=com.alibaba.dubbo.common.status.support.LoadStatusChecker
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
com.alibaba.dubbo.common.threadpool.support.fixed.FixedThreadPool
|
||||
com.alibaba.dubbo.common.threadpool.support.cached.CachedThreadPool
|
||||
fixed=com.alibaba.dubbo.common.threadpool.support.fixed.FixedThreadPool
|
||||
cached=com.alibaba.dubbo.common.threadpool.support.cached.CachedThreadPool
|
||||
|
|
@ -16,13 +16,13 @@
|
|||
package com.alibaba.dubbo.common.extensionloader.ext1;
|
||||
|
||||
import com.alibaba.dubbo.common.Adaptive;
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.Default;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension("impl1")
|
||||
@Default("impl1")
|
||||
public interface Ext1 {
|
||||
@Adaptive
|
||||
String echo(URL url, String s);
|
||||
|
|
|
|||
|
|
@ -15,14 +15,12 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext1.impl;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext1.Ext1;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext1.Ext1;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension(value = "impl1")
|
||||
public class Ext1Impl1 implements Ext1 {
|
||||
public String echo(URL url, String s) {
|
||||
return "Ext1Impl1-echo";
|
||||
|
|
|
|||
|
|
@ -15,15 +15,13 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext1.impl;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext1.Ext1;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext1.Ext1;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*
|
||||
*/
|
||||
@Extension("impl2")
|
||||
public class Ext1Impl2 implements Ext1 {
|
||||
public String echo(URL url, String s) {
|
||||
return "Ext1Impl2-echo";
|
||||
|
|
|
|||
|
|
@ -15,15 +15,13 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext1.impl;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext1.Ext1;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext1.Ext1;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*
|
||||
*/
|
||||
@Extension("impl3")
|
||||
public class Ext1Impl3 implements Ext1 {
|
||||
public String echo(URL url, String s) {
|
||||
return "Ext1Impl3-echo";
|
||||
|
|
|
|||
|
|
@ -15,15 +15,13 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext2.impl;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext2.Ext2;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext2.UrlHolder;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext2.Ext2;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext2.UrlHolder;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension(value = "impl1")
|
||||
public class Ext2Impl1 implements Ext2 {
|
||||
public String echo(UrlHolder holder, String s) {
|
||||
return "Ext2Impl1-echo";
|
||||
|
|
|
|||
|
|
@ -15,16 +15,14 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext2.impl;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext2.Ext2;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext2.UrlHolder;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext2.Ext2;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext2.UrlHolder;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*
|
||||
*/
|
||||
@Extension("impl2")
|
||||
public class Ext2Impl2 implements Ext2 {
|
||||
public String echo(UrlHolder holder, String s) {
|
||||
return "Ext2Impl2-echo";
|
||||
|
|
|
|||
|
|
@ -15,16 +15,14 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext2.impl;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext2.Ext2;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext2.UrlHolder;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext2.Ext2;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext2.UrlHolder;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*
|
||||
*/
|
||||
@Extension("impl3")
|
||||
public class Ext2Impl3 implements Ext2 {
|
||||
public String echo(UrlHolder holder, String s) {
|
||||
return "Ext2Impl3-echo";
|
||||
|
|
|
|||
|
|
@ -16,13 +16,13 @@
|
|||
package com.alibaba.dubbo.common.extensionloader.ext3;
|
||||
|
||||
import com.alibaba.dubbo.common.Adaptive;
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.Default;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension("impl3")
|
||||
@Default("impl3")
|
||||
public interface Ext3 {
|
||||
@Adaptive({"key1", "protocol"})
|
||||
String echo(URL url, String s);
|
||||
|
|
|
|||
|
|
@ -15,14 +15,12 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext3.impl;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext3.Ext3;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext3.Ext3;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension(value = "impl1")
|
||||
public class Ext3Impl1 implements Ext3 {
|
||||
public String echo(URL url, String s) {
|
||||
return "Ext3Impl3-echo";
|
||||
|
|
|
|||
|
|
@ -15,15 +15,13 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext3.impl;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext3.Ext3;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext3.Ext3;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*
|
||||
*/
|
||||
@Extension("impl2")
|
||||
public class Ext3Impl2 implements Ext3 {
|
||||
public String echo(URL url, String s) {
|
||||
return "Ext3Impl2-echo";
|
||||
|
|
|
|||
|
|
@ -15,15 +15,13 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext3.impl;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext3.Ext3;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext3.Ext3;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*
|
||||
*/
|
||||
@Extension(value="impl3")
|
||||
public class Ext3Impl3 implements Ext3 {
|
||||
public String echo(URL url, String s) {
|
||||
return "Ext3Impl3-echo";
|
||||
|
|
|
|||
|
|
@ -18,12 +18,12 @@ package com.alibaba.dubbo.common.extensionloader.ext4;
|
|||
import java.util.List;
|
||||
|
||||
import com.alibaba.dubbo.common.Adaptive;
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.Default;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension("impl1")
|
||||
@Default("impl1")
|
||||
public interface Ext4 {
|
||||
@Adaptive
|
||||
String bark(String name, List<Object> list); // 没有URL参数的方法
|
||||
|
|
|
|||
|
|
@ -15,15 +15,13 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext4.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext4.Ext4;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.dubbo.common.extensionloader.ext4.Ext4;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension(value = "impl1")
|
||||
public class Ext4Impl1 implements Ext4 {
|
||||
public String bark(String name, List<Object> list) {
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -15,17 +15,15 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext4.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext4.Ext4;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext4.Ext4;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*
|
||||
*/
|
||||
@Extension("impl2")
|
||||
public class Ext4Impl2 implements Ext4 {
|
||||
public String echo(URL url, String s) {
|
||||
return "Ext3Impl2-echo";
|
||||
|
|
|
|||
|
|
@ -15,13 +15,13 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext5;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.Default;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension("impl1")
|
||||
@Default("impl1")
|
||||
public interface Ext5NoAdaptiveMethod {
|
||||
String echo(URL url, String s);
|
||||
|
||||
|
|
|
|||
|
|
@ -15,14 +15,12 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext5.impl;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext5.Ext5NoAdaptiveMethod;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext5.Ext5NoAdaptiveMethod;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension("impl1")
|
||||
public class Ext5Impl1 implements Ext5NoAdaptiveMethod {
|
||||
public String echo(URL url, String s) {
|
||||
return "Ext5Impl1-echo";
|
||||
|
|
|
|||
|
|
@ -15,15 +15,13 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext5.impl;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext5.Ext5NoAdaptiveMethod;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext5.Ext5NoAdaptiveMethod;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*
|
||||
*/
|
||||
@Extension("impl2")
|
||||
public class Ext5Impl2 implements Ext5NoAdaptiveMethod {
|
||||
public String echo(URL url, String s) {
|
||||
return "Ext5Impl2-echo";
|
||||
|
|
|
|||
|
|
@ -15,16 +15,14 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext5.impl;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext5.Ext5NoAdaptiveMethod;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext5.Ext5NoAdaptiveMethod;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension("XXX")
|
||||
public class Ext5Wrapper1 implements Ext5NoAdaptiveMethod {
|
||||
Ext5NoAdaptiveMethod instance;
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
package com.alibaba.dubbo.common.extensionloader.ext6_inject;
|
||||
|
||||
import com.alibaba.dubbo.common.Adaptive;
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.Default;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
|
||||
/**
|
||||
|
|
@ -24,7 +24,7 @@ import com.alibaba.dubbo.common.URL;
|
|||
*
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension
|
||||
@Default
|
||||
public interface Ext6 {
|
||||
@Adaptive
|
||||
String echo(URL url, String s);
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
package com.alibaba.dubbo.common.extensionloader.ext6_inject.impl;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext6_inject.Dao;
|
||||
|
||||
@Extension("test")
|
||||
public class DaoImpl implements Dao {
|
||||
public void update(){
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ package com.alibaba.dubbo.common.extensionloader.ext6_inject.impl;
|
|||
|
||||
import junit.framework.Assert;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext1.Ext1;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext6_inject.Dao;
|
||||
|
|
@ -26,7 +25,6 @@ import com.alibaba.dubbo.common.extensionloader.ext6_inject.Ext6;
|
|||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension(value = "impl1")
|
||||
public class Ext6Impl1 implements Ext6 {
|
||||
Ext1 ext1;
|
||||
public Dao obj;
|
||||
|
|
|
|||
|
|
@ -15,16 +15,14 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext6_inject.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext6_inject.Ext6;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext6_inject.Ext6;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension("impl2")
|
||||
public class Ext6Impl2 implements Ext6 {
|
||||
List<String> list;
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
package com.alibaba.dubbo.common.extensionloader.ext7;
|
||||
|
||||
import com.alibaba.dubbo.common.Adaptive;
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.Default;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
|
||||
/**
|
||||
|
|
@ -25,7 +25,7 @@ import com.alibaba.dubbo.common.URL;
|
|||
*
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension
|
||||
@Default
|
||||
public interface Ext7 {
|
||||
@Adaptive
|
||||
String echo(URL url, String s);
|
||||
|
|
|
|||
|
|
@ -15,14 +15,12 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext7.impl;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext7.Ext7;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension(value = "ok")
|
||||
public class Ext7Impl implements Ext7 {
|
||||
public String echo(URL url, String s) {
|
||||
return "";
|
||||
|
|
|
|||
|
|
@ -15,14 +15,12 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.common.extensionloader.ext7.impl;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.extensionloader.ext7.Ext7;
|
||||
|
||||
/**
|
||||
* @author ding.lid
|
||||
*/
|
||||
@Extension(value = "error")
|
||||
public class Ext7InitErrorImpl implements Ext7 {
|
||||
|
||||
static {
|
||||
|
|
|
|||
|
|
@ -94,8 +94,8 @@ public class ConfigUtilsTest {
|
|||
Properties p = ConfigUtils.loadProperties("META-INF/services/com.alibaba.dubbo.common.threadpool.ThreadPool", false);
|
||||
|
||||
Properties expected = new Properties();
|
||||
expected.put("com.alibaba.dubbo.common.threadpool.support.fixed.FixedThreadPool", "");
|
||||
expected.put("com.alibaba.dubbo.common.threadpool.support.cached.CachedThreadPool", "");
|
||||
expected.put("fixed", "com.alibaba.dubbo.common.threadpool.support.fixed.FixedThreadPool");
|
||||
expected.put("cached", "com.alibaba.dubbo.common.threadpool.support.cached.CachedThreadPool");
|
||||
|
||||
Assert.assertEquals(expected, p);
|
||||
}
|
||||
|
|
@ -118,8 +118,8 @@ public class ConfigUtilsTest {
|
|||
Properties p = ConfigUtils.loadProperties("META-INF/services/com.alibaba.dubbo.common.status.StatusChecker", true);
|
||||
|
||||
Properties expected = new Properties();
|
||||
expected.put("com.alibaba.dubbo.common.status.support.MemoryStatusChecker", "");
|
||||
expected.put("com.alibaba.dubbo.common.status.support.LoadStatusChecker", "");
|
||||
expected.put("memory", "com.alibaba.dubbo.common.status.support.MemoryStatusChecker");
|
||||
expected.put("load", "com.alibaba.dubbo.common.status.support.LoadStatusChecker");
|
||||
expected.put("aa", "12");
|
||||
|
||||
Assert.assertEquals(expected, p);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Comment 1
|
||||
com.alibaba.dubbo.common.extensionloader.ext1.impl.Ext1Impl1#Hello World
|
||||
com.alibaba.dubbo.common.extensionloader.ext1.impl.Ext1Impl2 # Comment 2
|
||||
com.alibaba.dubbo.common.extensionloader.ext1.impl.Ext1Impl3 # with head space
|
||||
impl1=com.alibaba.dubbo.common.extensionloader.ext1.impl.Ext1Impl1#Hello World
|
||||
impl2=com.alibaba.dubbo.common.extensionloader.ext1.impl.Ext1Impl2 # Comment 2
|
||||
impl3=com.alibaba.dubbo.common.extensionloader.ext1.impl.Ext1Impl3 # with head space
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
com.alibaba.dubbo.common.extensionloader.ext2.impl.Ext2Impl1
|
||||
com.alibaba.dubbo.common.extensionloader.ext2.impl.Ext2Impl2
|
||||
com.alibaba.dubbo.common.extensionloader.ext2.impl.Ext2Impl3
|
||||
impl1=com.alibaba.dubbo.common.extensionloader.ext2.impl.Ext2Impl1
|
||||
impl2=com.alibaba.dubbo.common.extensionloader.ext2.impl.Ext2Impl2
|
||||
impl3=com.alibaba.dubbo.common.extensionloader.ext2.impl.Ext2Impl3
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
com.alibaba.dubbo.common.extensionloader.ext3.impl.Ext3Impl1
|
||||
com.alibaba.dubbo.common.extensionloader.ext3.impl.Ext3Impl2
|
||||
com.alibaba.dubbo.common.extensionloader.ext3.impl.Ext3Impl3
|
||||
impl1=com.alibaba.dubbo.common.extensionloader.ext3.impl.Ext3Impl1
|
||||
impl2=com.alibaba.dubbo.common.extensionloader.ext3.impl.Ext3Impl2
|
||||
impl3=com.alibaba.dubbo.common.extensionloader.ext3.impl.Ext3Impl3
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
com.alibaba.dubbo.common.extensionloader.ext4.impl.Ext4Impl1
|
||||
com.alibaba.dubbo.common.extensionloader.ext4.impl.Ext4Impl2
|
||||
impl1=com.alibaba.dubbo.common.extensionloader.ext4.impl.Ext4Impl1
|
||||
impl2=com.alibaba.dubbo.common.extensionloader.ext4.impl.Ext4Impl2
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
com.alibaba.dubbo.common.extensionloader.ext5.impl.Ext5Impl1
|
||||
com.alibaba.dubbo.common.extensionloader.ext5.impl.Ext5Impl2
|
||||
com.alibaba.dubbo.common.extensionloader.ext5.impl.Ext5Wrapper1
|
||||
com.alibaba.dubbo.common.extensionloader.ext5.impl.Ext5Wrapper2
|
||||
impl1=com.alibaba.dubbo.common.extensionloader.ext5.impl.Ext5Impl1
|
||||
impl2=com.alibaba.dubbo.common.extensionloader.ext5.impl.Ext5Impl2
|
||||
wrapper1=com.alibaba.dubbo.common.extensionloader.ext5.impl.Ext5Wrapper1
|
||||
wrapper2=com.alibaba.dubbo.common.extensionloader.ext5.impl.Ext5Wrapper2
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
com.alibaba.dubbo.common.extensionloader.ext6_inject.impl.Ext6Impl1
|
||||
com.alibaba.dubbo.common.extensionloader.ext6_inject.impl.Ext6Impl2
|
||||
impl1=com.alibaba.dubbo.common.extensionloader.ext6_inject.impl.Ext6Impl1
|
||||
impl2=com.alibaba.dubbo.common.extensionloader.ext6_inject.impl.Ext6Impl2
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
com.alibaba.dubbo.common.extensionloader.ext7.impl.Ext7InitErrorImpl
|
||||
com.alibaba.dubbo.common.extensionloader.ext7.impl.Ext7Impl
|
||||
error=com.alibaba.dubbo.common.extensionloader.ext7.impl.Ext7InitErrorImpl
|
||||
ok=com.alibaba.dubbo.common.extensionloader.ext7.impl.Ext7Impl
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ import javax.sql.DataSource;
|
|||
|
||||
import org.springframework.context.ApplicationContext;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.logger.Logger;
|
||||
import com.alibaba.dubbo.common.logger.LoggerFactory;
|
||||
import com.alibaba.dubbo.common.status.Status;
|
||||
|
|
@ -36,7 +35,6 @@ import com.alibaba.dubbo.config.spring.ServiceBean;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("datasource")
|
||||
public class DataSourceStatusChecker implements StatusChecker {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(DataSourceStatusChecker.class);
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ import java.lang.reflect.Method;
|
|||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.Lifecycle;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.logger.Logger;
|
||||
import com.alibaba.dubbo.common.logger.LoggerFactory;
|
||||
import com.alibaba.dubbo.common.status.Status;
|
||||
|
|
@ -32,7 +31,6 @@ import com.alibaba.dubbo.config.spring.ServiceBean;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("spring")
|
||||
public class SpringStatusChecker implements StatusChecker {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(SpringStatusChecker.class);
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
com.alibaba.dubbo.config.spring.status.SpringStatusChecker
|
||||
com.alibaba.dubbo.config.spring.status.DataSourceStatusChecker
|
||||
spring=com.alibaba.dubbo.config.spring.status.SpringStatusChecker
|
||||
datasource=com.alibaba.dubbo.config.spring.status.DataSourceStatusChecker
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.config.support;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.Default;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.rpc.Exporter;
|
||||
import com.alibaba.dubbo.rpc.Invocation;
|
||||
|
|
@ -29,7 +29,6 @@ import com.alibaba.dubbo.rpc.RpcException;
|
|||
* @author haomin.liuhm
|
||||
*
|
||||
*/
|
||||
@Extension("mockprotocol")
|
||||
public class MockProtocol implements Protocol {
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
|
|
|||
|
|
@ -15,17 +15,15 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.config.support;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.registry.Registry;
|
||||
import com.alibaba.dubbo.registry.RegistryFactory;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.registry.Registry;
|
||||
import com.alibaba.dubbo.registry.RegistryFactory;
|
||||
|
||||
/**
|
||||
* TODO Comment of MockRegistryFactory
|
||||
* @author haomin.liuhm
|
||||
*
|
||||
*/
|
||||
@Extension("mockregistry")
|
||||
public class MockRegistryFactory implements RegistryFactory {
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
com.alibaba.dubbo.config.support.MockRegistryFactory
|
||||
mockregistry=com.alibaba.dubbo.config.support.MockRegistryFactory
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
com.alibaba.dubbo.config.support.MockProtocol
|
||||
mockprotocol=com.alibaba.dubbo.config.support.MockProtocol
|
||||
|
|
@ -15,14 +15,14 @@
|
|||
*/
|
||||
package com.alibaba.dubbo.container;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.Default;
|
||||
|
||||
/**
|
||||
* Container. (SPI, Singleton, ThreadSafe)
|
||||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("spring")
|
||||
@Default("spring")
|
||||
public interface Container {
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@ import org.mortbay.jetty.servlet.FilterHolder;
|
|||
import org.mortbay.jetty.servlet.ServletHandler;
|
||||
import org.mortbay.jetty.servlet.ServletHolder;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.logger.Logger;
|
||||
import com.alibaba.dubbo.common.logger.LoggerFactory;
|
||||
import com.alibaba.dubbo.common.utils.ConfigUtils;
|
||||
|
|
@ -36,7 +35,6 @@ import com.alibaba.dubbo.container.page.ResourceFilter;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("jetty")
|
||||
public class JettyContainer implements Container {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(JettyContainer.class);
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ import org.apache.log4j.FileAppender;
|
|||
import org.apache.log4j.LogManager;
|
||||
import org.apache.log4j.PropertyConfigurator;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.utils.ConfigUtils;
|
||||
import com.alibaba.dubbo.container.Container;
|
||||
|
||||
|
|
@ -32,7 +31,6 @@ import com.alibaba.dubbo.container.Container;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("log4j")
|
||||
public class Log4jContainer implements Container {
|
||||
|
||||
public static final String LOG4J_FILE = "dubbo.log4j.file";
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ import javax.servlet.http.HttpServletRequest;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.alibaba.dubbo.common.Constants;
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.ExtensionLoader;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.logger.Logger;
|
||||
|
|
@ -79,7 +78,7 @@ public class PageServlet extends HttpServlet {
|
|||
}
|
||||
for (String name : names) {
|
||||
PageHandler handler = ExtensionLoader.getExtensionLoader(PageHandler.class).getExtension(name);
|
||||
pages.put(handler.getClass().getAnnotation(Extension.class).value(), handler);
|
||||
pages.put(ExtensionLoader.getExtensionLoader(PageHandler.class).getExtensionName(handler), handler);
|
||||
Menu menu = handler.getClass().getAnnotation(Menu.class);
|
||||
if (menu != null) {
|
||||
menus.add(handler);
|
||||
|
|
@ -160,7 +159,7 @@ public class PageServlet extends HttpServlet {
|
|||
if (isHtml) {
|
||||
String nav = page.getNavigation();
|
||||
if (nav == null || nav.length() == 0) {
|
||||
nav = pageHandler.getClass().getAnnotation(Extension.class).value();
|
||||
nav = ExtensionLoader.getExtensionLoader(PageHandler.class).getExtensionName(pageHandler);
|
||||
nav = nav.substring(0, 1).toUpperCase() + nav.substring(1);
|
||||
}
|
||||
if (! "index".equals(uri)) {
|
||||
|
|
@ -208,7 +207,7 @@ public class PageServlet extends HttpServlet {
|
|||
writer.println("<thead>");
|
||||
writer.println(" <tr>");
|
||||
for (PageHandler handler : menus) {
|
||||
String uri = handler.getClass().getAnnotation(Extension.class).value();
|
||||
String uri = ExtensionLoader.getExtensionLoader(PageHandler.class).getExtensionName(handler);
|
||||
Menu menu = handler.getClass().getAnnotation(Menu.class);
|
||||
writer.println(" <th><a href=\"" + uri + ".html\">" + menu.name() + "</a></th>");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ package com.alibaba.dubbo.container.page.pages;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.ExtensionLoader;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.container.page.Menu;
|
||||
import com.alibaba.dubbo.container.page.Page;
|
||||
|
|
@ -31,13 +31,12 @@ import com.alibaba.dubbo.container.page.PageServlet;
|
|||
* @author william.liangf
|
||||
*/
|
||||
@Menu(name = "Home", desc = "Home page.", order = Integer.MIN_VALUE)
|
||||
@Extension("index")
|
||||
public class HomePageHandler implements PageHandler {
|
||||
|
||||
public Page handle(URL url) {
|
||||
List<List<String>> rows = new ArrayList<List<String>>();
|
||||
for (PageHandler handler : PageServlet.getInstance().getMenus()) {
|
||||
String uri = handler.getClass().getAnnotation(Extension.class).value();
|
||||
String uri = ExtensionLoader.getExtensionLoader(PageHandler.class).getExtensionName(handler);
|
||||
Menu menu = handler.getClass().getAnnotation(Menu.class);
|
||||
List<String> row = new ArrayList<String>();
|
||||
row.add("<a href=\"" + uri + ".html\">" + menu.name() + "</a>");
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@ import org.apache.log4j.FileAppender;
|
|||
import org.apache.log4j.Level;
|
||||
import org.apache.log4j.LogManager;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.container.page.Menu;
|
||||
import com.alibaba.dubbo.container.page.Page;
|
||||
|
|
@ -43,7 +42,6 @@ import com.alibaba.dubbo.container.page.PageHandler;
|
|||
* @author william.liangf
|
||||
*/
|
||||
@Menu(name = "Log", desc = "Show system log.", order = Integer.MAX_VALUE - 11000)
|
||||
@Extension("log")
|
||||
public class LogPageHandler implements PageHandler {
|
||||
|
||||
private static final int SHOW_LOG_LENGTH = 30000;
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.ExtensionLoader;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.status.Status;
|
||||
|
|
@ -37,7 +36,6 @@ import com.alibaba.dubbo.container.page.PageHandler;
|
|||
* @author william.liangf
|
||||
*/
|
||||
@Menu(name = "Status", desc = "Show system status.", order = Integer.MAX_VALUE - 12000)
|
||||
@Extension("status")
|
||||
public class StatusPageHandler implements PageHandler {
|
||||
|
||||
public Page handle(URL url) {
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@ import java.util.Date;
|
|||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.Version;
|
||||
import com.alibaba.dubbo.common.utils.NetUtils;
|
||||
|
|
@ -36,7 +35,6 @@ import com.alibaba.dubbo.container.page.PageHandler;
|
|||
* @author william.liangf
|
||||
*/
|
||||
@Menu(name = "System", desc = "Show system environment information.", order = Integer.MAX_VALUE - 10000)
|
||||
@Extension("system")
|
||||
public class SystemPageHandler implements PageHandler {
|
||||
|
||||
public Page handle(URL url) {
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ package com.alibaba.dubbo.container.spring;
|
|||
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.logger.Logger;
|
||||
import com.alibaba.dubbo.common.logger.LoggerFactory;
|
||||
import com.alibaba.dubbo.common.utils.ConfigUtils;
|
||||
|
|
@ -28,7 +27,6 @@ import com.alibaba.dubbo.container.Container;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("spring")
|
||||
public class SpringContainer implements Container {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(SpringContainer.class);
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
com.alibaba.dubbo.container.spring.SpringContainer
|
||||
com.alibaba.dubbo.container.jetty.JettyContainer
|
||||
com.alibaba.dubbo.container.log4j.Log4jContainer
|
||||
spring=com.alibaba.dubbo.container.spring.SpringContainer
|
||||
jetty=com.alibaba.dubbo.container.jetty.JettyContainer
|
||||
log4j=com.alibaba.dubbo.container.log4j.Log4jContainer
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
com.alibaba.dubbo.container.page.pages.HomePageHandler
|
||||
com.alibaba.dubbo.container.page.pages.StatusPageHandler
|
||||
com.alibaba.dubbo.container.page.pages.LogPageHandler
|
||||
com.alibaba.dubbo.container.page.pages.SystemPageHandler
|
||||
home=com.alibaba.dubbo.container.page.pages.HomePageHandler
|
||||
status=com.alibaba.dubbo.container.page.pages.StatusPageHandler
|
||||
log=com.alibaba.dubbo.container.page.pages.LogPageHandler
|
||||
system=com.alibaba.dubbo.container.page.pages.SystemPageHandler
|
||||
|
|
@ -16,7 +16,6 @@
|
|||
package com.alibaba.dubbo.monitor.dubbo;
|
||||
|
||||
import com.alibaba.dubbo.common.Constants;
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.monitor.Monitor;
|
||||
import com.alibaba.dubbo.monitor.MonitorService;
|
||||
|
|
@ -30,7 +29,6 @@ import com.alibaba.dubbo.rpc.ProxyFactory;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("dubbo")
|
||||
public class DubboMonitorFactroy extends AbstractMonitorFactroy {
|
||||
|
||||
private Protocol protocol;
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
com.alibaba.dubbo.monitor.dubbo.DubboMonitorFactroy
|
||||
dubbo=com.alibaba.dubbo.monitor.dubbo.DubboMonitorFactroy
|
||||
|
|
@ -25,7 +25,6 @@ import java.util.Set;
|
|||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import com.alibaba.dubbo.common.Constants;
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.ExtensionLoader;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.logger.Logger;
|
||||
|
|
@ -43,7 +42,6 @@ import com.alibaba.dubbo.registry.RegistryFactory;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("registry")
|
||||
public class RegistryContainer implements Container {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(RegistryContainer.class);
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.container.page.Menu;
|
||||
import com.alibaba.dubbo.container.page.Page;
|
||||
|
|
@ -32,7 +31,6 @@ import com.alibaba.dubbo.monitor.simple.RegistryContainer;
|
|||
* @author william.liangf
|
||||
*/
|
||||
@Menu(name = "Applications", desc = "Show application dependencies.", order = 1000)
|
||||
@Extension("applications")
|
||||
public class ApplicationsPageHandler implements PageHandler {
|
||||
|
||||
public Page handle(URL url) {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ import java.util.ArrayList;
|
|||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.container.page.Page;
|
||||
import com.alibaba.dubbo.container.page.PageHandler;
|
||||
|
|
@ -33,7 +32,6 @@ import com.alibaba.dubbo.monitor.simple.SimpleMonitorService;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("charts")
|
||||
public class ChartsPageHandler implements PageHandler {
|
||||
|
||||
public Page handle(URL url) {
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ package com.alibaba.dubbo.monitor.simple.pages;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.dubbo.common.Extension;
|
||||
import com.alibaba.dubbo.common.URL;
|
||||
import com.alibaba.dubbo.common.utils.NetUtils;
|
||||
import com.alibaba.dubbo.container.page.Page;
|
||||
|
|
@ -30,7 +29,6 @@ import com.alibaba.dubbo.monitor.simple.RegistryContainer;
|
|||
*
|
||||
* @author william.liangf
|
||||
*/
|
||||
@Extension("consumers")
|
||||
public class ConsumersPageHandler implements PageHandler {
|
||||
|
||||
public Page handle(URL url) {
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue