Repository: nutch Updated Branches: refs/heads/2.x 5c3a38128 -> 22683a1df
NUTCH-2302 RAMConfManager Could Be Constructed With Custom Configuration Project: http://git-wip-us.apache.org/repos/asf/nutch/repo Commit: http://git-wip-us.apache.org/repos/asf/nutch/commit/fd722c89 Tree: http://git-wip-us.apache.org/repos/asf/nutch/tree/fd722c89 Diff: http://git-wip-us.apache.org/repos/asf/nutch/diff/fd722c89 Branch: refs/heads/2.x Commit: fd722c896468fe047758891d75a58259c88289d8 Parents: b7f3fce Author: Furkan KAMACI <furkankam...@gmail.com> Authored: Sat Aug 20 16:08:47 2016 +0300 Committer: Furkan KAMACI <furkankam...@gmail.com> Committed: Sun Aug 21 00:40:45 2016 +0300 ---------------------------------------------------------------------- .../apache/nutch/api/impl/RAMConfManager.java | 65 ++++++++++++++++++++ 1 file changed, 65 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nutch/blob/fd722c89/src/java/org/apache/nutch/api/impl/RAMConfManager.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/nutch/api/impl/RAMConfManager.java b/src/java/org/apache/nutch/api/impl/RAMConfManager.java index 2afd658..13c05fd 100644 --- a/src/java/org/apache/nutch/api/impl/RAMConfManager.java +++ b/src/java/org/apache/nutch/api/impl/RAMConfManager.java @@ -33,19 +33,44 @@ import org.apache.nutch.util.NutchConfiguration; import com.google.common.collect.Maps; +/** + * Configuration manager which holds a map of {@link Configuration} type configurations and ids. + */ public class RAMConfManager implements ConfManager { private Map<String, Configuration> configurations = Maps.newConcurrentMap(); private AtomicInteger newConfigId = new AtomicInteger(); + /** + * Public constructor which creates a default configuration with id of {@link ConfigResource#DEFAULT}. + */ public RAMConfManager() { configurations.put(ConfigResource.DEFAULT, NutchConfiguration.create()); } + /** + * Public constructor which accepts a configuration id and {@link Configuration} type configuration. + */ + public RAMConfManager(String confId, Configuration configuration) { + configurations.put(confId, configuration); + } + + /** + * Lists configuration keys. + * + * @return Set of configuration keys + */ public Set<String> list() { return configurations.keySet(); } + /** + * Returns configuration map for give configuration id. + * + * @param confId Configuration id. + * @return Configuration for given configuration id. + * {@link ConfigResource#DEFAULT} is used if given configuration id is null. + */ public Configuration get(String confId) { if (confId == null) { return configurations.get(ConfigResource.DEFAULT); @@ -53,6 +78,13 @@ public class RAMConfManager implements ConfManager { return configurations.get(confId); } + /** + * Returns configuration map for give configuration id. + * An empty map is returned if a configuration could not be retrieved for given configuration id. + * + * @param confId Configuration id + * @return map of configurations + */ public Map<String, String> getAsMap(String confId) { Configuration configuration = configurations.get(confId); if (configuration == null) { @@ -68,6 +100,13 @@ public class RAMConfManager implements ConfManager { return configMap; } + /** + * Sets a property for the configuration which has given configuration id. + * + * @param confId Configuration id + * @param propName property name to set + * @param propValue property value to set + */ public void setProperty(String confId, String propName, String propValue) { if (!configurations.containsKey(confId)) { throw new IllegalArgumentException("Unknown configId '" + confId + "'"); @@ -76,10 +115,23 @@ public class RAMConfManager implements ConfManager { conf.set(propName, propValue); } + /** + * Deletes configuration for given configuration id. + * + * @param confId Configuration id + */ public void delete(String confId) { configurations.remove(confId); } + /** + * Creates hadoop configuration for given Nutch configuration. + * Checks whether it can create a Nutch configuration or not before it creates. + * Throws {@link IllegalArgumentException} if can not pass {{@link #canCreate(NutchConfig)}}. + * + * @param nutchConfig Nutch configuration + * @return created configuration id + */ @Override public String create(NutchConfig nutchConfig) { if (StringUtils.isBlank(nutchConfig.getConfigId())) { @@ -94,6 +146,14 @@ public class RAMConfManager implements ConfManager { return nutchConfig.getConfigId(); } + /** + * Checks can create a Nutch configuration or not. + * + * @param nutchConfig Nutch configuration + * @return True if forcing is enabled at Nutch configuration. + * Otherwise makes a check based on whether there is an existing configuration at configuration set + * with same configuration id of given Nutch configuration. + */ private boolean canCreate(NutchConfig nutchConfig) { if (nutchConfig.isForce()) { return true; @@ -104,6 +164,11 @@ public class RAMConfManager implements ConfManager { return false; } + /** + * Creates a Hadoop configuration from given Nutch configuration. + * + * @param nutchConfig Nutch configuration. + */ private void createHadoopConfig(NutchConfig nutchConfig) { Configuration conf = NutchConfiguration.create(); configurations.put(nutchConfig.getConfigId(), conf);