Browse Source

Merge pull request #245 in CORE/base-third from ~JU/base-third:final/10.0 to final/10.0

* commit 'e2a14908d0a78e4335729ae9efed60440b08fb43':
  REPORT-18472 spring集成10.0报错 我们的ContextLoader扫到了客户的web.xml里面的spring配置
  KERNEL-554 J2V8的Linux-arm版本。
  REPORT-18993 log4j冲突问题处理,这个在9.0是处理过的,后来jinbokai重新拉了一份源码覆盖掉了,重新提交下
  修改文件名 fine-hibernate
  REPORT-18917 嵌入式部署10.0报错404+部署后模板访问空白 解决 serviceloader 加载冲突的问题。 解决 third - hibernate 读取嵌入式 hibernate 的问题。
  KERNEL-724 更新third包的里面的J2V8
  DEC-8173 脏数据导致quartz启动失败
final/10.0.3
Kara 5 years ago
parent
commit
7aa138afd8
  1. 0
      fine-ehcache/resources/META-INF/services/com.fr.third.org.hibernate.boot.registry.selector.StrategyRegistrationProvider
  2. 2
      fine-hibernate/src/com/fr/third/org/hibernate/cfg/Environment.java
  3. 1
      fine-j2v8/src/com/eclipsesource/v8/LibraryLoader.java
  4. BIN
      fine-j2v8/src/libj2v8-linux-aarch_64.so
  5. 64
      fine-log4j/src/com/fr/third/apache/log4j/LogManager.java
  6. 40
      fine-spring/src/com/fr/third/springframework/web/context/ContextLoader.java

0
fine-ehcache/resources/META-INF/services/org.hibernate.boot.registry.selector.StrategyRegistrationProvider → fine-ehcache/resources/META-INF/services/com.fr.third.org.hibernate.boot.registry.selector.StrategyRegistrationProvider vendored

2
fine-hibernate/src/com/fr/third/org/hibernate/cfg/Environment.java

