Skip to content

Commit

Permalink
JSON based config model
Browse files Browse the repository at this point in the history
  • Loading branch information
Emil Forslund committed Jan 6, 2016
1 parent 1c8f83c commit 4a825d6
Show file tree
Hide file tree
Showing 188 changed files with 1,397 additions and 5,455 deletions.
94 changes: 21 additions & 73 deletions pom.xml
Expand Up @@ -279,19 +279,6 @@
</build>
</profile>
</profiles>

<!-- Make sure that the Log4J API and Log4J Core versionw stay in sync-->
<!-- <dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>2.3</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>-->

<dependencies>

Expand All @@ -316,49 +303,17 @@
</dependency>

<!-- LICENSE INFORMATION
Groovy:2.4.0
Apache 2 License
http://groovy.codehaus.org/License+Information
2015-02-20
permin
-
Groovy:2.2.2
Gson:2.5
Apache 2 License
http://groovy.codehaus.org/License+Information
2015-01-29
permin
https://github.com/google/gson
2016-01-05
emifor
-->
<dependency>
<artifactId>groovy-all</artifactId>
<groupId>org.codehaus.groovy</groupId>
<version>2.4.0</version>
<artifactId>gson</artifactId>
<groupId>com.google.code.gson</groupId>
<version>2.5</version>
</dependency>

<!-- The logger "Log4j2" was selected because of license terms (SLF4J (MIT), Logback(LGPL)) -->
<!-- LICENSE INFORMATION
Log4j2:2.1
Apache 2 License
http://logging.apache.org/log4j/2.x/license.html
2015-01-05
permin
-->
<!-- <dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.1</version>
</dependency>-->
<!-- LICENSE INFORMATION
Log4j2:2.1
Apache 2 License
http://logging.apache.org/log4j/2.x/license.html
2015-01-05
permin
-->
<!-- <dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.1</version>
</dependency>-->

<!--
MySQL Connector:5.1.34
Expand All @@ -373,26 +328,13 @@
<artifactId>mysql-connector-java</artifactId>
<version>5.1.34</version>
</dependency>

<!-- LICENSE INFORMATION
OpenHFT, Chronicle Map
Apache 2 License
https://github.com/OpenHFT/Chronicle-Map/blob/master/LICENSE
2015-03-01
permin
-->
<!-- <dependency>
<groupId>net.openhft</groupId>
<artifactId>chronicle-map</artifactId>
<version>2.1.3</version>
</dependency>-->

<!-- LICENSE INFORMATION
Silk 1.3
Silk:1.3
Creative Commons 2.5
http://creativecommons.org/licenses/by/2.5/
2015-03-31
emifo
emifor
-->
<dependency>
<groupId>com.famfamfam</groupId>
Expand All @@ -401,11 +343,11 @@
</dependency>

<!-- LICENSE INFORMATION
ControlsFX
ControlsFX:8.40.10
BSD 3-Clause
https://opensource.org/licenses/BSD-3-Clause
2015-11-24
emifo
emifor
-->
<dependency>
<groupId>org.controlsfx</groupId>
Expand All @@ -414,23 +356,29 @@
</dependency>

<!-- LICENSE INFORMATION
FontawesomeFX
FontawesomeFX:8.7
Apache 2 License
http://logging.apache.org/log4j/2.x/license.html
2015-12-04
emifo
emifor
-->
<dependency>
<groupId>de.jensd</groupId>
<artifactId>fontawesomefx</artifactId>
<version>8.6</version>
<version>8.7</version>
</dependency>

<!-- LICENSE INFORMATION
PostgreSQL:9.4-1205-jdbc4
BSD 3-Clause
https://jdbc.postgresql.org/about/license.html
2016-01-05
emifor
-->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4-1205-jdbc4</version>
</dependency>

</dependencies>
</project>
4 changes: 2 additions & 2 deletions src/main/java/com/speedment/Manager.java
Expand Up @@ -18,8 +18,8 @@

import com.speedment.db.MetaResult;
import com.speedment.annotation.Api;
import com.speedment.config.Column;
import com.speedment.config.Table;
import com.speedment.config.db.Column;
import com.speedment.config.db.Table;
import com.speedment.encoder.Encoder;
import com.speedment.exception.SpeedmentException;
import com.speedment.field.ComparableField;
Expand Down
Expand Up @@ -17,8 +17,8 @@
package com.speedment.component;

