ruper2/src/java/core/org/krysalis/ruper/repository RepositorySetSortContextIdentifier.java,NONE,1.1 RepositorySetSortContext.java,NONE,1.1 RepositoryConstants.java,1.2,1.3 RepositorySet.java,1.9,1.10 RepositoryManager.java,1.8,1.9

[email protected]
Newsgroups gmane.comp.krysalis.metamorphosis.cvs
Message-ID <[email protected]>
Update of /cvsroot/metamorphosis/ruper2/src/java/core/org/krysalis/ruper/repository
In directory sc8-pr-cvs1:/tmp/cvs-serv19796/src/java/core/org/krysalis/ruper/repository

Modified Files:
	RepositoryConstants.java RepositorySet.java 
	RepositoryManager.java 
Added Files:
	RepositorySetSortContextIdentifier.java 
	RepositorySetSortContext.java 
Log Message:
adding the repository mgr to Resource Updater and changed the handlerMgr 
to take the map of handler chains...  

--- NEW FILE: RepositorySetSortContextIdentifier.java ---
/*
 * Created on Sep 16, 2003
 *
 */
package org.krysalis.ruper.repository;

import org.krysalis.ruper.util.identity.GenericIdentifier;

/**
 * @author anou_mana
 */
public class RepositorySetSortContextIdentifier extends GenericIdentifier {

	public final static String REPO_SET_SORT_CONTEXT_URI =
		"http://krysalis.org/repository/set/sort/context";
	public final static String REPO_SET_SORT_CONTEXT_PREFIX = "repoSetSortContext";

	public RepositorySetSortContextIdentifier(String id) {
		super(REPO_SET_SORT_CONTEXT_URI, REPO_SET_SORT_CONTEXT_PREFIX, id);
	}
}

--- NEW FILE: RepositorySetSortContext.java ---
/*
 * Created on Sep 16, 2003
  */
package org.krysalis.ruper.repository;

import java.util.Comparator;
import java.util.List;

import org.krysalis.ruper.impl.ReferenceManager;
import org.krysalis.ruper.log.Logger;
import org.krysalis.ruper.util.RuperConstants;
import org.krysalis.ruper.util.identity.GenericIdentifier;
import org.krysalis.ruper.util.reference.NoSuchReferenceException;
import org.krysalis.ruper.util.reference.Referenceable;
import org.krysalis.ruper.util.select.Selector;

/**
 * @author anou_mana
 */
public class RepositorySetSortContext implements Referenceable {
	private RepositorySetSortContextIdentifier m_identifier;
	//handlers who can sort the repository list
	private List m_repositoryComparators;
	private List m_repositorySelectors;

	/**
	 * 
	 */
	public RepositorySetSortContext(String identifier) {
		super();
		m_identifier = new RepositorySetSortContextIdentifier(identifier);
	}

	/**
	 * @return
	 */
	public List getRepositoryComparators() {
		return m_repositoryComparators;
	}

	/**
	 * @return
	 */
	public List getRepositorySelectors() {
		return m_repositorySelectors;
	}

	/**
	 * @param list
	 */
	public void setRepositoryComparators(List list) {
		m_repositoryComparators = list;
	}

	/**
	 * @param list
	 */
	public void setRepositorySelectors(List list) {
		m_repositorySelectors = list;
	}

	/*
	 * Add and remove the selectors
	 */
	public void addRepositorySelector(Selector selector) {
		this.m_repositorySelectors.add(selector);
	}

	public void removeRepositorySelector(Selector selector) {
		this.m_repositorySelectors.remove(selector);
	}

	/*
	 * Add and remove the comparators
	 */
	public void addRepositoryComparator(Comparator comparator) {
		this.m_repositoryComparators.add(comparator);
	}

	public void removeRepositoryComparator(Comparator comparator) {
		this.m_repositoryComparators.remove(comparator);
	}

	public static RepositorySetSortContext getRepositorySetSortContext() {
		return getRepositorySetSortContext(RuperConstants.DEFAULT);
	}

	public static RepositorySetSortContext getRepositorySetSortContext(String identifier) {

		RepositorySetSortContext context = null;
		RepositorySetSortContextIdentifier id =
			new RepositorySetSortContextIdentifier(identifier);
		try {
			if (ReferenceManager.hasReference(id)) {
				context =
					(RepositorySetSortContext) ReferenceManager.getReference(
						id);
				return context;
			}
		}
		catch (NoSuchReferenceException exp) {
			Logger.getLog().error(
				"No RepositorySetSortContext reference in the RefMgr ",
				exp);
		}
		return context;
	}

