You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@depot.apache.org by ni...@apache.org on 2004/03/01 09:13:44 UTC
svn commit: rev 6948 - in incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant: . sandbox/chalko
Author: nickchalko
Date: Mon Mar 1 01:13:43 2004
New Revision: 6948
Removed:
incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/sandbox/chalko/Repository.java
Modified:
incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/antlib.xml
incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/sandbox/chalko/RepositoryElement.java
incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/sandbox/chalko/ResourceElement.java
incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/sandbox/chalko/RuperFileSet.java
incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/sandbox/chalko/RuperSet.java
Log:
Ruperset for files in the LocalRepo are now working!.
Modified: incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/antlib.xml
==============================================================================
--- incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/antlib.xml (original)
+++ incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/antlib.xml Mon Mar 1 01:13:43 2004
@@ -16,7 +16,7 @@
<antlib>
<typedef name="ruperset" classname="org.apache.ruper.ant.sandbox.chalko.RuperSet"/>
<typedef name="resource" classname="org.apache.ruper.ant.sandbox.chalko.ResourceElement"/>
- <typedef name="repository" classname="org.apache.ruper.ant.sandbox.chalko.Repository"/>
+ <typedef name="repository" classname="org.apache.ruper.ant.sandbox.chalko.RepositoryElement"/>
<typedef name="repotool" classname="org.apache.ruper.ant.task.RepositoryToolTask"/>
<typedef name="reposync" classname="org.apache.ruper.ant.task.SynchronizeTask"/>
</antlib>
Modified: incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/sandbox/chalko/RepositoryElement.java
==============================================================================
--- incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/sandbox/chalko/RepositoryElement.java (original)
+++ incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/sandbox/chalko/RepositoryElement.java Mon Mar 1 01:13:43 2004
@@ -29,6 +29,7 @@
private URL url;
private boolean remote;
+ private String id;
/**
* @return Returns the remote.
@@ -53,5 +54,18 @@
*/
public void setUrl(URL url) {
this.url = url;
+ }
+ /**
+ * @return Returns the id.
+ */
+ public String getId() {
+ return id;
+ }
+ /**
+ * @param id The id to set.
+ */
+ public void setId(String id) {
+ this.id = id;
+
}
}
Modified: incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/sandbox/chalko/ResourceElement.java
==============================================================================
--- incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/sandbox/chalko/ResourceElement.java (original)
+++ incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/sandbox/chalko/ResourceElement.java Mon Mar 1 01:13:43 2004
@@ -15,10 +15,19 @@
* ========================================================================
*/
package org.apache.ruper.ant.sandbox.chalko;
+import java.io.File;
+import org.apache.ruper.impl.RepositoryObject;
+import org.apache.ruper.repository.DefaultRepository;
+import org.apache.ruper.repository.IRepository;
+import org.apache.ruper.repository.RepositoryManager;
import org.apache.ruper.resource.Resource;
import org.apache.ruper.resource.ResourceGroup;
import org.apache.ruper.resource.ResourceType;
+import org.apache.ruper.resource.select.TypeSelector;
+import org.apache.ruper.tool.RepositoryTool;
+import org.apache.ruper.util.io.ResolvedFile;
import org.apache.ruper.util.net.VirtualResourceLocator;
+import org.apache.tools.ant.Project;
import org.apache.version.Version;
/**
* @version $Revision: $
@@ -29,6 +38,7 @@
private String version;
private String repository;
private String ext;
+ private final Project project;
/**
* @return Returns the name.
*/
@@ -96,22 +106,23 @@
* @return
*/
private VirtualResourceLocator getLocation() {
+ ResolvedFile rf = ResolvedFile.resolve(new File(getFileName()));
+ VirtualResourceLocator vrl = new VirtualResourceLocator(rf);
// TODO Auto-generated method stub
- return null;
+ return vrl;
}
/**
* @return
*/
private String getFileName() {
// TODO Auto-generated method stub
- return null;
+ return getName() + "-" + getVersion() + "." + getExt();
}
/**
* @return
*/
- private ResourceType getResourceType() {
- // TODO Auto-generated method stub
- return null;
+ ResourceType getResourceType() {
+ return ResourceType.JAVA_BINARY;// TODO fic
}
/**
* @return
@@ -123,9 +134,9 @@
/**
* @return
*/
- private ResourceGroup getResourceGroup() {
- // TODO Auto-generated method stub
- return null;
+ ResourceGroup getResourceGroup() {
+ ResourceGroup rg = new ResourceGroup(group == null ? name : group);
+ return rg;
}
/**
* @return Returns the group.
@@ -139,5 +150,28 @@
*/
public void setGroup(String group) {
this.group = group;
+ }
+ /**
+ * @return
+ */
+ public TypeSelector getResourceTypeSelector() {
+ // TODO Auto-generated method stub
+ return new TypeSelector(getResourceType());
+ }
+ /**
+ * @return
+ */
+ public IRepository getIRepository() {
+ RepositoryElement repositoryElement = (RepositoryElement) project
+ .getReference(getRepository());
+ return new DefaultRepository(repositoryElement.getId(),
+ new VirtualResourceLocator(repositoryElement.getUrl()));
+ }
+ /**
+ *
+ */
+ public ResourceElement(Project project) {
+ super();
+ this.project=project;
}
}
Modified: incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/sandbox/chalko/RuperFileSet.java
==============================================================================
--- incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/sandbox/chalko/RuperFileSet.java (original)
+++ incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/sandbox/chalko/RuperFileSet.java Mon Mar 1 01:13:43 2004
@@ -25,14 +25,17 @@
final class RuperFileSet extends FileSet {
private final RuperSet ruperSet;
private boolean initialized = false;
+ private FileScanner scanner;
RuperFileSet(RuperSet ruperSet) {
this.ruperSet = ruperSet;
}
private synchronized void initialize() {
if (!initialized) {
- FileScanner scanner = ruperSet.getFileScanner();
+ scanner = ruperSet.getFileScanner();
+ String [] includes= scanner.getIncludedFiles();
setDir(scanner.getBasedir());
setupDirectoryScanner(scanner, ruperSet.getProject());
+
}
initialized = true;
}
Modified: incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/sandbox/chalko/RuperSet.java
==============================================================================
--- incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/sandbox/chalko/RuperSet.java (original)
+++ incubator/depot/trunk/ruper/src/java/ant/org/apache/ruper/ant/sandbox/chalko/RuperSet.java Mon Mar 1 01:13:43 2004
@@ -22,8 +22,17 @@
import java.util.List;
import org.apache.ruper.ResourceUpdater;
import org.apache.ruper.RuperException;
+import org.apache.ruper.impl.RepositorySetWrapper;
+import org.apache.ruper.impl.ResourceUpdaterContext;
+import org.apache.ruper.messaging.ResourceRequest;
+import org.apache.ruper.protocols.DefaultProtocolOperationsManager;
+import org.apache.ruper.query.DefaultQueryEngine;
+import org.apache.ruper.query.ResourceQuery;
+import org.apache.ruper.query.ResourceQueryHelper;
+import org.apache.ruper.query.ResourceResult;
import org.apache.ruper.repository.DefaultRepository;
import org.apache.ruper.repository.IRepository;
+import org.apache.ruper.repository.RepositorySet;
import org.apache.ruper.resource.Resource;
import org.apache.ruper.resource.ResourceGroup;
import org.apache.ruper.util.io.ResolvedFile;
@@ -32,6 +41,8 @@
import org.apache.tools.ant.FileScanner;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.DataType;
+import org.apache.version.util.debug.DebugUtils;
+import sun.security.action.GetBooleanAction;
/**
* A locally cached repository backed set of resources.
*
@@ -56,7 +67,7 @@
* @return Resource
*/
public ResourceElement createResource() {
- ResourceElement resource = new ResourceElement();
+ ResourceElement resource = new ResourceElement(project);
resourceList.add(resource);
return resource;
}
@@ -98,20 +109,116 @@
*/
private void add(DirectoryScanner scanner, ResourceElement r) {
log("Looking for " + r, Project.MSG_DEBUG);
+ File f = findLocalFile(r);
+ if (f == null) {
+ f = downLoadRepoteFile(r);
+ }
+ if (f != null) {
+ String path = f.getAbsolutePath();
+ String basepath = scanner.getBasedir().getAbsolutePath();
+ if (path.startsWith(basepath)) {
+ path=path.substring(basepath.length()+1);
+ }
+ scanner.setIncludes(new String[]{path});
+ scanner.scan();
+ } else {
+ throw new BuildException("Unable to find " + r);
+ }
+ }
+ /**
+ * @param r
+ * @return
+ */
+ private File downLoadRepoteFile(ResourceElement r) {
+ try {
+ ResourceResult res = query(r, r.getIRepository());
+ if (res.size() == 0) {
+ return null;
+ } else if (res.size() == 1) {
+ downLoadRemoteResult(res);
+ return findLocalFile(r);
+ } else {
+ log("Found " + res.size() + " matches for " + r
+ + " returning first", Project.MSG_VERBOSE);
+ downLoadRemoteResult(res);
+ return findLocalFile(r);
+ }
+ } catch (Exception e) {
+ throw new BuildException("Unable to get local copy of " + r, e);
+ }
+ }
+ /**
+ * @param res
+ * @throws RuperException
+ */
+ private void downLoadRemoteResult(ResourceResult res) throws RuperException {
+ Resource resource= getFirstResource(res);
ResourceUpdater ru = new ResourceUpdater();
- ru.setTargetRepository(getRepository());
- Resource resource = r.initResource();
+ ru.downloadResource(resource,getLocalRepository());
+ }
+ /**
+ * @param r
+ * @return
+ */
+ private File findLocalFile(ResourceElement r) {
+ try {
+ ResourceResult res = query(r, getLocalRepository());
+ if (res.size() == 0) {
+ return null;
+ } else if (res.size() == 1) {
+ return getFirstFile(res);
+ } else {
+ log("Found " + res.size() + " mathees for " + r
+ + " returning first", Project.MSG_VERBOSE);
+ return getFirstFile(res);
+ }
+ } catch (Exception e) {
+ throw new BuildException("Unable to get local copy of " + r, e);
+ }
+ }
+ /**
+ * @param r
+ * @param res
+ * @return
+ */
+ private File getFirstFile(ResourceResult res) throws Exception {
+ Resource resource = getFirstResource(res);
+ return resource.getLocation().getFile();
+ }
+ /**
+ * @param res
+ * @return
+ */
+ private Resource getFirstResource(ResourceResult res) {
+ List l = (List) res.get(0);
+ Resource resource = (Resource) l.get(0);
+ return resource;
+ }
+ private ResourceResult query(ResourceElement r, IRepository repo) { //TODO
+ // experiment
+ log("Looking for " + r, Project.MSG_DEBUG);
try {
- ru.downloadResource(resource);
+ DefaultQueryEngine dqe = new DefaultQueryEngine();
+ ResourceQuery query = new ResourceQuery(r.getResourceGroup(), r
+ .getResourceTypeSelector(), null, null);
+ ResourceUpdaterContext context = new ResourceUpdaterContext();
+ context.setProtocolManager(new DefaultProtocolOperationsManager(
+ context));
+ RepositorySet repositorySet = RepositorySet.getRepositorySet(
+ getId(), true);
+ repositorySet.addRepository(repo);
+ RepositorySetWrapper rw = new RepositorySetWrapper(repositorySet,
+ context);
+ ResourceResult result = dqe.queryRepositories(rw, query);
+ return result;
} catch (RuperException e) {
- throw new BuildException("Unable to get "+r,e);
+ throw new BuildException("Unable to get " + r, e);
}
}
-
/**
* @return
*/
- private IRepository getRepository() {
+ private IRepository getLocalRepository() {
DefaultRepository repository = new DefaultRepository(
LOCAL_REPOSITORY_ID, ResolvedFile.resolve(getRepoDir()));
return repository;