Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions urule-springboot/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,11 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.45</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,59 @@
package com.bstek.urule.springboot;

import java.util.Properties;

import com.bstek.urule.URulePropertyPlaceholderConfigurer;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;

import com.bstek.urule.URulePropertyPlaceholderConfigurer;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

/**
* @author Jacky.gao
* @since 2016年10月12日
* @see com.bstek.urule.springboot.SpringBootPropertyPlaceholderAutoConfiguration
*/
//@Component
public class PropertiesConfiguration extends URulePropertyPlaceholderConfigurer implements InitializingBean{
@Override
public void afterPropertiesSet() throws Exception {
Properties props=new Properties();
props.setProperty("urule.repository.xml", "classpath:mysql.xml");
setProperties(props);
}
@Deprecated
//@Configuration
public class PropertiesConfiguration extends URulePropertyPlaceholderConfigurer implements InitializingBean {

public static final String SPRING_CONFIG_LOCATION = "spring.config.location";

@Autowired
private ResourceLoader resourceLoader;

public void afterPropertiesSet() throws Exception {
// 外部配置定位
List<Resource> resources = new ArrayList<>();
String springConfigLocation = System.getProperty(SPRING_CONFIG_LOCATION);
if (springConfigLocation != null) {
String[] configFiles = springConfigLocation.split(",|;");

for (String configFile : configFiles) {
resources.add(resourceLoader.getResource(configFile));
}
} else {
resources.add(new ClassPathResource("application.properties"));
}

// 配置加载并覆盖 urule-console 与 urule-core 中的配置项
List<Properties> propertiesList = new ArrayList<>();
for (Resource resource : resources) {
try {
if (resource.exists()) {
Properties properties = new Properties();
properties.load(resource.getInputStream());
propertiesList.add(properties);
}
} catch (IOException e) {
logger.error("extra properties init failed", e);
}
}
super.setPropertiesArray(propertiesList.toArray(new Properties[propertiesList.size()]));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.bstek.urule.springboot;

import org.springframework.boot.autoconfigure.AutoConfigureOrder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.core.Ordered;

/**
* @author Chery
* @date 2017/12/20 - 下午9:52
*/
@Configuration
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)
public class SpringBootPropertyPlaceholderAutoConfiguration {

@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
PropertySourcesPlaceholderConfigurer placeholderConfigurer = new PropertySourcesPlaceholderConfigurer();
placeholderConfigurer.setOrder(100);
placeholderConfigurer.setIgnoreUnresolvablePlaceholders(true);
return placeholderConfigurer;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
urule.repository.dir=d:/repo
urule.console.title=URule Dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
urule.repository.xml=classpath:mysql.xml
urule.console.title=URule Pro
3 changes: 2 additions & 1 deletion urule-springboot/src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
urule.repository.dir=d:/repo
# 可自由切换 profile 适配不同的环境
spring.profiles.active=dev
50 changes: 50 additions & 0 deletions urule-springboot/src/main/resources/mysql.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.6//EN" "view-source:http://jackrabbit.apache.org/dtd/repository-2.6-elements.dtd">
<Repository>
<DataSources>
<DataSource name="dataSource">
<param name="driver" value="com.mysql.jdbc.Driver" />
<param name="url" value="jdbc:mysql://localhost:3306/urule?useUnicode=true&amp;characterEncoding=UTF-8" />
<param name="user" value="root" />
<param name="password" value="123456" />
<param name="databaseType" value="mysql"/>
<param name="maxPoolSize" value="10"/>
</DataSource>
</DataSources>
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="dataSourceName" value="dataSource"/>
<param name="schemaObjectPrefix" value="repo_"/>
</FileSystem>
<Security appName="Jackrabbit">
<AccessManager class="org.apache.jackrabbit.core.security.simple.SimpleAccessManager"/>
<LoginModule class="org.apache.jackrabbit.core.security.simple.SimpleLoginModule">
<param name="anonymousId" value="anonymous" />
<param name="adminId" value="admin" />
</LoginModule>
</Security>
<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
<param name="dataSourceName" value="dataSource"/>
<param name="schemaObjectPrefix" value="repo_ds_"/>
</DataStore>
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default" />
<Workspace name="default">
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="dataSourceName" value="dataSource"/>
<param name="schemaObjectPrefix" value="repo_${wsp.name}_"/>
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager">
<param name="dataSourceName" value="dataSource"/>
<param name="schemaObjectPrefix" value="repo_pm_${wsp.name}_"/>
</PersistenceManager>
</Workspace>
<Versioning rootPath="${rep.home}/version">
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="dataSourceName" value="dataSource"/>
<param name="schemaObjectPrefix" value="repo_fsver_"/>
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager">
<param name="dataSourceName" value="dataSource"/>
<param name="schemaObjectPrefix" value="repo_ver_"/>
</PersistenceManager>
</Versioning>
</Repository>