/** * Configures the GerritServer config to connect to the provided ssh server. * * @param sshd the server to connect to * @param gerritServer the config to configure * @param reconnect if the GerritServer connection should be restarted after the configuration * change * @see #getConfigFor(SshServer, IGerritHudsonTriggerConfig) * @see GerritServer#stopConnection() * @see GerritServer#startConnection() */ public static void configureFor(SshServer sshd, GerritServer gerritServer, boolean reconnect) { if (reconnect) { gerritServer.stopConnection(); } configureFor(sshd, gerritServer); if (reconnect) { gerritServer.startConnection(); } }
/** * Checks the size of the listeners collection retrieved by {@link #getGerritEventListeners()}. * * @param extra number of added listeners, other than the default. */ void assertNrOfEventListeners(int extra) { Collection<GerritEventListener> gerritEventListeners = getGerritEventListeners(); int nbrOfListeners = extra; nbrOfListeners++; // EventListener adds 1 listener nbrOfListeners++; // DependencyQueueTaskDispatcher adds 1 listener nbrOfListeners++; // ReplicationQueueTaskDispatcher adds 1 listener GerritServer server = PluginImpl.getServer_(PluginImpl.DEFAULT_SERVER_NAME); if (server.isConnected() && server.getConfig().isEnableProjectAutoCompletion() && server.isProjectCreatedEventsSupported()) { nbrOfListeners++; // GerritProjectListUpdater adds 1 listener// } assertEquals(nbrOfListeners, gerritEventListeners.size()); }
/** * Get the front end url from a ChangeBasedEvent. * * @param event the event * @param project the project for which the parameters are being set * @return the front end url */ private static String getURL(ChangeBasedEvent event, AbstractProject project) { String url = ""; String serverName = null; // Figure out what serverName to use if (event.getProvider() != null) { serverName = event.getProvider().getName(); } else if (project != null) { String name = GerritTrigger.getTrigger(project).getServerName(); if (!GerritServer.ANY_SERVER.equals(name)) { serverName = name; } } if (serverName == null && PluginImpl.getInstance().getFirstServer() != null) { logger.warn( "No server could be determined from event or project config, " + "defaulting to the first configured server. Event: [{}] Project: [{}]", event, project); serverName = PluginImpl.getInstance().getFirstServer().getName(); } else if (serverName == null) { // We have exhausted all possibilities, time to fail horribly throw new IllegalStateException( "Cannot determine a Gerrit server to link to. Have you configured one?"); } GerritServer server = PluginImpl.getInstance().getServer(serverName); if (server != null) { IGerritHudsonTriggerConfig config = server.getConfig(); if (config != null) { url = config.getGerritFrontEndUrlFor(event); } else { logger.error("Could not find config for Gerrit server {}", serverName); } } else { logger.error("Could not find Gerrit server {}", serverName); } return url; }
/** * Configures the GerritServer config to connect to the provided ssh server. * * @param sshd the server to connect to * @param sshKey the public key location to configure * @param gerritServer the config to configure * @see #getConfigFor(SshServer, IGerritHudsonTriggerConfig) */ public static void configureFor( final SshServer sshd, KeyPairFiles sshKey, GerritServer gerritServer) { gerritServer.setConfig(getConfigFor(sshd, sshKey, gerritServer.getConfig())); }