RoundRobinShardSelector.java |
1 /** 2 * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved. 3 * 4 * The contents of this file are subject to the terms of the Liferay Enterprise 5 * Subscription License ("License"). You may not use this file except in 6 * compliance with the License. You can obtain a copy of the License by 7 * contacting Liferay, Inc. See the License for the specific language governing 8 * permissions and limitations under the License, including but not limited to 9 * distribution rights of the Software. 10 * 11 * 12 * 13 */ 14 15 package com.liferay.portal.dao.shard; 16 17 import com.liferay.portal.util.PortalInstances; 18 import com.liferay.portal.util.PropsValues; 19 20 import java.util.Map; 21 22 /** 23 * <a href="RoundRobinShardSelector.java.html"><b><i>View Source</i></b></a> 24 * 25 * @author Alexander Chow 26 */ 27 public class RoundRobinShardSelector implements ShardSelector { 28 29 public String getShardName( 30 String scope, String shardName, Map<String, String> params) { 31 32 if (scope.equals(ShardSelector.COMPANY_SCOPE)) { 33 int instances = PortalInstances.getCompanyIds().length; 34 int shards = PropsValues.SHARD_AVAILABLE_NAMES.length; 35 36 return PropsValues.SHARD_AVAILABLE_NAMES[instances % shards]; 37 } 38 else { 39 return PropsValues.SHARD_DEFAULT_NAME; 40 } 41 } 42 43 }