/**
* Copyright 2008 - 2009 Pro-Netics S.P.A.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package it.pronetics.madstore.common.configuration.spring;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Plain old java bean used as a Spring bean for setting and getting configuration values.
* @author Salvatore Incandela
* @author Sergio Bossa
*/
public class MadStoreConfigurationBean {
private String madStoreHome;
private List<CrawlerConfiguration> crawlerConfigurations;
private GridConfiguration gridConfiguration;
private JcrConfiguration jcrConfiguration;
private IndexConfiguration indexConfiguration;
private AtomPublishingProtocolConfiguration atomPublishingProtocolConfiguration;
private OpenSearchConfiguration openSearchConfiguration;
private HttpCacheConfiguration httpCacheConfiguration;
private Map<String, SimpleTriggerConfiguration> tasks = new HashMap<String, SimpleTriggerConfiguration>();
public String getMadStoreHome() {
return madStoreHome;
}
public void setMadStoreHome(String madStoreHome) {
this.madStoreHome = madStoreHome;
}
public List<CrawlerConfiguration> getCrawlerConfigurations() {
return Collections.unmodifiableList(crawlerConfigurations);
}
public void setCrawlerConfigurations(List<CrawlerConfiguration> crawlerConfigurations) {
this.crawlerConfigurations = crawlerConfigurations;
}
public GridConfiguration getGridConfiguration() {
return gridConfiguration;
}
public void setGridConfiguration(GridConfiguration gridConfiguration) {
this.gridConfiguration = gridConfiguration;
}
public JcrConfiguration getJcrConfiguration() {
return jcrConfiguration;
}
public void setJcrConfiguration(JcrConfiguration jcrConfiguration) {
this.jcrConfiguration = jcrConfiguration;
}
public IndexConfiguration getIndexConfiguration() {
return indexConfiguration;
}
public void setIndexConfiguration(IndexConfiguration indexConfiguration) {
this.indexConfiguration = indexConfiguration;
}
public HttpCacheConfiguration getHttpCacheConfiguration() {
return httpCacheConfiguration;
}
public void setHttpCacheConfiguration(HttpCacheConfiguration httpCacheConfiguration) {
this.httpCacheConfiguration = httpCacheConfiguration;
}
public AtomPublishingProtocolConfiguration getAtomPublishingProtocolConfiguration() {
return atomPublishingProtocolConfiguration;
}
public void setAtomPublishingProtocolConfiguration(AtomPublishingProtocolConfiguration atomPublishingProtocolConfiguration) {
this.atomPublishingProtocolConfiguration = atomPublishingProtocolConfiguration;
}
public OpenSearchConfiguration getOpenSearchConfiguration() {
return openSearchConfiguration;
}
public void setOpenSearchConfiguration(OpenSearchConfiguration openSearchConfiguration) {
this.openSearchConfiguration = openSearchConfiguration;
}
public boolean isGridModeEnabled() {
return this.gridConfiguration != null ? true : false;
}
public void setTasks(Map<String, SimpleTriggerConfiguration> tasks) {
this.tasks = tasks;
}
public Map<String, SimpleTriggerConfiguration> getTasks() {
return tasks;
}
public static class CrawlerConfiguration {
private String hostName;
private String startLink;
private int maxConcurrentDownloads;
private String pipelineName;
private int maxVisitedLinks;
public String getHostName() {
return this.hostName;
}
public void setHostName(String hostName) {
if (hostName.endsWith("/")) {
this.hostName = hostName.substring(0, hostName.length() - 1);
} else {
this.hostName = hostName;
}
}
public String getStartLink() {
return this.startLink;
}
public void setStartLink(String startLink) {
if (startLink.startsWith("/")) {
this.startLink = startLink.substring(1);
} else {
this.startLink = startLink;
}
}
public int getMaxConcurrentDownloads() {
return maxConcurrentDownloads;
}
public void setMaxConcurrentDownloads(int maxConcurrentDownloads) {
this.maxConcurrentDownloads = maxConcurrentDownloads;
}
public int getMaxVisitedLinks() {
return maxVisitedLinks;
}
public void setMaxVisitedLinks(int maxVisitedLinks) {
this.maxVisitedLinks = maxVisitedLinks;
}
public String getPipelineName() {
return pipelineName;
}
public void setPipelineName(String pipelineName) {
this.pipelineName = pipelineName;
}
}
public static class SimpleTriggerConfiguration {
private int startDelay;
private int repeatInterval;
public int getRepeatInterval() {
return repeatInterval;
}
public void setRepeatInterval(int repeatInterval) {
this.repeatInterval = repeatInterval;
}
public int getStartDelay() {
return startDelay;
}
public void setStartDelay(int startDelay) {
this.startDelay = startDelay;
}
}
public static class GridConfiguration {
private String homeDir;
private String localAddress;
public String getHomeDir() {
return homeDir;
}
public void setHomeDir(String homeDir) {
this.homeDir = homeDir;
}
public String getLocalAddress() {
return localAddress;
}
public void setLocalAddress(String localAddress) {
this.localAddress = localAddress;
}
}
public static class JcrConfiguration {
private String homeDir;
private String username;
private char[] password;
private Integer maxHistory;
public String getHomeDir() {
return homeDir;
}
public void setHomeDir(String homeDir) {
this.homeDir = homeDir;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public char[] getPassword() {
return password;
}
public void setPassword(char[] password) {
this.password = password;
}
public void setMaxHistory(Integer maxHistory) {
this.maxHistory = maxHistory;
}
public Integer getMaxHistory() {
return maxHistory;
}
}
public static class IndexConfiguration {
private String indexDir;
private Map<String, String> indexedPropertiesNamespaces;
private List<Property> indexedProperties;
public String getIndexDir() {
return indexDir;
}
public void setIndexDir(String indexDir) {
this.indexDir = indexDir;
}
public void setIndexedPropertiesNamespaces(Map<String, String> indexedPropertiesNamespaces) {
this.indexedPropertiesNamespaces = indexedPropertiesNamespaces;
}
public Map<String, String> getIndexedPropertiesNamespaces() {
return indexedPropertiesNamespaces;
}
public void setIndexedProperties(List<Property> indexedProperties) {
this.indexedProperties = indexedProperties;
}
public List<Property> getIndexedProperties() {
return indexedProperties;
}
public class Property {
private String name;
private String xPath;
private int boost;
public Property(String name, String xPath, int boost) {
this.name = name;
this.xPath = xPath;
this.boost = boost;
}
public String getName() {
return name;
}
public String getXPath() {
return xPath;
}
public int getBoost() {
return boost;
}
}
}
public static class AtomPublishingProtocolConfiguration {
private String workspace;
public String getWorkspace() {
return workspace;
}
public void setWorkspace(String workspace) {
this.workspace = workspace;
}
}
public static class OpenSearchConfiguration {
private String shortName;
private String description;
public void setShortName(String shortName) {
this.shortName = shortName;
}
public String getShortName() {
return shortName;
}
public void setDescription(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
}
public static class HttpCacheConfiguration {
private int maxAge;
public int getMaxAge() {
return maxAge;
}
public void setMaxAge(int maxAge) {
this.maxAge = maxAge;
}
}
}