	public static RepositorySetSortContext getRepositorySetSortContext(
		String identifier,
		boolean createIfNeeded) {

		RepositorySetSortContext context =
			getRepositorySetSortContext(identifier);

		if (context == null && createIfNeeded) {
			context = new RepositorySetSortContext(identifier);
			ReferenceManager.createReference(context);
		}
		return context;
	}

	public static RepositorySetSortContext createRepositorySetSortContext(String identifier) {

		RepositorySetSortContext context =
			new RepositorySetSortContext(identifier);
		ReferenceManager.createReference(context);
		return context;
	}

	/**
	 * @return
	 */
	public GenericIdentifier getIdentifier() {
		return m_identifier;
	}

	/**
	 * @param identifier
	 */
	public void setIdentifier(RepositorySetSortContextIdentifier identifier) {
		m_identifier = identifier;
	}

}

Index: RepositoryConstants.java
===================================================================
RCS file: /cvsroot/metamorphosis/ruper2/src/java/core/org/krysalis/ruper/repository/RepositoryConstants.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** RepositoryConstants.java	11 Sep 2003 23:34:39 -0000	1.2
--- RepositoryConstants.java	16 Sep 2003 20:40:32 -0000	1.3
***************
*** 12,18 ****
  	
  	// Default Repository IDs
! 	public final static String KRYSALIS_ID = "Krysalis";
! 	public final static String MAVEN_ID = "Maven";
  
  
  }
--- 12,20 ----
  	
  	// Default Repository IDs
! 	public final static String KRYSALIS_ID = "krysalis";
! 	public final static String MAVEN_ID = "maven";
  
+ 	public final static String REMOTE = "remote";
+ 	public final static String LOCAL = "local";
  
  }

Index: RepositorySet.java
===================================================================
RCS file: /cvsroot/metamorphosis/ruper2/src/java/core/org/krysalis/ruper/repository/RepositorySet.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** RepositorySet.java	12 Sep 2003 20:23:43 -0000	1.9
--- RepositorySet.java	16 Sep 2003 20:40:32 -0000	1.10
***************
*** 7,14 ****
  import java.util.ArrayList;
  
- import org.krysalis.ruper.RuperException;
  import org.krysalis.ruper.impl.ReferenceManager;
  import org.krysalis.ruper.util.RuperConstants;
  import org.krysalis.ruper.util.identity.GenericIdentifier;
  import org.krysalis.ruper.util.reference.Referenceable;
  
--- 7,15 ----
  import java.util.ArrayList;
  
  import org.krysalis.ruper.impl.ReferenceManager;
+ import org.krysalis.ruper.log.Logger;
  import org.krysalis.ruper.util.RuperConstants;
  import org.krysalis.ruper.util.identity.GenericIdentifier;
+ import org.krysalis.ruper.util.reference.NoSuchReferenceException;
  import org.krysalis.ruper.util.reference.Referenceable;
  
