Add unit test to dubbo-monitor module
private MonitorFactory monitorFactory = new AbstractMonitorFactory() {
        protected Monitor createMonitor(final URL url) {
            return new Monitor() {
                public URL getUrl() {
                    return url;
                }
                @Override
                public boolean isAvailable() {
                    return true;
                }
                @Override
                public void destroy() {
                }
                public void collect(URL statistics) {
                }
                public List<URL> lookup(URL query) {
                    return null;
                }
            };
        }
    };
    @Test
    public void testMonitorFactoryCache() throws Exception {
        URL url = URL.valueOf("dubbo://" + NetUtils.getLocalAddress().getHostAddress() + ":2233");
        Monitor monitor1 = monitorFactory.getMonitor(url);
        Monitor monitor2 = monitorFactory.getMonitor(url);
        if (monitor1 == null || monitor2 == null) {
            Thread.sleep(2000);
            monitor1 = monitorFactory.getMonitor(url);
            monitor2 = monitorFactory.getMonitor(url);