Update of /cvsroot/metamorphosis/ruper2/src/java/core/org/krysalis/ruper2/impl
In directory sc8-pr-cvs1:/tmp/cvs-serv23328/src/java/core/org/krysalis/ruper2/impl
Modified Files:
ResourceUpdaterContext.java
Added Files:
ResourceUpdaterEngine.java ResourceUpdaterOptions.java
DefaultResourceUpdaterEngine.java
Log Message:
Changed the ResourceUpdater to ResourceUpdaterEngine and the ResourceAPI
ResourceUpdater
--- NEW FILE: ResourceUpdaterEngine.java ---
/*
* Created on Aug 27, 2003
*/
package org.krysalis.ruper2.impl;
import java.util.Iterator;
import java.util.List;
import org.krysalis.ruper2.RuperException;
import org.krysalis.ruper2.StandardResourceUpdater;
import org.krysalis.ruper2.config.RuperConfig;
import org.krysalis.ruper2.log.Logger;
import org.krysalis.ruper2.messaging.ResourceRequest;
import org.krysalis.ruper2.query.DefaultQueryEngine;
import org.krysalis.ruper2.query.ResourceQuery;
import org.krysalis.ruper2.query.ResourceResult;
import org.krysalis.ruper2.repository.Repository;
import org.krysalis.ruper2.repository.RepositoryException;
import org.krysalis.ruper2.repository.RepositoryManager;
import org.krysalis.ruper2.repository.RepositorySet;
import org.krysalis.ruper2.repository.RepositorySetSortContext;
import org.krysalis.ruper2.resource.Resource;
import org.krysalis.ruper2.resource.ResourceIdentifier;
import org.krysalis.ruper2.util.RuperConstants;
import org.krysalis.ruper2.util.identity.GenericIdentifier;
import org.krysalis.ruper2.util.reference.Referenceable;
import org.krysalis.ruper2.util.text.Messages;
/**
* @author arb_jack
* @author anou_mana
*/
public class ResourceUpdaterEngine implements Referenceable {
static {
// Configure from the XML file...
//:TODO: *Maybe* move later, or allow user to pass filename
RuperConfig.configure();
}
private ResourceUpdaterIdentifier m_identifier = null;
private ResourceUpdaterContext m_context = null;
private DefaultQueryEngine m_engine = null;
// repository
private RepositoryManager m_repositoryManager;
/**
*
*/
public ResourceUpdaterEngine(
ResourceUpdaterIdentifier identifier,
ResourceUpdaterContext context) {
m_identifier = identifier;
m_context = context;
initClass();
}
public ResourceUpdaterEngine(ResourceUpdaterIdentifier identifier) {
m_identifier = identifier;
initClass();
}
public ResourceUpdaterEngine(String identifier) {
m_identifier = new ResourceUpdaterIdentifier(identifier);
initClass();
}
public ResourceUpdaterEngine() {
m_identifier = new ResourceUpdaterIdentifier(RuperConstants.DEFAULT);
initClass();
}
private void initClass() {
if (null == m_context)
m_context = ResourceUpdaterContext.getDefaultContext();
m_engine = new DefaultQueryEngine();
// initialize the repository management
m_repositoryManager = new RepositoryManager();
} //
// Instantiation/Configuration
//
public GenericIdentifier getIdentifier() {
return m_identifier;
}
//
// Queries/Helper Methods
//
public final ResourceIdentifier resolveResource(final String id) {
return new ResourceIdentifier(id);
}
/**
* @return
*/
public ResourceUpdaterContext getContext() {
return m_context;
}
/**
* @param context
*/
public void setContext(ResourceUpdaterContext context) {
m_context = context;
}
public void perform(ResourceRequest request) throws RuperException {
ResourceResult result = performRequest(request);
// Now what? Perform actions??
}
public ResourceResult performRequest(ResourceRequest request)
throws RuperException {
Logger.getLog().debug(Messages.getString("ResourceRequest", request));
ResourceQuery query = request.getQuery();
return query(query);
}
public ResourceResult query(ResourceQuery query) throws RuperException {
// delegate the work to the repository manager to sort the repositories
// based on the query
RepositorySet repositorySet =
m_repositoryManager.performRepositoryQuery(this, query);
RepositorySetWrapper wrappers =
new RepositorySetWrapper(repositorySet, m_context);
return m_engine.query(wrappers, query);
}
public void copyTo(List resources, Repository targetRepository)
throws RuperException {
RepositoryWrapper target =
new RepositoryWrapper(targetRepository, m_context);
// for (Iterator i = result.iterator(); i.hasNext();) {
// List group = (List) i.next();
//
// for (Iterator j = group.iterator(); j.hasNext();) {
// Resource resource = (Resource) j.next();
//
for (Iterator i = resources.iterator(); i.hasNext();) {
Resource resource = (Resource) i.next();
try {
target.publishResource(resource);
}
catch (Exception e) {
// (1) log (2) stash in result set error table
throw new RepositoryException(
targetRepository,
"Failed to publish resource: " + resource,
e);
}
}
}
public static ResourceUpdaterEngine getResourceUpdater(
ResourceUpdaterIdentifier identifier,
final boolean createIfRequired)
throws RuperException {
ResourceUpdaterEngine ruper = null;
if (ReferenceManager.hasReference(identifier)) {
ruper = (ResourceUpdaterEngine) ReferenceManager.getReference(identifier);
}
else {
if (!createIfRequired)
throw new RuperException(
"Failed to access ResourceUpdater [" + identifier + "]");
ruper = new StandardResourceUpdater(identifier);
ReferenceManager.createReference(ruper);
}
return ruper;
}
/**
* @return
*/
public RepositorySet getDefaultSortedRepositorySet() {
return this.m_repositoryManager.getDefaultSortedRepositorySet();
}
/**
* @return
*/
public RepositorySetSortContext getDefaultRepositorySetSortContext() {
return m_repositoryManager.getDefaultRepositorySortContext();
}
/**
* @return
*/
public void setDefaultRepositorySetSortContext(RepositorySetSortContext sortContext) {
m_repositoryManager.setDefaultRepositorySortContext(sortContext);
}
/**
* @return
*/
public RepositoryManager getRepositoryManager() {
return m_repositoryManager;
}
/**
* @param set
*/
public void setDefaultSortedRepositorySet(RepositorySet set) {
this.m_repositoryManager.setDefaultSortedRepositorySet(set);
}
/**
* @param identifier
*/
public void setIdentifier(ResourceUpdaterIdentifier identifier) {
m_identifier = identifier;
}
/**
* @param manager
*/
public void setRepositoryManager(RepositoryManager manager) {
m_repositoryManager = manager;
}
}
--- NEW FILE: ResourceUpdaterOptions.java ---
/*
* Created on Sep 4, 2003
*/
package org.krysalis.ruper2.impl;
/**
* @author arb_jack
*/
public class ResourceUpdaterOptions {
// :TODO:
// Low Bandwidth
// Latest/Greatest...
}
--- NEW FILE: DefaultResourceUpdaterEngine.java ---
/*
* Created on Aug 27, 2003
*/
package org.krysalis.ruper2.impl;
import org.krysalis.ruper2.impl.*;
import org.krysalis.ruper2.protocols.DefaultProtocolOperationsManager;
import org.krysalis.ruper2.util.RuperConstants;
/**
* @author arb_jack
*/
public class DefaultResourceUpdaterEngine extends ResourceUpdaterEngine {
/**
*
*/
public DefaultResourceUpdaterEngine() {
super(
new ResourceUpdaterIdentifier(RuperConstants.DEFAULT));
classInit();
}
public DefaultResourceUpdaterEngine(
ResourceUpdaterIdentifier identifier) {
super(identifier);
classInit();
}
public DefaultResourceUpdaterEngine(
ResourceUpdaterIdentifier identifier,
ResourceUpdaterContext context) {
super(identifier, context);
classInit();
}
private void classInit() {
getContext().setProtocolManager(
new DefaultProtocolOperationsManager(getContext()));
}
}
Index: ResourceUpdaterContext.java
===================================================================
RCS file: /cvsroot/metamorphosis/ruper2/src/java/core/org/krysalis/ruper2/impl/ResourceUpdaterContext.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** ResourceUpdaterContext.java 6 Oct 2003 21:14:06 -0000 1.5
--- ResourceUpdaterContext.java 7 Oct 2003 17:24:49 -0000 1.6
***************
*** 6,10 ****
import java.io.File;
- import org.krysalis.ruper2.ResourceUpdaterOptions;
import org.krysalis.ruper2.RuperException;
import org.krysalis.ruper2.protocols.DefaultProtocolOperationsManager;
--- 6,9 ----
-------------------------------------------------------
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.