Examples of DiscoveryNetworkConnector


Examples of org.apache.activemq.network.DiscoveryNetworkConnector

    public NetworkConnector addNetworkConnector(URI discoveryAddress) throws Exception {
        if (!isAdvisorySupport()) {
            throw new javax.jms.IllegalStateException(
                    "Networks require advisory messages to function - advisories are currently disabled");
        }
        NetworkConnector connector = new DiscoveryNetworkConnector(discoveryAddress);
        return addNetworkConnector(connector);
    }
View Full Code Here

Examples of org.apache.activemq.network.DiscoveryNetworkConnector

    }


    @Override
    protected NetworkConnector bridgeBrokers(BrokerService localBroker, BrokerService remoteBroker, boolean dynamicOnly, int networkTTL, boolean conduit) throws Exception {
        DiscoveryNetworkConnector connector = new DiscoveryNetworkConnector(new URI("multicast://default?group=TESTERIC&useLocalHost=false"));
        connector.setDynamicOnly(dynamicOnly);
        connector.setNetworkTTL(networkTTL);
        localBroker.addNetworkConnector(connector);
        maxSetupTime = 2000;
        if (useDuplexNetworkBridge) {
            connector.setDuplex(true);
        }

        List<TransportConnector> transportConnectors = remoteBroker.getTransportConnectors();
        if (!transportConnectors.isEmpty()) {
    mCastTrpConnector = ((TransportConnector)transportConnectors.get(0));
View Full Code Here

Examples of org.apache.activemq.network.DiscoveryNetworkConnector

    protected NetworkConnector bridgeBrokers(BrokerService localBroker, BrokerService remoteBroker, boolean dynamicOnly, int networkTTL, boolean conduit) throws Exception {
        List<TransportConnector> transportConnectors = remoteBroker.getTransportConnectors();
        URI remoteURI;
        if (!transportConnectors.isEmpty()) {
            remoteURI = transportConnectors.get(0).getConnectUri();
            NetworkConnector connector = new DiscoveryNetworkConnector(new URI("static:" + remoteURI));
            connector.setName(localBroker.getBrokerName() + remoteBroker.getBrokerName());
            localBroker.addNetworkConnector(connector);
            maxSetupTime = 2000;
            return connector;
        } else {
            throw new Exception("Remote broker has no registered connectors.");
View Full Code Here

Examples of org.apache.activemq.network.DiscoveryNetworkConnector

    public NetworkConnector addNetworkConnector(URI discoveryAddress) throws Exception {
        if (!isAdvisorySupport()) {
            throw new javax.jms.IllegalStateException(
                    "Networks require advisory messages to function - advisories are currently disabled");
        }
        NetworkConnector connector = new DiscoveryNetworkConnector(discoveryAddress);
        return addNetworkConnector(connector);
    }
View Full Code Here

Examples of org.apache.activemq.network.DiscoveryNetworkConnector

    protected NetworkConnector bridgeBrokers(BrokerService localBroker, BrokerService remoteBroker,boolean dynamicOnly, int networkTTL) throws Exception {
        List transportConnectors = remoteBroker.getTransportConnectors();
        URI remoteURI;
        if (!transportConnectors.isEmpty()) {
            remoteURI = ((TransportConnector)transportConnectors.get(0)).getConnectUri();
            NetworkConnector connector=new DiscoveryNetworkConnector(new URI("static:" + remoteURI));
            connector.setDynamicOnly(dynamicOnly);
            connector.setNetworkTTL(networkTTL);
            localBroker.addNetworkConnector(connector);
            MAX_SETUP_TIME = 2000;
            return connector;
        } else {
            throw new Exception("Remote broker has no registered connectors.");
View Full Code Here

Examples of org.apache.activemq.network.DiscoveryNetworkConnector

     *
     * @return the newly created and added network connector
     * @throws Exception
     */
    public NetworkConnector addNetworkConnector(URI discoveryAddress) throws Exception{
        NetworkConnector connector=new DiscoveryNetworkConnector(discoveryAddress);
        return addNetworkConnector(connector);
    }
View Full Code Here

Examples of org.apache.activemq.network.DiscoveryNetworkConnector

    tConnector.setBrokerName(brokerName);
    tConnector.setName(brokerName + ".transportConnector");
    brokerService.addConnector(tConnector);

    if (uri2 != null) {
      final NetworkConnector nc = new DiscoveryNetworkConnector(new URI("static:" + uri2));
      nc.setBridgeTempDestinations(true);
      nc.setBrokerName(brokerName);
      nc.setName(brokerName + ".nc");
      brokerService.addNetworkConnector(nc);
    }

    return brokerService;
View Full Code Here

Examples of org.apache.activemq.network.DiscoveryNetworkConnector

        // actually attempt to start bridges. Post-patch, only one thread is
        // allowed to start the bridge.
        final CountDownLatch attemptLatch = new CountDownLatch(2);
        final CountDownLatch createLatch = new CountDownLatch(2);

        DiscoveryNetworkConnector nc = new DiscoveryNetworkConnector() {
            @Override
            public void onServiceAdd(DiscoveryEvent event) {
                // Pre-and-post patch, two threads attempt to establish a bridge
                // to the same remote broker.
                attemptLatch.countDown();
                super.onServiceAdd(event);
            }

            @Override
            protected NetworkBridge createBridge(Transport localTransport,
                    Transport remoteTransport, final DiscoveryEvent event) {
                // Pre-patch, the two threads are allowed to create the bridge.
                // Post-patch, only the first thread is allowed. Wait a
                // reasonable delay once both attempts are detected to allow
                // the two bridge creations to occur concurrently (pre-patch).
                // Post-patch, the wait will timeout and allow the first (and
                // only) bridge creation to occur.
                try {
                    attemptLatch.await();
                    createLatch.countDown();
                    createLatch.await(ATTEMPT_TO_CREATE_DELAY,
                            TimeUnit.MILLISECONDS);
                    return super.createBridge(localTransport, remoteTransport,
                            event);
                } catch (InterruptedException e) {
                    Thread.interrupted();
                    return null;
                }
            }
        };

        nc.setDiscoveryAgent(new DiscoveryAgent() {
            TaskRunnerFactory taskRunner = new TaskRunnerFactory();
            DiscoveryListener listener;

            @Override
            public void start() throws Exception {
                taskRunner.init();
                taskRunner.execute(new Runnable() {
                    @Override
                    public void run() {
                        listener.onServiceAdd(new DiscoveryEvent(broker2
                                .getVmConnectorURI().toString()));
                    }
                });
                taskRunner.execute(new Runnable() {
                    @Override
                    public void run() {
                        listener.onServiceAdd(new DiscoveryEvent(broker2
                                .getVmConnectorURI().toString()));
                    }
                });
            }

            @Override
            public void stop() throws Exception {
                taskRunner.shutdown();
            }

            @Override
            public void setDiscoveryListener(DiscoveryListener listener) {
                this.listener = listener;
            }

            @Override
            public void registerService(String name) throws IOException {
            }

            @Override
            public void serviceFailed(DiscoveryEvent event) throws IOException {
                listener.onServiceRemove(event);
            }
        });

        broker1.addNetworkConnector(nc);
        nc.start();

        // Wait for the bridge to be formed by the first attempt.
        waitForBridge(broker1.getBrokerName(), broker2.getBrokerName(),
                MAX_TEST_TIME, TimeUnit.MILLISECONDS);

        // Pre-patch, the second bridge creation attempt fails and removes the
        // first (successful) bridge creation attempt from the
        // list of active bridges. Post-patch, the second bridge creation
        // attempt is prevented, so the first bridge creation attempt
        // remains "active". This assertion is expected to fail pre-patch and
        // pass post-patch.
        Assert.assertFalse(nc.activeBridges().isEmpty());
    }
View Full Code Here

Examples of org.apache.activemq.network.DiscoveryNetworkConnector

        da.setServices(new URI[] { broker2.getVmConnectorURI() });

        final CountDownLatch attemptLatch = new CountDownLatch(3);
        final CountDownLatch removedLatch = new CountDownLatch(1);

        DiscoveryNetworkConnector nc = new DiscoveryNetworkConnector() {
            @Override
            public void onServiceAdd(DiscoveryEvent event) {
                attemptLatch.countDown();
                super.onServiceAdd(event);
            }

            @Override
            public void onServiceRemove(DiscoveryEvent event) {
                super.onServiceRemove(event);
                removedLatch.countDown();
            }

            @Override
            protected NetworkBridge createBridge(Transport localTransport,
                    Transport remoteTransport, final DiscoveryEvent event) {
                final NetworkBridge next = super.createBridge(localTransport,
                        remoteTransport, event);
                return new NetworkBridge() {

                    @Override
                    public void start() throws Exception {
                        next.start();
                        // Delay returning until the failed service has been
                        // removed.
                        removedLatch.await();
                    }

                    @Override
                    public void stop() throws Exception {
                        next.stop();
                    }

                    @Override
                    public void serviceRemoteException(Throwable error) {
                        next.serviceRemoteException(error);
                    }

                    @Override
                    public void serviceLocalException(Throwable error) {
                        next.serviceLocalException(error);
                    }

                    @Override
                    public void setNetworkBridgeListener(
                            NetworkBridgeListener listener) {
                        next.setNetworkBridgeListener(listener);
                    }

                    @Override
                    public String getRemoteAddress() {
                        return next.getRemoteAddress();
                    }

                    @Override
                    public String getRemoteBrokerName() {
                        return next.getRemoteBrokerName();
                    }

                    @Override
                    public String getRemoteBrokerId() {
                        return next.getRemoteBrokerId();
                    }

                    @Override
                    public String getLocalAddress() {
                        return next.getLocalAddress();
                    }

                    @Override
                    public String getLocalBrokerName() {
                        return next.getLocalBrokerName();
                    }

                    @Override
                    public long getEnqueueCounter() {
                        return next.getEnqueueCounter();
                    }

                    @Override
                    public long getDequeueCounter() {
                        return next.getDequeueCounter();
                    }

                    @Override
                    public void setMbeanObjectName(ObjectName objectName) {
                        next.setMbeanObjectName(objectName);
                    }

                    @Override
                    public ObjectName getMbeanObjectName() {
                        return next.getMbeanObjectName();
                    }

                    public void resetStats(){
                        next.resetStats();
                    }
                };
            }
        };
        nc.setDiscoveryAgent(da);

        broker1.addNetworkConnector(nc);
        nc.start();

        // All bridge attempts should fail, so the attempt latch should get
        // triggered. However, because of the race condition, the first attempt
        // is considered successful and causes further attempts to stop.
        // Therefore, this wait will time out and cause the test to fail.
View Full Code Here

Examples of org.apache.activemq.network.DiscoveryNetworkConnector

    private void addNew(Object o) {
        if (o instanceof DtoNetworkConnector) {
            DtoNetworkConnector networkConnector = (DtoNetworkConnector) o;
            if (networkConnector.getUri() != null) {
                try {
                    DiscoveryNetworkConnector nc = fromDto(networkConnector, new DiscoveryNetworkConnector());
                    getBrokerService().addNetworkConnector(nc);
                    nc.start();
                    info("started new network connector: " + nc);
                } catch (Exception e) {
                    info("Failed to add new networkConnector " + networkConnector, e);
                }
            }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.