
org.openmrs.maven.plugins.Reset Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of openmrs-sdk-maven-plugin Show documentation
Show all versions of openmrs-sdk-maven-plugin Show documentation
OpenMRS SDK allows for rapid development of OpenMRS modules.
The newest version!
package org.openmrs.maven.plugins;
import static org.openmrs.maven.plugins.model.Server.getServersPath;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.Mojo;
import org.openmrs.maven.plugins.model.DistroProperties;
import org.openmrs.maven.plugins.model.Server;
import org.openmrs.maven.plugins.utility.DBConnector;
import org.openmrs.maven.plugins.utility.DockerHelper;
import org.openmrs.maven.plugins.utility.SDKConstants;
import java.io.IOException;
import java.sql.SQLException;
/**
* Reset the server and its database to the initial state.
*/
@Mojo(name = "reset", requiresProject = false)
public class Reset extends AbstractServerTask {
private static final String TEMPLATE_SUCCESS_FULL = "Server '%s' has been reset";
public void executeTask() throws MojoExecutionException {
Server server = getServer();
if (StringUtils.isNotBlank(server.getContainerId())){
new DockerHelper(mavenProject, mavenSession, pluginManager, wizard).runDbContainer(
server.getContainerId(),
server.getMySqlPort(),
server.getDbUser(),
server.getDbPassword());
}
if (server.isMySqlDb() || server.isPostgreSqlDb()){
DBConnector connector = null;
try {
String dbName = String.format(SDKConstants.DB_NAME_TEMPLATE, serverId);
String uri = server.getParam(Server.PROPERTY_DB_URI);
uri = uri.substring(0, uri.lastIndexOf("/"));
connector = new DBConnector(uri, server.getParam(Server.PROPERTY_DB_USER),
server.getParam(Server.PROPERTY_DB_PASS),
dbName);
connector.dropDatabase();
connector.close();
} catch (SQLException e) {
throw new MojoExecutionException(e.getMessage());
} finally {
if (connector != null) try {
connector.close();
} catch (SQLException e) {
getLog().error(e.getMessage());
}
}
}
try {
Server newServer = new Server.ServerBuilder()
.setServerId(server.getServerId())
.setVersion(server.getVersion())
.setPlatformVersion(server.getPlatformVersion())
.setDbDriver(server.getDbDriver())
.setDbName(server.getDbName())
.setDbUri(server.getDbUri())
.setDbUser(server.getDbUser())
.setDbPassword(server.getDbPassword())
.setInteractiveMode(false)
.setJavaHome(server.getJavaHome())
.setContainerId(server.getContainerId())
.build();
newServer.setServerDirectory(getServersPath().resolve(serverId).toFile());
Setup setup = new Setup(this);
DistroProperties distroProperties = server.getDistroProperties();
FileUtils.deleteDirectory(server.getServerDirectory());
setup.setup(newServer, distroProperties);
getLog().info(String.format(TEMPLATE_SUCCESS_FULL, newServer.getServerId()));
} catch (IOException e) {
throw new MojoExecutionException(e.getMessage());
}
}
@Override
protected Server loadServer() throws MojoExecutionException {
return loadValidatedServer(serverId);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy