com.atlassian.confluence.it
Class ConfluenceBaseUrlSelector

java.lang.Object
  extended by com.atlassian.confluence.it.ConfluenceBaseUrlSelector
All Implemented Interfaces:
BaseUrlSelector

public class ConfluenceBaseUrlSelector
extends Object
implements BaseUrlSelector


Field Summary
static RandomnessHandler RANDOMNESS_HANDLER
           
 
Constructor Summary
ConfluenceBaseUrlSelector()
          Deprecated. Since 5.6 Use ConfluenceBaseUrlSelector(org.slf4j.Logger)
ConfluenceBaseUrlSelector(org.slf4j.Logger logger)
           
 
Method Summary
 List<String> getAllNodeBaseUrls()
          
 String getBaseUrl()
          
 String getConfiguredBaseUrl()
          
 String substituteForNodeBaseUrl(String url)
          Our cluster builds don't have a load balancer, this base URL actually points at node 1.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

RANDOMNESS_HANDLER

public static final RandomnessHandler RANDOMNESS_HANDLER
Constructor Detail

ConfluenceBaseUrlSelector

@Deprecated
public ConfluenceBaseUrlSelector()
Deprecated. Since 5.6 Use ConfluenceBaseUrlSelector(org.slf4j.Logger)


ConfluenceBaseUrlSelector

public ConfluenceBaseUrlSelector(@Nonnull
                                 org.slf4j.Logger logger)
Method Detail

getBaseUrl

public String getBaseUrl()

Specified by:
getBaseUrl in interface BaseUrlSelector
Returns:
The base url that is used in tests. Note that in case of cluster it will return a base url of the node that the current test is running against. Important: This is not the configured base url.

getAllNodeBaseUrls

public List<String> getAllNodeBaseUrls()

Specified by:
getAllNodeBaseUrls in interface BaseUrlSelector
Returns:
a collection of the baseUrls of all of the nodes in the cluster, or a collection of one baseUrl if not clustered.

getConfiguredBaseUrl

public String getConfiguredBaseUrl()

Specified by:
getConfiguredBaseUrl in interface BaseUrlSelector
Returns:
The url that has been confogured as the base URl of the whole application cluster (e.g. the load balancer). If not clustered, this returns the same value as BaseUrlSelector.getBaseUrl().

substituteForNodeBaseUrl

public String substituteForNodeBaseUrl(String url)
Our cluster builds don't have a load balancer, this base URL actually points at node 1. If a test runs against node 2, and is given a URL with the BaseUrlSelector.getConfiguredBaseUrl() in it by the server, then pinging that URL will take it to node 1, and the test will fail. This method checks to see if the given URL starts with the BaseUrlSelector.getConfiguredBaseUrl(), and if so then substitutes it with the BaseUrlSelector.getBaseUrl() that points at the node that the current test is running against. It also checks to see if the given URL starts with the base URL of any of the other cluster nodes, and performs a similar substitution. If and when our cluster builds get a load balancer, we should be able to take this nastiness out.

Specified by:
substituteForNodeBaseUrl in interface BaseUrlSelector


Copyright © 2003–2015 Atlassian. All rights reserved.