au.net.causal.maven.plugins.boxdb.db.SqlServerFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of boxdb-maven-plugin Show documentation
Show all versions of boxdb-maven-plugin Show documentation
Maven plugin to start databases using Docker and VMs
package au.net.causal.maven.plugins.boxdb.db;
import au.net.causal.maven.plugins.boxdb.vagrant.Vagrant;
import java.io.IOException;
import java.net.URL;
import java.nio.file.Path;
public class SqlServerFactory extends VagrantDatabaseFactory
{
public SqlServerFactory()
{
super("sqlserver");
}
@Override
protected void initializeDefaults(BoxConfiguration boxConfiguration)
{
boxConfiguration.setDatabaseVersion("2014");
super.initializeDefaults(boxConfiguration);
//Port is hardcoded
boxConfiguration.setDatabasePort(1433);
//DB admin credentials are hardcoded
boxConfiguration.setAdminUser("vagrant");
boxConfiguration.setAdminPassword("vagrant");
//If database user/password are not configured then make sensible defaults
if (boxConfiguration.getDatabaseUser() == null)
boxConfiguration.setDatabaseUser(boxConfiguration.getDatabaseName());
if (boxConfiguration.getDatabasePassword() == null)
boxConfiguration.setDatabasePassword(boxConfiguration.getDatabaseUser());
}
@Override
protected VagrantDatabase createVagrantDatabase(Vagrant vagrant,
Path baseDirectory, Path vagrantFile,
BoxConfiguration boxConfiguration,
ProjectConfiguration projectConfiguration,
BoxContext context)
throws BoxDatabaseException, IOException
{
verifyAndInstallVagrantPluginIfNeeded("vagrant-vbguest", vagrant, context);
//Extract additional resources
Path scriptsVagrantfile = baseDirectory.resolve("Vagrantfile-scripts");
Path sqlVagrantfile = baseDirectory.resolve("Vagrantfile-sql");
copyResource(resource("initdb.sql"), baseDirectory.resolve("initdb.sql"));
copyResource(resource("Vagrantfile-scripts"), scriptsVagrantfile);
copyResource(resource("Vagrantfile-sql"), sqlVagrantfile);
return new SqlServerDatabase(boxConfiguration, projectConfiguration, context, vagrant, baseDirectory,
vagrantFile, scriptsVagrantfile, sqlVagrantfile);
}
@Override
protected URL vagrantFileResource() throws IOException
{
return resource("Vagrantfile");
}
private URL resource(String name)
{
return SqlServerFactory.class.getResource("sqlserver/" + name);
}
}