Commit 3633d2a9 authored by Zhou Rui's avatar Zhou Rui
Browse files

增加dll命令

parent 310dc9f4
Showing with 2989 additions and 85 deletions
+2989 -85
This source diff could not be displayed because it is too large. You can view the blob instead.
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<properties>
<global.version>4.3.5</global.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8
</project.reporting.outputEncoding>
</properties>
<groupId>o2oa</groupId>
<artifactId>o2server</artifactId>
<version>4.0.5</version>
<version>${global.version}</version>
<packaging>pom</packaging>
<modules>
<module>x_base_core_project</module>
......@@ -61,13 +69,6 @@
<module>x_program_center</module>
<module>x_console</module>
</modules>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8
</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>javax</groupId>
......@@ -365,13 +366,13 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.2</version>
<version>3.2.0</version>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
<excludes>
<exclude>META-INF</exclude>
<exclude>META-INF/**</exclude>
</excludes>
</configuration>
</plugin>
......@@ -734,142 +735,142 @@
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_base_core_project</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_attendance_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_bbs_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_calendar_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_cms_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_cms_core_express</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_component_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_file_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_general_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_hotpic_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_meeting_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_message_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_mind_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_okr_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_organization_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_organization_core_express</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_portal_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_processplatform_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_processplatform_core_express</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_query_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_query_core_express</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_report_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_strategydeploy_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_strategydeploy_assemble_control</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_program_center</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_program_center_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_teamwork_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
<dependency>
<groupId>o2oa</groupId>
<artifactId>x_workschedu_core_entity</artifactId>
<version>${project.version}</version>
<version>${global.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
......
......@@ -7,7 +7,7 @@
<parent>
<groupId>o2oa</groupId>
<artifactId>o2server</artifactId>
<version>4.0.5</version>
<version>${global.version}</version>
</parent>
<artifactId>x_attendance_assemble_control</artifactId>
<packaging>war</packaging>
......
......@@ -7,7 +7,7 @@
<parent>
<groupId>o2oa</groupId>
<artifactId>o2server</artifactId>
<version>4.0.5</version>
<version>${global.version}</version>
</parent>
<artifactId>x_attendance_core_entity</artifactId>
<packaging>jar</packaging>
......
......@@ -6,7 +6,7 @@
<parent>
<groupId>o2oa</groupId>
<artifactId>o2server</artifactId>
<version>4.0.5</version>
<version>${global.version}</version>
</parent>
<artifactId>x_base_core_project</artifactId>
<packaging>jar</packaging>
......
......@@ -6,7 +6,15 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import com.x.base.core.container.FactorDistributionPolicy;
import com.x.base.core.entity.JpaObject;
import com.x.base.core.entity.tools.JpaObjectTools;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.config.Node;
import com.x.base.core.project.tools.ListTools;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.openjpa.persistence.PersistenceProviderImpl;
import org.dom4j.Document;
......@@ -16,33 +24,41 @@ import org.dom4j.QName;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import com.x.base.core.container.FactorDistributionPolicy;
import com.x.base.core.entity.JpaObject;
import com.x.base.core.entity.tools.JpaObjectTools;
import com.x.base.core.project.config.Config;
import com.x.base.core.project.tools.ListTools;
public class PersistenceXmlHelper {
public static List<String> directWrite(String path, List<String> classNames) throws Exception {
private PersistenceXmlHelper() {
}
public static void writeForDdl(String path) throws Exception {
try {
Document document = DocumentHelper.createDocument();
Element persistence = document.addElement("persistence", "http://java.sun.com/xml/ns/persistence");
persistence.addAttribute(QName.get("schemaLocation", "xsi", "http://www.w3.org/2001/XMLSchema-instance"),
"http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd");
persistence.addAttribute("version", "2.0");
for (String className : classNames) {
Element unit = persistence.addElement("persistence-unit");
unit.addAttribute("name", className);
unit.addAttribute("transaction-type", "RESOURCE_LOCAL");
Element provider = unit.addElement("provider");
provider.addText(PersistenceProviderImpl.class.getName());
Element mapped_element = unit.addElement("class");
mapped_element.addText(className);
Element sliceJpaObject_element = unit.addElement("class");
sliceJpaObject_element.addText("com.x.base.core.entity.SliceJpaObject");
Element jpaObject_element = unit.addElement("class");
jpaObject_element.addText("com.x.base.core.entity.JpaObject");
Element unit = persistence.addElement("persistence-unit");
unit.addAttribute("name", "enhance");
unit.addAttribute("transaction-type", "RESOURCE_LOCAL");
Element provider = unit.addElement("provider");
provider.addText(PersistenceProviderImpl.class.getName());
List<String> entities = new ArrayList<>();
for (String className : (List<String>) Config.resource(Config.RESOURCE_CONTAINERENTITYNAMES)) {
Class<? extends JpaObject> clazz = (Class<JpaObject>) Class.forName(className);
for (Class<?> o : JpaObjectTools.scanMappedSuperclass(clazz)) {
entities.add(o.getName());
}
}
entities = ListTools.trim(entities, true, true);
for (String className : entities) {
Element class_element = unit.addElement("class");
class_element.addText(className);
}
Element properties = unit.addElement("properties");
if (BooleanUtils.isTrue(Config.externalDataSources().enable())) {
writeForDdlExternalProperty(properties);
} else {
writeForDdlInternalProperty(properties);
}
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
......@@ -51,12 +67,51 @@ public class PersistenceXmlHelper {
XMLWriter writer = new XMLWriter(new FileWriter(file), format);
writer.write(document);
writer.close();
return classNames;
} catch (Exception e) {
throw new Exception("registContainerEntity error.className:" + ListTools.toStringJoin(classNames), e);
throw new Exception("writeForDdl error.", e);
}
}
private static void writeForDdlExternalProperty(Element properties) throws Exception {
Element property = properties.addElement("property");
property.addAttribute("name", "javax.persistence.jdbc.driver");
property.addAttribute("value", Config.externalDataSources().get(0).getDriverClassName());
property = properties.addElement("property");
property.addAttribute("name", "javax.persistence.jdbc.url");
property.addAttribute("value", Config.externalDataSources().get(0).getUrl());
property = properties.addElement("property");
property.addAttribute("name", "javax.persistence.jdbc.user");
property.addAttribute("value", Config.externalDataSources().get(0).getUsername());
property = properties.addElement("property");
property.addAttribute("name", "javax.persistence.jdbc.password");
property.addAttribute("value", Config.externalDataSources().get(0).getPassword());
property = properties.addElement("property");
property.addAttribute("name", "openjpa.DynamicEnhancementAgent");
property.addAttribute("value", "false");
}
private static void writeForDdlInternalProperty(Element properties) throws Exception {
Element property = properties.addElement("property");
property.addAttribute("name", "javax.persistence.jdbc.driver");
property.addAttribute("value", SlicePropertiesBuilder.driver_h2);
property = properties.addElement("property");
property.addAttribute("name", "javax.persistence.jdbc.url");
Node node = Config.currentNode();
String url = "jdbc:h2:tcp://" + Config.node() + ":" + node.getData().getTcpPort() + "/X;JMX="
+ (node.getData().getJmxEnable() ? "TRUE" : "FALSE") + ";CACHE_SIZE="
+ (node.getData().getCacheSize() * 1024);
property.addAttribute("value", url);
property = properties.addElement("property");
property.addAttribute("name", "javax.persistence.jdbc.user");
property.addAttribute("value", "sa");
property = properties.addElement("property");
property.addAttribute("name", "javax.persistence.jdbc.password");
property.addAttribute("value", Config.token().getPassword());
property = properties.addElement("property");
property.addAttribute("name", "openjpa.DynamicEnhancementAgent");
property.addAttribute("value", "false");
}
public static List<String> write(String path, List<String> entities) throws Exception {
List<String> names = new ArrayList<>();
String name = "";
......@@ -90,7 +145,7 @@ public class PersistenceXmlHelper {
writer.close();
return names;
} catch (Exception e) {
throw new Exception("registContainerEntity error.className:" + name, e);
throw new Exception("write error.className:" + name, e);
}
}
......@@ -108,7 +163,6 @@ public class PersistenceXmlHelper {
return properties_internal_single(className);
}
}
}
private static Properties properties_base_slice(String className) throws Exception {
......
......@@ -88,12 +88,6 @@ public class MetaModelBuilder {
for (URL url : urls) {
cp.add(new File(url.getFile()));
}
// filter = new WildcardFileFilter("*.jar");
// File dir = new File(o2oadir, "o2server/commons/ext");
// for (File o : FileUtils.listFiles(dir, filter, null)) {
// cp.add(o);
// }
return cp;
}
......
......@@ -96,6 +96,7 @@ public class Config {
public static final String DIR_LOCAL_UPDATE = "local/update";
public static final String DIR_LOCAL_TEMP = "local/temp";
public static final String DIR_LOCAL_TEMP_CLASSES = "local/temp/classes";
public static final String DIR_LOCAL_TEMP_SQL = "local/temp/sql";
public static final String DIR_LOCAL_TEMP_DYNAMIC = "local/temp/dynamic";
public static final String DIR_LOCAL_TEMP_DYNAMIC_SRC = "local/temp/dynamic/src";
public static final String DIR_LOCAL_TEMP_DYNAMIC_TARGET = "local/temp/dynamic/target";
......@@ -329,6 +330,20 @@ public class Config {
return dir;
}
public static File dir_local_temp_sql() throws Exception {
return new File(base(), DIR_LOCAL_TEMP_SQL);
}
public static File dir_local_temp_sql(Boolean force) throws Exception {
File dir = new File(base(), DIR_LOCAL_TEMP_SQL);
if (force) {
if ((!dir.exists()) || dir.isFile()) {
FileUtils.forceMkdir(dir);
}
}
return dir;
}
public static File dir_logs() throws Exception {
return new File(base(), DIR_LOGS);
}
......@@ -790,9 +805,12 @@ public class Config {
/* 添加默认格式 */
mimeTypes.addMimeMapping("", "application/octet-stream");
/* 添加新版office格式 */
mimeTypes.addMimeMapping("docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
mimeTypes.addMimeMapping("xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
mimeTypes.addMimeMapping("pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation");
mimeTypes.addMimeMapping("docx",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document");
mimeTypes.addMimeMapping("xlsx",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
mimeTypes.addMimeMapping("pptx",
"application/vnd.openxmlformats-officedocument.presentationml.presentation");
/* 名片 */
mimeTypes.addMimeMapping("vcf", "text/x-vcard");
instance().mimeTypes = mimeTypes;
......
......@@ -331,6 +331,4 @@ public class Node extends ConfigObject {
}
}
package com.x.base.core.project.tools;
import java.io.File;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
public class URLClassLoaderTools {
private URLClassLoaderTools() {
}
public static void add(URLClassLoader classLoader, File file) throws Exception {
Class<?> urlClass = URLClassLoader.class;
Method method = urlClass.getDeclaredMethod("addURL", new Class[] { URL.class });
method.setAccessible(true);
method.invoke(classLoader, new Object[] { file.toURI().toURL() });
}
}
\ No newline at end of file
......@@ -7,7 +7,7 @@
<parent>
<groupId>o2oa</groupId>
<artifactId>o2server</artifactId>
<version>4.0.5</version>
<version>${global.version}</version>
</parent>
<artifactId>x_bbs_assemble_control</artifactId>
<packaging>war</packaging>
......
......@@ -7,7 +7,7 @@
<parent>
<groupId>o2oa</groupId>
<artifactId>o2server</artifactId>
<version>4.0.5</version>
<version>${global.version}</version>
</parent>
<artifactId>x_bbs_core_entity</artifactId>
<packaging>jar</packaging>
......
......@@ -7,7 +7,7 @@
<parent>
<groupId>o2oa</groupId>
<artifactId>o2server</artifactId>
<version>4.0.5</version>
<version>${global.version}</version>
</parent>
<artifactId>x_calendar_assemble_control</artifactId>
<packaging>war</packaging>
......
......@@ -7,7 +7,7 @@
<parent>
<groupId>o2oa</groupId>
<artifactId>o2server</artifactId>
<version>4.0.5</version>
<version>${global.version}</version>
</parent>
<artifactId>x_calendar_core_entity</artifactId>
<packaging>jar</packaging>
......
......@@ -7,7 +7,7 @@
<parent>
<groupId>o2oa</groupId>
<artifactId>o2server</artifactId>
<version>4.0.5</version>
<version>${global.version}</version>
</parent>
<artifactId>x_cms_assemble_control</artifactId>
<packaging>war</packaging>
......
......@@ -7,7 +7,7 @@
<parent>
<groupId>o2oa</groupId>
<artifactId>o2server</artifactId>
<version>4.0.5</version>
<version>${global.version}</version>
</parent>
<artifactId>x_cms_core_entity</artifactId>
<packaging>jar</packaging>
......
......@@ -7,7 +7,7 @@
<parent>
<groupId>o2oa</groupId>
<artifactId>o2server</artifactId>
<version>4.0.5</version>
<version>${global.version}</version>
</parent>
<artifactId>x_cms_core_express</artifactId>
<packaging>jar</packaging>
......
......@@ -7,7 +7,7 @@
<parent>
<groupId>o2oa</groupId>
<artifactId>o2server</artifactId>
<version>4.0.5</version>
<version>${global.version}</version>
</parent>
<artifactId>x_component_assemble_control</artifactId>
<packaging>war</packaging>
......
......@@ -7,7 +7,7 @@
<parent>
<groupId>o2oa</groupId>
<artifactId>o2server</artifactId>
<version>4.0.5</version>
<version>${global.version}</version>
</parent>
<artifactId>x_component_core_entity</artifactId>
<packaging>jar</packaging>
......
......@@ -7,7 +7,7 @@
<parent>
<groupId>o2oa</groupId>
<artifactId>o2server</artifactId>
<version>4.0.5</version>
<version>${global.version}</version>
</parent>
<artifactId>x_console</artifactId>
<packaging>jar</packaging>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment