Changeset c5432a2 for router


Ignore:
Timestamp:
May 22, 2016 1:18:16 AM (5 years ago)
Author:
str4d <str4d@…>
Branches:
master
Children:
63260aa, e518e67
Parents:
3afe04d
Message:

Dynamically load domain socket code

Location:
router/java/src/net/i2p/router/client
Files:
1 deleted
1 edited

Legend:

Unmodified
Added
Removed
  • router/java/src/net/i2p/router/client/ClientManager.java

    r3afe04d rc5432a2  
    1111import java.io.IOException;
    1212import java.io.Writer;
     13import java.lang.reflect.Constructor;
     14import java.lang.reflect.InvocationTargetException;
    1315import java.util.ArrayList;
    1416import java.util.Collections;
     
    124126        ClientListenerRunner listener;
    125127        if (SystemVersion.isAndroid()) {
    126             listener = new DomainClientListenerRunner(_ctx, this);
    127             Thread t = new I2PThread(listener, "DomainClientListener", true);
    128             t.start();
    129             _listeners.add(listener);
     128            try {
     129                Class<? extends ClientListenerRunner> clazz = Class.forName(
     130                        "net.i2p.router.client.DomainClientListenerRunner"
     131                    ).asSubclass(ClientListenerRunner.class);
     132                Constructor<? extends ClientListenerRunner> ctor =
     133                    clazz.getDeclaredConstructor(RouterContext.class,
     134                                                 ClientManager.class);
     135                listener = ctor.newInstance(_ctx, this);
     136                Thread t = new I2PThread(listener, "DomainClientListener", true);
     137                t.start();
     138                _listeners.add(listener);
     139            } catch (ClassNotFoundException e) {
     140                _log.warn("Could not find DomainClientListenerRunner class", e);
     141            } catch (ClassCastException e) {
     142                _log.error("Error creating DomainClientListenerRunner", e);
     143            } catch (NoSuchMethodException e) {
     144                _log.error("Error creating DomainClientListenerRunner", e);
     145            } catch (InstantiationException e) {
     146                _log.error("Error creating DomainClientListenerRunner", e);
     147            } catch (IllegalAccessException e) {
     148                _log.error("Error creating DomainClientListenerRunner", e);
     149            } catch (InvocationTargetException e) {
     150                _log.error("Error creating DomainClientListenerRunner", e);
     151            }
    130152        }
    131153        if (!_ctx.getBooleanProperty(PROP_DISABLE_EXTERNAL)) {
Note: See TracChangeset for help on using the changeset viewer.