You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by re...@apache.org on 2014/08/01 19:10:42 UTC
[03/11] git commit: CLEREZZA-931: Properly read integer properties
CLEREZZA-931: Properly read integer properties
Project: http://git-wip-us.apache.org/repos/asf/clerezza/repo
Commit: http://git-wip-us.apache.org/repos/asf/clerezza/commit/5d0239fd
Tree: http://git-wip-us.apache.org/repos/asf/clerezza/tree/5d0239fd
Diff: http://git-wip-us.apache.org/repos/asf/clerezza/diff/5d0239fd
Branch: refs/heads/release-201407
Commit: 5d0239fdc98407257b6ec805ca99aa923953a22f
Parents: 95fb6ea
Author: Minto van der Sluis <mi...@apache.org>
Authored: Wed Jul 30 11:18:52 2014 +0200
Committer: Minto van der Sluis <mi...@apache.org>
Committed: Wed Jul 30 11:18:52 2014 +0200
----------------------------------------------------------------------
.../access/VirtuosoWeightedProvider.java | 33 ++++++++++++++------
1 file changed, 23 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/clerezza/blob/5d0239fd/rdf.virtuoso.storage/src/main/java/org/apache/clerezza/rdf/virtuoso/storage/access/VirtuosoWeightedProvider.java
----------------------------------------------------------------------
diff --git a/rdf.virtuoso.storage/src/main/java/org/apache/clerezza/rdf/virtuoso/storage/access/VirtuosoWeightedProvider.java b/rdf.virtuoso.storage/src/main/java/org/apache/clerezza/rdf/virtuoso/storage/access/VirtuosoWeightedProvider.java
index 82ba243..5fc1bf7 100644
--- a/rdf.virtuoso.storage/src/main/java/org/apache/clerezza/rdf/virtuoso/storage/access/VirtuosoWeightedProvider.java
+++ b/rdf.virtuoso.storage/src/main/java/org/apache/clerezza/rdf/virtuoso/storage/access/VirtuosoWeightedProvider.java
@@ -21,6 +21,7 @@ package org.apache.clerezza.rdf.virtuoso.storage.access;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
+import java.math.BigDecimal;
import java.math.BigInteger;
import java.security.AccessController;
import java.security.PrivilegedAction;
@@ -31,6 +32,7 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Collections;
+import java.util.Dictionary;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -183,7 +185,7 @@ public class VirtuosoWeightedProvider implements WeightedTcProvider, QueryableTc
* No component context given and connection was not set.
*/
@Activate
- public void activate(ComponentContext cCtx) {
+ public void activate(ComponentContext cCtx) throws ConfigurationException {
logger.trace("activate(ComponentContext {})", cCtx);
logger.info("Activating VirtuosoWeightedProvider...");
@@ -226,21 +228,14 @@ public class VirtuosoWeightedProvider implements WeightedTcProvider, QueryableTc
}));
}
- // FIXME The following should not be needed...
- try {
- this.weight = (Integer) cCtx.getProperties().get(WEIGHT);
- } catch (NumberFormatException nfe) {
- logger.warn(nfe.toString());
- logger.warn("Setting weight to defaults");
- this.weight = DEFAULT_WEIGHT;
- }
+ weight = readIntegerProperty( cCtx.getProperties(), WEIGHT, DEFAULT_WEIGHT );
/**
* Initialize connection properties
*/
// We take the configuration of the SCR component
Object phost = cCtx.getProperties().get(HOST);
- Object pport = Integer.valueOf((String)cCtx.getProperties().get(PORT));
+ Object pport = readIntegerProperty( cCtx.getProperties(), PORT, null );
Object puser = cCtx.getProperties().get(USER);
Object ppwd = cCtx.getProperties().get(PASSWORD);
@@ -272,6 +267,7 @@ public class VirtuosoWeightedProvider implements WeightedTcProvider, QueryableTc
user = (String) puser;
pwd = (String) ppwd;
+ logger.info("Connecting to Virtuoso on '{}' with username '{}'", host + ":" + port, user);
initConnectionPoolDataSource();
// Prepare SPARQL data access
this.sparqlDataAccess = createDataAccess();
@@ -322,6 +318,23 @@ public class VirtuosoWeightedProvider implements WeightedTcProvider, QueryableTc
.append(":").append(portNumber).append("/charset=UTF-8/log_enable=2")
.toString();
}
+
+ private Integer readIntegerProperty( Dictionary<?, ?> properties, String key, Integer defaultValue ) throws ConfigurationException {
+ // Start if with default.
+ Integer value = defaultValue;
+
+ Object propertyValue = properties.get( key );
+ if(propertyValue instanceof Number){
+ value = ((Number)propertyValue).intValue();
+ } else if(propertyValue != null){
+ try {
+ value = new BigDecimal(propertyValue.toString()).intValueExact();
+ } catch (RuntimeException e) {
+ throw new ConfigurationException( key, "Unable to parse integer!", e);
+ }
+ }
+ return value;
+ }
private Set<UriRef> readRememberedGraphs() {
logger.trace(" readRememberedGraphs()");