import com.speedment.annotation.Api;
import com.speedment.config.Dbms;
import com.speedment.config.parameters.DbmsType;
import com.speedment.config.db.Dbms;
import com.speedment.config.db.parameters.DbmsType;
import com.speedment.db.DbmsHandler;
import java.util.Optional;
import java.util.stream.Stream;
Expand Down
Expand Up @@ -17,7 +17,7 @@
package com.speedment.component;

import com.speedment.annotation.Api;
import com.speedment.config.parameters.DbmsType;
import com.speedment.config.db.parameters.DbmsType;
import com.speedment.internal.core.runtime.typemapping.JavaTypeMapping;

/**
Expand Down
Expand Up @@ -16,7 +16,7 @@
*/
package com.speedment.component;

import com.speedment.config.Table;
import com.speedment.config.db.Table;
import com.speedment.exception.SpeedmentException;
import com.speedment.Manager;
import com.speedment.annotation.Api;
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/speedment/component/PluginComponent.java
Expand Up @@ -17,7 +17,7 @@
package com.speedment.component;

import com.speedment.annotation.Api;
import com.speedment.config.plugin.Plugin;
import com.speedment.plugin.Plugin;
import java.util.Optional;
import java.util.function.Supplier;
import java.util.stream.Stream;
Expand Down
Expand Up @@ -17,7 +17,7 @@
package com.speedment.component;

import com.speedment.annotation.Api;
import com.speedment.config.Project;
import com.speedment.config.db.Project;

/**
* This Component interface is used for holding the current {@link Project} that is being
Expand Down
Expand Up @@ -17,7 +17,7 @@
package com.speedment.component;

import com.speedment.annotation.Api;
import com.speedment.config.Dbms;
import com.speedment.config.db.Dbms;
import com.speedment.internal.util.sql.SqlTypeInfo;
import java.util.function.BiFunction;

Expand Down
Expand Up @@ -17,7 +17,7 @@
package com.speedment.component;

import com.speedment.annotation.Api;
import com.speedment.config.mapper.TypeMapper;
import com.speedment.config.db.mapper.TypeMapper;
import java.util.Optional;
import java.util.function.Supplier;
import java.util.stream.Stream;
Expand Down
78 changes: 78 additions & 0 deletions src/main/java/com/speedment/config/BaseDocument.java
@@ -0,0 +1,78 @@
package com.speedment.config;

import com.speedment.util.OptionalBoolean;
import com.speedment.stream.MapStream;
import java.util.Map;
import static java.util.Objects.requireNonNull;
import java.util.Optional;
import java.util.OptionalDouble;
import java.util.OptionalInt;
import java.util.OptionalLong;

/**
*
* @author Emil Forslund
*/
public class BaseDocument implements Document {

private final transient Document parent; // Nullable
private final Map<String, Object> config;

public BaseDocument(Map<String, Object> data) {
this.parent = null;
this.config = requireNonNull(data);
}

public BaseDocument(Document parent, Map<String, Object> data) {
this.parent = parent;
this.config = data;
}

@Override
public Optional<? extends Document> getParent() {
return Optional.ofNullable(parent);
}

@Override
public Optional<Object> get(String key) {
return Optional.ofNullable(config.get(key));
}

@Override
public OptionalBoolean getAsBoolean(String key) {
return OptionalBoolean.ofNullable((Boolean) config.get(key));
}

@Override
public OptionalLong getAsLong(String key) {
final Long value = (Long) config.get(key);
return value == null ? OptionalLong.empty() : OptionalLong.of(value);
}

@Override
public OptionalDouble getAsDouble(String key) {
final Double value = (Double) config.get(key);
return value == null ? OptionalDouble.empty() : OptionalDouble.of(value);
}

@Override
public OptionalInt getAsInt(String key) {
final Integer value = (Integer) config.get(key);
return value == null ? OptionalInt.empty() : OptionalInt.of(value);
}

@Override
public Optional<String> getAsString(String key) {
return get(key).map(String.class::cast);
}

@Override
public void put(String key, Object value) {
config.put(key, value);
}

@Override
public final MapStream<String, Object> stream() {
return MapStream.of(config);
}
}

0 comments on commit 4a825d6

Please sign in to comment.