You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by is...@apache.org on 2013/07/05 12:32:58 UTC
[21/34] committing refactoered adc components and top level pom in
components
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca25b1f7/components/load-balancer/lb-endpoint/org.apache.stratos.lb.endpoint/4.1.3/src/main/java/org/apache/stratos/lb/endpoint/subscriber/TopologyListener.java
----------------------------------------------------------------------
diff --git a/components/load-balancer/lb-endpoint/org.apache.stratos.lb.endpoint/4.1.3/src/main/java/org/apache/stratos/lb/endpoint/subscriber/TopologyListener.java b/components/load-balancer/lb-endpoint/org.apache.stratos.lb.endpoint/4.1.3/src/main/java/org/apache/stratos/lb/endpoint/subscriber/TopologyListener.java
deleted file mode 100644
index ee7a3ca..0000000
--- a/components/load-balancer/lb-endpoint/org.apache.stratos.lb.endpoint/4.1.3/src/main/java/org/apache/stratos/lb/endpoint/subscriber/TopologyListener.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 org.apache.stratos.lb.endpoint.subscriber;
-
-import javax.jms.JMSException;
-import javax.jms.Message;
-import javax.jms.MessageListener;
-import javax.jms.TextMessage;
-
-import org.apache.stratos.lb.endpoint.util.ConfigHolder;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-public class TopologyListener implements MessageListener {
-
- private static final Log log = LogFactory.getLog(TopologyListener.class);
-
- @Override
- public void onMessage(Message message) {
- TextMessage receivedMessage = (TextMessage) message;
- try {
-
- ConfigHolder.getInstance().getSharedTopologyDiffQueue().add(receivedMessage.getText());
-
- } catch (JMSException e) {
- log.error(e.getMessage(), e);
- }
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca25b1f7/components/load-balancer/lb-endpoint/org.apache.stratos.lb.endpoint/4.1.3/src/main/java/org/apache/stratos/lb/endpoint/subscriber/TopologySubscriber.java
----------------------------------------------------------------------
diff --git a/components/load-balancer/lb-endpoint/org.apache.stratos.lb.endpoint/4.1.3/src/main/java/org/apache/stratos/lb/endpoint/subscriber/TopologySubscriber.java b/components/load-balancer/lb-endpoint/org.apache.stratos.lb.endpoint/4.1.3/src/main/java/org/apache/stratos/lb/endpoint/subscriber/TopologySubscriber.java
deleted file mode 100644
index 0c127a1..0000000
--- a/components/load-balancer/lb-endpoint/org.apache.stratos.lb.endpoint/4.1.3/src/main/java/org/apache/stratos/lb/endpoint/subscriber/TopologySubscriber.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 org.apache.stratos.lb.endpoint.subscriber;
-
-import java.util.Properties;
-
-import javax.jms.*;
-import javax.naming.InitialContext;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.lb.endpoint.util.ConfigHolder;
-import org.apache.stratos.lb.endpoint.util.TopologyConstants;
-
-public class TopologySubscriber {
-
- private static final Log log = LogFactory.getLog(TopologySubscriber.class);
-
- public static void subscribe(String topicName) {
- Properties initialContextProperties = new Properties();
- TopicSubscriber topicSubscriber = null;
- TopicSession topicSession = null;
- TopicConnection topicConnection = null;
- InitialContext initialContext = null;
-
- initialContextProperties.put("java.naming.factory.initial",
- "org.wso2.andes.jndi.PropertiesFileInitialContextFactory");
-
- String mbServerUrl = null;
- if (ConfigHolder.getInstance().getLbConfig() != null) {
- mbServerUrl = ConfigHolder.getInstance().getLbConfig().getLoadBalancerConfig().getMbServerUrl();
- }
- String connectionString =
- "amqp://admin:admin@clientID/carbon?brokerlist='tcp://" +
- (mbServerUrl == null ? TopologyConstants.DEFAULT_MB_SERVER_URL : mbServerUrl) + "'&reconnect='true'";
- initialContextProperties.put("connectionfactory.qpidConnectionfactory", connectionString);
-
- try {
- initialContext = new InitialContext(initialContextProperties);
- TopicConnectionFactory topicConnectionFactory =
- (TopicConnectionFactory) initialContext.lookup("qpidConnectionfactory");
- topicConnection = topicConnectionFactory.createTopicConnection();
- topicConnection.start();
- topicSession =
- topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
-
- Topic topic = topicSession.createTopic(topicName);
- topicSubscriber =
- topicSession.createSubscriber(topic);
-
- topicSubscriber.setMessageListener(new TopologyListener());
-
- } catch (Exception e) {
- log.error(e.getMessage(), e);
-
- try {
- if (topicSubscriber != null) {
- topicSubscriber.close();
- }
-
- if (topicSession != null) {
- topicSession.close();
- }
-
- if (topicConnection != null) {
- topicConnection.close();
- }
- } catch (JMSException e1) {
- // ignore
- }
-
- }
- finally {
- // start the health checker
- Thread healthChecker = new Thread(new TopicHealthChecker(topicName, topicSubscriber));
- healthChecker.start();
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca25b1f7/components/load-balancer/lb-endpoint/org.apache.stratos.lb.endpoint/4.1.3/src/main/java/org/apache/stratos/lb/endpoint/util/ConfigHolder.java
----------------------------------------------------------------------
diff --git a/components/load-balancer/lb-endpoint/org.apache.stratos.lb.endpoint/4.1.3/src/main/java/org/apache/stratos/lb/endpoint/util/ConfigHolder.java b/components/load-balancer/lb-endpoint/org.apache.stratos.lb.endpoint/4.1.3/src/main/java/org/apache/stratos/lb/endpoint/util/ConfigHolder.java
deleted file mode 100644
index 3817579..0000000
--- a/components/load-balancer/lb-endpoint/org.apache.stratos.lb.endpoint/4.1.3/src/main/java/org/apache/stratos/lb/endpoint/util/ConfigHolder.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 org.apache.stratos.lb.endpoint.util;
-
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.engine.AxisConfiguration;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.synapse.config.SynapseConfiguration;
-import org.apache.stratos.lb.common.conf.LoadBalancerConfiguration;
-import org.apache.stratos.lb.common.service.LoadBalancerConfigurationService;
-import org.apache.stratos.lb.endpoint.TenantAwareLoadBalanceEndpointException;
-import org.apache.stratos.lb.endpoint.TenantLoadBalanceMembershipHandler;
-import org.wso2.carbon.mediation.dependency.mgt.services.DependencyManagementService;
-import org.wso2.carbon.mediation.initializer.services.SynapseEnvironmentService;
-import org.wso2.carbon.registry.core.session.UserRegistry;
-import org.wso2.carbon.user.core.service.RealmService;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.LinkedBlockingQueue;
-
-/**
- *
- */
-public class ConfigHolder {
-
- private static ConfigHolder instance;
- private static final Log log = LogFactory.getLog(ConfigHolder.class);
-
- private SynapseConfiguration synapseConfiguration;
- private ConfigurationContext configCtxt;
- private AxisConfiguration axisConfiguration;
- private UserRegistry configRegistry;
- private UserRegistry governanceRegistry;
- private DependencyManagementService dependencyManager;
- private TenantLoadBalanceMembershipHandler tenantMembershipHandler;
- private LoadBalancerConfigurationService lbConfigService;
- private BlockingQueue<String> sharedTopologyQueue = new LinkedBlockingQueue<String>();
- private String previousMsg;
-
-
- private Map<Integer, SynapseEnvironmentService> synapseEnvironmentServices =
- new HashMap<Integer, SynapseEnvironmentService>();
-
- public RealmService getRealmService() {
- return realmService;
- }
-
- public void setRealmService(RealmService realmService) {
- this.realmService = realmService;
- }
-
- private RealmService realmService;
-
- private ConfigHolder() {
- }
-
- public static ConfigHolder getInstance() {
- if (instance == null) {
- instance = new ConfigHolder();
- }
- return instance;
- }
-
- public SynapseConfiguration getSynapseConfiguration() throws TenantAwareLoadBalanceEndpointException{
- assertNull("SynapseConfiguration", synapseConfiguration);
- return synapseConfiguration;
- }
-
- public void setSynapseConfiguration(SynapseConfiguration synapseConfiguration) {
- this.synapseConfiguration = synapseConfiguration;
- }
-
- public AxisConfiguration getAxisConfiguration() throws TenantAwareLoadBalanceEndpointException {
- assertNull("AxisConfiguration", axisConfiguration);
- return axisConfiguration;
- }
-
- public void setAxisConfiguration(AxisConfiguration axisConfiguration) {
- this.axisConfiguration = axisConfiguration;
- }
-
- public UserRegistry getConfigRegistry() throws TenantAwareLoadBalanceEndpointException {
- assertNull("Registry", configRegistry);
- return configRegistry;
- }
-
- public void setConfigRegistry(UserRegistry configRegistry) {
- this.configRegistry = configRegistry;
- }
-
- public DependencyManagementService getDependencyManager() {
- return dependencyManager;
- }
-
- public void setDependencyManager(DependencyManagementService dependencyManager) {
- this.dependencyManager = dependencyManager;
- }
-
- private void assertNull(String name, Object object) throws TenantAwareLoadBalanceEndpointException {
- if (object == null) {
- String message = name + " reference in the proxy admin config holder is null";
- log.error(message);
- throw new TenantAwareLoadBalanceEndpointException(message);
- }
- }
-
- public UserRegistry getGovernanceRegistry() {
- return governanceRegistry;
- }
-
- public void setGovernanceRegistry(UserRegistry governanceRegistry) {
- this.governanceRegistry = governanceRegistry;
- }
-
- public SynapseEnvironmentService getSynapseEnvironmentService(int id) {
- return synapseEnvironmentServices.get(id);
- }
-
- public void addSynapseEnvironmentService(int id,
- SynapseEnvironmentService synapseEnvironmentService) {
- synapseEnvironmentServices.put(id, synapseEnvironmentService);
- }
-
- public void removeSynapseEnvironmentService(int id) {
- synapseEnvironmentServices.remove(id);
- }
-
- public Map<Integer, SynapseEnvironmentService> getSynapseEnvironmentServices() {
- return synapseEnvironmentServices;
- }
-
- public void setTenantLoadBalanceMembershipHandler(TenantLoadBalanceMembershipHandler handler) {
- tenantMembershipHandler = handler;
- }
-
- public TenantLoadBalanceMembershipHandler getTenantLoadBalanceMembershipHandler() {
- return tenantMembershipHandler;
- }
-
- public ConfigurationContext getConfigCtxt() {
- return configCtxt;
- }
-
- public void setConfigCtxt(ConfigurationContext configCtxt) {
- this.configCtxt = configCtxt;
- }
-
- public void setLbConfigService(LoadBalancerConfigurationService lbConfigSer) {
- this.lbConfigService = lbConfigSer;
- }
-
- public LoadBalancerConfiguration getLbConfig() {
- return (LoadBalancerConfiguration) lbConfigService.getLoadBalancerConfig();
- }
-
- public BlockingQueue<String> getSharedTopologyDiffQueue() {
- return sharedTopologyQueue;
- }
-
- public void setSharedTopologyDiffQueue(BlockingQueue<String> sharedTopologyDiffQueue) {
- this.sharedTopologyQueue = sharedTopologyDiffQueue;
- }
-
- public String getPreviousMsg() {
- return previousMsg;
- }
-
- public void setPreviousMsg(String previousMsg) {
- this.previousMsg = previousMsg;
- }
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca25b1f7/components/load-balancer/lb-endpoint/org.apache.stratos.lb.endpoint/4.1.3/src/main/java/org/apache/stratos/lb/endpoint/util/TopologyConstants.java
----------------------------------------------------------------------
diff --git a/components/load-balancer/lb-endpoint/org.apache.stratos.lb.endpoint/4.1.3/src/main/java/org/apache/stratos/lb/endpoint/util/TopologyConstants.java b/components/load-balancer/lb-endpoint/org.apache.stratos.lb.endpoint/4.1.3/src/main/java/org/apache/stratos/lb/endpoint/util/TopologyConstants.java
deleted file mode 100644
index 970e4b9..0000000
--- a/components/load-balancer/lb-endpoint/org.apache.stratos.lb.endpoint/4.1.3/src/main/java/org/apache/stratos/lb/endpoint/util/TopologyConstants.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 org.apache.stratos.lb.endpoint.util;
-
-public class TopologyConstants {
-
- public static final String TOPIC_NAME = "cloud-controller-topology";
- public static final String MB_SERVER_URL = "mb.server.ip";
- public static final String DEFAULT_MB_SERVER_URL = "localhost:5672";
-
- public static final String TOPOLOGY_SYNC_CRON = "1 * * * * ? *";
- public static final String TOPOLOGY_SYNC_TASK_NAME = "TopologySubscriberTaskOfADC";
- public static final String TOPOLOGY_SYNC_TASK_TYPE = "TOPOLOGY_SUBSCRIBER_TASK";
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca25b1f7/components/load-balancer/org.apache.stratos.lb.common/4.1.3/pom.xml
----------------------------------------------------------------------
diff --git a/components/load-balancer/org.apache.stratos.lb.common/4.1.3/pom.xml b/components/load-balancer/org.apache.stratos.lb.common/4.1.3/pom.xml
deleted file mode 100644
index 3caecf5..0000000
--- a/components/load-balancer/org.apache.stratos.lb.common/4.1.3/pom.xml
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you 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.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
- <parent>
- <groupId>org.apache.stratos</groupId>
- <artifactId>loadbalancer-components</artifactId>
- <version>4.1.0</version>
- <relativePath>../../pom.xml</relativePath>
- </parent>
-
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.apache.stratos</groupId>
- <artifactId>org.apache.stratos.lb.common</artifactId>
- <packaging>bundle</packaging>
- <version>4.1.3</version>
- <name>Apache Stratos Loadbalancer - Common</name>
- <url>http://apache.org</url>
-
- <dependencies>
- <dependency>
- <groupId>org.wso2.carbon</groupId>
- <artifactId>org.wso2.carbon.core</artifactId>
- <version>${wso2carbon.version}</version>
- </dependency>
- <dependency>
- <groupId>com.google.guava.wso2</groupId>
- <artifactId>guava</artifactId>
- <version>${google.guava.wso2.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.synapse</groupId>
- <artifactId>synapse-core</artifactId>
- <version>${synapse.core.version}</version>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>${junit.version}</version>
- </dependency>
- <!--dependency>
- <groupId>org.testng</groupId>
- <artifactId>testng</artifactId>
- <version>6.3.1</version>
- <scope>test</scope>
- </dependency-->
- <dependency>
- <groupId>org.wso2.carbon</groupId>
- <artifactId>org.wso2.carbon.logging</artifactId>
- <version>4.1.0</version>
- </dependency>
- <!--dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.6</version>
- </dependency-->
- <!-- This mysql dependency is required for tests-->
- </dependencies>
-
- <build>
- <plugins>
- <!--plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.12</version>
- <configuration>
- <suiteXmlFiles>
- <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
- </suiteXmlFiles>
- </configuration>
- </plugin-->
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-scr-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
-
- <extensions>true</extensions>
- <configuration>
- <instructions>
- <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
- <Bundle-Name>${project.artifactId}</Bundle-Name>
- <Export-Package>
- org.apache.stratos.lb.common.*,
- </Export-Package>
- <Private-Package>
- org.apache.stratos.lb.common.conf.internal;
- </Private-Package>
- <Import-Package>
- !org.apache.commons.logging,
- org.apache.commons.logging; version=0.0.0,
- *;resolution:=optional
- </Import-Package>
- <DynamicImport-Package>*</DynamicImport-Package>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca25b1f7/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/cache/LRUCache.java
----------------------------------------------------------------------
diff --git a/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/cache/LRUCache.java b/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/cache/LRUCache.java
deleted file mode 100644
index 342430c..0000000
--- a/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/cache/LRUCache.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 org.apache.stratos.lb.common.cache;
-
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-
-/**
- * A simple, thread-safe LRU cache implementation. This cache allows concurrent reads.
- * Concurrent write attempts are synchronized using an exclusive lock.
- */
-public class LRUCache<K,V> extends LinkedHashMap<K,V> {
-
- private static final long serialVersionUID = 5901026458782787628L;
- private int maxEntries;
- private ReadWriteLock lock;
-
- public LRUCache(int maxEntries) {
- super(maxEntries + 1, 1, false);
- this.maxEntries = maxEntries;
- this.lock = new ReentrantReadWriteLock();
- }
-
- @Override
- public V get(Object key) {
- lock.readLock().lock();
- try {
- return super.get(key);
- } finally {
- lock.readLock().unlock();
- }
- }
-
- @Override
- public V put(K key, V value) {
- lock.writeLock().lock();
- try {
- return super.put(key, value);
- } finally {
- lock.writeLock().unlock();
- }
- }
-
- @Override
- public V remove(Object key) {
- lock.writeLock().lock();
- try {
- return super.remove(key);
- } finally {
- lock.writeLock().unlock();
- }
- }
-
- @Override
- public void clear() {
- lock.writeLock().lock();
- try {
- super.clear();
- } finally {
- lock.writeLock().unlock();
- }
- }
-
- @Override
- protected boolean removeEldestEntry(Map.Entry<K,V> eldest) {
- boolean remove = size() > maxEntries;
- if (remove) {
- handleRemovableEntry(eldest);
- }
- return remove;
- }
-
- protected void handleRemovableEntry(Map.Entry<K,V> entry) {
-
- }
-
- public void exclusiveLock() {
- lock.writeLock().lock();
- }
-
- public void release() {
- lock.writeLock().unlock();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca25b1f7/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/cache/URLMappingCache.java
----------------------------------------------------------------------
diff --git a/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/cache/URLMappingCache.java b/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/cache/URLMappingCache.java
deleted file mode 100644
index 3c23efc..0000000
--- a/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/cache/URLMappingCache.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 org.apache.stratos.lb.common.cache;
-
-import org.apache.stratos.lb.common.util.DomainMapping;
-import java.util.Map;
-
-public class URLMappingCache {
- private Map<String,DomainMapping> validMappings;
-
- private static URLMappingCache instance = null;
- protected URLMappingCache(int maxValidKeys) {
- validMappings = new LRUCache<String, DomainMapping>(maxValidKeys);
- }
-
- public void addValidMapping(String hostName, DomainMapping mapping) {
- validMappings.put(hostName, mapping);
- }
-
- public DomainMapping getMapping(String hostName) {
- return validMappings.get(hostName);
- }
-
- public static URLMappingCache getInstance(int maxValidKeys) {
- if(instance == null) {
-
- instance = new URLMappingCache(maxValidKeys);
- }
- return instance;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca25b1f7/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/conf/LoadBalancerConfiguration.java
----------------------------------------------------------------------
diff --git a/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/conf/LoadBalancerConfiguration.java b/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/conf/LoadBalancerConfiguration.java
deleted file mode 100644
index 0257b0e..0000000
--- a/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/conf/LoadBalancerConfiguration.java
+++ /dev/null
@@ -1,1206 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 org.apache.stratos.lb.common.conf;
-
-import org.apache.commons.lang.builder.HashCodeBuilder;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.synapse.commons.util.PropertyHelper;
-import org.apache.stratos.lb.common.conf.structure.Node;
-import org.apache.stratos.lb.common.conf.structure.NodeBuilder;
-import org.apache.stratos.lb.common.conf.util.Constants;
-import org.apache.stratos.lb.common.conf.util.HostContext;
-import org.apache.stratos.lb.common.conf.util.LoadBalancerConfigUtil;
-import org.apache.stratos.lb.common.conf.util.TenantDomainContext;
-import java.io.*;
-import java.net.URL;
-import java.util.*;
-
-/**
- * Data object which hold configuration data of the load analyzer task
- */
-@SuppressWarnings("unused")
-public class LoadBalancerConfiguration implements Serializable {
-
- protected static final long serialVersionUID = -5553545217542808233L;
-
- private static final Log log = LogFactory.getLog(LoadBalancerConfiguration.class);
-
- /**
- * This map is there to speed up the lookup time.
- * Key: domain
- * <p/>
- * Value: A map whose key is sub domain and value is ServiceConfiguration
- */
- private Map<String, Map<String, ServiceConfiguration>> serviceConfigurations =
- new HashMap<String, Map<String, ServiceConfiguration>>();
-
- /**
- * Key - host name
- * Value - {@link HostContext}
- */
- private transient Map<String, HostContext> hostCtxt = new HashMap<String, HostContext>();
-
- /**
- * This map is there to speed up the lookup time.
- * Key: service name/cartridge type (Stratos2). NOTE: that this is not the service cluster domain.
- * Value: list of {@link ServiceConfiguration} - corresponding objects under a service name.
- */
- private Map<String, List<ServiceConfiguration>> serviceNameToServiceConfigurations =
- new HashMap<String, List<ServiceConfiguration>>();
-
- /**
- * This list will be used to identify host name duplications among different services.
- * Within a service there can be duplications, but among different services you can't have duplications.
- * Key - service name
- * Value - hosts under the respective service.
- */
- private Map<String, Set<String>> hostNamesTracker = new HashMap<String, Set<String>>();
-
- protected ServiceConfiguration defaultServiceConfig;
- protected LBConfiguration lbConfig;
-
- /**
- * LBConfig file as a String
- */
- protected String lbConfigString;
-
- /**
- * Root node object for loadbalancer.conf
- */
- protected Node rootNode;
-
- private LoadBalancerConfiguration(){
- init(System.getProperty("loadbalancer.conf"));
- }
-
- private static LoadBalancerConfiguration instance ;
-
- public static LoadBalancerConfiguration getInstance(){
- if(instance == null){
- instance = new LoadBalancerConfiguration();
- }
- return instance;
- }
-
- /**
- * Sample loadbalancer.conf:
- * <p/>
- * loadbalancer {
- * # minimum number of load balancer instances
- * instances 1;
- * # whether autoscaling enable or not
- * enable_autoscaler true;
- * # End point reference of the Autoscaler Service
- * autoscaler_service_epr https://10.100.3.81:9443/services/AutoscalerService/;
- * # interval between two task executions in milliseconds
- * autoscaler_task_interval 1000;
- * # after an instance booted up, task will wait till this much of time and let the server started up
- * server_startup_delay 15000;
- * }
- * <p/>
- * services {
- * defaults {
- * min_app_instances 1;
- * max_app_instances 5;
- * queue_length_per_node 400;
- * rounds_to_average 10;
- * instances_per_scale_up 1;
- * message_expiry_time 60000;
- * }
- * <p/>
- * appserver {
- * hosts appserver.cloud-test.wso2.com,as.cloud-test.wso2.com;
- * domains {
- * wso2.as1.domain {
- * tenant_range 1-100;
- * }
- * wso2.as2.domain {
- * tenant_range 101-200;
- * }
- * wso2.as3.domain {
- * tenant_range *;
- * }
- * }
- * }
- * }
- *
- * @param configURL URL of the load balancer config
- */
- public void init(String configURL) {
-
- if(configURL == null){
- String msg = "Cannot locate the location of the loadbalancer.conf file." +
- " You need to set the 'loadbalancer.conf' system property.";
- log.error(msg);
- throw new RuntimeException(msg);
- }
-
- if (configURL.startsWith("$system:")) {
- configURL = System.getProperty(configURL.substring("$system:".length()));
- }
-
- try {
-
- // get loadbalancer.conf file as a String
- if (configURL.startsWith(File.separator)) {
- lbConfigString = createLBConfigString(configURL);
- } else {
- lbConfigString = createLBConfigString(new URL(configURL).openStream());
- }
-
- } catch (Exception e) {
- String msg = "Cannot read configuration file from " + configURL;
- log.error(msg, e);
- throw new RuntimeException(msg, e);
- }
-
- // build a Node object for whole loadbalancer.conf
- rootNode = new Node();
- rootNode.setName("root");
- rootNode = NodeBuilder.buildNode(rootNode, lbConfigString);
-
- // load 'loadbalancer' node
- Node lbConfigNode = rootNode.findChildNodeByName(Constants.LOAD_BALANCER_ELEMENT);
-
- if(lbConfigNode != null){
- createConfiguration(lbConfig = new LBConfiguration(), lbConfigNode);
- }
-
- // load services node
- Node servicesConfigNode = rootNode.findChildNodeByName(Constants.SERVICES_ELEMENT);
-
- if (servicesConfigNode == null) {
- String msg = "Mandatory " + Constants.SERVICES_ELEMENT +
- " element can not be found in the configuration file.";
- log.error(msg);
- throw new RuntimeException(msg);
- }
-
- // Set services configuration
- createServicesConfig(servicesConfigNode);
-
- }
-
-
- /**
- * Process the content of the following 'services' element
- * <p/>
- * services {
- * defaults {
- * min_app_instances 1;
- * max_app_instances 5;
- * queue_length_per_node 400;
- * rounds_to_average 10;
- * instances_per_scale_up 1;
- * message_expiry_time 60000;
- * }
- * <p/>
- * appserver {
- * hosts appserver.cloud-test.wso2.com,as.cloud-test.wso2.com;
- * domains {
- * wso2.as1.domain {
- * tenant_range 1-100;
- * }
- * wso2.as2.domain {
- * tenant_range 101-200;
- * }
- * wso2.as3.domain {
- * tenant_range *;
- * }
- * }
- * }
- * }
- *
- * @param servicesConfigNode services element's Node
- */
- public List<ServiceConfiguration> createServicesConfig(Node servicesConfigNode) {
-
- // current list of service configs
- List<ServiceConfiguration> currentServiceConfigs = new ArrayList<ServiceConfiguration>();
-
- // Building default configuration
- Node defaultNode = servicesConfigNode.findChildNodeByName(Constants.DEFAULTS_ELEMENT);
-
- if (defaultNode != null) {
-
- createConfiguration(defaultServiceConfig = new ServiceConfiguration(), defaultNode);
- }
-
- // Building custom services configuration
- for (Node serviceNode : servicesConfigNode.getChildNodes()) {
- //skip default node
- if (serviceNode != defaultNode) {
-
- String serviceName = serviceNode.getName();
-
- // reading domains
-
- Node domainsNode;
-
- if (serviceNode.getChildNodes().isEmpty() ||
- !(domainsNode = serviceNode.getChildNodes().get(0)).getName().equals(
- Constants.DOMAIN_ELEMENT)) {
-
- String msg = "The mandatory domains element, child of the " + serviceName +
- " element is not specified in the configuration file. \n"+
- serviceNode.toString();
- log.error(msg);
- throw new RuntimeException(msg);
- }
-
- if (domainsNode.getChildNodes().isEmpty()) {
- // this is probably a mistake, so we don't proceed
- String msg = "No domain is specified under " + Constants.DOMAIN_ELEMENT +
- " of " + serviceName + " element.";
- log.error(msg);
- throw new RuntimeException(msg);
- }
-
- ServiceConfiguration serviceConfig;
-
- // iterates through all the service domain specified in this service element.
- for (Node domain : domainsNode.getChildNodes()) {
-
- // create a new service configuration
- serviceConfig = new ServiceConfiguration();
-
- // set service name
- serviceConfig.setServiceName(serviceName);
-
- // set domain name
- serviceConfig.setDomain(domain.getName());
-
- // let's set properties common to all domains specified in this service element.
- createConfiguration(serviceConfig, serviceNode);
-
- // load properties specified under this service domain element.
- createConfiguration(serviceConfig, domain);
-
- // check host name duplication
- if(isDuplicatedHost(serviceNode.getName(), serviceConfig)){
- // this is probably a mistake, so we don't proceed
- String msg = "Duplicated host names detected for different service domains.\n" +
- "Element: \n"+serviceNode.toString();
- log.error(msg);
- throw new RuntimeException(msg);
- }
-
- currentServiceConfigs.add(serviceConfig);
-
- }
- }
- }
-
- for (ServiceConfiguration serviceConfiguration : currentServiceConfigs) {
-
- // add the built ServiceConfiguration, to the map
- addServiceConfiguration(serviceConfiguration);
-
- }
-
- return currentServiceConfigs;
-
- }
-
-
- public boolean addServiceConfiguration(ServiceConfiguration serviceConfig) {
-
- Map<String, ServiceConfiguration> map;
- String domain = serviceConfig.getDomain();
-
- if(domain == null){
- String msg = "Domain of a Service Configuration cannot be null. Hence this " +
- "Configuration will be neglected.";
- log.error(msg);
- return false;
- }
-
- String subDomain = serviceConfig.getSubDomain();
-
- if (serviceConfigurations.containsKey(domain)) {
- map = serviceConfigurations.get(domain);
- } else {
- map = new HashMap<String, ServiceConfiguration>();
- }
- // put this serviceConfig
- map.put(subDomain, serviceConfig);
-
- // update the parent map
- serviceConfigurations.put(domain, map);
-
- // add to serviceNameToServiceConfiguration map
- List<ServiceConfiguration> configs;
- if(serviceNameToServiceConfigurations.get(serviceConfig.getServiceName()) == null){
- configs = new ArrayList<ServiceConfiguration>();
-
- }else{
- configs = serviceNameToServiceConfigurations.get(serviceConfig.getServiceName());
- }
-
- if(!configs.contains(serviceConfig)){
- configs.add(serviceConfig);
- }
- serviceNameToServiceConfigurations.put(serviceConfig.getServiceName(), configs);
-
- return true;
- }
-
- public ServiceConfiguration removeServiceConfiguration(String domain, String subDomain) {
-
- Map<String, ServiceConfiguration> map;
- ServiceConfiguration serviceConfig = null;
-
- if(domain == null){
- String msg = "Domain of a Service Configuration cannot be null. Hence this " +
- "Configuration will be neglected.";
- log.error(msg);
- return null;
- }
-
- if (serviceConfigurations.containsKey(domain)) {
- map = serviceConfigurations.get(domain);
-
- if(map != null){
- serviceConfig = map.remove(subDomain);
- }
- }
-
- if(serviceConfig == null){
- String msg = "No matching service configuration found for domain: "+domain+
- ", sub domain: "+subDomain;
- log.error(msg);
- return null;
- }
-
- String serviceName = serviceConfig.getServiceName();
-
- if (serviceName != null && serviceNameToServiceConfigurations.containsKey(serviceName)) {
- if(serviceConfig != null){
- List<ServiceConfiguration> list = serviceNameToServiceConfigurations.get(serviceName);
-
- list.remove(serviceConfig);
-
- serviceNameToServiceConfigurations.put(serviceName, list);
- }
- }
-
- Set<String> allHosts;
-
- if (hostNamesTracker.containsKey(serviceName)) {
- allHosts = hostNamesTracker.get(serviceName);
-
- for (String hostName : serviceConfig.getHosts()) {
-
- if (hostName != null) {
-
- allHosts.remove(hostName);
-
- hostCtxt.remove(hostName);
- }
- }
- }
-
- return serviceConfig;
- }
-
- public void resetData(){
- serviceConfigurations =
- new HashMap<String, Map<String, ServiceConfiguration>>();
-
- serviceNameToServiceConfigurations =
- new HashMap<String, List<ServiceConfiguration>>();
-
- }
-
-
- /**
- * Duplications can only be seen, when you traverse down the configuration file.
- *
- */
- public boolean isDuplicatedHost(String name, ServiceConfiguration serviceConfig) {
-
- /**
- * This will be populated with host names of all other services other than the
- * service subjected to the test.
- */
- List<String> hostsOtherThanMine = new ArrayList<String>(hostNamesTracker.values().size());
-
- for (Map.Entry<String, Set<String>> entry : hostNamesTracker.entrySet()) {
- if (!entry.getKey().equals(name)) {
- hostsOtherThanMine.addAll(entry.getValue());
- }
- }
-
- for (String host : serviceConfig.getHosts()) {
- if (!hostsOtherThanMine.isEmpty() && hostsOtherThanMine.contains(host)) {
- return true;
- }
- }
-
- addToHostNameTrackerMap(name, serviceConfig.getHosts());
-
- return false;
- }
-
-
- public void addToHostNameTrackerMap(String name, List<String> hosts) {
-
- Set<String> allHosts;
-
- if (hostNamesTracker.containsKey(name)) {
- allHosts = hostNamesTracker.get(name);
- allHosts.addAll(hosts);
- } else {
- allHosts = new HashSet<String>(hosts);
- }
- hostNamesTracker.put(name, allHosts);
- }
-
- public void addToHostContextMap(String hostName, HostContext ctxt) {
-
- if (hostName != null && ctxt != null) {
- hostCtxt.put(hostName, ctxt);
- }
- }
-
- /**
- * Return a map of {@link HostContext}.
- * @return
- */
- public Map<String, HostContext> getHostContextMap() {
-
- List<Integer> tenantIds;
- Map<String, String> URLSuffixes;
-
- // FIXME if possible! I couldn't think of any other way to do this, at this moment.
- // Note: some of these for-loops are pretty small, thus no considerable performance overhead.
- // iterate through each service
- for (Iterator<Set<String>> it = hostNamesTracker.values().iterator(); it.hasNext();) {
-
- // iterate through host names of this service
- for (String hostName : ((Set<String>) it.next())) {
-
- // building HostContext
- HostContext ctxt = new HostContext(hostName);
-
- // iterate through domains of this host
- for (Map.Entry<String, Map<String, ServiceConfiguration>> parentMap : serviceConfigurations.entrySet()) {
-
- // iterate through sub domain of this domain
- for (Map.Entry<String, ServiceConfiguration> childMap : parentMap.getValue()
- .entrySet()) {
- // iterate through hosts of this
- for (String host : childMap.getValue().getHosts()) {
- // if a matching Service configuration is found.
- if (host.equals(hostName)) {
-
- String tenantRange = childMap.getValue().getTenantRange();
- String domain = parentMap.getKey();
- String subDomain = childMap.getKey();
-
- ctxt.addTenantDomainContexts(LoadBalancerConfigUtil.getTenantDomainContexts(tenantRange, domain, subDomain));
-
- break;
- }
- }
-
- //iterate through URL suffixes
- for(Map.Entry<String, String> entry : childMap.getValue().getUrl_suffix().entrySet()) {
- if(entry.getKey().equals(hostName)) {
-
- ctxt.setUrlSuffix(entry.getValue());
-
- break;
- }
-
- }
- }
- }
-
- // add this hostCtxt
- hostCtxt.put(hostName, ctxt);
- }
-
- }
-
- return hostCtxt;
-
- }
-
- protected void createConfiguration(Configuration config, Node node) {
-
- if (node == null) {
- String msg = "The configuration element for " +
- config.getClass().getName() + " is null.";
- throw new RuntimeException(msg);
- }
-
- try {
- // load properties
- for (Map.Entry<String, String> entry : node.getProperties().entrySet()) {
- String key = entry.getKey();
- String value = entry.getValue();
-
- PropertyHelper.setInstanceProperty(key, value, config);
- }
-
- } catch (Exception e) {
- String msg = "Error setting values to " + config.getClass().getName();
- log.error(msg, e);
- throw new RuntimeException(msg, e);
- }
- }
-
- public LBConfiguration getLoadBalancerConfig() {
- return lbConfig;
- }
-
- public String[] getServiceDomains() {
-
- Object[] objs = serviceConfigurations.keySet().toArray();
-
- return Arrays.copyOf(objs, objs.length, String[].class);
-
- }
-
- public String[] getServiceSubDomains(String domain) {
-
- if (serviceConfigurations.get(domain) != null) {
- Object[] objs = serviceConfigurations.get(domain).keySet().toArray();
- return Arrays.copyOf(objs, objs.length, String[].class);
- }
-
- return new String[0];
- }
-
- public ServiceConfiguration getServiceConfig(String domain, String subDomain) {
- if (serviceConfigurations.get(domain) != null) {
- return serviceConfigurations.get(domain).get(subDomain);
- }
- return null;
- }
-
-
- public List<ServiceConfiguration> getServiceConfigs(String serviceName) {
- return serviceNameToServiceConfigurations.get(serviceName);
- }
-
- /**
- * Convert given configuration file to a single String
- *
- * @param configFileName - file name to convert
- * @return String with complete lb configuration
- * @throws FileNotFoundException
- */
- public String createLBConfigString(String configFileName) throws FileNotFoundException {
- StringBuilder lbConfigString = new StringBuilder("");
-
- File configFile = new File(configFileName);
- Scanner scanner;
-
- scanner = new Scanner(configFile);
-
- while (scanner.hasNextLine()) {
- lbConfigString.append(scanner.nextLine().trim() + "\n");
- }
-
- return lbConfigString.toString().trim();
- }
-
- public String createLBConfigString(InputStream configFileName) throws IOException {
-
- // read the stream with BufferedReader
- BufferedReader br = new BufferedReader(new InputStreamReader(configFileName));
-
- StringBuilder sb = new StringBuilder();
-
- String line;
- while ((line = br.readLine()) != null) {
- sb.append(line.trim() + "\n");
- }
-
- return sb.toString().trim();
- }
-
- public abstract class Configuration implements Serializable {
-
- private static final long serialVersionUID = -5433889427746551250L;
- protected String imageId = System.getenv("ami_id");
- protected String payload;
- protected boolean payloadSet;
-
- protected String availability_zone = "us-east-1c";
- protected boolean availabilityZoneSet;
-
- protected String[] security_groups = new String[]{"default"};
- protected boolean securityGroupsSet;
-
- protected String instance_type = "m1.large";
- protected boolean instanceTypeSet;
-
- protected String additional_info;
-
- public String getImageId() {
- return imageId;
- }
-
- public String getAdditionalInfo() {
- return additional_info;
- }
-
- public String getAvailability_zone() {
- if (this instanceof LBConfiguration) {
- return availability_zone;
- }
- if (availabilityZoneSet) {
- return availability_zone;
- } else if (defaultServiceConfig != null && defaultServiceConfig.availabilityZoneSet) {
- return defaultServiceConfig.availability_zone;
- }
- return availability_zone;
- }
-
- public String[] getSecurityGroups() {
- if (this instanceof LBConfiguration) {
- return security_groups;
- }
- if (securityGroupsSet) {
- return security_groups;
- } else if (defaultServiceConfig != null && defaultServiceConfig.securityGroupsSet) {
- return defaultServiceConfig.security_groups;
- }
- return security_groups;
- }
-
- public String getInstanceType() {
- if (this instanceof LBConfiguration) {
- return instance_type;
- }
- if (instanceTypeSet) {
- return instance_type;
- } else if (defaultServiceConfig != null && defaultServiceConfig.instanceTypeSet) {
- return defaultServiceConfig.instance_type;
- }
- return instance_type;
- }
-
-
- public String getUserData() {
- if (payload == null) {
- payload = LoadBalancerConfigUtil.getUserData("resources/cluster_node.zip");
- }
- if (this instanceof LBConfiguration) {
- return payload;
- }
- if (payloadSet) {
- return payload;
- } else if (defaultServiceConfig != null && defaultServiceConfig.payloadSet) {
- return defaultServiceConfig.payload;
- }
- return payload;
- }
-
- public void setPayload(String payload) {
- this.payload = LoadBalancerConfigUtil.getUserData(LoadBalancerConfigUtil.replaceVariables(payload));
- this.payloadSet = true;
- }
-
- public void setAvailability_zone(String availabilityZone) {
- this.availability_zone = LoadBalancerConfigUtil.replaceVariables(availabilityZone);
- this.availabilityZoneSet = true;
- }
-
- public void setSecurity_groups(String securityGroups) {
- this.security_groups = LoadBalancerConfigUtil.replaceVariables(securityGroups).split(",");
- this.securityGroupsSet = true;
- }
-
- public void setInstance_type(String instanceType) {
- this.instance_type = LoadBalancerConfigUtil.replaceVariables(instanceType);
- this.instanceTypeSet = true;
- }
-
- }
-
- public class LBConfiguration extends Configuration implements Serializable {
-
- private static final long serialVersionUID = 1357143883932816418L;
- private String elasticIP;//= LoadBalancerConfigUtil.replaceVariables("${ELASTIC_IP}");
- private int instances = 1;
- private boolean isAutoscaleEnabled;
- private int autoscalerTaskInterval = 30000;
- private String autoscalerServiceEpr;
- private int serverStartupDelay = 60000;
- private int sizeOfCache = 0 ;
- private boolean failOver;
- private int sessionTimeOut = -1;
- private String groupManagementAgentClass;
- private String autoscalerTaskClass;
- private String mbServerUrl;
- private boolean useEmbeddedAutoscaler = true;
- private String algorithm = "org.apache.synapse.endpoints.algorithms.RoundRobin";
-
- public String getElasticIP() {
- return elasticIP;
- }
-
- public int getInstances() {
- return instances;
- }
-
- public boolean isAutoscaleEnabled() {
- return isAutoscaleEnabled;
- }
-
- public boolean useEmbeddedAutoscaler() {
- return useEmbeddedAutoscaler;
- }
-
- public boolean getFailOver() {
- return failOver;
- }
-
- public String getAutoscalerServiceEpr() {
- return autoscalerServiceEpr;
- }
-
- public int getAutoscalerTaskInterval() {
- return autoscalerTaskInterval;
- }
-
- public int getServerStartupDelay() {
- return serverStartupDelay;
- }
-
- public int getSessionTimeOut() {
- return sessionTimeOut;
- }
-
- public void setElasticIP(String elasticIP) {
- this.elasticIP = LoadBalancerConfigUtil.replaceVariables(elasticIP);
- }
-
- public void setInstances(int instances) {
- this.instances = instances;
- }
-
- public void setEnable_autoscaler(String isEnabled) {
- this.isAutoscaleEnabled = Boolean.parseBoolean(isEnabled);
- }
-
- public void setUse_embedded_autoscaler(String use) {
- this.useEmbeddedAutoscaler = Boolean.parseBoolean(use);
- }
-
- public void setFail_over(String isEnabled) {
- this.failOver = Boolean.parseBoolean(isEnabled);
- }
-
- public void setAutoscaler_service_epr(String epr) {
- this.autoscalerServiceEpr = epr;
- }
-
- public void setMb_server_url(String url) {
- this.mbServerUrl = url;
- }
-
- public String getMbServerUrl() {
- return mbServerUrl;
- }
-
- public void setAutoscaler_task_interval(String interval) {
- this.autoscalerTaskInterval = Integer.parseInt(interval);
- }
-
- public void setServer_startup_delay(String delay) {
- this.serverStartupDelay = Integer.parseInt(delay);
- }
-
- public void setSession_timeout(String timeout) {
- this.sessionTimeOut = Integer.parseInt(timeout);
- }
-
- public String getAlgorithm() {
- return algorithm;
- }
-
- public void setAlgorithm(String algorithm) {
- if (algorithm != null) {
- this.algorithm = algorithm;
- }
- }
-
- public int getSizeOfCache() {
- return sizeOfCache;
- }
-
- public void setSize_of_cache(int sizeOfCache) {
- this.sizeOfCache = sizeOfCache;
- }
-
- public String getGroupManagementAgentClass() {
- return groupManagementAgentClass;
- }
-
- public String getAutoscalerTaskClass() {
- return autoscalerTaskClass;
- }
-
- public void setGroup_mgt_agent(String groupManagementAgentClass){
- this.groupManagementAgentClass = groupManagementAgentClass;
- }
-
- public void setAutoscaler_task(String autoscalerTaskClass){
- this.autoscalerTaskClass = autoscalerTaskClass;
- }
- }
-
- public class ServiceConfiguration extends Configuration implements Serializable {
-
- private String serviceName;
-
- public String getServiceName() {
- return serviceName;
- }
-
- public void setServiceName(String name) {
- this.serviceName = name;
- }
-
- public String getPublicIp() {
- return publicIp;
- }
-
- public void setPublic_ip(String publicIp) {
- this.publicIp = publicIp;
- }
-
- private String publicIp;
-
- private static final long serialVersionUID = 8707314702788040116L;
- private int minAppInstances = 1;
- private boolean minAppInstancesSet;
-
- private int maxAppInstances = 3;
- private boolean maxAppInstancesSet;
-
- private int maxRequestsPerSecond = 100;
- private boolean maxRequestsPerSecondSet;
-
- private double alarmingUpperRate = 0.7;
- private boolean alarmingUpperRateSet;
-
- private double alarmingLowerRate = 0.2;
- private boolean alarmingLowerRateSet;
-
- private double scaleDownFactor = 0.25;
- private boolean scaleDownFactorSet;
-
- private int roundsToAverage = 10;
- private boolean roundsToAverageSet;
-
- private int instancesPerScaleUp = 1;
- private boolean instancesPerScaleUpSet;
-
- private int messageExpiryTime = 60000; // milliseconds
- private boolean messageExpiryTimeSet;
-
- private List<String> hosts = new ArrayList<String>();
- private Map<String, String> urlSuffixes = new HashMap<String, String>();
- private boolean hostsSet;
-
- private String domain;
-
- private String tenantRange;
- private boolean tenantRangeSet;
-
- private String subDomain = Constants.DEFAULT_SUB_DOMAIN;
- private boolean subDomainSet;
-
- public String getTenantRange() {
- if (tenantRangeSet) {
- return tenantRange;
- } else if (defaultServiceConfig != null && defaultServiceConfig.tenantRangeSet) {
- return defaultServiceConfig.tenantRange;
- }
- return tenantRange;
- }
-
- public String getDomain() {
- return domain;
- }
-
- public List<String> getHosts() {
- if (hostsSet) {
- return hosts;
- } else if (defaultServiceConfig != null && defaultServiceConfig.hostsSet) {
- return defaultServiceConfig.hosts;
- }
- return hosts;
- }
-
- public int getMinAppInstances() {
- if (minAppInstancesSet) {
- return minAppInstances;
- } else if (defaultServiceConfig != null && defaultServiceConfig.minAppInstancesSet) {
- return defaultServiceConfig.minAppInstances;
- }
- return minAppInstances;
- }
-
- public int getMaxAppInstances() {
- if (maxAppInstancesSet) {
- return maxAppInstances;
- } else if (defaultServiceConfig != null && defaultServiceConfig.maxAppInstancesSet) {
- return defaultServiceConfig.maxAppInstances;
- }
- return maxAppInstances;
- }
-
- public int getMaxRequestsPerSecond() {
- if (maxRequestsPerSecondSet) {
- return maxRequestsPerSecond;
- } else if (defaultServiceConfig != null && defaultServiceConfig.maxRequestsPerSecondSet) {
- return defaultServiceConfig.maxRequestsPerSecond;
- }
- return maxRequestsPerSecond;
- }
-
- public int getRoundsToAverage() {
- if (roundsToAverageSet) {
- return roundsToAverage;
- } else if (defaultServiceConfig != null && defaultServiceConfig.roundsToAverageSet) {
- return defaultServiceConfig.roundsToAverage;
- }
- return roundsToAverage;
- }
-
- public int getInstancesPerScaleUp() {
- if (instancesPerScaleUpSet) {
- return instancesPerScaleUp;
- } else if (defaultServiceConfig != null && defaultServiceConfig.instancesPerScaleUpSet) {
- return defaultServiceConfig.instancesPerScaleUp;
- }
- return instancesPerScaleUp;
- }
-
- public int getMessageExpiryTime() {
- if (messageExpiryTimeSet) {
- return messageExpiryTime;
- } else if (defaultServiceConfig != null && defaultServiceConfig.messageExpiryTimeSet) {
- return defaultServiceConfig.messageExpiryTime;
- }
- return messageExpiryTime;
- }
-
- public String getSubDomain() {
- if (subDomainSet) {
- return subDomain;
- } else if (defaultServiceConfig != null && defaultServiceConfig.subDomainSet) {
- return defaultServiceConfig.subDomain;
- }
- return subDomain;
- }
-
- public void setMin_app_instances(int minAppInstances) {
-// if (minAppInstances < 1) {
-// LoadBalancerConfigUtil.handleException("minAppInstances in the autoscaler task configuration " +
-// "should be at least 1");
-// }
- this.minAppInstances = minAppInstances;
- this.minAppInstancesSet = true;
- }
-
- public void setMax_app_instances(int maxAppInstances) {
- if (maxAppInstances < 1) {
- LoadBalancerConfigUtil.handleException("maxAppInstances in the autoscaler task configuration " +
- "should be at least 1");
- }
- this.maxAppInstances = maxAppInstances;
- this.maxAppInstancesSet = true;
- }
-
- public void setAlarming_upper_rate(double rate) {
- if (rate > 0 && rate <= 1) {
- this.alarmingUpperRate = rate;
- this.alarmingUpperRateSet = true;
- }
- }
-
- public void setAlarming_lower_rate(double rate) {
- if (rate > 0 && rate <= 1) {
- this.alarmingLowerRate = rate;
- this.alarmingLowerRateSet = true;
- }
- }
-
- public void setScale_down_factor(double factor) {
- if (factor > 0 && factor <= 1) {
- this.scaleDownFactor = factor;
- this.scaleDownFactorSet = true;
- }
- }
-
- public void setMax_requests_per_second(int rps) {
- this.maxRequestsPerSecond = rps;
- this.maxRequestsPerSecondSet = true;
- }
-
- public void setRounds_to_average(int roundsToAverage) {
- this.roundsToAverage = roundsToAverage;
- this.roundsToAverageSet = true;
- }
-
- public void setInstances_per_scale_up(int instancesPerScaleUp) {
- if (instancesPerScaleUp < 1) {
- LoadBalancerConfigUtil.handleException("instancesPerScaleUp in the autoscaler task configuration " +
- "should be at least 1");
- }
- this.instancesPerScaleUp = instancesPerScaleUp;
- this.instancesPerScaleUpSet = true;
- }
-
- public void setMessage_expiry_time(int messageExpiryTime) {
- if (messageExpiryTime < 1) {
- LoadBalancerConfigUtil.handleException("messageExpiryTime in the autoscaler task configuration " +
- "should be at least 1");
- }
- this.messageExpiryTime = messageExpiryTime;
- this.messageExpiryTimeSet = true;
- }
-
- public void setHosts(String hostsStr) {
- // clear all unnecessary values --> property will get overwritten
- hosts = new ArrayList<String>();
- // there can be multiple hosts, let's find out.
- String[] host = hostsStr.split(Constants.HOSTS_DELIMITER);
-
- for (String string : host) {
- if (!string.isEmpty()) {
- this.hosts.add(string);
- }
- }
-
- }
-
- public void setUrl_suffix(String suffix) {
- // clear all unnecessary values --> property will get overwritten
- //hosts = new ArrayList<String>();
- // there can be multiple hosts, let's find out.
- String[] suffixes = suffix.split(Constants.HOSTS_DELIMITER);
- int count = 0;
- if(suffixes.length == this.hosts.size()) {
- for (String string : suffixes) {
- if (!string.isEmpty()) {
- this.urlSuffixes.put(this.hosts.get(count), string);
- count++;
- }
- }
-
- } else {
- //Error
- }
- }
-
- public Map<String, String> getUrl_suffix() {
- return this.urlSuffixes;
- }
-
- public void setTenant_range(String range) {
- this.tenantRange = range;
- }
-
- public void setSub_domain(String subDomain) {
- this.subDomain = subDomain;
- this.subDomainSet = true;
- }
-
- public void setDomain(String domain) {
- this.domain = domain;
- }
-
- public boolean equals(ServiceConfiguration config) {
- return this.domain.equals(config.getDomain()) &&
- this.subDomain.equals(config.getSubDomain());
- }
-
- public int hashCode() {
- return new HashCodeBuilder(17, 31). // two randomly chosen prime numbers
- append(domain).
- append(subDomain).
- toHashCode();
- }
-
- public double getAlarmingUpperRate() {
- if (alarmingUpperRateSet) {
- return alarmingUpperRate;
- } else if (defaultServiceConfig != null && defaultServiceConfig.alarmingUpperRateSet) {
- return defaultServiceConfig.alarmingUpperRate;
- }
- return alarmingUpperRate;
- }
-
- public double getAlarmingLowerRate() {
- if (alarmingLowerRateSet) {
- return alarmingLowerRate;
- } else if (defaultServiceConfig != null && defaultServiceConfig.alarmingLowerRateSet) {
- return defaultServiceConfig.alarmingLowerRate;
- }
- return alarmingLowerRate;
- }
-
- public double getScaleDownFactor() {
- if (scaleDownFactorSet) {
- return scaleDownFactor;
- } else if (defaultServiceConfig != null && defaultServiceConfig.scaleDownFactorSet) {
- return defaultServiceConfig.scaleDownFactor;
- }
- return scaleDownFactor;
- }
- }
-
- public Map<String, Set<String>> getHostNamesTracker() {
- return hostNamesTracker;
- }
-
-
- public Map<String, Map<String, ServiceConfiguration>> getServiceConfigurations() {
- return serviceConfigurations;
- }
-
-
- public Node getRootNode() {
- return rootNode;
- }
-
-
- public void setRootNode(Node rootNode) {
- this.rootNode = rootNode;
- }
-
- public static void setInstance(LoadBalancerConfiguration instance) {
- LoadBalancerConfiguration.instance = instance;
- }
-
- public Map<String, List<ServiceConfiguration>> getServiceNameToServiceConfigurations() {
- return serviceNameToServiceConfigurations;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca25b1f7/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/conf/internal/LoadBalancerConfigurationDSComponent.java
----------------------------------------------------------------------
diff --git a/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/conf/internal/LoadBalancerConfigurationDSComponent.java b/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/conf/internal/LoadBalancerConfigurationDSComponent.java
deleted file mode 100644
index ab58e12..0000000
--- a/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/conf/internal/LoadBalancerConfigurationDSComponent.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 org.apache.stratos.lb.common.conf.internal;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.lb.common.service.LoadBalancerConfigurationService;
-import org.apache.stratos.lb.common.service.impl.LoadBalancerConfigurationServiceImpl;
-import org.osgi.framework.BundleContext;
-import org.osgi.service.component.ComponentContext;
-import org.apache.stratos.lb.common.service.LoadBalancerConfigurationService;
-import org.apache.stratos.lb.common.service.impl.LoadBalancerConfigurationServiceImpl;
-import org.apache.stratos.lb.common.service.LoadBalancerConfigurationService;
-import org.apache.stratos.lb.common.service.impl.LoadBalancerConfigurationServiceImpl;
-
-/**
- * Registering {@link org.apache.stratos.lb.common.service.LoadBalancerConfigurationService} .
- * @scr.component name="org.wso2.carbon.lb.common" immediate="true"
- */
-public class LoadBalancerConfigurationDSComponent {
-
- private static final Log log = LogFactory.getLog(LoadBalancerConfigurationDSComponent.class);
-
- protected void activate(ComponentContext context) {
- try {
- BundleContext bundleContext = context.getBundleContext();
- bundleContext.registerService(LoadBalancerConfigurationService.class.getName(),
- new LoadBalancerConfigurationServiceImpl(), null);
-
- log.debug("******* Load Balancer Configuration Service bundle is activated ******* ");
- } catch (Exception e) {
- log.error("******* Load Balancer Configuration Service bundle is failed to activate ****", e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ca25b1f7/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/conf/structure/Node.java
----------------------------------------------------------------------
diff --git a/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/conf/structure/Node.java b/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/conf/structure/Node.java
deleted file mode 100644
index 579eda5..0000000
--- a/components/load-balancer/org.apache.stratos.lb.common/4.1.3/src/main/java/org/apache/stratos/lb/common/conf/structure/Node.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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 org.apache.stratos.lb.common.conf.structure;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.apache.commons.lang.builder.HashCodeBuilder;
-
-/**
- * This is the basic data structure which holds a <i>Nginx</i> formatted configuration file.
- *
- */
-public class Node implements Serializable{
-
- private static final long serialVersionUID = 4071569903421115370L;
-
- /**
- * Name of this Node element
- */
- private String name;
-
- /**
- * Every node can have 0..n child nodes.
- * They are kept in a List.
- */
- private List<Node> childNodes = new ArrayList<Node>();
-
- /**
- * Every node can have 0..n properties.
- * They are kept in a Map, in the order they appear.
- * Key: property name
- * Value: property value
- */
- private Map<String, String> properties = new LinkedHashMap<String, String>();
-
- public void setChildNodes(List<Node> childNodes) {
- this.childNodes = childNodes;
- }
-
- public void setProperties(Map<String, String> properties) {
- this.properties = properties;
- }
-
- /**
- * This will convert each child Node of this Node to a String.
- * @return a string which represents child nodes of this node.
- */
- public String childNodesToString(int indentation) {
- StringBuilder childNodesString = new StringBuilder();
- indentation++;
-
- for (Node node : childNodes) {
- childNodesString.append(node.toString(indentation)+"\n");
- }
-
- return childNodesString.toString();
- }
-
- /**
- * This will try to find a child Node of this Node, which has the given name.
- * @param name name of the child node to find.
- * @return child Node object if found or else <code>null</code>.
- */
- public Node findChildNodeByName(String name) {
- for (Node aNode : childNodes) {
- if (aNode.getName().equals(name)) {
- return aNode;
- }
- }
-
- return null;
- }
-
- /**
- * Returns the name of this Node.
- * @return name of the node.
- */
- public String getName() {
- return name;
- }
-
- /**
- * Returns child nodes List of this Node.
- * @return List of Node
- */
- public List<Node> getChildNodes() {
- return childNodes;
- }
-
- /**
- * Returns properties Map of this Node.
- * @return Map whose keys and values are String.
- */
- public Map<String, String> getProperties() {
- return properties;
- }
-
- /**
- * Returns the value of a given property.
- * @param key name of a property.
- * @return trimmed value if the property is found in this Node, or else <code>null</code>.
- */
- public String getProperty(String key) {
- if (properties.get(key) == null) {
- return null;
- }
- return properties.get(key).trim();
- }
-
- /**
- * Returns all the properties of this Node as a String.
- * Key and value of the property is separated by a tab (\t) character and
- * each property is separated by a new line character.
- * @param indentation relative number of tabs
- * @return properties of this node as a String.
- */
- public String propertiesToString(int indentation) {
-
- String indent = getIndentation(indentation);
-
- StringBuilder sb = new StringBuilder();
- for (Map.Entry<String, String> entry : properties.entrySet()) {
- // hack to get a quick fix in.
- if (!"tenant_id".equals(entry.getKey()) && !"alias".equals(entry.getKey())) {
- sb.append(indent + entry.getKey() + "\t" + entry.getValue() + ";\n");
- }
- }
- return sb.toString();
- }
-
- /**
- * Removes the first occurrence of a node having the given name
- * and returns the removed {@link Node}.
- * @param name name of the child node to be removed.
- * @return removed {@link Node} or else <code>null</code>.
- */
- public Node removeChildNode(String name) {
- Node aNode = findChildNodeByName(name);
-
- if(aNode != null){
- if(childNodes.remove(aNode)){
- return aNode;
- }
- }
-
- return null;
- }
-
- /**
- * Removes the first occurrence of a node equals to the given node.
- * @param node {@link Node} to be removed.
- * @return whether the removal is successful or not.
- */
- public boolean removeChildNode(Node node){
-
- return childNodes.remove(node);
- }
-
- /**
- * Sets the name of this Node.
- * @param name String to be set as the name.
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * Appends a child node at the end of the List of child nodes of this Node, if
- * a similar node is not already present as a child node.
- * @param aNode child Node to be appended.
- */
- public void appendChild(Node aNode) {
- if (aNode != null && !nodeAlreadyPresent(aNode)) {
- childNodes.add(aNode);
- }
- }
-
- /**
- * Adds a new property to properties Map of this Node if and only if
- * key is not <code>null</code>.
- * @param key name of the property to be added.
- * @param value value of the property to be added.
- */
- public void addProperty(String key, String value) {
- if (key != null) {
- properties.put(key, value);
- }
- }
-
- /**
- * Convert this Node to a String which is in <i>Nginx</i> format.
- * <br/>
- * Sample:
- * <br></br>
- * <code>
- * ij {
- * <br/>
- * klm n;
- * <br/>
- * pq {
- * <br/>
- * rst u;
- * <br/>
- * }
- * <br/>
- * }
- * <br/>
- * </code>
- */
- public String toString() {
-
- String nodeString =
- getName()+" {\n" +
- (propertiesToString(1)) +
- (childNodesToString(1)) +
- "}";
-
- return nodeString;
- }
-
- public boolean equals(Object node) {
-
- if(node instanceof Node){
- return this.getName().equals(((Node) node).getName()) &&
- isIdenticalProperties(this.getProperties(), ((Node) node).getProperties()) &&
- isIdenticalChildren(this.getChildNodes(), ((Node) node).getChildNodes());
- }
-
- return false;
-
- }
-
- public int hashCode() {
- return new HashCodeBuilder(17, 31). // two randomly chosen prime numbers
- append(name).
- append(properties).
- append(childNodes).
- toHashCode();
- }
-
- private boolean isIdenticalChildren(List<Node> childNodes1, List<Node> childNodes2) {
-
- if(childNodes1.size() != childNodes2.size()){
- return false;
- }
-
- for (Node node1 : childNodes1) {
- int i=0;
- for (Node node2 : childNodes2) {
-
- i++;
- if(node1.equals(node2)){
- break;
- }
-
- if(i == childNodes1.size()){
- return false;
- }
-
- }
- }
-
- return true;
- }
-
- private boolean nodeAlreadyPresent(Node aNode){
-
- for(Node node : this.childNodes){
- if(node.equals(aNode)){
- return true;
- }
- }
-
- return false;
- }
-
- private boolean isIdenticalProperties(Map<String, String> map1,
- Map<String, String> map2) {
-
- if(map1.size() != map2.size()){
- return false;
- }
-
- for (Iterator<Entry<String, String>> iterator1 = map1.entrySet().iterator(); iterator1.hasNext();) {
- Map.Entry<String, String> entry1 = (Map.Entry<String, String>) iterator1.next();
-
- int i=0;
-
- for(Iterator<Entry<String, String>> iterator2 = map2.entrySet().iterator(); iterator2.hasNext();) {
- Map.Entry<String, String> entry2 = (Map.Entry<String, String>) iterator2.next();
-
- i++;
-
- if((entry1.getKey().equals(entry2.getKey()) &&
- entry1.getValue().equals(entry2.getValue()))){
-
- break;
- }
-
- if(i == map1.size()){
- return false;
- }
-
- }
- }
-
- return true;
- }
-
- private String toString(int indentation){
-
- String indent = getIndentation(indentation-1);
-
- String nodeString =
- indent + getName()+" {\n" +
- (propertiesToString(indentation)) +
- (childNodesToString(indentation)) +
- indent + "}";
-
- return nodeString;
- }
-
- private String getIndentation(int tabs){
-
- StringBuilder indent = new StringBuilder("");
-
- for (int i = 0; i < tabs; i++) {
- indent.append("\t");
- }
-
- return indent.toString();
- }
-
-}