Java tutorial
/* * RESTHeart - the Web API for MongoDB * Copyright (C) SoftInstigate Srl * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.restheart.test.performance; import java.net.Authenticator; import java.net.PasswordAuthentication; import java.net.URI; import java.net.URISyntaxException; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.http.HttpHost; import org.apache.http.client.fluent.Executor; import org.restheart.Configuration; import org.restheart.ConfigurationException; import org.restheart.db.MongoDBClientSingleton; import org.yaml.snakeyaml.Yaml; /** * * @author Andrea Di Cesare {@literal <andrea@softinstigate.com>} */ public abstract class AbstractPT { protected String url; protected String mongoUri; protected String id; protected String pwd; protected String db; protected String coll; protected Executor httpExecutor; public void prepare() { Authenticator.setDefault(new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(id, pwd.toCharArray()); } }); Configuration conf; StringBuilder ymlSB = new StringBuilder(); if (mongoUri != null) { ymlSB.append(Configuration.MONGO_URI_KEY).append(": ").append(mongoUri).append("\n"); } Yaml yaml = new Yaml(); Map<String, Object> configuration = (Map<String, Object>) yaml.load(ymlSB.toString()); try { MongoDBClientSingleton.init(new Configuration(configuration, true)); } catch (ConfigurationException ex) { System.out.println(ex.getMessage() + ", exiting..."); System.exit(-1); } httpExecutor = Executor.newInstance(); // for perf test better to disable the restheart security if (url != null && id != null && pwd != null) { String host = "127.0.0.1"; int port = 8080; String scheme = "http"; try { URI uri = new URI(url); host = uri.getHost(); port = uri.getPort(); scheme = uri.getScheme(); } catch (URISyntaxException ex) { Logger.getLogger(LoadPutPT.class.getName()).log(Level.SEVERE, null, ex); } httpExecutor.authPreemptive(new HttpHost(host, port, scheme)).auth(new HttpHost(host), id, pwd); } } /** * @param url the url to set */ public void setUrl(String url) { this.url = url; } /** * @param mongoUri the mongoHost to set */ public void setMongoUri(String mongoUri) { this.mongoUri = mongoUri; } /** * @param id the id to set */ public void setId(String id) { this.id = id; } /** * @param pwd the pwd to set */ public void setPwd(String pwd) { this.pwd = pwd; } /** * @param db the db to set */ public void setDb(String db) { this.db = db; } /** * @param coll the coll to set */ public void setColl(String coll) { this.coll = coll; } }