All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.lordofthejars.nosqlunit.elasticsearch2.ManagedElasticsearch Maven / Gradle / Ivy

The newest version!
package com.lordofthejars.nosqlunit.elasticsearch2;

import org.junit.rules.ExternalResource;

public class ManagedElasticsearch extends ExternalResource {

	private ManagedElasticsearch() {
		super();
	}

	protected ManagedElasticsearchLifecycleManager managedElasticsearchLifecycleManager;

	public static class ManagedElasticsearchRuleBuilder {

		private ManagedElasticsearchLifecycleManager managedElasticsearchLifecycleManager;

		private ManagedElasticsearchRuleBuilder() {
			this.managedElasticsearchLifecycleManager = new ManagedElasticsearchLifecycleManager();
		}

		public static ManagedElasticsearchRuleBuilder newManagedElasticsearchRule() {
			return new ManagedElasticsearchRuleBuilder();
		}

		public ManagedElasticsearchRuleBuilder elasticsearchPath(String elasticsearchPath) {
			this.managedElasticsearchLifecycleManager.setElasticsearchPath(elasticsearchPath);
			return this;
		}

		public ManagedElasticsearchRuleBuilder port(int port) {
			this.managedElasticsearchLifecycleManager.setPort(port);
			return this;
		}


		public ManagedElasticsearchRuleBuilder targetPath(String targetPath) {
			this.managedElasticsearchLifecycleManager.setTargetPath(targetPath);
			return this;
		}


		public ManagedElasticsearchRuleBuilder appendCommandLineArguments(
				String argumentName, String argumentValue) {
			this.managedElasticsearchLifecycleManager.addExtraCommandLineArgument(argumentName,
					argumentValue);
			return this;
		}

		public ManagedElasticsearchRuleBuilder appendSingleCommandLineArguments(
				String argument) {
			this.managedElasticsearchLifecycleManager.addSingleCommandLineArgument(argument);
			return this;
		}


		public ManagedElasticsearch build() {
			if (this.managedElasticsearchLifecycleManager.getElasticsearchPath() == null) {
				throw new IllegalArgumentException(
						"No Path to Elasticsearch is provided.");
			}

			ManagedElasticsearch managedElasticsearch = new ManagedElasticsearch();
			managedElasticsearch.managedElasticsearchLifecycleManager = this.managedElasticsearchLifecycleManager;

			return managedElasticsearch;
		}
	}

	@Override
	protected void before() throws Throwable {
		this.managedElasticsearchLifecycleManager.startEngine();
	}

	@Override
	protected void after() {
		this.managedElasticsearchLifecycleManager.stopEngine();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy