|
Hibernate example source code file (DBAllocation.groovy)
The Hibernate DBAllocation.groovy source code/* * Hibernate, Relational Persistence for Idiomatic Java * * Copyright (c) 2011, Red Hat Inc. or third-party contributors as * indicated by the @author tags or express copyright attribution * statements applied by the authors. All third-party contributions are * distributed under license by Red Hat Inc. * * This copyrighted material is made available to anyone wishing to use, modify, * copy, or redistribute it subject to the terms and conditions of the GNU * Lesser General Public License, as published by the Free Software Foundation. * * 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 Lesser General Public License * for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this distribution; if not, write to: * Free Software Foundation, Inc. * 51 Franklin Street, Fifth Floor * Boston, MA 02110-1301 USA */ package hudson.util /** * * @author mvecera */ class DBAllocation { private final static String DB_ALLOCATOR_URL = "http://dballocator.mw.lab.eng.bos.redhat.com:8080/Allocator/AllocatorServlet"; private dbinstallPath = "dbinstall" private retries = 30 private UUID = "" private ant private File dbConfigFile; private String requestee; def DBAllocation(dbinstallPath) { this(new AntBuilder(), dbinstallPath) } def DBAllocation(ant, dbinstallPath, outPropsFileName = "allocated.db.properties") { this.ant = ant; this.dbinstallPath = dbinstallPath; this.dbConfigFile = new File(dbinstallPath, outPropsFileName); if(System.properties.containsKey("hibernate-matrix-dballocation-requestee")) requestee = System.properties["hibernate-matrix-dballocation-requestee"] else requestee = "hibernate" } def getProperties() { def props = new Properties(); props.load(new FileInputStream(dbConfigFile)); return props; } def allocate(label, expiry) { if ( dbConfigFile.exists() ) { dbConfigFile.delete() } def i = 0 while ( !(dbConfigFile.exists() && dbConfigFile.length() > 0) ) { if ( i >= retries ) { throw new Exception('Database unavailable') } if ( i > 0 ) { println "Waiting before trying to allocate DB again." Thread.sleep(60000) } println "Allocating DB..." def allocatorUrl = DB_ALLOCATOR_URL + "?operation=alloc&label=$label&requestee=${requestee}&expiry=$expiry" ant.get(src: allocatorUrl, dest: dbConfigFile.absolutePath, ignoreerrors: 'true') i++ } def dbProps = getProperties(); this.UUID = dbProps['uuid'] return this.UUID } def release() { release(this.UUID) } def release(UUID) { println 'De-allocating DB...' def allocatorUrl = DB_ALLOCATOR_URL + "?operation=dealloc&uuid=$UUID" ant.get(src: allocatorUrl, dest: "/tmp/.tmpfile") } def clean() { clean(this.UUID); } def clean(UUID) { println 'Cleaning DB...' def allocatorUrl = DB_ALLOCATOR_URL + "?operation=erase&uuid=$UUID" ant.get(src: allocatorUrl, dest: "/tmp/.tmpfile") } def reallocate(newExpiry) { reallocate(this.UUID, newExpiry) } def reallocate(UUID, newExpiry) { println 'Re-allocating DB...' def allocatorUrl = DB_ALLOCATOR_URL + "?operation=realloc&uuid=$UUID&expiry=$newExpiry" ant.get(src: allocatorUrl, dest: "/tmp/.tmpfile") } } Other Hibernate examples (source code examples)Here is a short list of links related to this Hibernate DBAllocation.groovy source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.