提交 7e6e350f 编写于 作者: O o2null

Merge branch 'fix/ScriptObject' into 'wrdp'

修复ctl -ddl

See merge request o2oa/o2oa!1899
......@@ -3,13 +3,6 @@ package com.x.server.console.action;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import com.x.base.core.container.factory.PersistenceXmlHelper;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.ListTools;
import org.apache.commons.lang3.StringUtils;
import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
......@@ -19,6 +12,12 @@ import org.apache.openjpa.persistence.EntityManagerImpl;
import org.apache.openjpa.persistence.OpenJPAEntityManagerFactory;
import org.apache.openjpa.persistence.OpenJPAPersistence;
import com.x.base.core.container.factory.PersistenceXmlHelper;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.ClassLoaderTools;
public class Ddl {
private static Logger logger = LoggerFactory.getLogger(Ddl.class);
......@@ -26,23 +25,11 @@ public class Ddl {
/* 初始化完成 */
public boolean execute(String type) throws Exception {
// List<String> containerEntityNames = new ArrayList<>();
// containerEntityNames.addAll((List<String>)
// Config.resource(Config.RESOURCE_CONTAINERENTITYNAMES));
// List<String> classNames =
// ListTools.includesExcludesWildcard(containerEntityNames,
// Config.dumpRestoreData().getIncludes(),
// Config.dumpRestoreData().getExcludes());
// File persistence = new File(Config.dir_local_temp_classes(),
// "META-INF/persistence.xml");
// PersistenceXmlHelper.writeForDdl(persistence.getAbsolutePath());
// String[] arguments = new String[4];
// arguments[0] = "-schemaAction";
// arguments[1] = StringUtils.equals(type ,"create")? "build":"add";
// arguments[2] = "-sql";
// arguments[3] = Config.dir_local_temp_sql(true) + "/" + type + ".sql";
// MappingTool.main(arguments);
// return true;
new Thread(() -> {
try {
ClassLoader cl = ClassLoaderTools.urlClassLoader(true, true, true, true, true,
Config.dir_local_temp_classes().toPath());
Thread.currentThread().setContextClassLoader(cl);
String flag = "build";
if (StringUtils.equalsIgnoreCase(type, "createDB")) {
flag = "createDB";
......@@ -50,14 +37,10 @@ public class Ddl {
flag = "dropDB";
} else if (StringUtils.equalsIgnoreCase(type, "drop")) {
flag = "drop";
// } else if (StringUtils.equalsIgnoreCase(type, "deleteTableContents")) {
// flag = "deleteTableContents";
}
List<String> containerEntityNames = new ArrayList<>();
containerEntityNames.addAll((List<String>) Config.resource(Config.RESOURCE_CONTAINERENTITYNAMES));
List<String> classNames = ListTools.includesExcludesWildcard(containerEntityNames,
Config.dumpRestoreData().getIncludes(), Config.dumpRestoreData().getExcludes());
File persistence = new File(Config.dir_local_temp_classes(), "persistence_sql.xml");
File persistence = new File(Config.dir_local_temp_classes(), "META-INF/persistence_sql.xml");
PersistenceXmlHelper.writeForDdl(persistence.getAbsolutePath());
OpenJPAEntityManagerFactory emf = OpenJPAPersistence.createEntityManagerFactory("enhance",
persistence.getName());
......@@ -77,15 +60,14 @@ public class Ddl {
MappingTool.run((JDBCConfiguration) em.getConfiguration(), args, opts, null);
logger.print("file : {}.", file.getAbsolutePath());
} else if (StringUtils.equals(flag, "deleteTableContents")) {
// arguments = new String[2];
// arguments[0] = "-schemaAction";
// arguments[1] = flag;
// args = opts.setFromCmdLine(arguments);
// MappingTool.run((JDBCConfiguration) em.getConfiguration(), args, opts, null);
// logger.print("delete all table contents.");
}
em.close();
emf.close();
} catch (Exception e) {
logger.error(e);
}
}).start();
return true;
}
......
package com.x.server.console.action;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import com.x.base.core.container.factory.PersistenceXmlHelper;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.ListTools;
import org.apache.commons.lang3.StringUtils;
import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
import org.apache.openjpa.jdbc.meta.MappingTool;
import org.apache.openjpa.lib.util.Options;
import org.apache.openjpa.persistence.EntityManagerImpl;
import org.apache.openjpa.persistence.OpenJPAEntityManagerFactory;
import org.apache.openjpa.persistence.OpenJPAPersistence;
public class Ddl2 {
private static Logger logger = LoggerFactory.getLogger(Ddl2.class);
/* 初始化完成 */
public boolean execute(String type) throws Exception {
// List<String> containerEntityNames = new ArrayList<>();
// containerEntityNames.addAll((List<String>)
// Config.resource(Config.RESOURCE_CONTAINERENTITYNAMES));
// List<String> classNames =
// ListTools.includesExcludesWildcard(containerEntityNames,
// Config.dumpRestoreData().getIncludes(),
// Config.dumpRestoreData().getExcludes());
// File persistence = new File(Config.dir_local_temp_classes(),
// "META-INF/persistence.xml");
// PersistenceXmlHelper.writeForDdl(persistence.getAbsolutePath());
// String[] arguments = new String[4];
// arguments[0] = "-schemaAction";
// arguments[1] = StringUtils.equals(type ,"create")? "build":"add";
// arguments[2] = "-sql";
// arguments[3] = Config.dir_local_temp_sql(true) + "/" + type + ".sql";
// MappingTool.main(arguments);
// return true;
String flag = "build";
if (StringUtils.equalsIgnoreCase(type, "createDB")) {
flag = "createDB";
} else if (StringUtils.equalsIgnoreCase(type, "dropDB")) {
flag = "dropDB";
} else if (StringUtils.equalsIgnoreCase(type, "drop")) {
flag = "drop";
// } else if (StringUtils.equalsIgnoreCase(type, "deleteTableContents")) {
// flag = "deleteTableContents";
}
List<String> containerEntityNames = new ArrayList<>();
containerEntityNames.addAll((List<String>) Config.resource(Config.RESOURCE_CONTAINERENTITYNAMES));
List<String> classNames = ListTools.includesExcludesWildcard(containerEntityNames,
Config.dumpRestoreData().getIncludes(), Config.dumpRestoreData().getExcludes());
File persistence = new File(Config.dir_local_temp_classes(), "persistence_sql.xml");
PersistenceXmlHelper.writeForDdl(persistence.getAbsolutePath());
OpenJPAEntityManagerFactory emf = OpenJPAPersistence.createEntityManagerFactory("enhance",
persistence.getName());
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!" + emf);
EntityManagerImpl em = (EntityManagerImpl) emf.createEntityManager();
String[] arguments = null;
String[] args = null;
Options opts = new Options();
if (StringUtils.equals(flag, "build") || StringUtils.equals(flag, "drop")
|| StringUtils.equals(flag, "createDB") || StringUtils.equals(flag, "dropDB")) {
arguments = new String[4];
File file = new File(Config.dir_local_temp_sql(true), flag + ".sql");
arguments[0] = "-schemaAction";
arguments[1] = flag;
arguments[2] = "-sql";
arguments[3] = file.getAbsolutePath();
args = opts.setFromCmdLine(arguments);
MappingTool.run((JDBCConfiguration) em.getConfiguration(), args, opts, null);
logger.print("file : {}.", file.getAbsolutePath());
} else if (StringUtils.equals(flag, "deleteTableContents")) {
// arguments = new String[2];
// arguments[0] = "-schemaAction";
// arguments[1] = flag;
// args = opts.setFromCmdLine(arguments);
// MappingTool.run((JDBCConfiguration) em.getConfiguration(), args, opts, null);
// logger.print("delete all table contents.");
}
em.close();
emf.close();
return true;
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册