public Builder withInstanceConfiguration(InstanceConfiguration config) { this.log = config.getClusterConfiguration().getLog(); this.socketTimeout = config.getClusterConfiguration().getClientSocketTimeout(); this.port = config.getHttpPort(); return this; }
@Override public void execute(ClusterConfiguration config) { if (config.isSetAwait()) { new ExecutionLock(config.getLog()).lock(); } }
public PluginArtifactInstaller buildArtifactInstaller() { return new MyArtifactInstaller(repositorySystem, repositorySession, getLog()); } }
@Override public ClusterConfiguration buildClusterConfiguration() { ClusterConfiguration.Builder clusterConfigBuilder = new ClusterConfiguration.Builder() .withArtifactResolver(buildArtifactResolver()) .withLog(getLog()); for (int i = 0; i < instanceCount; i++) { clusterConfigBuilder.addInstanceConfiguration(new InstanceConfiguration.Builder() .withId(i) .withBaseDir(baseDir.getAbsolutePath() + i) .build()); } ClusterConfiguration clusterConfig = clusterConfigBuilder.build(); return clusterConfig; }
private ClusterConfiguration buildConfig(int... ports) { ClusterConfiguration.Builder configBuilder = new ClusterConfiguration.Builder(); for (int i = 0; i < ports.length;) { int httpPort = ports[i++]; int transportPort = ports[i++]; configBuilder.addInstanceConfiguration(new InstanceConfiguration.Builder() .withHttpPort(httpPort) .withTransportPort(transportPort) .build()); } ClusterConfiguration config = configBuilder.build(); return config; } }
private ClusterConfiguration buildConfig(String version, String flavour) { ClusterConfiguration config = new ClusterConfiguration.Builder() .withVersion(version) .withFlavour(flavour) .withLog(log) .build(); return config; } }
private ClusterConfiguration buildConfig(String version) { ClusterConfiguration config = new ClusterConfiguration.Builder() .withVersion(version) .build(); return config; } }
public AbstractArtifact(String groupId, String artifactId, String version, String classifier, String type) { this.setGroupId(groupId); this.setArtifactId(artifactId); this.setVersion(version); this.setClassifier(classifier); this.setType(type); }
@Override public PluginArtifactResolver buildArtifactResolver() { ChainedArtifactResolver artifactResolver = new ChainedArtifactResolver(); artifactResolver.addPluginArtifactResolver(new MyArtifactResolver( repositorySystem, repositorySession, remoteRepositories, getLog())); return artifactResolver; }
@Override public void run() { FilesystemUtil.setScriptPermission(config, "elasticsearch"); ProcessUtil.executeScript(config, getStartScriptCommand(), null, new ForkedElasticsearchProcessDestroyer(config)); }
public ForkedElasticsearchProcessDestroyer(final InstanceConfiguration config) { this.log = config.getClusterConfiguration().getLog(); Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { ForkedElasticsearchProcessDestroyer.this.terminateProcess(config); } }); }
private void setupElasticsearchConf(InstanceConfiguration config) throws IOException { String pathConf = config.getClusterConfiguration().getPathConf(); if (pathConf != null && !pathConf.isEmpty()) { // Merge the user-defined config directory with the default one // This allows user to omit some configuration files (jvm.options for instance) File baseDir = new File(config.getBaseDir()); FileUtils.copyDirectory(new File(pathConf), new File(baseDir, "config")); } }
@Override public void execute(ClusterConfiguration config) { int instanceCount = config.getInstanceConfigurationList().size(); if (instanceCount < 1) { throw new ElasticsearchSetupException(String.format( "The number of instances should not be smaller than 1; you configured: %d", instanceCount)); } }
private void terminateProcess(InstanceConfiguration config) { if (SystemUtils.IS_OS_WINDOWS) { terminateWindowsProcess(config); } else { terminateUnixProcess(config); } }
@Override public void execute(ClusterConfiguration config) { String clusterName = config.getClusterName(); if (clusterName == null) { throw new ElasticsearchSetupException(String.format( "Please provide a cluster name.")); } if (clusterName.matches("[a-zA-Z0-9.-]+") == false) { throw new ElasticsearchSetupException(String.format( "elasticsearch-maven-plugin supports only alphanumeric with dots and dashes cluster names. You configured: %s.", clusterName)); } }
@Override public void execute(ClusterConfiguration config) { String pathConf = config.getPathConf(); if (StringUtils.isNotBlank(pathConf) && new File(pathConf).isDirectory() == false) { throw new ElasticsearchSetupException(String.format( "The value of the 'pathConf' parameter ('%1$s') must be the absolute path" + " (or relative to the maven project) of an existing directory.", pathConf)); } }
@Override public String toString() { return "ElasticsearchArtifact[" + super.getArtifactCoordinates() + "]"; }
public InstanceConfiguration build() { InstanceConfiguration config = new InstanceConfiguration(); config.clusterConfiguration = clusterConfiguration; config.id = id; config.baseDir = baseDir; config.httpPort = httpPort; config.transportPort = transportPort; config.pathData = pathData; config.pathLogs = pathLogs; config.settings = settings; return config; } }
/** * Verify that the given file path is a valid reference to an existing file on the disk. * @param filePath */ protected void validateFile(String filePath) { if (new File(filePath).isFile() == false) { throw new ElasticsearchSetupException( "The provided init script path is not a valid file path: " + filePath); } }
@Override public String toString() { return "Artifact[" + getArtifactCoordinates() + "]"; }