@ -192,7 +192,7 @@ public final class Environment implements AvailableSettings {
GLOBAL_PROPERTIES.setProperty( USE_REFLECTION_OPTIMIZER, Boolean.FALSE.toString() ); GLOBAL_PROPERTIES.setProperty( USE_REFLECTION_OPTIMIZER, Boolean.FALSE.toString() );
try { try {
InputStream stream = ConfigHelper.getResourceAsStream( "/hibernate.properties" ); InputStream stream = ConfigHelper.getResourceAsStream( "/fine-hibernate.properties" );
try { try {
GLOBAL_PROPERTIES.load(stream); GLOBAL_PROPERTIES.load(stream);
LOG.propertiesLoaded( ConfigurationHelper.maskOut( GLOBAL_PROPERTIES, PASS ) ); LOG.propertiesLoaded( ConfigurationHelper.maskOut( GLOBAL_PROPERTIES, PASS ) );

1
fine-j2v8/src/com/eclipsesource/v8/LibraryLoader.java

@ -141,6 +141,7 @@ class LibraryLoader {
FileOutputStream os = null; FileOutputStream os = null;
InputStream is = null; InputStream is = null;
File file = new File(fileName); File file = new File(fileName);
//这部分自己修改过,主要是以为linux通过System.getProperty("java.io.tmpdir")获取到的是相对路径,但是System.load方法加载需要文件的绝对路径。
String absoluteName = file.getAbsolutePath(); String absoluteName = file.getAbsolutePath();
boolean extracted = false; boolean extracted = false;
try { try {

BIN
fine-j2v8/src/libj2v8-linux-aarch_64.so

Binary file not shown.

64
fine-log4j/src/com/fr/third/apache/log4j/LogManager.java

@ -17,9 +17,7 @@
package com.fr.third.apache.log4j; package com.fr.third.apache.log4j;
import com.fr.third.apache.log4j.helpers.Loader;
import com.fr.third.apache.log4j.helpers.LogLog; import com.fr.third.apache.log4j.helpers.LogLog;
import com.fr.third.apache.log4j.helpers.OptionConverter;
import com.fr.third.apache.log4j.spi.DefaultRepositorySelector; import com.fr.third.apache.log4j.spi.DefaultRepositorySelector;
import com.fr.third.apache.log4j.spi.LoggerFactory; import com.fr.third.apache.log4j.spi.LoggerFactory;
import com.fr.third.apache.log4j.spi.LoggerRepository; import com.fr.third.apache.log4j.spi.LoggerRepository;
@ -27,13 +25,9 @@ import com.fr.third.apache.log4j.spi.NOPLoggerRepository;
import com.fr.third.apache.log4j.spi.RepositorySelector; import com.fr.third.apache.log4j.spi.RepositorySelector;
import com.fr.third.apache.log4j.spi.RootLogger; import com.fr.third.apache.log4j.spi.RootLogger;
import java.net.URL;
import java.net.MalformedURLException;
import java.util.Enumeration;
import java.io.StringWriter;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Enumeration;
/** /**
* Use the <code>LogManager</code> class to retreive {@link Logger} * Use the <code>LogManager</code> class to retreive {@link Logger}
@ -82,60 +76,7 @@ public class LogManager {
Hierarchy h = new Hierarchy(new RootLogger((Level) Level.DEBUG)); Hierarchy h = new Hierarchy(new RootLogger((Level) Level.DEBUG));
repositorySelector = new DefaultRepositorySelector(h); repositorySelector = new DefaultRepositorySelector(h);
/** Search for the properties file log4j.properties in the CLASSPATH. */
String override = OptionConverter.getSystemProperty(DEFAULT_INIT_OVERRIDE_KEY,
null);
// if there is no default init override, then get the resource
// specified by the user or the default config file.
if(override == null || "false".equalsIgnoreCase(override)) {
String configurationOptionStr = OptionConverter.getSystemProperty(
DEFAULT_CONFIGURATION_KEY,
null);
String configuratorClassName = OptionConverter.getSystemProperty(
CONFIGURATOR_CLASS_KEY,
null);
URL url = null;
// if the user has not specified the log4j.configuration
// property, we search first for the file "log4j.xml" and then
// "log4j.properties"
if(configurationOptionStr == null) {
url = Loader.getResource(DEFAULT_XML_CONFIGURATION_FILE);
if(url == null) {
url = Loader.getResource(DEFAULT_CONFIGURATION_FILE);
}
} else {
try {
url = new URL(configurationOptionStr);
} catch (MalformedURLException ex) {
// so, resource is not a URL:
// attempt to get the resource from the class path
url = Loader.getResource(configurationOptionStr);
}
}
// If we have a non-null url, then delegate the rest of the
// configuration to the OptionConverter.selectAndConfigure
// method.
if(url != null) {
LogLog.debug("Using URL ["+url+"] for automatic log4j configuration.");
try {
OptionConverter.selectAndConfigure(url, configuratorClassName,
LogManager.getLoggerRepository());
} catch (NoClassDefFoundError e) {
LogLog.warn("Error during default initialization", e);
}
} else {
LogLog.debug("Could not find resource: ["+configurationOptionStr+"].");
}
} else {
LogLog.debug("Default initialization of overridden by " +
DEFAULT_INIT_OVERRIDE_KEY + "property.");
}
} }
/** /**
@ -273,4 +214,3 @@ public class LogManager {
getLoggerRepository().resetConfiguration(); getLoggerRepository().resetConfiguration();
} }
} }

40
fine-spring/src/com/fr/third/springframework/web/context/ContextLoader.java

@ -16,17 +16,6 @@
package com.fr.third.springframework.web.context; package com.fr.third.springframework.web.context;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.concurrent.ConcurrentHashMap;
import javax.servlet.ServletContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.fr.third.springframework.beans.BeanUtils; import com.fr.third.springframework.beans.BeanUtils;
import com.fr.third.springframework.beans.factory.access.BeanFactoryLocator; import com.fr.third.springframework.beans.factory.access.BeanFactoryLocator;
import com.fr.third.springframework.beans.factory.access.BeanFactoryReference; import com.fr.third.springframework.beans.factory.access.BeanFactoryReference;
@ -43,7 +32,16 @@ import com.fr.third.springframework.core.io.support.PropertiesLoaderUtils;
import com.fr.third.springframework.util.Assert; import com.fr.third.springframework.util.Assert;
import com.fr.third.springframework.util.ClassUtils; import com.fr.third.springframework.util.ClassUtils;
import com.fr.third.springframework.util.ObjectUtils; import com.fr.third.springframework.util.ObjectUtils;
import com.fr.third.springframework.util.StringUtils; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import javax.servlet.ServletContext;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.concurrent.ConcurrentHashMap;
/** /**
* Performs the actual initialization work for the root application context. * Performs the actual initialization work for the root application context.
@ -494,20 +492,6 @@ public class ContextLoader {
List<Class<ApplicationContextInitializer<ConfigurableApplicationContext>>> classes = List<Class<ApplicationContextInitializer<ConfigurableApplicationContext>>> classes =
new ArrayList<Class<ApplicationContextInitializer<ConfigurableApplicationContext>>>(); new ArrayList<Class<ApplicationContextInitializer<ConfigurableApplicationContext>>>();
String globalClassNames = servletContext.getInitParameter(GLOBAL_INITIALIZER_CLASSES_PARAM);
if (globalClassNames != null) {
for (String className : StringUtils.tokenizeToStringArray(globalClassNames, INIT_PARAM_DELIMITERS)) {
classes.add(loadInitializerClass(className));
}
}
String localClassNames = servletContext.getInitParameter(CONTEXT_INITIALIZER_CLASSES_PARAM);
if (localClassNames != null) {
for (String className : StringUtils.tokenizeToStringArray(localClassNames, INIT_PARAM_DELIMITERS)) {
classes.add(loadInitializerClass(className));
}
}
return classes; return classes;
} }
@ -534,14 +518,14 @@ public class ContextLoader {
* EJBs. For pure web applications, there is usually no need to worry about * EJBs. For pure web applications, there is usually no need to worry about
* having a parent context to the root web application context. * having a parent context to the root web application context.
* <p>The default implementation uses * <p>The default implementation uses
* {@link com.fr.third.springframework.context.access.ContextSingletonBeanFactoryLocator}, * {@link ContextSingletonBeanFactoryLocator},
* configured via {@link #LOCATOR_FACTORY_SELECTOR_PARAM} and * configured via {@link #LOCATOR_FACTORY_SELECTOR_PARAM} and
* {@link #LOCATOR_FACTORY_KEY_PARAM}, to load a parent context * {@link #LOCATOR_FACTORY_KEY_PARAM}, to load a parent context
* which will be shared by all other users of ContextsingletonBeanFactoryLocator * which will be shared by all other users of ContextsingletonBeanFactoryLocator
* which also use the same configuration parameters. * which also use the same configuration parameters.
* @param servletContext current servlet context * @param servletContext current servlet context
* @return the parent application context, or {@code null} if none * @return the parent application context, or {@code null} if none
* @see com.fr.third.springframework.context.access.ContextSingletonBeanFactoryLocator * @see ContextSingletonBeanFactoryLocator
*/ */
protected ApplicationContext loadParentContext(ServletContext servletContext) { protected ApplicationContext loadParentContext(ServletContext servletContext) {
ApplicationContext parentContext = null; ApplicationContext parentContext = null;

Loading…
Cancel
Save