Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   This is free and unencumbered software released into the public domain.
  
   Anyone is free to copy, modify, publish, use, compile, sell, or
   distribute this software, either in source code form or as a compiled
   binary, for any purpose, commercial or non-commercial, and by any
   means.
  
   In jurisdictions that recognize copyright laws, the author or authors
  of this software dedicate any and all copyright interest in the
  software to the public domain. We make this dedication for the benefit
  of the public at large and to the detriment of our heirs and
  successors. We intend this dedication to be an overt act of
  relinquishment in perpetuity of all present and future rights to this
  software under copyright law.
 
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
  OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
  ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  OTHER DEALINGS IN THE SOFTWARE.
  */
 package base.jee.api.sql;
 
 import java.util.Map;
 
 
 import base.Command;
 
 import static base.jee.Constants.DEFAULT_THROTTLE_AUTH_LOCKOUT;
 import static base.jee.api.sql.util.SqlFilter.sqlFilter;
 
 public class Setup extends Command {
 
 	private DataSource ds;
 
 	public Setup(DataSource ds) {
 		this. = ds;
 
 		if(ds == null) {
 			throw new IllegalArgumentException("Invalid parameter: ds");
 		}
 	}
 
 	protected void execute() throws IOException {
 		Connection c = null;
 		try {
 			c = .getConnection();
 			c.setAutoCommit(false);
 
 			int type = 0;
 				type = 1;
 			}
 				type = 2;
 			}
 
 			PreparedStatement s = null;
 
 			createTable(c"create table if not exists email (uuid char(36) primary key, to_address varchar(250), email text, retries integer, attempt_at bigint, in_progress boolean)"type);
 			createTable(c"create table if not exists person (site varchar(" + . + "), uuid char(36) primary key, first_name varchar(128), last_name varchar(128), email varchar(250), username varchar(100), password text, last_auth bigint, last_auth_ip text, created bigint, updated bigint, expiry bigint)"type);
 			createTable(c"create table if not exists batch_load_info (uuid char(36), requestor char(36), executed bigint, primary key(uuid))"type);
 			createTable(c"create table if not exists batch_load_result (uuid char(36), sort_order int, value text, primary key(uuid, sort_order))"type);
 			createTable(c"create table if not exists base_group (site varchar(" + . + "), uuid char(36), name varchar(128), type int, primary key (site, uuid))"type);
 			createTable(c"create table if not exists group_member (group_uuid char(36), person_uuid char(36), joined bigint, primary key (group_uuid, person_uuid))"type);
 			createTable(c"create table if not exists token (site varchar(" + . + "), token varchar(" + . + "), person_uuid char(36), expiry integer, roles text, created integer, primary key (site, token))"type);
 			createTable(c"create table if not exists request_token (site varchar(" + . + "), token varchar(64) primary key, person_uuid char(36), expiry integer, type varchar(64), ip varchar(64), data text)"type);
 			createTable(c"create table if not exists base_log (uuid char(36) primary key, person_uuid char(36), severity varchar(16), message text, event_time bigint, ip text)"type);
 			createTable(c"create table if not exists base_log_type (base_log_uuid char(36), resource_uid varchar(64), resource_type varchar(64))"type);
 			createTable(c"create table if not exists person_setting (uuid char(36), name varchar(64), value text, primary key (uuid, name))"type);
 			createTable(c"create table if not exists role (assignee_uuid char(36), role varchar(64), resource_type varchar(64), resource_uid varchar(64))"type);
 			createTable(c"create table if not exists setting (name varchar(64) primary key, value text)"type);
 			createTable(c"create table if not exists resource_update (uuid char(36) primary key not null, updator char(36), updated bigint, resource_type varchar(64), action varchar(64), resource_uid varchar(250), delivered boolean)"type);
 			createTable(c"create table if not exists template (site varchar(" + . + "), name varchar(64), primary key (site, name))"type);
 			createTable(c"create table if not exists template_resource (site varchar(" + . + "), template varchar(64), name varchar(64), content blob, isbinary boolean, primary key (site, template, name))"type);
 			createTable(c"create table if not exists throttle (key_value varchar(64) primary key, attempts int, updated bigint)"type);
 			createTable(c"create table if not exists ip_location (start_ip bigint, end_ip bigint, location bigint, primary key (start_ip))"type);
 			createTable(c"create table if not exists location (id bigint, country text, city text, latitude double, longitude double, primary key(id))"type);
 
 			createIndex(c"create index template_resource_lookup on template_resource (site, template, name)");
 			createIndex(c"create index ip_location_start on ip_location (start_ip desc)");
 			createIndex(c"create index batch_load_result_idx on batch_load_result (uuid)");
 			createIndex(c"create index token_idx on token (token)");
 			createIndex(c"create index token_person on token(person_uuid,token);");
 			createIndex(c"create index request_token_idx on request_token (token)");
 			createIndex(c"create index audit_event_person_time on audit_event (person_uuid, event_time desc)");
			createIndex(c"create index audit_event_ip_time on audit_event (ip, event_time desc)");
			createIndex(c"create index audit_event_time on audit_event(event_time desc)");
			try {
				s = c.prepareStatement("insert into setting (name, value) values('throttle.auth.lockout', '" +  + "')");
catch(SQLException e) {
finally {
				s.close();
			}
			try {
				s = c.prepareStatement("insert into setting (name, value) values('throttle.auth.window', '60')");
catch(SQLException e) {
finally {
				s.close();
			}
			try {
				s = c.prepareStatement("insert into setting (name, value) values('throttle.auth.attempts', '3')");
catch(SQLException e) {
finally {
				s.close();
			}
			try {
				s = c.prepareStatement("insert into setting (name, value) values('throttle.ip.lockout', '60')");
catch(SQLException e) {
finally {
				s.close();
			}
			try {
				s = c.prepareStatement("insert into setting (name, value) values('throttle.ip.window', '20')");
catch(SQLException e) {
finally {
				s.close();
			}
			try {
				s = c.prepareStatement("insert into setting (name, value) values('throttle.ip.attempts', '10')");
catch(SQLException e) {
finally {
				s.close();
			}
			c.commit();
catch(SQLException e) {
			throw new IOException(e);
finally {
			if(c != null) {
				try { c.rollback(); } catch (SQLException e) { }
				try { c.close(); } catch (SQLException e) { }
			}
		}
	}
	public static void createIndex(Connection cString sqlthrows SQLException {
		PreparedStatement s = null;
		try {
			s = c.prepareStatement(sql);
catch(SQLException e) {
finally {
			if(s != null) { s.close(); }
		}
	}
	public static void createTable(Connection cString sqlint typethrows SQLException {
		PreparedStatement s = null;
		String q = null;
		try {
			q = sqlFilter(sqltype);
			s = c.prepareStatement(q);
catch(SQLException e) {
			if(e.getMessage().startsWith("ORA-00955")) {
				return;
			}
			..println("----------------");
			..println("Create table failed.");
finally {
			if(s != null) { s.close(); }
		}
	}
		return "{" +
				"}";
	}
		throw new IllegalArgumentException("Setup may not be instantiated with parameter map");
	}
New to GrepCode? Check out our FAQ X