***************
*** 71,87 ****
  	public static RepositorySet getRepositorySet(
  		RepositorySetIdentifier identifier,
! 		final boolean createIfRequired)
! 		throws RuperException {
  
  		RepositorySet set = null;
  
  		if (ReferenceManager.hasReference(identifier)) {
! 			set = (RepositorySet) ReferenceManager.getReference(identifier);
  		}
! 		else {
! 
! 			if (!createIfRequired)
! 				throw new RuperException(
! 					"Failed to access ResourceUpdater [" + identifier + "]");
  
  			set = new DefaultRepositorySet(identifier);
--- 72,91 ----
  	public static RepositorySet getRepositorySet(
  		RepositorySetIdentifier identifier,
! 		final boolean createIfRequired) {
  
  		RepositorySet set = null;
  
  		if (ReferenceManager.hasReference(identifier)) {
! 			try {
! 				set = (RepositorySet) ReferenceManager.getReference(identifier);
! 				return set;
! 			}
! 			catch (NoSuchReferenceException exp) {
! 				Logger.getLog().error(
! 					"No RepositorySet reference in the RefMgr ",
! 					exp);
! 			}
  		}
! 		if (createIfRequired) {
  
  			set = new DefaultRepositorySet(identifier);

Index: RepositoryManager.java
===================================================================
RCS file: /cvsroot/metamorphosis/ruper2/src/java/core/org/krysalis/ruper/repository/RepositoryManager.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** RepositoryManager.java	11 Sep 2003 19:56:18 -0000	1.8
--- RepositoryManager.java	16 Sep 2003 20:40:32 -0000	1.9
***************
*** 6,19 ****
  
  import java.util.ArrayList;
- import java.util.Comparator;
- import java.util.HashMap;
  import java.util.List;
- import java.util.Map;
  
  import org.krysalis.ruper.log.Logger;
  import org.krysalis.ruper.util.RuperConstants;
  import org.krysalis.ruper.util.chainprocess.HandlerChain;
  import org.krysalis.ruper.util.chainprocess.HandlerManager;
- import org.krysalis.ruper.util.select.Selector;
  import org.krysalis.ruper.util.select.SelectorHandlerChain;
  
--- 6,18 ----
  
  import java.util.ArrayList;
  import java.util.List;
  
+ import org.krysalis.ruper.ResourceUpdater;
+ import org.krysalis.ruper.RuperException;
  import org.krysalis.ruper.log.Logger;
+ import org.krysalis.ruper.query.ResourceQuery;
  import org.krysalis.ruper.util.RuperConstants;
  import org.krysalis.ruper.util.chainprocess.HandlerChain;
  import org.krysalis.ruper.util.chainprocess.HandlerManager;
  import org.krysalis.ruper.util.select.SelectorHandlerChain;
  
***************
*** 21,133 ****
   * @author anou_mana
   */
! public class RepositoryManager extends HandlerManager{
! 
! 	public static final String DEFAULT_REPOSITORY_SET = "DEFAULT_REPOSITORY_SET";
! 	public static final String SORTED_REPOSITORY_SET = "SORTED_REPOSITORY_SET";
! 	
! 	private RepositorySet m_defaultRepositorySet;
! 
! 	// holds the different types of sorted list based on keyword
! 	private Map m_repositorySets;
! 
! 	// handler map can have selector, comparator chains by name 
! 	private Map m_handlerChains;
! 	//handlers who can sort the repository list
! 	private List m_repositoryComparators;
! 	private List m_repositorySelectors;
! 	
! 	/*
! 	 * Holds the information like Search RemoteRepoFirst, FindAndStop
! 	 * SearchBestFromAllRepo , update/download
! 	 */
! 	private RepositorySorterConfig m_selectorConfig;
! 	/*
! 	 * Whenever the selector config changes, sorted will be false.
! 	 */
! 	private boolean m_sorted;
  
  	public RepositoryManager() {
  		configure();
  	}
  
  	private void configure() {
! 		// TODO read the repository.xml file, get the information
! 		// and instantiate the selectorConfig
! 		// m_selectorConfig = new RepositorySelectorConfig()
! 		this.m_repositorySets = new HashMap();
! 		// map of selectors and comparators
! 		this.m_handlerChains = new HashMap();
! 		
! 		//TODO -- keep the handlerChains also in a hash relative to the 
! 		// keyword by which the repositorySet is selected
! 		
  		// create the comparator and 
  		HandlerChain comparators = new HandlerChain(RuperConstants.COMPARATOR);
! 		SelectorHandlerChain selectors = new SelectorHandlerChain(RuperConstants.SELECTOR);
  		this.m_handlerChains.put(RuperConstants.SELECTOR, selectors);
  		this.m_handlerChains.put(RuperConstants.COMPARATOR, comparators);
! 		
  		// first add the selectors
  		this.addHandlerChain(selectors);
  		this.addHandlerChain(comparators);
  	}
  
! 	public RepositorySet getDefaultRepositorySet() {
! 		return m_defaultRepositorySet;
  	}
  
! 	public RepositorySet getRepositorySet() {
! 		return getRepositorySet(RepositoryManager.SORTED_REPOSITORY_SET);
  	}
! 	public RepositorySet getRepositorySet(String keyword) {
! 		RepositorySet repositorySet = null;
! 		try {
! 			if (m_sorted) // already sorted 
! 			{
! 				repositorySet = (RepositorySet)this.m_repositorySets.get(keyword);
! 				if (repositorySet != null)
! 					return repositorySet;
! 			}
! 			
! 			// pass it through the chain of handlers - select the repositories
! 			// sort the repository set
! 			List repositories = process(m_defaultRepositorySet.getRepositories());
! 			repositorySet = new RepositorySet((ArrayList)repositories);
! 			
! 			this.m_repositorySets.put(keyword, repositorySet);
  		}
! 		catch (Exception exp) {
! 			Logger.getLog().error("Error in Repository sort", exp);
  		}
! 
  		return repositorySet;
  	}
  	
  
- 	public RepositorySorterConfig getSorterConfig() {
- 		return this.m_selectorConfig;
- 	}
- 
- 	/*
- 	 * Add and remove the selectors
- 	 */
- 	public void addRepositorySelector(Selector selector) {
- 		this.m_repositorySelectors.add(selector);
  	}
  
! 	public void removeRepositorySelector(Selector selector) {
! 		this.m_repositorySelectors.remove(selector);
! 	}
  
! 	/*
! 	 * Add and remove the comparators
! 	 */
! 	public void addRepositoryComparator(Comparator comparator) {
! 		this.m_repositoryComparators.add(comparator);
  	}
  
! 	public void removeRepositoryComparator(Comparator comparator) {
! 		this.m_repositoryComparators.remove(comparator);
  	}
- 
  }
--- 20,130 ----
   * @author anou_mana
   */
! public class RepositoryManager extends HandlerManager {
  
  	public RepositoryManager() {
+ 		super();		
  		configure();
  	}
  
  	private void configure() {
! 
  		// create the comparator and 
  		HandlerChain comparators = new HandlerChain(RuperConstants.COMPARATOR);
! 		SelectorHandlerChain selectors =
! 			new SelectorHandlerChain(RuperConstants.SELECTOR);
  		this.m_handlerChains.put(RuperConstants.SELECTOR, selectors);
  		this.m_handlerChains.put(RuperConstants.COMPARATOR, comparators);
! 
  		// first add the selectors
  		this.addHandlerChain(selectors);
  		this.addHandlerChain(comparators);
+ 		
+ 		// set the default sort context
+ 		// default selectors and comparators are used
+ 		setDefaultRepositorySortContext();
  	}
  
! 	public  void setDefaultRepositorySortContext() {
! 		RepositorySetSortContext repositorySetSortContext = RepositorySetSortContext.getRepositorySetSortContext();
! 		setRepositorySortContext(repositorySetSortContext);
  	}
  
! 	public  void setRepositorySortContext(RepositorySetSortContext repositorySetSortContext) {
! 		//	add the selectors to the chain
! 		HandlerChain handlerChain =
! 			(HandlerChain) m_handlerChains.get(RuperConstants.SELECTOR);
! 		handlerChain.setHandlers(repositorySetSortContext.getRepositorySelectors());
! 		// add the comparators to the chain
! 		SelectorHandlerChain shandlerChain =
! 			(SelectorHandlerChain) m_handlerChains.get(
! 				RuperConstants.COMPARATOR);
! 		shandlerChain.setHandlers(repositorySetSortContext.getRepositoryComparators());
  	}
! 
! 	public RepositorySet getDefaultSortedRepositorySet(){
! 		RepositorySet repositorySet = RepositorySet.getRepositorySet(
! 										new RepositorySetIdentifier(RuperConstants.DEFAULT),
! 										true);
! 		try
! 		{
! 			repositorySet = getSortedRepositorySet(repositorySet);
  		}
! 		catch(RuperException exp)
! 		{
! 			Logger.getLog().error("Error in sorting the default repository set", exp);
  		}
! 		
  		return repositorySet;
  	}
  	
+ 	public RepositorySet getSortedRepositorySet(RepositorySet repositorySet,
+ 	RepositorySetSortContext repositorySetSortContext) 
+ 					throws RuperException {
+ 		
+ 		setRepositorySortContext(repositorySetSortContext);
+ 		return getSortedRepositorySet(repositorySet);
  
  	}
+ 	public RepositorySet getSortedRepositorySet(RepositorySet repositorySet) 
+ 					throws RuperException {
  
! 		RepositorySet selectedRepositorySet = null;
! 		// pass it through the chain of handlers - select the repositories
! 		
! 		// select and sort the repository set
! 		List repositories = process(repositorySet.getRepositories());
! 		
! 		selectedRepositorySet = new RepositorySet((ArrayList) repositories);
  
! 		return selectedRepositorySet;
  	}
  
! 	public RepositorySet performRepositoryQuery(ResourceUpdater ruper, ResourceQuery query){
! 		
! 		RepositorySet repositorySet = null;
! 		
! 		try{
! 			// try to get the repository set given by the query
! 			repositorySet = query.getRepositorySet();
! 			if(repositorySet != null){
! 				// check the context
! 				RepositorySetSortContext repositoryContext = query.getRepositorySetSortContext();
! 				if(repositoryContext != null)
! 				{
! 					setRepositorySortContext(repositoryContext);
! 				}
! 				repositorySet = getSortedRepositorySet(repositorySet);
! 			}
! 		}
! 		catch(RuperException exception){
! 			Logger.getLog().error("Unable to perform repository query", exception);
! 		}
! 				
! 		if(repositorySet == null){
! 			// if not, use the default sorted repository
! 			repositorySet = ruper.getDefaultSortedRepositorySet();
! 		}
! 		
! 		return repositorySet;
  	}
  }




-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.