All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.openjpa.slice.DistributedConfiguration Maven / Gradle / Ivy

There is a newer version: 4.0.0
Show newest version
/*
 * 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.openjpa.slice;

import java.util.List;

import org.apache.openjpa.conf.OpenJPAConfiguration;

/**
 * A configuration for multiple data stores, each referred as slice.
 * This configuration allows each underlying slice be configured with its
 * own specific configuration properties such as JDBC Driver or connection
 * user/password etc. 
 * 
* This configuration also extends by several policy plugins. A policy plugin * is an user implementation of a specific policy interface. A policy implementation * is invoked by Slice runtime. *
* Slice recognizes following policies *
  • {@link DistributionPolicy Distribution Policy} governs how new instances be distributed * among the slices. *
  • {@link ReplicationPolicy Replication Policy} maintains the same instance in multiple slices. *
  • {@link QueryTargetPolicy Query Target Policy} narrows the slices for a query execution. *
  • {@link FinderTargetPolicy Finder Target Policy} narrows the slices for primary key based lookup * * @author Pinaki Poddar * */ public interface DistributedConfiguration extends OpenJPAConfiguration { /** * Gets the active slice identifiers. This list is determined by the * configuration properties either by explicit listing in * openjpa.slice.Names property or by scanning * openjpa.slice.*.* properties. *
    * The ordering of the slice identifiers is determined when they are * specified explicitly in openjpa.slice.Names property or * ordered alphabetically when found by scanning the properties. *
    * This list always returns the identifiers that are active, slices * that can not be connected to are not included in this list. */ List getActiveSliceNames(); /** * Gets the available slice identifiers irrespective of their status. * @return */ List getAvailableSliceNames(); /** * Gets the slices of given status. * @param statuses list of status flags. If null, returns all slices * irrespective of status. */ List getSlices(Slice.Status...statuses); /** * Gets the Slice for a given name. * Exception is raised if the given slice is not configured. */ Slice getSlice(String sliceName); /** * Gets the policy that governs how new instances will be distributed across * the available slices. */ DistributionPolicy getDistributionPolicyInstance(); /** * Sets the policy that governs how new instances will be distributed across * the available slices. */ void setDistributionPolicyInstance(DistributionPolicy policy); /** * Gets the policy, as a plugin string, that governs how new instances will * be distributed across the available slices. */ String getDistributionPolicy(); /** * Sets the policy, from the given plugin string, that governs how new * instances will be distributed across the available slices. */ void setDistributionPolicy(String policy); /** * Gets the policy that governs how new replicated instances will be * replicated across the available slices. */ ReplicationPolicy getReplicationPolicyInstance(); /** * Gets the policy, as a plugin string, that governs how new replicated * instances will be replicated across the available slices. */ String getReplicationPolicy(); /** * Sets the policy that governs how new replicated instances will be * replicated across the available slices. */ void setReplicationPolicyInstance(ReplicationPolicy policy); /** * Sets the policy, from the given plugin string, that governs how new * replicated instances will be replicated across the available slices. */ void setReplicationPolicy(String policy); /** * Affirms if the given type is replicated. */ boolean isReplicated(Class type); /** * Gets the policy that governs which slices will be targeted for a given query. */ QueryTargetPolicy getQueryTargetPolicyInstance(); /** * Gets the policy, as a plugin string, that governs which slices will be targeted * for a given query. */ String getQueryTargetPolicy(); /** * Sets the policy that governs which slices will be targeted for a given query. */ void setQueryTargetPolicyInstance(QueryTargetPolicy policy); /** * Sets the policy, from the given plugin string, that governs which slices will * be targeted for a given query. */ void setQueryTargetPolicy(String policy); /** * Gets the policy that governs which slices will be targeted for a given finder. */ FinderTargetPolicy getFinderTargetPolicyInstance(); /** * Gets the policy, as a plugin string, that governs which slices will be targeted * for a given finder. */ String getFinderTargetPolicy(); /** * Sets the policy that governs which slices will be targeted for a given finder. */ void setFinderTargetPolicyInstance(FinderTargetPolicy policy); /** * Sets the policy, from the given plugin string, that governs which slices will * be targeted for a given finder. */ void setFinderTargetPolicy(String policy); }




  • © 2015 - 2024 Weber Informatics LLC | Privacy Policy